機械学習初心者入門向けの解説

平成後半から令和にかけてIT技術の進歩にが進み人工知能が話題です。テレビをつけると人間対AIの勝負をしておりAIの方が優秀じゃないかとまで言われる始末です。
ただやはり複雑なことでは人間の脳の方が優秀でAIが人に勝つまで発展するには、まだ10年以上かかると言われていました。2015年以前のAIはアマチュアの知能レベルに達するのがやっとでした。
AIのこの急激な発展を支えたのが、AIに「学習」させる技術の進化だと言われています。そのAIを学習させると言うときに「機械学習」と「ディープラーニング」と言う言葉が出てきました。この記事では「機械学習」とは何か同じタイミングでよく目にする単語である「ディープラーニング」がどのような意味か、実際にはどのように使用しているのか紹介していきます。

機械学習の意味とは

機械学習と言っても実はディープラーニングとまったくの別物というわけではありません。大きなくくりで言うとほぼ同じ意味になります。ネットの記事やテレビでは機械学習、ディープラーニングをあわせて機械学習またはAIと読んでいますね。前提として「AI > 機械学習 > ディープラーニング」のイメージは持っておきましょう。

機械学習はデータの中のどの要素が結果に影響を及ぼしているのか(特徴量という)を人間が判断、調整することで予測や認識の精度をあげています。同技術は、開発者があらかじめすべての動作をプログラムするのではなく、データをAI自身が解析し、法則性やルールを見つけ出す特徴を持っています。つまり、「トレーニング」により特定のタスクを実行できるようになるようなAIになります。

例えば画像認識の例ですと、タグという情報が付いてある画像を大量にAIに記憶させます。そのタグの形で種類を識別しなさいと命令をすれば類似する画像が出たときに識別できると言うことです。この機能は迷惑メール対策などに使用されています。

ディープラーニング

先ほどから何度も出てきているディープラーニングとは以前までの機械学習の技術を発展させたものになります。従来の機械学習との大きな違いは、情報やデータを分析する際に使う枠組みがかなり異なっていることです。これは、人間の神経を真似て作ったニューラルネットワークで、コンピューターによるデータの分析と学習を強力なものに仕立て上げているからです。

前述で説明した機械学習の学習の仕方では大量の画像にタグをつけ人間がどこに注目して判断するかを指示して学習させていたものに対して、ディープラーニングではデータの中に存在しているパターンやルールの発見、特徴量の設定、学習なども機械が自動的に行うことが特徴です。人間が一つ一つ判断する必要がないのが画期的です。

例えるとそれぞれの画像の注目すべきところを人間の脳と同じようにAIが自分で学習し、「目の付けどころ」を判定して性能を向上させていきます。

「目の付けどころ」を自動で判定する機能が従来の機械学習になかった要素であり利便性が高い効果になります。例えばショッピングサイトでは、服の好みをAIが学習し人その利用者がクリックする頻度などを判定し、利用者の好みに合いそうな商品を絞り込んで提案してくれる機能などを実装しています。

機械学習環境作るには

WindowsでPythonの機械学習の環境構築をする方法は1通りではなく、色々な方法でインストールを試みることができます。有名なのはAnacondaです。こちらをインストールすればPythonの環境構築からある程度必要なライブラリのインストールまで一気に済ませてくれます。Pythonの公式ページからインストールファイルをダウンロードして、インストールするよりも簡単に構築できます。AnacondaにはNumpyやPandasといったライブラリがデフォルトでインストールされるようになっていますが、標準で付属しているライブラリ以外は別途手動でインストールする必要があります。Pythonではpipと呼ばれるコマンドによって管理を行っており、Anaconda経由でインストールした場合、Windows Power Shell もしくは コマンドプロンプト上で、ライブラリのインストールを行います。Flaskはflaskという名前で登録されているため、小文字にしています。これで、ダウンロードが始まれば、自動的にインストールまで行われるため完了です。CUI操作でインストールするので初心者は難しいかもしれませんがなれる必要がある操作なので頑張りましょう。

まとめ

機械学習についての意味が理解していただけましたか。TVなどで使用されている意味とは大きく違い大量のデータから予測を割り出した学習方法が機械学習になります。人同じ考え方をするのはディープラーニングの技術になります。どちらもこれから多くのサービスで使われていくと思うので違いを理解しながら使っていくのは面白いと思いますよ。

前の記事

初心者向けの機械学習入門

次の記事

AI開発のための勉強法New!!