最近、Web業界やテクノロジー分野で人工知能(AI)やデータマイニング、ディープラーニングなどのキーワードとともによく耳にするようになった言葉の一つに「機械学習(マシーン・ラーニング)」という言葉があります。

機械学習はGoogleの自動運転車をはじめ、AmazonやZOZOTOWNなどのオンラインショップやNetflixやAWAなどの音楽ストリーミング配信サービスで使われるレコメンデーション機能、twitterやインスタグラムで顧客が投稿している内容を分析するマーケティングオートメーションなど、今日の社会でも頻繁に活用されています。

「機械学習」は、今後Web業界で取り残されないためにフォローするべき重要なキーワードの一つであることは間違いありません。
それでは、機械学習とは何であり、なぜこれほど注目されるのでしょうか。

今回は、「機械学習」の概要から、Web業界の関連者が知っておくべき機械学習に関するフレームワーク/ライブラリまで、幅広く解説します。
ほとんどの人が「機械学習」については聞いたことがあっても、「いつか勉強しよう」とブックマークに入れて保存するケースが多いのではないでしょうか。
ぜひこの機会に機械学習の全体像を掴んでみてください。

参考:
人工知能(AI)と人工無脳(チャットボット)、どう使い分ければいい?

機械学習とは?

機械学習(machine learning)とは、人工知能(AI)における研究課題の一つで、人間が自然に行なっている学習能力と同じ機能をコンピューターで実現しようとする一連の手法のことです。
具体的には、複数のデータを用いて反復的に学習し、そこに潜むパターンをコンピューターが帰納法的に見つけ出すことです。
学習した結果をモデル化し、新たなデータにあてはめることで、パターンに従って未来予測を行うこともできるようになります。
最終的には、予測分析を自動化することができ、データサイエンティストの人手不足にも対応できるという点で、大きく期待が寄せられています。

機械学習の歴史自体はそれほど短いものではなく、これまでも科学者たちはパターン認識技術に着目して、自分たちがプログラミングを行わなくても特定のタスクを実行できるようにコンピューターが学習できる方法を見つけようとしてきました。
しかし、最近では人工知能(AI)にスポットライトが当たったことで、機械学習の「反復学習性」に着目して、コンピューターが自律的に学習を行うようなアルゴリズムをこぞって開発するようになりました。
近年のテクノロジーの発展のおかげで、ビッグデータを使った処理も比較的容易になったので、凄まじい勢いで進化を遂げています。

アルゴリズムを活用して学習モデルを構築し、複数のデータ同士のつながりが構築できれば、人間が介入しなくても的確に意思決定の判断を下すことが可能になります。
インターネットの普及率が爆発的に伸び、利用可能なデータが増え続けていて、コンピューターの処理能力も高まり、サーバーやストレージなどの構築コストも下がっているので、大量の複雑なデータをより速やかに処理できる環境が整ったのも、機械学習が一般的になった要因です。

機械学習の4つのアルゴリズム

library.jpeg

機械学習を行うためにベースとなるアルゴリズムは、大きく分けて「教師あり学習」「教師なし学習」「反教師あり学習」「強化学習」の4つです。
それでは、これらの違いは何なのでしょうか。具体例も挙げながら、解説していきましょう。

1. 教師あり学習

教師あり学習(supervised learning)アルゴリズムでは、人間がつけたラベル付きの手本を使ってトレーニングを実行していきます。

digits.png

例えば、0から9までの数字1文字が書かれた画像がたくさんあるとしましょう。
この画像ひとつひとつに、0から9までのどの数字が書かれているのかというラベルを人間がつけることによって、それを学習するのが教師あり学習です。
つまり、アルゴリズムにより、コンピューターが人間の認識を真似るように学習が行われます。
学習が繰り返し行われると、新しい画像入力を行なった際、どの数字が書かれているのかを正しく判断できるようになります。

これを応用したのが、入力フォームなどの際に入力者がコンピューターでないことを確認するために使われるCAPTCHA(キャプチャ)です。
もともとCAPTCHAは、ランダムな文字列を生成して、機械が自動的に読み取るには困難な形で加工していましたが、ある程度アルゴリズムによって推測可能な文字列を問題として入力させることで、その整合性を確認する学習方法を取っているものもあります。

2. 教師なし学習

一方、教師なし学習(unsupervised learning)アルゴリズムでは、履歴ラベルが存在しないデータに対してコンピューターが学習を実行します。

先ほどの例でいえば、コンピューターは0から9の書かれた大量の画像を読み取り、そのデータのパターンだけを見てデータの類似点を探ることになります。
あらかじめ「何を出力すべきか」が与えられていないという点で教師なし学習とは大きく異なり、データの本質的な構造を抽出するのに用いられます。

教師なし学習を使ってマーケティングに活用する例も多く見受けられます。
例えば、年齢や性別、居住地など、よく似た属性の組み合わせを持つカスタマーをセグメント化して、コンピューターに教師なし学習アルゴリズムで購入情報や閲覧情報を学習させることで、カスタマーの嗜好性を分析して「あなたへのオススメ」としてリコメンデーション機能を実装することができます。

amazon.png

これをうまく活用したのが、Amazonで表示される「チェックした商品の関連商品」などのレコメンデーションです。
Amazonは、商品をチェックした履歴をさまざまな属性と紐づけているので、まさに今関心があるであろう商品をピックアップしてカスタマーに推薦することができるのです。

3. 反教師あり学習

反教師あり学習(semi-supervised learning)では、ラベル付きデータとラベルなしデータの両方を使って学習を行なってトレーニングを行います。
教師あり学習のように大量の教材にラベルをつけるとコストがかかってしまうものでも、半分だけにラベルをつけて残りはラベルなしで学習させることで、人間による費用や労力を減らす効果が期待できます。

facerecognition.jpg

反教師あり学習を応用したものとして、Facebookにアップロードされた写真の顔認識システムが挙げられます。
ユーザーが自分の写真がはっきりと映った写真をアイコンとしてアップロードすれば、それがラベルとなります。
そして、他のユーザーによって自分がタグ付けされることでFacebookの顔認識アルゴリズムが学習し、繰り返し学習がなされると、タグ付けされなくても特定の人物の顔写真から人物名を推測することができるようになります。

4. 強化学習

強化学習(reinforcement learning)とは、ロボット工学やゲーミングなどでよく使われる機械学習の方法で、どの行動が最大の成果(報酬)をもたらすかを、アルゴリズムを通して試行錯誤して突き止めていく手法です。

この学習モデルでは、「エージェント」と呼ばれる意思決定者、エージェントとアクションを結びつける「環境」、エージェントが行うことのできる行動である*「アクション」の3つの構成要素が必要です。
強化学習は教師あり学習にも似ていますが、教師による明確な答えは提示されず、行動の選択肢である「アクション」と成果である「報酬」だけが提示されるという点で異なります。
つまり、「答え」よりも行動による
「期待値」*を出していくのが強化学習と言い換えることもできます。

go.jpg

強化学習の応用例が、GoogleのAI部門であるDeepMindによって開発されたコンピューター囲碁プログラム*「AlphaGo(アルファ碁)」です。
囲碁や将棋といった複雑なゲームの場合、どの場面でどのような手を打てば最善を尽くすことができるかは、「答え」ではなく
「期待値」*です。
強化学習では、「Aの場所に手を打った場合、報酬はB」であるというように、最善の期待値(戦略、ポリシー)を求めていきますが、報酬の設定が困難な場合には「報酬B」もまた推測の対象にするという点で、教師あり学習よりも複雑な問題を扱うことができるようになります。