一から始める機械学習(機械学習概要)

  • 26
    いいね
  • 0
    コメント

このページの対象読者、目的

対象読者

 ・機械学習について一から勉強したい人が対象です

目的

 ・機械学習の概要について理解する
 ・人工知能と機械学習の違いについて理解する
 ・ディープラーニングが話題になっている背景を理解する
 ・機械学習の進歩の背景を理解する
 ・更に勉強したい場合のおすすめの教材を理解する

アジェンダ

  1. 人工知能とは
  2. 機械学習とは
  3. 機械学習はどのようなことで使われているか
  4. 学習の方法
  5. ニューラルネットワークとディープラーニング
  6. ディープラーニングがなぜすごいのか
  7. 用語についてのまとめ
  8. 人工知能とは何か? 世間の見方
  9. なぜ機械学習が話題となるほどの進歩を遂げているのか
  10. 最後に
  11. 更に勉強したい場合

プレゼンテーション版がこちらにあります。
プレゼンテーションとしてみたい方はこちらをどうぞ
https://speakerdeck.com/tflare/machine-learning-overview

続編はこちら
一から始める機械学習(Kaggleで学ぶ機械学習)
http://qiita.com/taki_tflare/items/8850ac5ba8b504a171aa

1. 人工知能とは

・コンピュータ上で人間の知能を実現させるためのシステム(左記の研究から生まれた、知能の一部分を実現するための技術も指す)
・知能:調べる、計算する、予測する、判断する等
・現時点では、自分の意志を持つAIはまだできていない。しかし何かに特化して人間を超える能力を見せている。例えば人間のプロ囲碁棋士を破ったAlphaGo等

2. 機械学習とは

機械学習とは.png

データを元に学習しモデルを作成する。モデルを元に分類等を行う

3. 機械学習はどのようなことで使われているか

・Google検索 検索アルゴリズム RankBrain
・Siri AppleのiPhone等に搭載されている音声アシスタント
・ゲームプレイ Pacmanのプレイなど様々なゲームプレイあり
OpenAI_GymでゲームMsPacman_ミズ・パックマン_をやると初期に操作を受け付ない時間がある__-_Qiita.png

4. 学習の方法

学習の方法.png

4.1 学習の方法(教師あり学習)

学習の方法(教師あり学習).png

教師あり学習は入力と出力を合わせたデータセットを用意し、
それを用いて学習を行い、モデルを作成する。
作成したモデルを元に分類等を行う。

4.2 学習の方法(教師なし学習)

学習の方法(教師なし学習).png

教師なし学習は入力のみのデータセットを用意し、
クラスタリング(性質が近いデータをまとめる)や次元削減を行う。

4.3 学習の方法(強化学習)

学習の方法(強化学習).png

強化学習は環境における価値を最大化するようにエージェントを学習させる
強化学習では、その時の価値だけではなく
将来価値も含めた報酬を考慮して学習を行う。

5. ニューラルネットワークとディープラーニング

ニューラルネットワークとは
機械学習の研究課題の一つで、人間の脳内に存在する神経細胞(ニューロン)の働きから着想を得て作成されたシステムです。

ディープラーニングとはニューラルネットワークを多層にしたもの
いままでは業務の専門家の人がパラメータ設定していた特徴量を機械自身で設定することできる。
かつ専門家よりも高い結果が出た。
ILSVRC 2012(大規模画像認識の競技会)でディープラーニングで圧勝するなど
多数の結果があり、これにより画像認識の方向性を決定づけたといえる。

ニューラルネットワークとディープラーニングは画像認識、音声認識、自然言語処理などに力を発揮します。

6. ディープラーニングがなぜすごいのか

音声・画像認識等で人間を上回るレベルの結果が出てきている
 例えば大規模画像認識の競技会(ILSVRC 2015)で人間を上回った結果を出した

画像認識等で人間を上回るということは
「画像関連の事象について、人間が識別困難なものでも認識可能ということを意味し、例えば、将来的に医学診断で人間よりも効果のある診断ができることを意味していると考えられます。
これは様々な応用が可能であり、今後よりDeep Learningが重要となっていることを意味しています。」

「ILSVRCとは何か?」 より引用
http://qiita.com/taki_tflare/items/40bd1313d85513b4b861

「ディープラーニングによる画像認識は「目」の技術であり、生物が目を得た時と同じく、ロボットや機械の世界でも””カンブリア爆発””的なインパクトになりえる」
「AI白書2017」 p8 より引用

7. 用語についてのまとめ

ようごのついてもまと.png

8. 人工知能とは何か? 世間の見方

レベル1  単純な制御プログラムを「人工知能」と称している
     ごく単純な制御プログラムを搭載しているだけの製品 
レベル2 古典的な人工知能
     振る舞いのパターンが極めて多彩なもの
     例えば掃除ロボット
