ニューラルネットワークの仕組みを学ぶ 20170623

50
TensorFlowを触りたい 深層学習(ディープラーニング)の仕組みを学ぶ② ニューラルネットワーク 2017/06/23 高橋 洋樹

Upload: hiroki-takahashi

Post on 21-Jan-2018

91 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: ニューラルネットワークの仕組みを学ぶ 20170623

TensorFlowを触りたい深層学習(ディープラーニング)の仕組みを学ぶ②ニューラルネットワーク

2017/06/23高橋 洋樹

Page 2: ニューラルネットワークの仕組みを学ぶ 20170623

2017/8/28 2

発表の目的

深層学習を学んでみて面白かったので、開発者以外にもわかるように解説してみたい。

※まだ勉強中なので誤りがあったらすみません。

Page 3: ニューラルネットワークの仕組みを学ぶ 20170623

2017/8/28 3

• グローディア株式会社• システムソリューション部門• 高橋洋樹• 27歳• 入社5年目• 2歳の娘がいます

Mail : [email protected]: https://github.com/spinachmedia

自己紹介

Page 4: ニューラルネットワークの仕組みを学ぶ 20170623

2017/8/28 4

某雑誌の漫画のアシスタントでひたすら壊れたコンクリートや汚い壁を描く生活

家電量販店に従事

たまにカードゲームを作って売ってます

ImperialPokerポーカーしながら戦場でずる賢く生き残るゲーム

300本刷るのに20万程度発生まだ回収できてない

ゲームのルール作成が妙にシステマチックで楽しい

- iOS(ObjectiveC/Swift)- Java(Android)- Java(Server)- HTML/CSS- Javascript/JQuery- PHP(CakePHP)- Ruby(Rails)

- インフラはサーバ構築なら少し…- Chef / CentOS7

# グローディア入社

家でもよくプログラミングしてます。ゲームつくったり、でも途中でやめることも多い。

なにしてる人?

Page 5: ニューラルネットワークの仕組みを学ぶ 20170623

2017/8/28 5

いままでの経緯と今日発表すること

人工知能を作りたい

TensorFlowというものを使えば楽に作れるらしい

でもだめだ使いこなせないそもそも「深層学習」という分野の

知識が足りない

機械学習を勉強してやろうか

機械学習

深層学習

・線形回帰分析

・ニューラルネットワーク

・畳み込みニューラルネットワーク …etc

機械学習をより深くした分野信じられないくらいの量の計算を行うコンピュータの性能が上昇し膨大な計算量にも耐えられる様になった為、今急速に発展している分野

Page 6: ニューラルネットワークの仕組みを学ぶ 20170623

2017/8/28 6

いままでの経緯と今日発表すること

人工知能を作りたい

TensorFlowというものを使えば楽に作れるらしい

でもだめだ使いこなせないそもそも「深層学習」という分野の

知識が足りない

機械学習を勉強してやろうか

機械学習

深層学習

・線形回帰分析

・ニューラルネットワーク

・畳み込みニューラルネットワーク

今回は

ココ!

機械学習をより深くした分野信じられないくらいの量の計算を行う。コンピュータの性能が上昇し膨大な計算量にも耐えられる様になった為、今急速に発展している分野

Page 7: ニューラルネットワークの仕組みを学ぶ 20170623

2017/8/28 7

おさらい

前回のおさらい

・人工知能について

こんなことができるもののことです

※画像は過去に作成した資料から抜粋※なので情報ちょっと古いです

Page 8: ニューラルネットワークの仕組みを学ぶ 20170623

2017/8/28 8

おさらい

前回のおさらい・TensorFlowって?

3行で解説http://www.zakurit.com/word_view/show/TensorFlow

・機械学習って?3行で解説http://www.zakurit.com/word_view/show/機械学習

※3行でIT用語をザックリ解説するZAKURIT<http://www.zakurit.com>から引用

Page 9: ニューラルネットワークの仕組みを学ぶ 20170623

2017/8/28 9

前回学んだこと

■勉強しないとダメだ

TensorFlowは便利なライブラリにすぎないので使いこなすには機械学習の知識が必要

■人工知能といっても映画みたいな感情があるロボットとかじゃないよ

学習の過程で判断基準を変えていける仕組みを持つシステムと理解してます。かなり雑に説明すると、if文の判定条件を自分で勝手に変えていくようなイメージ。

