Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.
TensorFlow 入門
機械学習から画像認識まで
株式会社インフィニットループ アルバイト 中川武憲
Agenda
・ 機械学習
・ Neural Network
・ TensorFlow
・ 画像認識
Attention
 筆者も勉強中のため、所々間違っている箇所
があるかもしれませんが、マサカリは受け取れる
ように優しく投げていただけると幸いです。
機械学習 (Machine Learning)
・ データから反復的に学習
・ 学習結果から未知のデータに対して判断
・ 学習に用いるデータ: 訓練データ (学習データ)
・ 未知のデータ: 試験データ (テストデータ)
機械学習 - 種類
・ 教師あり学習

→ 入力(訓練データ)に対して答え(ラベル)がある
・ 教師なし学習

→ 答えの分からない入力しか無い
・ 半教師あり学習

→ ラベルのないデータとラベルのあるデータ両方で学習する
・ 強化学習

→...
機械学習 - 手法の一部
・ ニューラルネットワーク

→ 人工神経ネットワークを使って学習
・ 進化型プログラミング

→ 人工的な遺伝の仕組を使って学習
・ 決定木学習
→ データから決定木という予測モデルを作ることで学習
・ Q学習
→ ...
Neural Network
CC BY: zcool.com.cn
Neural Network
・ 脳の神経細胞の働きを参考に考案された

機械学習の手法の一種
・ 最もシンプルな2層構造: 単純パーセプトロン
・ 中間層(隠れ層)があるもの: 多層パーセプトロン
・ 中間層が2層以上のもの: Deep Ne...
Neural Network
形式ニューロン
重み w
バイアス b
活性化関数 φ
入力 x
x1
x2
xn
w1
w2
wn
出力 y
・

・

・
・

・

・
Neural Network
・

・

・
・

・

・
入力層 中間層(隠れ層) 出力層
多層パーセプトロン
Backpropagation
・

・

・
・

・

・
誤差逆伝播法とも言う
教師データ
重み調整
重み調整
Deep Learning
・ Deep Neural Network は多層になるほど学習

しずらくなる
・ Backpropagation により誤差が入力層へ伝播

しにくくなり過学習が起こる
・ Dropout など様々な対策が施され...
Dropout
・

・

・
・

・

・
入力層 中間層(隠れ層) 出力層
任意の確率でニューロンをなかったことにする
TensorFlow
・ Google の開発している機械学習ライブラリ
・ C++ や Python から扱える
・ Android でも動くよ!
・ Windows ではまだ動かないよ…

Docker 使ってね!
Tutorial
・ Docker で環境構築

(Docker の導入方法は省略)
・ TensorFlow 公式イメージ



https://hub.docker.com/r/tensorflow/tensorflow/
$ docker...
Run
・ port 8888 は Jupyter 用
・ port 6006 は TensorBoard 用 (後述)
$ docker run -itd --name tf 

-p 8888:8888 -p 6006:6006 

ten...
Exec
・ 以後、コンテナ内での処理
・ Windows の方で SSH が面倒な場合は

Jupyter を使いましょう
$ docker exec -it tf bash
Jupyter
・ IPython Notebook の多言語対応版といった所
・ 対話的に動くコードを含んだドキュメントが作れる
Jupyter
Terminal の開き方
Jupyter
Terminal の開き方
TensorFlow
・ まずは簡単な算数から
・ Python インタプリタを起動する
$ python
TensorFlow
・ TensorFlow の Hello World
> import tensorflow as tf
> msg = tf.constant("Hello World")
> sess = tf.Session()
>...
TensorFlow で計算①
・ 1 + 1
・ m + m の時点では計算されていない