レベル3 機械学習を取り入れた人工知能
     検索エンジンに内蔵されていたり、
     ビックデータを元に自動的に判断したりするような人工知能
レベル4 ディープラーニングを取り入れた人工知能
     機械学習をする際のデータを表すために使われる変数自体を学習するもの

「人工知能は人間を超えるか」 松尾 豊 著 pp.51-52 参考

8.1 人工知能とは何か? 世間の見方 に対する私の考え

全てにおいて、レベルが高いものが良いというわけではなく目的に応じて使い分ける必要がある。
ただし、レベル4が適切なところにレベル3が使われており、かつ最新技術が使用されていますよ。などということに惑わされないようにする必要があるということ

9. なぜ機械学習が話題となるほどの進歩を遂げているのか

学習進歩の3つの要因
・計算能力の向上
・大量データの取得が容易になった
・情報共有

9.1 計算能力の向上

機械学習へのGPU適用により、CPU単体に比べ、10倍以上のパフォーマンスがでるようになった。
学習にCPUで2日かかっていたところ、GPUを使用すれば5時間程度になる。
上記により試行回数が増えることになり、複数の手法、ハイパーパラメータの試行回数が増えることとなった。これにより進化が進みやすくなった。

参考:
 個人で環境を揃えるのであれば、Linux環境でGPUを用意するのがベスト
 上記がなければ、Google Cloud PlatformやAWSも検討に入れる。
 両方共無料チケットを配っているので、試してみることができる。

9.2 大量データの取得が容易になった

データセットの重要性が広がり、データセットが大量に公開された。
インターネット、スマートフォンの普及により、公開データが増えた。
上記により機械学習を行う上で、大変重要なデータが増えた。

MNIST
http://yann.lecun.com/exdb/mnist/
手書き文字のデータセット

YouTube-8M
https://research.google.com/youtube8m/
Googleが公開した800万の動画のデータセット

機械学習を行う際に利用可能なデータセットのまとめ
https://github.com/arXivTimes/arXivTimes/tree/master/datasets

9.3 情報共有(arXiv.org)

arXiv.org:論文投稿サイト 物理、数学、コンピュータ科学等中心

昔:雑誌による投稿 査読で数ヶ月後に公開
今:arXiv.org 毎日更新

arXiv.orgに投稿されたものが次の日には、実装されそのパフォーマンスが出るか検証されることもある。

10. 最後に

問題への対応において今までは、人かルールベース(普通にプログラム)かの2つの選択肢があったが
これからは、人、ルールベース、機械学習の3つを組み合わせて考えたほうが良いと考える。

一から始める機械学習(機械学習概要)___Machine_Learning_Overview_key.png

・単純な条件であれば、ルールベースが一番解決度を上げられる。
・人間が簡単なルールで定義できる問題であれば、ルールベース(普通にプログラミング)の方が機械学習よりも解決度を上げられる。
・人のほうが基本的に解決度は高いが、うっかりや体調の問題があるため間違えることがある。また特定の人への依存への対応も必要である。
・機械学習では今までのルールベースでは対応が難く、人が行わなければならなかった問題へ対応できる場合がある。
・ルールベース、機械学習、人の組み合わせでゴールに向けて適切なものを選んで対応していく必要がある。
(人の解決度が安定しない場合をルールベース、機械学習を適切に組み合わせ実行するなど)

11. 更に勉強したい場合

一から始める機械学習(Kaggleで学ぶ機械学習)
http://qiita.com/taki_tflare/items/8850ac5ba8b504a171aa
このページの続編です。

ニューラルネットワークと深層学習
http://nnadl-ja.github.io/nnadl_site_ja/index.html
ニューラルネットワークの仕組みが知りたい場合はこれをおすすめ

Machine Learning
https://www.coursera.org/learn/machine-learning
Andrew Ng 先生による Coursera の機械学習コース
日本語字幕あり おすすめする人が多い

マンガでわかる人工知能
http://book.impress.co.jp/books/1116101103
全体的な概要をつかみたい場合

人工知能は人間を超えるか
http://www.kadokawa.co.jp/product/321410000316
引用させていただいた本、おすすめ

ゼロから作るDeep Learning――Pythonで学ぶディープラーニングの理論と実装
https://www.oreilly.co.jp/books/9784873117584/
ディープラーニングの原理理解したい場合はこれをおすすめ

11.1 更に勉強したい場合(英語文献)

CS231n: Convolutional Neural Networks for Visual Recognition
http://cs231n.stanford.edu
画像関連をやりたければこれ
スタンフォード大学の講義資料 動画もある

CS224n: Natural Language Processing with Deep Learning
http://web.stanford.edu/class/cs224n/
自然言語処理をやりたければこれ
スタンフォード大学の講義資料 動画もある

UCL course – 2016
https://hadovanhasselt.com/2016/01/12/ucl-course/
強化学習ならこれ もっと新しいのがあるかも