私の学習結果

if ( 画像の色が全体的に赤っぽかったら ) then {echo “この画像は猫だ”

} else { echo “この画像は猫ではない”

}

※究極に単純化して説明しています

結論を出すために必要な“判断基準”をいい感じに

変更してくれたら素晴らしいですよね

Page 10: ニューラルネットワークの仕組みを学ぶ 20170623

2017/8/28 10

■機械学習の仕組みの大枠は難しくない

私の学習結果

学習

分析

たくさんの訓練データ(データと回答のセット)

分析したい画像データ(我々はこの画像が

何者なのか知りたい)

猫犬

猫犬猫

猫犬

今持っている知識で頑張って答える人工知能 どうしようもなく

間違った回答 判断基準の修正

難しそうなことをしている場所

狂うほど繰り返す(数万回とか)

難しそうなことをしている場所

学習した結果ですまして答える人工知能

難しそうなことをしている場所

猫?

学習しているのでそれっぽい回答

Page 11: ニューラルネットワークの仕組みを学ぶ 20170623

2017/8/28 11

■機械学習の仕組みの大枠は難しくない

私の学習結果

学習

分析

たくさんの訓練データ(データと回答のセット)

分析したい画像データ(我々はこの画像が

何者なのか知りたい)

猫犬

猫犬猫

猫犬

今持っている知識で頑張って答える人工知能 どうしようもなく

間違った回答 判断基準の修正

難しそうなことをしている場所

狂うほど繰り返す(数万回とか)

難しそうなことをしている場所

学習した結果ですまして答える人工知能

難しそうなことをしている場所

猫?

学習しているのでそれっぽい回答

この部分で様々な手法があり

それがどんどん高度に

今もなお研究し続けられている

Page 12: ニューラルネットワークの仕組みを学ぶ 20170623

2017/8/28 12

■機械学習の仕組みの大枠は難しくない

私の学習結果

学習

分析

たくさんの訓練データ(データと回答のセット)

分析したい画像データ(我々はこの画像が

何者なのか知りたい)

猫犬

猫犬猫

猫犬

今持っている知識で頑張って答える人工知能 どうしようもなく

間違った回答 判断基準の修正

難しそうなことをしている場所

狂うほど繰り返す(数万回とか)

難しそうなことをしている場所

学習した結果ですまして答える人工知能

難しそうなことをしている場所

猫?

学習しているのでそれっぽい回答

この部分でどのような手法があるか

それらがどのような解析に用いられているか

Page 13: ニューラルネットワークの仕組みを学ぶ 20170623

2017/8/28 13

■機械学習の仕組みの大枠は難しくない

私の学習結果

学習

分析

たくさんの訓練データ(データと回答のセット)

分析したい画像データ(我々はこの画像が

何者なのか知りたい)

猫犬

猫犬猫

猫犬

今持っている知識で頑張って答える人工知能 どうしようもなく

間違った回答 判断基準の修正

難しそうなことをしている場所

狂うほど繰り返す(数万回とか)

難しそうなことをしている場所

学習した結果ですまして答える人工知能

難しそうなことをしている場所

猫?

学習しているのでそれっぽい回答

それがわかればきっとTensorFlowを

使いこなせるんじゃないだろうか!?

Page 14: ニューラルネットワークの仕組みを学ぶ 20170623

2017/8/28 14

というわけで今日はこれを説明します

今日はこれ

学習

分析

たくさんの訓練データ(データと回答のセット)

分析したい画像データ(我々はこの画像が

何者なのか知りたい)

猫犬

猫犬猫

猫犬

今持っている知識で頑張って答える人工知能 どうしようもなく

間違った回答 判断基準の修正

難しそうなことをしている場所

狂うほど繰り返す(数万回とか)

難しそうなことをしている場所

学習した結果ですまして答える人工知能

難しそうなことをしている場所

猫?

学習しているのでそれっぽい回答

ニューラルネットワーク

誤差逆伝搬法

ニューラルネットワーク

Page 15: ニューラルネットワークの仕組みを学ぶ 20170623

2017/8/28 15

ちなみに前回はこれでした。資料はありません。

前回はこれ

学習

分析

たくさんの訓練データ(データと回答のセット)

分析したい画像データ(我々はこの画像が

何者なのか知りたい)

猫犬

猫犬猫

猫犬

今持っている知識で頑張って答える人工知能 どうしようもなく

