More Related Content
Similar to Tensorflowのチュートリアルで理解するdeep learningはじめてハンズオン (20)
Tensorflowのチュートリアルで理解するdeep learningはじめてハンズオン
- 1. TECHNOMOBILE
GROUP
HEAD OFFICE
TOKUSHIMA development section
| 5floor Column Minamiaoyama,7-1-5,Minamiaoyama,Minato-ku,Tokyo 107-0062,Japan
| 3floor Tokushimakenkohkagaku-center,Hiraishisumiyoshi,Kawauchi-cho,Tokushima-shi Tokushima 771-0134,Japan
Tensorflowのチュートリアルで理解するDeepLearningはじめてハンズオン
- 10. 10
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
DeepLearnigとは?
ニュ
ーロ
ン
人の神経細胞が信号を伝える仕組
みを真似して作られた、ニューラ
ルネットワークの発展版
入
力
層
隠
れ
層
隠
れ
層
出
力
層
正
解
ズレを評価
して重み付
けを調整す
る
何度も繰り返して特徴を残
す。これがDeepな理由。
重み
AzureMLのような機械学習との最大の違い
は特徴量を自動的に抽出するところです。
- 11. 11
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
・画像認識に使われるCNN。データが固
定長。画像サイズを揃えないとダメ。
・可変長のデータ(音声・テキストなど)に
使われるRNN
・入力と出力を同じデータにして圧縮
データから推論(色など)するAutoEncoder
主なDeepLearningのアルゴリズムの種類は?
- 12. 12
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
Tensorflowの以下のチュートリアルを
理解して段階的にDeepLearningの仕
組みを理解します。
・回帰
・MNIST(ニューラルネットワーク)
・MNIST(DeepLearning)CNN
何を作るの?
- 14. 14
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
この学びの対象者は?
→Mac、Windowsを使えるPython初心者。
PythonがわからなくてもDeepLearningの
基礎アルゴリズムは理解できます。簡単な
行列、直線式の理解が必要です。
WindowsではDocker(仮想環境)で動きま
す。
教えないことは?
→DeepLearningの専門家ではないので。。。
わかったことがあったらフィードバックく
ださい。
- 15. 15
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
講師
Gashfara,Inc.代表
デジタルハリウッド大学院客員講師
茂木健一
mogi@gashfara.com
kenichi.mogi@tcmobile.jp
http://facebook.com/mogiken
http://www.slideshare.net/mogiken1
自己紹介
[プロフィール/実績]
もぎ・けんいち●青山学院大学大学院卒。Gashfara,Inc.代表。本社はハワイですが出社したことなし。
ホノルルマラソンには参加w
青山学院大学大学院卒:エニックスでオリジナルゲーム制作(Z80アセンブラ CP/M)、SmallTalkで
人工知能開発(企業買収)。
(株)東洋情報システム退社後、(株)エイチアイ、グランスフィア(株)、(株)ファッション
ウォーカー(えびもえのEC)など数社のベンチャー企業の立ち上げ・創業期に参画し、ガシュファ
ラ・インクをUSで起業。システム開発ではゲーム、TOL(ツタヤオンライン)の立ち上げ。動画配
信システム(USENのGate01:Gyaoの前進)、電子マネーシステム(Bitcash)、ECフルフィルメント
システムなど、多彩な分野を経験。IT関連教育では1998年ころからデジハリの2.5階に間借りしな
がら教育コンテンツ作成(JIB社)。Brew、Java、セキュリティーなどの講師として活躍。現在、
(株)HUGGを設立し、スマホのカップル向けSNSサービス[HUGG]をグローバルに展開。㈱テクノ
モバイルにて技術顧問。㈱SGPにてドローンのソフトウェア開発もしています。
【著書】
BREWプログラミング実践バイブル [共著] (インプレス)、PHP逆引き大全 516の極意[共著](秀和
システム)
- 18. 18
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
Tensorflowをインストールしましょう
下記の手順でインストールしてください。Mac
の場合
参考http://dev.classmethod.jp/machine-learning/tensorflow-hello-world/
Python2.7の環境が必要です。インストール済みを前提にします。
Python用のライブラリ管理コマンドpipをインストールします。
sudo easy_install pip
Pythonの下層実行環境virtualenvをインストールします。
sudo pip install --upgrade virtualenv
Tensorflowの実行ディレクトリを作成し移動します。ここにTensorflowを配置します。日本語がない
パスに作らないとinstallの時にエラーになります。
mkdir ~/tensorflow
cd ~/tensorflow
実行ディレクトリに仮想環境を作成します。source bin/activateで環境を設定します。プログラムを
実行する前に実行が必要です。
virtualenv --system-site-packages ~/tensorflow
source bin/activate
Tensorflowを仮想環境にインストールします。
sudo pip install --upgrade https://storage.googleapis.com/tensorflow/mac/tensorflow-0.7.1-cp27-
none-any.whl
動作確認します。
test.pyを作成。新しいターミナルでsource ~/tensorflow/bin/activate を実行してからpython test.py
で動けばOK.
Windowsの場合は次ページのとおり仮想環境で。参考:http://goo.gl/F2vC2C
MacではWindowsと同じようにDocker環境でのTensorflowの実行を推奨します。
Dockerのインストール以外は同じです。
- 19. 19
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
Windows環境は下記の手順で構築。
参考:http://goo.gl/F2vC2C
https://www.tensorflow.org/versions/r0.10/get_started/os_setup.html#docker-installation
前提:
・Windows7以上
・仮想化が有効になっていること
タスクマネージャー→パフォーマンス → CPU → 「仮想化: 有効」
・OSが64 bit
1.Docker Toolboxのインストール
https://www.docker.com/products/docker-toolbox からDockerToolboxをダウンロードしてインス
トールしてください。デフォルトのままインストールを進めてOKです。
インストールされたDocker Quickstart Terminalを起動して下記のようなターミナルが表示されればイ
ンストールはOKです。
- 20. 20
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
2.TensorFlowのインストール
Docker Quickstart Terminalで下記のコマンドを実行してインストールします。
docker run --name "tensorflowtest" -v /c/Users/mogi/Downloads:/share -it tensorflow/tensorflow /bin/bash
exit で終了
※-vオプションをつけてmogiの部分を自分のアカウントにするとダウンロードフォルダーが/shareとし
てマウントされます。 デファルトではc:/Usersしかマウントを許可されていません。
TensorFlowの起動も上記のコマンドで実行できます。imageがなければDownload。あれば実行。
exitで終了。
3.下記のコマンドでログインできます
docker start tensorflowtest
docker attach tensorflowtest
4. ログイン後以下のコマンドでplot系のライブラリーをインストールしてください。
apt-get update
apt-get install python-tk
Dockerイメージを削除したい時などはここを参考
http://qiita.com/tifa2chan/items/e9aa408244687a63a0ae
Dockerの仮想ドライブファイルVMDKをDドライブなどに移動したいと
きはここを参考
http://takaya030.hatenablog.com/entry/20150621/1434857168
- 21. 21
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
回帰分析のチュートリアルを理解しよう
ここにある回帰分析のチュートリアルを理解
しましょう。http://goo.gl/CA7BIe
回帰分析とは。。ここにあるようにばらつき
のあるデータから直線の式を求めて値を推測
する方法です。http://goo.gl/woqBKX
このチュートリアルでは式による計算ではな
く推論モデル勾配降下法を使って式を推論し
ます。
- 22. 22
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
勾配降下法とは
傾きを利用して最小値を求める方法です。
http://goo.gl/1Ce08K
チュートリアルでは答えと推論した値の誤差
が最小になるようにモデルを作成します。
学習率を大きくすると発散して学習が進まな
い。小さいと学習速度が遅い。学習率:移動
する幅。
- 23. 23
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
Shapeとは
Tensorflow独特の配列構造を示すShapeがあり
ます。これを理解すると理解が早いです。単
純に説明すると配列の次元の組み合わせを表
します。
例)
[[1, 2, 3], [4, 5, 6], [7, 8, 9]] → Shapeは3次元(要素)x3次元なので[3, 3]
[1] →Shapeは[1]
[1,2,3] →Shapeは[3]
[[1 2 3]
[4 5 6]
[7 8 9]
[0 2 3]]→Shapeは[4,3]
参考:http://goo.gl/49LMxJ https://goo.gl/6qJqQ2
- 24. 24
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
Tensorflowの実行の仕組み
test.pyをもとに説明します。python test.pyで
実行。
参考: http://goo.gl/5Up5UH
Node Edge
1つのNodeが1つの計算処理op(operation)を表します
Sessionが計算の順番、並列処理、リソースの管理をします。
Session
- 25. 25
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
test1.py(回帰サンプル)を解説 python test1.pyで実行
ポイント:
y=W*x+bの直線式において、
y=0.1*x+0.3の直線にランダムに点を生成しこ
のランダムなデータから、この式y=0.1*x+0.3
を推論します。この式が確定すれば値を推論
できるようになるわけです。
y=0.1*x+0.3
※一般的な最小二乗法ではなく、勾配
降下法を使って解くのがポイント
- 30. 30
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
MNISTのtrainデータ
28x28=784のデータが55000用意されている。
画像
答え(ラベル)
例えば 3 は [0,0,0,1,0,0,0,0,0,0] になります。最終的にはこれの確率
分布を求めます。
- 31. 31
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
Softmax関数とは
活性化関数の一つ
回帰式からラベル(答え)の確率分布を計算しま
す。
回帰式 y = W*x +b (Wが画像がラベルに影響する重み。
bがバイアス)これをsoftmax関数で活性化します。
y = softmax(W*x+b)
softmax関数:ニューラルネットワークの出力結果を確率(0~1.0)に変換します。
※下記y1,y2....y10がありそれぞれが0,1,2...9の数値を推測する確率になり
ます。
- 32. 32
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
test2.py(MNIST)を解説 python test2.pyで実行
ポイント:
・訓練ロジックは回帰のサンプルとほぼおな
じ。最後にsoftmax関数を使っているだけ。W
とbの値がモデルのパラメータ(これを推測)。
Wとbは配列。
・検証はテストデータを使って訓練したモデ
ルを評価する。
ニューラルネットワークがー階層だけなので
DeepLearningではないですね。
- 33. 33
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
MNIST(多層化:DeepLearning)のチュー
トリアルを理解しよう
ここにあるMNISTのチュートリアルを理解し
ましょう。http://goo.gl/z1hRCp
test2.pyでは784のデータが10のデータにいき
なり削減されています。そのため重要な特徴
データが失われている可能性があります。
ニューラルネットワークを多層化して特徴を
残しつつ、データを削減(次元を削減)するのが
ポイントです。
- 37. 37
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
test3.py(MNIST:DeepLearning)を解説
ポイント:
・層は[第1層→第2層→全結合層]になっている
・層での計算後test2.pyと同じくsoftmax関数を使っ
ている。
・第1層、第2層は[畳み込み層+プーリング層]から
なる
・Wが特徴(重み)で、x(画像)をかけることにより特
徴を抽出。xは前の層からわたってくる。なので基本
式:y=W*x+bでWとbを推測することは変わらない。
・ reluなどは活性化関数。入力出力結果を調整。
https://goo.gl/StpYXm
※次頁のイメージがあると分かりやすい
- 38. 38
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
6
第1層
畳み込み層
+
プーリング層
第2層
畳み込み層
+
プーリング層
全結合層
Softmax
dropout層で
過学習を防ぐ
28x28=784 14x14x32=6272 7x7x64=3136 1024
10
第1層、2層の特徴データは次ページのようになります
- 41. 41
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
参考書籍
http://goo.gl/nraR0R
ライブラリーはTensorflow
ではなくCaffeを使ってい
ます。DeepLearningの仕組
みの理解に役立ちます。
http://amzn.to/2lMkDQ7
ブラックボックスな活性
化関数や最小化の関数の
アルゴリズムが記載され
ています。
http://amzn.to/2vY44Vx
簡単な式で簡潔に説明されています。
NNの式を完全に理解したいときに便利。
画像分類が目的ならkerasが簡単。
http://qiita.com/tsunaki/items/608ff3cd941d82cd656b
Udemy https://goo.gl/fCcQyE
- 42. 42
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
・DeepLearningを使った画像サービスの提案
・画像認識を使ったPOSレジ(打ち込みが不
要なので会計が早い)
例)ECサイトで、自分で撮影した写真の服
に似た服をレコメンド。
適用事例(経営者・営業担当の方に)
Editor's Notes
- 弊社がご提供しているソリューション内容です。
企画から運営・保守にいたるまでを一気通貫で、
軸となるコンシューマ向けの大規模Webシステムをはじめ、スマホアプリ、ゲーム開発などをご提供しております。
特に大きな実績として、大規模ECシステム、求人検索サイトの開発となっております。
他にも音楽DLサイトや、業務を効率する管理系のシステムの実績も多数あります。
(30秒)