Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
TensorFlow プログラミングと
分類アルゴリズムの基礎
Etsuji Nakai
Cloud Solutions Architect at Google
2016/12/27 ver1.1
2
$ who am i
▪Etsuji Nakai
Cloud Solutions Architect at Google
Twitter @enakai00
好評発売中
TensorFlow プログラミング入門
4
(参考) Jupyter Notebook について
▪ Web ブラウザー上で Python によるデータ分析を行う
ツール(オープンソースソフトウェア)
▪ TensorFlow を用いたコードの開発も可能
▪ GCP 環境では、 Cl...
5
TensorFlow のプログラミングモデル
▪ 事前に関係式を定義しておき、その後、「セッション」
を立ち上げて計算処理を実施します。
●
分散学習機能を使う場合は、各計算ノードのセッションが協
調して動作します。
▪ 次の 3 種類の違...
6
例題:最小二乗法による平均気温予測
▪ 気温変化の背後にあるなめらかな曲線を推測して、「来
年の月々の平均気温」を予測します。
●
背後にある曲線を次の 4 次関数と仮定します。
●
この時、来年の予測気温は、次の行列計算で書き表すことが
...
7
例題:最小二乗法による平均気温予測
▪ 推測した曲線のデータに対する「あてはまらなさ具合」を
表す「誤差関数」を定義して、これを最小化するようにパ
ラメーター         をチューニングします。
●
これは、 TensorFlow のラ...
8
例題:最小二乗法による平均気温予測
▪ これらの関係を TensorFlow のコードで表現すると、
次のようになります。
x = tf.placeholder(tf.float32, [None, 5])
w = tf.Variable(...
9
例題:最小二乗法による平均気温予測
▪ 最後に最適化アルゴリズムを指定します。
▪ この後は、セッションを作成して、最適化アルゴリズムの実行を
繰り返すことで、パラメーターの最適化が実施されます。
sess = tf.Session()
s...
10
例題:最小二乗法による平均気温予測
http://goo.gl/Dojgp4
▪ 詳しくはデモでご紹介します!
分類アルゴリズムの基礎
12
線形2項分類器
https://goo.gl/fP0Tpn
▪ 2 種類のデータを直線で分類して、新しい
データが「✕」に属する確率を計算するモ
デルを作ります。
●
Neural Network Playground で、実際に
試して...
13
ロジスティック回帰
▪ 直線を次式で表現して、ロジスティック
関数 σ を用いて、確率に変換します。
▪ トレーニングデータにフィットするよう
に係数       を調整することを
「モデルの学習」と呼びます。
ロジスティック関数 σ
14
(参考)「フィットした」ことの判断基準
▪ 一般に「フィットしてなさ具合」を示す「誤差関数」を定義して、誤差関数を最小化す
るようにパラメーターを決定します。
●
ロジスティック回帰では、計算された確率用いて、トレーニングデータを分類した...
15
線形2項分類器の図形的解釈
▪ 関数       のグラフを描くと、図のよう
に「斜めに配置した板」で    平面が分割
されることがわかります。
16
線形多項分類器(ハードマックス方式)
▪ 平面上のデータを直線で「 3 種類」に分類す
るには、どのようにすればよいでしょうか?
▪ 直線を表す1次関数を 3 つ用意して、どの関
数が最大になるかで、その点を分類します。
●
右図のように...
17
線形多項分類器(ソフトマックス方式)
▪ 点    が i 番目の領域である確率を次
式で定義します。
▪ これは、    の大小関係を確率に変換し
たもので、次の条件を満たすことがすぐにわ
かります。
ニューラルネットワークによる
画像分類
19
ソフトマックス関数による画像分類
▪ たとえば、 28x28 ピクセルのグレイスケール画像
は、各ピクセルの値を一列にならべると、 784 次元
空間の点とみなすことができます。
▪ 大量の画像データを 784 次元空間にばらまくと、類
...
20
TensorFlow でやってみた 正解例  不正解例
http://goo.gl/rGqjYh
▪ 詳しくはデモでご紹介します。
21
畳み込みニューラルネットワークによる性能向上
▪ 画像データをそのままソフトマックス関数に入力する
のではなく、各種の画像フィルターを通して、特徴を
抽出してからソフトマックス関数に入力します。
▪ 詳しくはこちらを参照!
22
TensorFlow でやってみた
http://goo.gl/UHsVmI
http://goo.gl/VE2ISf
▪ 詳しくはデモでご紹介します。
23
(おまけ)モデルの学習と適用のプロセス
既存モデル
改定版モデル A
追加データ
改定版モデル B
完成版モデル
アプリケーション
利用
学習処理
本番環境
テスト
テスト
既存モデル更新
学習処理
再学習処理
success
fail
...
Thank you!
Upcoming SlideShare
Loading in …5
×

TensorFlowプログラミングと分類アルゴリズムの基礎

3,506 views

Published on

2016/12/27 ver1.1 公開

Published in: Technology
  • Be the first to comment

TensorFlowプログラミングと分類アルゴリズムの基礎

  1. 1. TensorFlow プログラミングと 分類アルゴリズムの基礎 Etsuji Nakai Cloud Solutions Architect at Google 2016/12/27 ver1.1
  2. 2. 2 $ who am i ▪Etsuji Nakai Cloud Solutions Architect at Google Twitter @enakai00 好評発売中
  3. 3. TensorFlow プログラミング入門
  4. 4. 4 (参考) Jupyter Notebook について ▪ Web ブラウザー上で Python によるデータ分析を行う ツール(オープンソースソフトウェア) ▪ TensorFlow を用いたコードの開発も可能 ▪ GCP 環境では、 Cloud Datalab で利用可能 ▪ 独自にセットアップする際は、こちらの手順を参照 ● GCP で Jupyter を使用する方法 ● http://enakai00.hatenablog.com/entry/2016/07/03/201117
  5. 5. 5 TensorFlow のプログラミングモデル ▪ 事前に関係式を定義しておき、その後、「セッション」 を立ち上げて計算処理を実施します。 ● 分散学習機能を使う場合は、各計算ノードのセッションが協 調して動作します。 ▪ 次の 3 種類の違いを意識して、コードを書くことに注意 が必要です。 ● トレーニングデータを代入する変数 : Placeholder ● チューニング対象のパラメーター: Variable ● これらを組み合わせた計算式
  6. 6. 6 例題:最小二乗法による平均気温予測 ▪ 気温変化の背後にあるなめらかな曲線を推測して、「来 年の月々の平均気温」を予測します。 ● 背後にある曲線を次の 4 次関数と仮定します。 ● この時、来年の予測気温は、次の行列計算で書き表すことが できます。 今年の月々の平均気温 計算式 Placeholder Variable
  7. 7. 7 例題:最小二乗法による平均気温予測 ▪ 推測した曲線のデータに対する「あてはまらなさ具合」を 表す「誤差関数」を定義して、これを最小化するようにパ ラメーター         をチューニングします。 ● これは、 TensorFlow のライブラリ関数を用いると、次 のように表現できます。 観測データと予測値 Placeholder :観測データ
  8. 8. 8 例題:最小二乗法による平均気温予測 ▪ これらの関係を TensorFlow のコードで表現すると、 次のようになります。 x = tf.placeholder(tf.float32, [None, 5]) w = tf.Variable(tf.zeros([5, 1])) y = tf.matmul(x, w) t = tf.placeholder(tf.float32, [None, 1]) loss = tf.reduce_sum(tf.square(y-t))
  9. 9. 9 例題:最小二乗法による平均気温予測 ▪ 最後に最適化アルゴリズムを指定します。 ▪ この後は、セッションを作成して、最適化アルゴリズムの実行を 繰り返すことで、パラメーターの最適化が実施されます。 sess = tf.Session() sess.run(tf.initialize_all_variables()) i = 0 for _ in range(100000): i += 1 sess.run(train_step, feed_dict={x:train_x, t:train_t}) if i % 10000 == 0: loss_val = sess.run(loss, feed_dict={x:train_x, t:train_t}) print ('Step: %d, Loss: %f' % (i, loss_val)) train_step = tf.train.AdamOptimizer().minimize(loss)
  10. 10. 10 例題:最小二乗法による平均気温予測 http://goo.gl/Dojgp4 ▪ 詳しくはデモでご紹介します!
  11. 11. 分類アルゴリズムの基礎
  12. 12. 12 線形2項分類器 https://goo.gl/fP0Tpn ▪ 2 種類のデータを直線で分類して、新しい データが「✕」に属する確率を計算するモ デルを作ります。 ● Neural Network Playground で、実際に 試してみましょう。
  13. 13. 13 ロジスティック回帰 ▪ 直線を次式で表現して、ロジスティック 関数 σ を用いて、確率に変換します。 ▪ トレーニングデータにフィットするよう に係数       を調整することを 「モデルの学習」と呼びます。 ロジスティック関数 σ
  14. 14. 14 (参考)「フィットした」ことの判断基準 ▪ 一般に「フィットしてなさ具合」を示す「誤差関数」を定義して、誤差関数を最小化す るようにパラメーターを決定します。 ● ロジスティック回帰では、計算された確率用いて、トレーニングデータを分類した時に「全問正 解する確率」を最大化するようにパラメーターを調整します。 ● n 番目のデータ      が「✕」である確率を  として、この確率で「✕である」と予測 します。実際のデータを     ( 1:✕, 0:○ )とすると、これが正解である確率は、 ● したがって、すべてのデータに正解する確率は、 ● 次で誤差関数を定義すると、「全問正解の確率最大」⇔「誤差関数が最小」となります。
  15. 15. 15 線形2項分類器の図形的解釈 ▪ 関数       のグラフを描くと、図のよう に「斜めに配置した板」で    平面が分割 されることがわかります。
  16. 16. 16 線形多項分類器(ハードマックス方式) ▪ 平面上のデータを直線で「 3 種類」に分類す るには、どのようにすればよいでしょうか? ▪ 直線を表す1次関数を 3 つ用意して、どの関 数が最大になるかで、その点を分類します。 ● 右図のように、「3枚の板」によって分類され ることがわかります。
  17. 17. 17 線形多項分類器(ソフトマックス方式) ▪ 点    が i 番目の領域である確率を次 式で定義します。 ▪ これは、    の大小関係を確率に変換し たもので、次の条件を満たすことがすぐにわ かります。
  18. 18. ニューラルネットワークによる 画像分類
  19. 19. 19 ソフトマックス関数による画像分類 ▪ たとえば、 28x28 ピクセルのグレイスケール画像 は、各ピクセルの値を一列にならべると、 784 次元 空間の点とみなすことができます。 ▪ 大量の画像データを 784 次元空間にばらまくと、類 似画像は互いに近くに集まると考えられないでしょ うか? ● ソフトマックス関数で 784 次元空間を分割すること で、画像を分類できるかも知れません・・・。
  20. 20. 20 TensorFlow でやってみた 正解例  不正解例 http://goo.gl/rGqjYh ▪ 詳しくはデモでご紹介します。
  21. 21. 21 畳み込みニューラルネットワークによる性能向上 ▪ 画像データをそのままソフトマックス関数に入力する のではなく、各種の画像フィルターを通して、特徴を 抽出してからソフトマックス関数に入力します。 ▪ 詳しくはこちらを参照!
  22. 22. 22 TensorFlow でやってみた http://goo.gl/UHsVmI http://goo.gl/VE2ISf ▪ 詳しくはデモでご紹介します。
  23. 23. 23 (おまけ)モデルの学習と適用のプロセス 既存モデル 改定版モデル A 追加データ 改定版モデル B 完成版モデル アプリケーション 利用 学習処理 本番環境 テスト テスト 既存モデル更新 学習処理 再学習処理 success fail 既存モデル既存モデル モデルの バージョン管理 モデルの調整 データの準備・投入 モデルの デプロイ ▪ これってソフトウェアの開発モデル (CI/CD) と 似ている気がしませんか? ▪ このプロセスを標準化/自動化する仕組み作り が本格活用の基礎となります。
  24. 24. Thank you!

×