間違った回答 判断基準の修正

難しそうなことをしている場所

狂うほど繰り返す(数万回とか)

難しそうなことをしている場所

学習した結果ですまして答える人工知能

難しそうなことをしている場所

猫?

学習しているのでそれっぽい回答

線形回帰分析勾配

降下法

線形回帰分析

Page 16: ニューラルネットワークの仕組みを学ぶ 20170623

2017/8/28 16

ニューロンがいっぱい

ニューラルネットワーク

Page 17: ニューラルネットワークの仕組みを学ぶ 20170623

2017/8/28 17

ニューロンがいっぱい

3行で解説http://www.zakurit.com/word_view/show/ニューラルネットワーク

Page 18: ニューラルネットワークの仕組みを学ぶ 20170623

2017/8/28 18

ニューロンがいっぱい

3行で解説http://www.zakurit.com/word_view/show/ニューラルネットワーク

Page 19: ニューラルネットワークの仕組みを学ぶ 20170623

2017/8/28 19

ニューロンがいっぱい

脳の神経細胞である「ニューロン」の情報伝達の仕組みを参考に考案された。

電気信号

電気信号

電気信号

それぞれのニューロンは

電気信号を加工(?)して次に伝えていく

脳波はこの電気信号を外からキャッチしたものらしいです

Page 20: ニューラルネットワークの仕組みを学ぶ 20170623

2017/8/28 20

このへんからややこしい

ニューラルネットワークは、これら参考にプログラムとして置き換えられます。

処理

処理

処理

処理

処理

処理

処理

処理

結果

結果

結果

学習

分析

たくさんの訓練データ(データと回答のセット)

分析したい画像データ(我々はこの画像が何者なのか知りたい)

猫⽝

猫⽝猫

猫⽝

今持っている知識で頑張って答える⼈⼯知能 どうしようもなく

間違った回答 判断基準の修正

難しそうなことをしている場所

狂うほど繰り返す(数万回とか)

難しそうなことをしている場所

学習した結果ですまして答える⼈⼯知能

難しそうなことを

している場所

猫?

学習しているのでそれっぽい回答

ここの話を

しています

ここの話を

しています

Page 21: ニューラルネットワークの仕組みを学ぶ 20170623

2017/8/28 21

謎① 値ってなんだ

Page 22: ニューラルネットワークの仕組みを学ぶ 20170623

2017/8/28 22

謎①

謎① 値ってなんのことだろう

処理

処理

処理

処理

処理

処理

処理

処理

結果

結果

結果

例えば100x100ピクセルの画像を解析する場合縦100 x 横100 x R x G x B の 30,000個の数値です

学習

分析

たくさんの訓練データ(データと回答のセット)

分析したい画像データ(我々はこの画像が何者なのか知りたい)

猫⽝

猫⽝猫

猫⽝

今持っている知識で頑張って答える⼈⼯知能 どうしようもなく

間違った回答 判断基準の修正

難しそうなことをしている場所

狂うほど繰り返す(数万回とか)

難しそうなことをしている場所

学習した結果ですまして答える⼈⼯知能

難しそうなことを

している場所

猫?

学習しているのでそれっぽい回答

ここの話を

しています

ここの話を

しています

Page 23: ニューラルネットワークの仕組みを学ぶ 20170623

2017/8/28 23

謎①

1px目のR255

1px目のG243

1px目のB241

処理

処理

処理

処理

処理

処理

処理

処理

結果

結果

結果

2px目のR92

2px目のG129

2px目のB217

3万px目のB3

30,000個の数値

画像は1pxごとに赤R、緑G、青Bの数値情報を持っています

Page 24: ニューラルネットワークの仕組みを学ぶ 20170623

2017/8/28 24

謎①

でもそんな情報量をここでは表現できないので、「30,000個の数値」だと思って見てください。

処理

処理

処理

処理

処理

処理

処理

処理

結果

結果

結果

学習

分析

たくさんの訓練データ(データと回答のセット)

分析したい画像データ(我々はこの画像が何者なのか知りたい)

猫⽝

猫⽝猫

猫⽝

今持っている知識で頑張って答える⼈⼯知能 どうしようもなく

間違った回答 判断基準の修正

難しそうなことをしている場所

狂うほど繰り返す(数万回とか)

難しそうなことをしている場所

学習した結果ですまして答える⼈⼯知能

難しそうなことを

