学ぼう機械学習!
簡単なデモと実践

2016/10/22 JAWS Festa 東海道 2016 in 名古屋
後藤 俊介 ( @antimon2 )

自己紹介

自己紹介1

  • 名前:後藤 俊介
  • 所属:有限会社 来栖川電算
  • 言語:Python, Julia, Ruby, Scala(勉強中), …
  • twitter: @antimon2
  • Facebook: antimon2
  • GitHub: antimon2

自己紹介2

機械学習について

機械学習とは (1)

機械学習(きかいがくしゅう、英: machine learning)とは、人工知能における研究課題の一つで、人間が自然に行っている学習能力と同様の機能をコンピュータで実現しようとする技術・手法のことである。

Wikipedia:機械学習 より。

機械学習とは (2)

  • 人工知能 (Artificial Intelligence / AI) の一研究分野。
  • コンピュータビジョン (Computer Vision / CV)、パターン認識 (Pattern Recognition / PR)、自然言語処理 (Natural Language Processing / NLP) 等、人工知能の他の研究分野と互いに関連あり。
    • ↑の関連各分野に対して、数学的基礎付け の役割を果たしているのが「機械学習」、と言える。

機械学習とは (3)

  • コンピュータにデータを 学習 させて、それを元に色々な 仕事 をさせること。
    • ポイントは、その主な 判断処理 をコンピュータ自身に考えさせる、ということ!

機械学習の大分類

  • 教師あり学習 (Supervised Learning)
    • 事前に与えた正解データから、未知のデータを推測・判別する
  • 教師なし学習 (Unsupervised Learning)
    • 正解が不明なデータから、構造や特徴を導き出す
  • 強化学習 (Reinforcement Learning)
    • 一連の行動を通じて報酬が最も多く得られるような方法を学習

教師あり学習

  • 主なアルゴリズム分類:
    • 回帰 (Regression)
    • 分類 (Classification)
  • 主な手法:
    • 線形回帰 / 重回帰 / ロジスティック回帰
    • SVM (SVR / SVC)
    • 決定木 / ランダムフォレスト
    • ニューラルネットワーク etc.

教師なし学習

  • 主なアルゴリズム分類:
    • クラスタリング (Clustering)
    • 次元削減 (Dimensionality Reduction)
  • 主な手法:
    • K-means
    • 混合ガウスモデル (GMM)
    • 主成分分析 (PCA) / 独立成分分析 (ICA) etc.

ML Map by scikit-learn

深層学習(Deep Learning)について

Deep Learning とは (1)

ディープラーニング深層学習(英: deep learning)とは、多層構造のニューラルネットワーク(ディープニューラルネットワーク、英: deep neural network)を用いた機械学習である

Wikipedia:ディープラーニング より。

Deep Learning とは (2)

  • 多層ニューラルネット(DNN)(もしくはそれに相当するもの)を用いた 機械学習
  • 時間とリソースを大量消費する代わりに、高い性能(分類・推測等)が期待できる。

従来手法と Deep Learning の主な違い

 従来手法Deep Learning
(学習に使う)
特徴の定義
主に人間が定義する学習データから抽出
(学習にかかる)
時間・リソース
比較的少ない大量消費する
(学習結果の)
性能(傾向)
そこそこ…わりと高い!

Deep Learning が流行りだした理由

  • 大量のデータ(ビッグデータ)で学習できるようになった。
  • 効率の良い学習アルゴリズムがたくさん出てきた。
  • コンピュータの性能向上や、GPU による速度向上。
  • ネコ画像認識、チェス/将棋/囲碁で世界チャンピオンに勝利等、話題性。

Deep Learning の仲間たち

  • 畳み込みニューラルネット(CNN
    • DNN の(一部の)層に「畳み込み層」を取り入れたもの。
    • 主に画像認識のタスクで有用。
  • 再帰型ニューラルネット(RNN
    • 内部に(有向)閉路を持つ DNN の総称。
    • (短期)記憶を表現でき、時系列データ(自然言語、音声等)を扱える。

Deep Learning Frameworks

Framework Logos

フレームワーク比較

 CaffeTorch7TheanoTensorFlowChainerMXNet
対応言語C++/Python/
Matlab
Lua/CPythonC/C++/
Python
PythonC++/Python/R/
Julia/Scala/…
ライセンスBSD-2BSDBSDApache2.0MITApache2.0
モデルの柔軟性
GPU対応
備考高速
Caffe Model Zoo
多数の
アルゴリズムを
サポート
自動微分自動微分
TensorBoard
Define by Run
CuPy
柔軟性
高効率
可搬性

Deep Learning / Machine Learning 対応 Webサービス

Web Services Logos

クラウド Machine Learning サービス

デモ

デモ (1): CNN の簡単な応用例

デモ (2): RNN の簡単な応用例

まとめに変えて

機械学習 名古屋 勉強会 の紹介

機械学習 名古屋 - connpass

活動実績

いっしょに学ぼう!

  • 「(ビジネス等で)使える機械学習」を勉強・情報共有したい。
  • やりたいことはあるのだけれどどうすれば良いか分からない
  • 相談する人・場所・機会が欲しい。仲間が欲しい

→ ぜひ、いっしょに学びましょう!

おしまい

ご清聴ありがとうございました。