はじめての機械学習

機械学習やディープラーニング、TensorFlowの基本的なことか最新のことまでわかりやすく

機械学習とは?機械学習でできること、今後実現されそうなこと

f:id:nipe880324:20161023234658p:plain:w420 Photo by Springboard

2016年も終わりをむかえようとしている中、ここ数年は、機械学習 (Machine Learning) や 深層学習 (Deep Learning)といったワードが話題になっています。 また、GoogleFacebookMicrosoftなど世界の名だたる大企業が力をいれて分野でもあり、人工知能機械学習に関連する企業を買収したり、研究に多額の費用を投資しており、第3次人工知能ブームとも言われています。

そんな中、機械学習ディープラーニングに興味を持っているけど勉強できてない、いまいちわかっていないという機械学習初心者の方に、

  • 機械学習とはどういったものか?
  • 今現在機械学習でどのようなことができるか?
  • 今後近い未来機械学習でどのようなことができそうか?

を実例を交えながらわかりやすく説明します。

個人的には、まだまだ発展途上ですが、機械学習にはインターネットという技術と同等かそれ以上の可能性を秘めていると考えています。 是非最後までお読みください。

目次

  1. 機械学習とは?
  2. 機械学習で今できていること
  3. 機械学習で今後できそうなこと

1. 機械学習とは?

大まかにいうと、機械学習とは、大量のデータから学習することでモデルを構築し、そのモデルに予測をさせるというものです。(※これとは少し違ったパターンのものもあります。) モデルが、大量のデータから、予測に必要な特徴を自動的に学ぶことで適切な予測をおこないます。

f:id:nipe880324:20161023235143j:plain:w420

ここで、メールがスパムかどうか判定するスパムフィルタを作成する例を考えてみます。

  1. まず、大量の「スパムメール」と「スパムでないメール」を集めます。
  2. 次に、「スパムを判定できるモデル」を選び、大量のメールでモデルにどのようなメールがスパムかそうでないかを学習させることで、スパムフィルタのモデルを構築します。
  3. 最後に、構築したスパムフィルタのモデルに「未知の新しいメール」をいれると、モデルが「スパムかどうかを判定」してくれます。

このように、大量のデータでモデルを学習させることで、人間のやっていることを機械(コンピュータ)にやらせることができます。

2. 機械学習で今できていること

では、実際に機械学習でどのようなことができるのでしょうか。 まずは、10,20年前ぐらいから実際に機械学習でおこなわれていたことを説明します。

メールでのスパムフィルタ

有名な話ですが、メールのスパムフィルタには機械学習が使われています。 毎日世界中で何十億、何百億といったメールが送信されていると考えると、人が1つ1つメールを見て、スパムかどうか判定するということは現実的に不可能です。また、日々スパマースパムメールを送る人)が新しいスパムメールを作成するので、それに応じてスパムメールかどうかのルールを修正し、管理していく方法も、ルールが数百や数千になった時点で、ルールの依存関係がわからなくなってしまい管理できなくなってしまいます。そのため、機械学習でスパム判定をしています。  また、Gmailでは「迷惑メールを報告」というボタンがあり、スパムであることをGoogleに伝えることができ、より新しいスパムにも適用しやすい形になっていると推測できます。

クレジットカードの不正検知

おおくのECサイトでは、クレジットカードで商品の購入ができるサイトがたくさんあります。そうしたECサイトの中には、悪意のある人にクレジットカード番号が盗まれて不正に利用されたものかどうかを判定するために、機械学習を利用しているサイトがあります。 ECサイト内での画面遷移や各画面の滞在時間といった購入者の行動ログ、クレジットカード情報、購入者のアクセス元などからモデルを学習させ、クレジットカードの不正検知を行っています。

文字認識

手書き文字を機械で読み取るにも、機械学習が使われています。 多くの人が書いた手書き文字を集め、モデルを学習させることで、手書き文字を高い精度で認識することができるようになります。 実用例として、郵便局で郵便番号を認識し、自動仕分けをするという、「郵便区分機」というものがあります。

f:id:nipe880324:20161023235327p:plain:w420

Photo by here

商品レコメンド

AmazonNetflixなどが優良な商品レコメンドや映画レコメンドを開発したことで売上を大きくあげたということが有名です。 各ユーザに合わせて、大量の商品の中から興味を持ちそうな商品をレコメンドすることで、需要喚起ができ、売上げアップにつながると思われます。 商品レコメンドには、協調フィルタリングというアルゴリズムが使われ、各ユーザの商品に対する閲覧や評価を集めることで、各ユーザにカスタマイズされた商品レコメンドができます。

■アマゾンの商品レコメンド f:id:nipe880324:20161023235421p:plain:w420

欠陥品の検知

製造ラインでの欠陥品を検知するのに機械学習が使えます。 製造されたものを測定し、その結果が正常品と大きく異る場合は、欠陥品である可能性が高いと判断されます。 測定データを一定数集めることで、正常品の測定データのパターンを学習してくれるので、そのパターンから一定以上離れたものを欠陥品として予測するようなモデルを作成することで、欠陥品を検知します。

3. 機械学習でできそうなこと

それでは、いよいよ最近話題の先進的な機械学習の実例を説明します。 (たぶん)2012年ぐらいから、ディープラーニング(Deep Learning)という手法が話題になり始めました。