している場所

猫?

学習しているのでそれっぽい回答

ここの話を

しています

ここの話を

しています

30,000個の数値

Page 25: ニューラルネットワークの仕組みを学ぶ 20170623

2017/8/28 25

謎② 処理ってなんだ

Page 26: ニューラルネットワークの仕組みを学ぶ 20170623

2017/8/28 26

謎②

謎② 処理ってなんのことだろう

処理

処理

処理

処理

処理

処理

処理

処理

結果

結果

結果

処理とは、本当にシンプルな計算のことです「受け取った数値」を「重み」という数値でかけたりしています

※すごくざっくり表現しています。

学習

分析

たくさんの訓練データ(データと回答のセット)

分析したい画像データ(我々はこの画像が何者なのか知りたい)

猫⽝

猫⽝猫

猫⽝

今持っている知識で頑張って答える⼈⼯知能 どうしようもなく

間違った回答 判断基準の修正

難しそうなことをしている場所

狂うほど繰り返す(数万回とか)

難しそうなことをしている場所

学習した結果ですまして答える⼈⼯知能

難しそうなことを

している場所

猫?

学習しているのでそれっぽい回答

ここの話を

しています

ここの話を

しています

Page 27: ニューラルネットワークの仕組みを学ぶ 20170623

2017/8/28 27

謎①

謎② 処理ってなんのこと

値A

値B

値C

処理重みA重みB重みC重みD

処理

処理

処理

処理

処理

処理

処理

結果

結果

結果

もうちょっと詳しく…

計算結果 = (値A * 重みA) + (値B * 重みB) + (値C * 重みC) + 重みD次の処理に渡す値 = あるフィルター( 計算結果 ) ※ ←数値を計算しやすい形に変えています

学習

分析

たくさんの訓練データ(データと回答のセット)

分析したい画像データ(我々はこの画像が何者なのか知りたい)

猫⽝

猫⽝猫

猫⽝

今持っている知識で頑張って答える⼈⼯知能 どうしようもなく

間違った回答 判断基準の修正

難しそうなことをしている場所

狂うほど繰り返す(数万回とか)

難しそうなことをしている場所

学習した結果ですまして答える⼈⼯知能

難しそうなことを

している場所

猫?

学習しているのでそれっぽい回答

ここの話を

しています

ここの話を

しています

各処理は、それぞれ「重み」という数値を必要な数だけ持っています。

Page 28: ニューラルネットワークの仕組みを学ぶ 20170623

2017/8/28 28

謎③ 結果ってなんだ

Page 29: ニューラルネットワークの仕組みを学ぶ 20170623

2017/8/28 29

謎③

結果、というのがよくわからない。

処理

処理

処理

処理

処理

処理

処理

処理

結果

結果

結果

学習

分析

たくさんの訓練データ(データと回答のセット)

分析したい画像データ(我々はこの画像が何者なのか知りたい)

猫⽝

猫⽝猫

猫⽝

今持っている知識で頑張って答える⼈⼯知能 どうしようもなく

間違った回答 判断基準の修正

難しそうなことをしている場所

狂うほど繰り返す(数万回とか)

難しそうなことをしている場所

学習した結果ですまして答える⼈⼯知能

難しそうなことを

している場所

猫?

学習しているのでそれっぽい回答

ここの話を

しています

ここの話を

しています

Page 30: ニューラルネットワークの仕組みを学ぶ 20170623

2017/8/28 30

謎③

結果、というのがよくわからない。

処理

処理

処理

処理

処理

処理

処理

処理

結果

結果

結果

学習

分析

たくさんの訓練データ(データと回答のセット)

分析したい画像データ(我々はこの画像が何者なのか知りたい)

猫⽝

猫⽝猫

猫⽝

今持っている知識で頑張って答える⼈⼯知能 どうしようもなく

間違った回答 判断基準の修正

難しそうなことをしている場所

狂うほど繰り返す(数万回とか)

難しそうなことをしている場所

学習した結果ですまして答える⼈⼯知能

難しそうなことを

している場所

猫?

学習しているのでそれっぽい回答

ここの話を

しています

ここの話を

しています

渡された画像が猫である確率

渡された画像が犬である確率

渡された画像が狐である確率

Page 31: ニューラルネットワークの仕組みを学ぶ 20170623

2017/8/28 31

謎③

結果、というのがよくわからない。

処理

