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.

Webエンジニアが初めて機械学習に触れてみた話

240 views

Published on

「Python入門者の集い #2」のLTスライドです。
機械学習の知識0の状態からディープラーニングライブラリ「TensorFlow」に挑戦した話です。
数学やアルゴリズムにはほとんど触れていません。発表ではTensorFlowとは何か、何ができるかを伝えることに重点を置いているため、TensorFlowや機械学習を知っている方には物足りない内容かと思います。
TensorFlowや機械学習に触れるきっかけにしていただけたら幸いです。

【補足】
・Windowsには対応していないと記載していますが、Dockerなど仮想マシンなどを使用すれば実行可能です。
・私の環境では失敗しましたが、AmazonLinuxでも動作します。
【訂正】
・機械学習(最急降下法)と記載しましたが、書き方が不適切でした。学習の中で最急降下法を使っていますが、「最急降下法」自体はアルゴリズムなので「機械学習(最急降下法)」という表現は誤りです。

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Webエンジニアが初めて機械学習に触れてみた話

  1. 1. Webエンジニアが 初めて機械学習に触れてみた話 泰昌平 @ShoheiTai
  2. 2. 泰昌平 スパイスファクトリー株式会社 事業部長 ・平成生まれ ・ペチパー。CakePHP、Phalcon、WPなど。 ・Pythonが好きで趣味レベルで色々動かしてま す。 ・フロントエンドの開発、最適化が好き。 ・趣味はダーツ(ハード・ソフト)とバイク。 自己紹介
  3. 3. 前回のLTではこれを動かしました。 http://www.slideshare.net/shouheitai/pythongoogle-57553654
  4. 4. 機械学習の分野が好きな同期に勧められ TensorFlowを触ってみました
  5. 5. Q.TensorFlowを触ったことある 人?
  6. 6. 今日の内容について ○ TensorFlowの基本的な使い方 ○ チュートリアルを動かしてみた話 ○ 数学つらい的な話
  7. 7. TensorFlow ・Googleのディープラーニングライブラリ ・2015年11月にオープンソースとしてリリー ス ・Apache2.0ライセンス、商用利用可 ・GPU、CPUプログラミングに対応 ・TensorBoardで学習結果をWebで確認できる
  8. 8. なんか面白そう!触ってみよう!
  9. 9. TensorFlowをインストールしてみた Windows→TensorFlowが対応していない Mac→持っていない AmazonLinux(EC2)→普段使っていたPython環境 で2時間ハマり挫折。tensorflowのバージョン問題 …?
  10. 10. ubuntuでインストール // Python環境 $ sudo apt-get install python-pip python-dev python-virtualenv // tensorflowの仮想環境 $ virtualenv --system-site-packages ~/tensorflow // 仮想環境の有効化 $ source ~/tensorflow/bin/activate // tensorflowのインストール (tensorflow)$ pip install --upgrade https://storage.googleapis.com/tensorflow/linux/cpu/tens orflow-0.8.0-cp27-none-linux_x86_64.whl
  11. 11. TensorFlowのコードを触ってみる
  12. 12. TensorFlowの書き方をざっくりと 1.データフローグラフをプログラムで組み立てる →変数の定義やモデル式、学習アルゴリズム 2.セッションにデータフローグラフ(結果のノード) を渡す 3.セッションで実行
  13. 13. 簡単な計算 >>> import tensorflow as tf >>> sess = tf.Session() >>> a = tf.constant(10) >>> b = tf.constant(32) >>> c = tf.add(a, b) >>> sess.run(c) # sess.run(a+b) 42 https://github.com/tensorflow/tensorflow#try-your-first-tensorflow-program を一部変更
  14. 14. データフローグラフ a b cadd
  15. 15. データフロー (ノード、オペレーシ ョン) ・演算処理、定数を表す。 a b cadd
  16. 16. データフロー (エッジ) ・データの入出力を表す。テンソルが流れる道筋。 a b cadd
  17. 17. データフロー (テンソル) ・データ構造。n次元の配列。エッジの上を流れる。 a b cadd
  18. 18. セッション ・データフローグラフ(結果のノード)を受け取 り、非同期に処理を実行していく。 ・セッションでrunするまでは処理が行われな い。 ・CPU、GPUへ処理の振り分けなども行う。
  19. 19. 簡単な計算(再掲) >>> import tensorflow as tf >>> sess = tf.Session() >>> a = tf.constant(10) >>> b = tf.constant(32) >>> c = tf.add(a, b) >>> sess.run(c) # sess.run(a+b) 42 https://github.com/tensorflow/tensorflow#try-your-first-tensorflow-program を一部変更
  20. 20. Introductionを動かして 機械学習を体験する
  21. 21. Introduction https://www.tensorflow.org/versions/master/get_started/index.html
  22. 22. ここでやっていること # ランダムなx値を生成 x_data = p.random.rand(100).astype(np.float32) # 「y = x * 0.1 + 0.3」のデータを作成 y_data = x_data * 0.1 + 0.3 y = 0.1x + 0.3の「0.1」と「0.3」を 機械学習(最急降下法)で導き出す。
  23. 23. ここでやっていること loss = tf.reduce_mean(tf.square(y - y_data)) optimizer = tf.train.GradientDescentOptimizer(0.5) train = optimizer.minimize(loss) y = 0.1x + 0.3の「0.1」と「0.3」を 機械学習(最急降下法)で導き出す。
  24. 24. 学習過程 学習を繰り返していく度に 「0.1」と「0.3」へ近づいている!
  25. 25. TensorFlowを触ってみて ・機械学習の事前知識が必要。軽く触ってみる のも難しい。。 ・数学的なアルゴリズムをプログラムで表現し やすくなっており、ソースを読むことで理解で きる部分も多かった。
  26. 26. ご清聴ありがとうございました
  27. 27. Credits Special thanks to all the people who made and released these awesome resources for free: ✘ Presentation template by SlidesCarnival ✘ Photographs by Unsplash TensorFlow, the TensorFlow logo and any related marks are trademarks of Google Inc

×