O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.
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!
Próximos SlideShares
Carregando em…5
×

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

3.557 visualizações

Publicada em

2016/12/27 ver1.1 公開

Publicada em: Tecnologia
  • Seja o primeiro a comentar

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!

×