sess.run に渡った時点で計算される
> m = tf.constant(1)
> print sess.run(m + m)
TensorFlow で計算②
・ TensorFlow で sigmoid 関数
> a = tf.constant(5)
> x = tf.placeholder(tf.float32)
> sigmoid = 1 / (1 + tf.ex...
Fetch TensorFlow
Repository tarball
・ Tutorialを実行するためにリポジトリの

アーカイブをダウンロードしましょう
# curl -Lo tensorflow.tar.gz
https://githu...
手書き文字認識
・ 手書き数字 0~9 を判定する
・ 4層ニューラルネットワーク
# cd tensorflow/examples/tutorials/
mnist
# python fully_connected_feed.py
TensorBoard
・ TensorFlow の可視化ツール
・ tf.train.SummaryWriter

で書き出したデータが見られる
# tensorboard --logdir data
活用方法
・ 画像認識 (分類)
・ 自然言語処理 (感情, 意味認識)
・ 作画, 作曲などクリエイティブな分野
・ ノイズ除去 (waifu2x等)
・ ?
ご清聴ありがとうございました
Nächste SlideShare
Wird geladen in …5
×

TensorFlow 入門

2016/2/26
株式会社インフィニットループ社内勉強会資料

  • Als Erste(r) kommentieren

TensorFlow 入門

  1. 1. TensorFlow 入門 機械学習から画像認識まで 株式会社インフィニットループ アルバイト 中川武憲
  2. 2. Agenda ・ 機械学習 ・ Neural Network ・ TensorFlow ・ 画像認識
  3. 3. Attention  筆者も勉強中のため、所々間違っている箇所 があるかもしれませんが、マサカリは受け取れる ように優しく投げていただけると幸いです。
  4. 4. 機械学習 (Machine Learning) ・ データから反復的に学習 ・ 学習結果から未知のデータに対して判断 ・ 学習に用いるデータ: 訓練データ (学習データ) ・ 未知のデータ: 試験データ (テストデータ)
  5. 5. 機械学習 - 種類 ・ 教師あり学習
 → 入力(訓練データ)に対して答え(ラベル)がある ・ 教師なし学習
 → 答えの分からない入力しか無い ・ 半教師あり学習
 → ラベルのないデータとラベルのあるデータ両方で学習する ・ 強化学習
 → 答えは分からないけど、断片的な状態は評価できる
  6. 6. 機械学習 - 手法の一部 ・ ニューラルネットワーク
 → 人工神経ネットワークを使って学習 ・ 進化型プログラミング
 → 人工的な遺伝の仕組を使って学習 ・ 決定木学習 → データから決定木という予測モデルを作ることで学習 ・ Q学習 → 環境、報酬、エージェントを用いて最適行動を獲得する学習
  7. 7. Neural Network CC BY: zcool.com.cn
  8. 8. Neural Network ・ 脳の神経細胞の働きを参考に考案された
 機械学習の手法の一種 ・ 最もシンプルな2層構造: 単純パーセプトロン ・ 中間層(隠れ層)があるもの: 多層パーセプトロン ・ 中間層が2層以上のもの: Deep Neural Network
  9. 9. Neural Network 形式ニューロン 重み w バイアス b 活性化関数 φ 入力 x x1 x2 xn w1 w2 wn 出力 y ・
 ・
 ・ ・
 ・
 ・
  10. 10. Neural Network ・
 ・
 ・ ・
 ・
 ・ 入力層 中間層(隠れ層) 出力層 多層パーセプトロン
  11. 11. Backpropagation ・
 ・
 ・ ・
 ・
 ・ 誤差逆伝播法とも言う 教師データ 重み調整 重み調整
  12. 12. Deep Learning ・ Deep Neural Network は多層になるほど学習
 しずらくなる ・ Backpropagation により誤差が入力層へ伝播
 しにくくなり過学習が起こる ・ Dropout など様々な対策が施されている
  13. 13. Dropout ・
 ・
 ・ ・
 ・
 ・ 入力層 中間層(隠れ層) 出力層 任意の確率でニューロンをなかったことにする
  14. 14. TensorFlow ・ Google の開発している機械学習ライブラリ ・ C++ や Python から扱える ・ Android でも動くよ! ・ Windows ではまだ動かないよ…
 Docker 使ってね!
  15. 15. Tutorial ・ Docker で環境構築
 (Docker の導入方法は省略) ・ TensorFlow 公式イメージ
 
 https://hub.docker.com/r/tensorflow/tensorflow/ $ docker pull tensorflow/tensorflow:0.7.1
  16. 16. Run ・ port 8888 は Jupyter 用 ・ port 6006 は TensorBoard 用 (後述) $ docker run -itd --name tf 
 -p 8888:8888 -p 6006:6006 
 tensorflow/tensorflow:0.7.1
  17. 17. Exec ・ 以後、コンテナ内での処理 ・ Windows の方で SSH が面倒な場合は
 Jupyter を使いましょう $ docker exec -it tf bash
  18. 18. Jupyter ・ IPython Notebook の多言語対応版といった所 ・ 対話的に動くコードを含んだドキュメントが作れる
  19. 19. Jupyter Terminal の開き方
  20. 20. Jupyter Terminal の開き方
  21. 21. TensorFlow ・ まずは簡単な算数から ・ Python インタプリタを起動する $ python
  22. 22. TensorFlow ・ TensorFlow の Hello World > import tensorflow as tf > msg = tf.constant("Hello World") > sess = tf.Session() > print sess.run(msg) Tensor が返る
  23. 23. TensorFlow で計算① ・ 1 + 1 ・ m + m の時点では計算されていない
 sess.run に渡った時点で計算される > m = tf.constant(1) > print sess.run(m + m)
  24. 24. TensorFlow で計算② ・ TensorFlow で sigmoid 関数 > a = tf.constant(5) > x = tf.placeholder(tf.float32) > sigmoid = 1 / (1 + tf.exp(-a * x)) > print sess.run(sigmoid,
 feed_dict={x: 0})
  25. 25. Fetch TensorFlow Repository tarball ・ Tutorialを実行するためにリポジトリの
 アーカイブをダウンロードしましょう # curl -Lo tensorflow.tar.gz https://github.com/tensorflow/ tensorflow/archive/v0.7.1.tar.gz
 # tar xzvf tensorflow.tar.gz
 # cd tensorflow*
  26. 26. 手書き文字認識 ・ 手書き数字 0~9 を判定する ・ 4層ニューラルネットワーク # cd tensorflow/examples/tutorials/ mnist # python fully_connected_feed.py
  27. 27. TensorBoard ・ TensorFlow の可視化ツール ・ tf.train.SummaryWriter
 で書き出したデータが見られる # tensorboard --logdir data
  28. 28. 活用方法 ・ 画像認識 (分類) ・ 自然言語処理 (感情, 意味認識) ・ 作画, 作曲などクリエイティブな分野 ・ ノイズ除去 (waifu2x等) ・ ?
  29. 29. ご清聴ありがとうございました

×