処理

処理

処理

処理

処理

処理

処理

結果

結果

結果

学習

分析

たくさんの訓練データ(データと回答のセット)

分析したい画像データ(我々はこの画像が何者なのか知りたい)

猫⽝

猫⽝猫

猫⽝

今持っている知識で頑張って答える⼈⼯知能 どうしようもなく

間違った回答 判断基準の修正

難しそうなことをしている場所

狂うほど繰り返す(数万回とか)

難しそうなことをしている場所

学習した結果ですまして答える⼈⼯知能

難しそうなことを

している場所

猫?

学習しているのでそれっぽい回答

ここの話を

しています

ここの話を

しています

渡された画像が猫である確率

20%

渡された画像が犬である確率

75%

渡された画像が狐である確率

5%

Page 32: ニューラルネットワークの仕組みを学ぶ 20170623

2017/8/28 32

謎③

こういうことです

処理

処理

処理

処理

処理

処理

処理

処理

結果

結果

結果

学習

分析

たくさんの訓練データ(データと回答のセット)

分析したい画像データ(我々はこの画像が何者なのか知りたい)

猫⽝

猫⽝猫

猫⽝

今持っている知識で頑張って答える⼈⼯知能 どうしようもなく

間違った回答 判断基準の修正

難しそうなことをしている場所

狂うほど繰り返す(数万回とか)

難しそうなことをしている場所

学習した結果ですまして答える⼈⼯知能

難しそうなことを

している場所

猫?

学習しているのでそれっぽい回答

ここの話を

しています

ここの話を

しています

この画像は犬!

渡された画像が猫である確率

20%

渡された画像が犬である確率

75%

渡された画像が狐である確率

5%

Page 33: ニューラルネットワークの仕組みを学ぶ 20170623

2017/8/28 33

誰だって間違えます

Page 34: ニューラルネットワークの仕組みを学ぶ 20170623

2017/8/28 34

人工知能の勘違い

学習前の人工知能はとんでもないアホです

処理

処理

処理

処理

処理

処理

処理

処理

結果

結果

結果

学習

分析

たくさんの訓練データ(データと回答のセット)

分析したい画像データ(我々はこの画像が何者なのか知りたい)

猫⽝

猫⽝猫

猫⽝

今持っている知識で頑張って答える⼈⼯知能 どうしようもなく

間違った回答 判断基準の修正

難しそうなことをしている場所

狂うほど繰り返す(数万回とか)

難しそうなことをしている場所

学習した結果ですまして答える⼈⼯知能

難しそうなことを

している場所

猫?

学習しているのでそれっぽい回答

ここの話を

しています

ここの話を

しています

この画像は猫!

渡された画像が猫である確率

99%

渡された画像が犬である確率

1%

渡された画像が狐である確率

0%

Page 35: ニューラルネットワークの仕組みを学ぶ 20170623

2017/8/28 35

人工知能の勘違い

間違ってたら、次に活かすんです。

処理

処理

処理

処理

処理

処理

処理

処理

結果

結果

結果

学習

分析

たくさんの訓練データ(データと回答のセット)

分析したい画像データ(我々はこの画像が何者なのか知りたい)

猫⽝

猫⽝猫

猫⽝

今持っている知識で頑張って答える⼈⼯知能 どうしようもなく

間違った回答 判断基準の修正

難しそうなことをしている場所

狂うほど繰り返す(数万回とか)

難しそうなことをしている場所

学習した結果ですまして答える⼈⼯知能

難しそうなことを

している場所

猫?

学習しているのでそれっぽい回答

ここの話を

しています

この画像は猫だと思ったけどどうやら犬らしい。。。

渡された画像が猫である確率

99%

渡された画像が犬である確率

1%

渡された画像が狐である確率

0%

Page 36: ニューラルネットワークの仕組みを学ぶ 20170623

2017/8/28 36

人工知能の勘違い

間違ってたら、行動を見直すんです。

値A

値B

値C

処理重みA重みB重みC重みD

処理

処理

処理

処理

処理

処理

処理

結果

結果

結果

各処理が持つ「重み」をちょっとだけ変えてみる

学習

分析

たくさんの訓練データ(データと回答のセット)

分析したい画像データ(我々はこの画像が何者なのか知りたい)

猫⽝

猫⽝猫

猫⽝

今持っている知識で頑張って答える⼈⼯知能 どうしようもなく