ディープラーニングとは、ニューラルネットワークという脳の構造を模倣したネットワークを作成し、それを多層に深く深く(ディープに)したものです。 今までは、ディープにすると学習がうまくいかない、時間がかかりすぎるといった問題がありましたが、新しいテクニックや、コンピュータの性能向上、分散処理などにより実用的な段階になりました。

ディープラーニングのイメージ

[f:id:nipe880324:20161023235531p:plain:wr20]

Photo by here

画像認識

ディープラーニングの主要なアルゴリズムの1つに、畳み込みニューラルネットワーク(CNN)というアルゴリズムがあります。 CNNにより、画像認識の精度がかなり向上しました。

Google Cloud VisionというGoogleが出しているAPIがあるのですが、下記のようなことができます。 ・画像に映る物体を検知できる ・画像に写っている人の表情分析(喜び、悲しみ、怒りなど)ができる ・画像の文字認識(OCR)ができる などすごいことができます。

f:id:nipe880324:20161023235727p:plain:w420

アップロードした画像から「喜んでいる可能性がかなり高い、人の確率94%」といったような情報が取得できます。 下記のURLから画像をあげれるので試してみてください。

Google Cloud Vision API

チャットボット

ディープラーニングのもう一つの主要なアルゴリズムに、自然言語や行動履歴などの時系列データに強いRNN/LSTMというアルゴリズムがあるます。 これにより、それなりに妥当な回答ができるチャットボットがあります。

Microsoftでは、りんなというチャットボットのLINEアプリを作っています。 それなりに妥当な会話が帰ってきます。

f:id:nipe880324:20161023235829p:plain:w220

Photo by rinna

AlphaGoなどの将棋や囲碁

ディープラーニングには、ディープ強化学習(DQN: Deep Q Network)というものがあります。 現状はテトリス囲碁、将棋などのゲームの環境を与えることで自動的に試行錯誤して学習をしていくようです。

囲碁AIのAlphaGoが4勝1敗でプロ棋士に勝つ

f:id:nipe880324:20161024003251p:plain:w420

Google傘下のDeepmind社が開発した囲碁のAI、「AlphaGo」(アルファ碁)をご存じの方も多いだろう。2016年3月に「囲碁界の魔王」あるいは 「歴代最強の棋士」とも評されるイ・セドル九段と五番勝負を戦い、AlphaGoが4勝1敗で圧勝したことは大きなニュースとして取り上げられた。

引用元: http://markezine.jp/article/detail/25366

安全で効率のよい自動運転

危険を検知して自動で止まるスバルのアイサイトや、Googleが高速道路で自動運転の走行実験を行っているなど、トヨタ、ベンツ、テスラなど世界各国の企業が研究開発を行っている分野だと思います。

■初歩的な自動運転の実験動画

f:id:nipe880324:20161024000128p:plain:w420

日本語字幕があるのでぜひ見てみてください。 https://www.coursera.org/learn/machine-learning/lecture/zYS8T/autonomous-driving

たとえば、自動運転が実現されたら世界は驚くほど変わるでしょう。

もし、「自動運転」が実現されたら、

  • まず、車を持っている人は、目的地を伝えれば自動で運転してくれるので運転する必要がなくなります。
  • そして、自動運転で渋滞緩和や、交通事故が激減されたりすることも容易に想像できます。
  • また、タクシーやバスも人手がいらなくなるので、とても安い料金で利用できるようになるでしょう。
  • さらに、それに伴い、競合となる、電車、船、飛行機といった運輸業界に大きな影響がでるでしょう。

と言った具合に、「自動運転」ということが実現されただけでも私たちの生活に世界レベルで大きな影響を与える一大産業になると考えられます。

病気の診断

f:id:nipe880324:20161024005821p:plain:w420

IBM人工知能「Watson」が、特殊な白血病患者の病名を10分ほどで見抜き、その生命を救ったと東京医科学研究所が発表しました。患者は当初、医師に急性骨髄性白血病と診断され抗癌剤治も受けていたものの、まったく効果が現れていませんでした。東京医科学研究所は「AIが命を救った国内初の事例ではないか」とのこと。

引用元: http://japanese.engadget.com/2016/08/07/ibm-watson-10/

病気のデータ、論文、画像認識、DNAなどの情報から学習をさせ、病名と適切な治療法を予測させていると考えています。

まだまだ先の話だと思いますが、機械学習により病気を検知できるようになれば、 「病院にいっても、基本的には医者の診断は必要なく、病気の判断に必要なデータをとるだけで、コンピュータが病気の判断と処方する薬を教えてくれるようになると考えられます。医者は、実際に手術をおこなったり、コンピュータがうまく判断できない場合に診察をするようになると思います。」

これにより、 * 医者不足の緩和や医療費の削減がされるでしょう。 * さらに、コストが下がることと、簡単に病気を診断できるようになるので、病気の早期発見と対策をおこないやすくなるでしょう。 * そうしたことにより、より健康で長生きできる人が増えていくでしょう。

まとめ

  • 機械学習の仕組みは、大量のデータからモデルを構築し、そのモデルにより予測を行うという流れ
  • 昨今では、ディープラーニングが実用化されはじめ、画像認識や時系列データの処理精度がアップしておいて、新しい応用事例が出始めている

最後はSFのような感じになってしまいましたが、機械学習がより発展すれば、「インターネットの普及」と同等以上の大きな可能性を充分に秘めていると思っています。未来の技術であると思うので、是非勉強し、コミュニティを盛り上げていきましょう。

参考文献