間違った回答 判断基準の修正

難しそうなことをしている場所

狂うほど繰り返す(数万回とか)

難しそうなことをしている場所

学習した結果ですまして答える⼈⼯知能

難しそうなことを

している場所

猫?

学習しているのでそれっぽい回答

ここの話を

しています

重みA 2 → 2.05重みB 4 → 3.95重みC 0.3 → 0.35重みD 1 → 1.05

全ての「処理」で重みを微修正していきます。

Page 37: ニューラルネットワークの仕組みを学ぶ 20170623

2017/8/28 37

人工知能の成長

成果はいつだって少しずつでてきます。

処理

処理

処理

処理

処理

処理

処理

処理

結果

結果

結果

学習

分析

たくさんの訓練データ(データと回答のセット)

分析したい画像データ(我々はこの画像が何者なのか知りたい)

猫⽝

猫⽝猫

猫⽝

今持っている知識で頑張って答える⼈⼯知能 どうしようもなく

間違った回答 判断基準の修正

難しそうなことをしている場所

狂うほど繰り返す(数万回とか)

難しそうなことをしている場所

学習した結果ですまして答える⼈⼯知能

難しそうなことを

している場所

猫?

学習しているのでそれっぽい回答

ここの話を

しています

まだ猫に見えるけど…。少しだけ犬のような気もしてきた!

さっきの重みの修正は間違ってなかった!渡された画像が猫である確率

75%

渡された画像が犬である確率

15%

渡された画像が狐である確率

10%

Page 38: ニューラルネットワークの仕組みを学ぶ 20170623

2017/8/28 38

人工知能の勘違い

いいぞ、その調子

値A

値B

値C

処理重みA重みB重みC重みD

処理

処理

処理

処理

処理

処理

処理

結果

結果

結果

また各処理が持つ「重み」をちょっとだけ変えてみる

学習

分析

たくさんの訓練データ(データと回答のセット)

分析したい画像データ(我々はこの画像が何者なのか知りたい)

猫⽝

猫⽝猫

猫⽝

今持っている知識で頑張って答える⼈⼯知能 どうしようもなく

間違った回答 判断基準の修正

難しそうなことをしている場所

狂うほど繰り返す(数万回とか)

難しそうなことをしている場所

学習した結果ですまして答える⼈⼯知能

難しそうなことを

している場所

猫?

学習しているのでそれっぽい回答

ここの話を

しています

重みA 2.05 → 2.1重みB 3.95 → 3.9重みC 0.35 → 0.3重みD 1.05 → 1.1

全ての「処理」で重みを微修正していきます。

Page 39: ニューラルネットワークの仕組みを学ぶ 20170623

2017/8/28 39

人工知能の成長

積み重ねが大事です。

処理

処理

処理

処理

処理

処理

処理

処理

結果

結果

結果

学習

分析

たくさんの訓練データ(データと回答のセット)

分析したい画像データ(我々はこの画像が何者なのか知りたい)

猫⽝

猫⽝猫

猫⽝

今持っている知識で頑張って答える⼈⼯知能 どうしようもなく

間違った回答 判断基準の修正

難しそうなことをしている場所

狂うほど繰り返す(数万回とか)

難しそうなことをしている場所

学習した結果ですまして答える⼈⼯知能

難しそうなことを

している場所

猫?

学習しているのでそれっぽい回答

ここの話を

しています

だんだん犬のような気がしてきた!

渡された画像が猫である確率

40%

渡された画像が犬である確率

30%

渡された画像が狐である確率

30%

Page 40: ニューラルネットワークの仕組みを学ぶ 20170623

2017/8/28 40

人工知能の勘違い

繰り返す

値A

値B

値C

処理重みA重みB重みC重みD

処理

処理

処理

処理

処理

処理

処理

結果

結果

結果

また各処理が持つ「重み」をちょっとだけ変えてみる

学習

分析

たくさんの訓練データ(データと回答のセット)

分析したい画像データ(我々はこの画像が何者なのか知りたい)

猫⽝

猫⽝猫

猫⽝

今持っている知識で頑張って答える⼈⼯知能 どうしようもなく

間違った回答 判断基準の修正

難しそうなことをしている場所

狂うほど繰り返す(数万回とか)

難しそうなことをしている場所

学習した結果ですまして答える⼈⼯知能

難しそうなことを

している場所

猫?

学習しているのでそれっぽい回答

ここの話を

しています

全ての「処理」で重みを微修正していきます。

とんでもない回数分「重み」の修正を

繰り返す

Page 41: ニューラルネットワークの仕組みを学ぶ 20170623

2017/8/28 41

人工知能の成長

繰り返し、やがて学習は完了します

処理

処理

処理

処理

処理

処理

処理

処理

結果

結果

結果

学習

分析

たくさんの訓練データ(データと回答のセット)

分析したい画像データ(我々はこの画像が何者なのか知りたい)

猫⽝

猫⽝猫

猫⽝

今持っている知識で頑張って答える⼈⼯知能 どうしようもなく

間違った回答 判断基準の修正

難しそうなことをしている場所

狂うほど繰り返す(数万回とか)

難しそうなことをしている場所

学習した結果ですまして答える⼈⼯知能

難しそうなことを

している場所

猫?

学習しているのでそれっぽい回答

ここの話を

しています

学習完了!渡された画像が猫である確率

3%

渡された画像が犬である確率

92%

渡された画像が狐である確率

5%

Page 42: ニューラルネットワークの仕組みを学ぶ 20170623

2017/8/28 42

結局?

Page 43: ニューラルネットワークの仕組みを学ぶ 20170623

2017/8/28 43

まとめる

当たり前だけど、最初から最後まで、ただ数字をいじるだけ。

渡された画像が猫である確率

3%

渡された画像が犬である確率

92%

渡された画像が狐である確率

5%

画像データ

数値を渡して 数値をいじって 数値で出す

Page 44: ニューラルネットワークの仕組みを学ぶ 20170623

2017/8/28 44

仮に車の自動運転だと?

Page 45: ニューラルネットワークの仕組みを学ぶ 20170623

2017/8/28 45

まとめる

車の自動運転も、根本の仕組みは同じはず。(もちろん、複雑に研究と応用を積み重ねた結果の技術なので、こんなに簡単ではないはず。)

ブレーキを踏むべき

3%

ハンドルを左に切るべき

92%

アクセルを踏むべき

5%

車載カメラからの

風景

数値を渡して 数値をいじって 数値で出す

Page 46: ニューラルネットワークの仕組みを学ぶ 20170623

2017/8/28 46

ニューラルネットワークは深層学習の基礎中の基礎

実用化に向けた課題がたくさん

Page 47: ニューラルネットワークの仕組みを学ぶ 20170623

2017/8/28 47

課題はもちろんあった

・画像解析の精度がイマイチ-> ニューラルネットワークは、「点」で分析していくので、画像のような「面」の解析に弱い。-> 「面」で解析していく「畳み込みニューラルネットワーク」が人気になっていきます。

-> その「畳み込み…」にも課題があり、「深層学習」に発展していきます。

・処理を何層にすればいいのかよくわからない-> いい感じに学習してくれる処理の層があるはず。-> 計算が膨大で複雑すぎて、人間には相関が見えない。-> 何度も試していくしかない

・重みの初期値をどうすればいいかわからない-> いい感じに学習してくれる、「重みの初期値」というものがきっとあるはず-> これは何度も試すしかない

・計算量が膨大であるため、1度学習を試行するのに数週間かかることもある。-> 何度も試して見たいのにスペックがたりないよ、時間が足りないよ。

Page 48: ニューラルネットワークの仕組みを学ぶ 20170623

2017/8/28 48

参考文献

Page 49: ニューラルネットワークの仕組みを学ぶ 20170623

2017/8/28 49

参考にさせていただきました

【書籍】■O’REILLYゼロから作るDeep Learning Pythonで学ぶディープラーニングの理論と実装https://www.amazon.co.jp/ゼロから作るDeep-Learning-Pythonで学ぶディープラーニングの理論と実装-斎藤-康毅/dp/4873117585/

■講談社深層学習 (機械学習プロフェッショナルシリーズ)https://www.amazon.co.jp/dp/B018K6C99A/ref=dp-kindle-redirect?_encoding=UTF8&btkr=1

【動画】■CourseraMachine Leaninghttps://www.coursera.org/learn/machine-learning/

■ UdemyみんなのAI講座 ゼロからPythonで学ぶ人工知能と機械学習https://www.udemy.com/learning-ai/

Page 50: ニューラルネットワークの仕組みを学ぶ 20170623

2017/8/28 50

以上です

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