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.

AI入門「第1回:AIの歴史とTensorFlow」

4,539 views

Published on

TensorFlowでディープラーニング使うと、画像のマッチングをさせたり、画像に特徴を注入する画像加工が、簡単にできることを、みんなでワイワイ楽しむオーディエンス参加型セッションです

Published in: Data & Analytics
  • Dating for everyone is here: ♥♥♥ http://bit.ly/2Q98JRS ♥♥♥
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Follow the link, new dating source: ♥♥♥ http://bit.ly/2Q98JRS ♥♥♥
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

AI入門「第1回:AIの歴史とTensorFlow」

  1. 1. AI入門 第1回 「AIの歴史とTensorFlow」 2017/06/02 ver0.5作成 2017/07/03 ver0.9作成 2017/08/03 ver1.0作成
  2. 2. 1 本セッションの趣旨 最初に、AIがどのような歴史を辿ってきたかを軽く紐解きます 次に、巷でよく耳にする「ディープラーニング」について解説します その後、 「TensorFlowでディープラーニング使うと、 画像のマッチングをさせたり、画像に特徴 を注入する画像加工が、簡単にできる」 ということを、オーディエンス参加型のデモにて、みんなでワイワイ 楽しもうと思います 「人工知能」が、割と気軽に扱えることを体感するセッションです
  3. 3. 2 1. AIの歴史とディープラーニング 2. TensorFlowについて 3. TensorFlowを使えるようにする 4. 類似画像DBとのマッチング 5. 学習した特徴を画像に注入 6. ここから先の進み方 目次
  4. 4. 3 1.AIの歴史とディープラーニング
  5. 5. 4 AI研究・開発は、デジタルコンピュータの登場とほぼ同じ位、長い 歴史をもっています これまで、2度の「AI冬の時期」があり、現在は、第3次ブームの 真っ最中です 1.AIの歴史とディープラーニング:これまで ?
  6. 6. 5 1.AIの歴史とディープラーニング:AIの成果 当初、期待されていた、「人間のように自律的に思考するAI」は、 今もまだ実現できていませんが、各ブームでの副次的な成果は、 様々なコンピューティングや生活に影響を及ぼしています 以下のうち、AIブームで生み出されたものは、どれでしょう?  自然言語処理  機械翻訳  音声認識  オブジェクト指向プログラミング  リレーショナルDB  関数型プログラミング  インターネット(TCP/IP)  証券市場(電子取引)
  7. 7. 6 1.AIの歴史とディープラーニング 第3次AIブームの立役者は、「ディープラーニング」です 一言で言えば、「期待する値に限りなく近い値を回答できるよう、 マシンに計算させまくって学習してもらう」というアルゴリズムです ディープラーニングが革新的なのは、「データが持つ特徴を、自動 抽出」できる点です(≒人手が不要)
  8. 8. 7 2.TensorFlowについて
  9. 9. 8 2.TensorFlowについて ディープラーニングの急先鋒と言えば、Googleがオープンソース 提供している機械学習エンジン、TensorFlowが最も有名です (Google内でも使われている、らしい) ちなみに、「Tensor」とは、数値/配列/行列(マトリクス) /3次元配列(データキューブ) の”全て”を指します ※3次元以上の配列もデータキューブと呼ばれます p.s.呼び方は、「テンサーフロー?」、「テンソルフロー?」 ※
  10. 10. 9 2.TensorFlowについて TensorFlowは、ディープラーニングだけで無く、以下に挙げる 様々な機械学習アルゴリズムが利用できます  決定木  ランダムフォレスト  サポートベクターマシン(SVM)  k近傍法  ロジスティック回帰  線形多項分類(ハードマックス/ソフトマックス)  ニューラルネットワーク  畳み込みニューラルネットワーク(CNN)  再帰型ニューラルネットワーク(RNN) など
  11. 11. 10 3.TensorFlowを使えるようにする
  12. 12. 11 3.TensorFlowを使えるようにする TensorFlowを使い始めるのに、3種類の方法があります ① 各種OS用のpip(Pythonパッケージマネージャ)経由 でインストールする ② 【Windows、Mac】Anaconda(Python開発環境マ ネージャ)経由でインストールする ③ DockerからTensorFlowイメージをインスト―ル(pull) する Dockerが最もお手軽ではありますが、今回は、画像をアレコレ 操作する都合から、Windows版を使って解説します
  13. 13. 12 3.TensorFlowを使えるようにする 「Anaconda」は、数学系、科学系、データ分析系のPython パッケージを、一括でインストールでき、かつ複数の環境も管理で きるアプリで、TensorFlowも簡単にインストールできます
  14. 14. 13 3.TensorFlowを使えるようにする ターミナルを起動し、TensorFlowをpipでインストールします # pip install tensorflow
  15. 15. 14 3.TensorFlowを使えるようにする PythonコマンドでREPLが起動し、TensorFlowがエラー無く importできれば、インストールは成功です exit()と打てば、Pythonを抜けて、ターミナルに戻ります インストール失敗しているときは、以下のようなエラーが返ります # python >>> import tensorflow as tf >>> >>> import tensorflow as tf Traceback (most recent call last): File "<stdin>", line 1, in <module> ModuleNotFoundError: No module named 'tensorflow' >>> exit() #
  16. 16. 15 3.TensorFlowを使えるようにする REPL内で、TensorFlowを使った簡単な行列計算プログラムを 書いてみましょう # python >>> import tensorflow as tf >>> sess = tf.Session() >>> xt = tf.constant( [ [ 1, 3 ], [ 2, 7 ] ], tf.int32, name="x" ) >>> print( sess.run( xt ) ) [[1 3] [2 7]] >>> yt = tf.constant( [ [ 3, 5 ], [ 6, 9 ] ], tf.int32, name="y" ) >>> print( sess.run( yt ) ) [[3 5] [6 9]] >>> add_t = tf.add( xt, yt ) >>> print( sess.run( add_t ) ) [[ 4 8] [ 8 16]]
  17. 17. 16 4.類似画像DBとのマッチング
  18. 18. 17 4.類似画像DBとのマッチング TensorFlow用の「機械学習モデル」のチュートリアルがgithub にアップされているので、以下コマンドで手元にダウンロードします 画像DBとして、「ImageNet」という、様々な画像を持つサイト を使い、このサイトにある画像との類似画像マッチングを行います マッチング対象の画像として、下記のキュートな猫の画像を 「a.png」というファイル名で保存します (ディープラーニングと言えば、やっぱ猫ですよねw) # cd 【Anacondaインストール先】Anaconda3envstf110Libsite- packagestensorflow # git clone https://github.com/tensorflow/models
  19. 19. 18 4.類似画像DBとのマッチング チュートリアルのImageNet配下にある、classify_image.py を使うと、ImageNetとの類似画像マッチングを行います # cd modelstutorialsimageimagenet # python classify_image.py --image_file="a.png" tabby, tabby cat (score = 0.74141) tiger cat (score = 0.11748) Egyptian cat (score = 0.00662) beaker (score = 0.00310) Persian cat (score = 0.00211) tabby cat (トラ猫) tiger cat (トラ猫) beaker (ビーカー) Persian cat (ペルシャ猫)Egyptian cat (エジプト猫)
  20. 20. 19 4.類似画像DBとのマッチング 他の画像で遊んでみよう!
  21. 21. 20 4.類似画像DBとのマッチング 画像認識の課題には、こんなものがあります a. 複数の対象を判別できない  たとえば、服の販売画像のモデルが、帽子やチョーカー をしていた場合、どれが商品なのか判別できない  画像とは別に、商品を判別する別データが必要  たとえば、複数の人が挙手している様を見て、何人手 を挙げているかが認識率弱い b. 特徴から判断はできるが、対象が何なのかを理解しない  対象の「概念」を理解している訳では無い  人間がいとも簡単にできる系統類似判別は困難 こうした課題は、画像認識だけで無く、音声認識においても同様 で、ディープラーニングでも解決し切れない領域の1つです
  22. 22. 21 5.学習した特徴を画像に注入
  23. 23. 22 5.学習した特徴を画像に注入 TensorFlow用の「画像特徴注入」のコードが、githubにアップ されているので、以下コマンドで手元にダウンロードします 各種画像処理ライブラリをインストールします 以下URLにブラウザでアクセスし、特徴学習済みモデル (.ckptファイル)をダウンロードします 今回は、葛飾北斎の絵画で学習したモデル「wave.ckpt」を 使ってみます # cd ...... # git clone https://github.com/lengstrom/fast-style-transfer https://drive.google.com/drive/folders/0B9jhaT37ydSyRk9UX0wwX3BpMzQ # conda install pillow scipy numpy
  24. 24. 23 5.学習した特徴を画像に注入 fast-style-transfer配下にある、evaluate.pyを使い、先程 ダウンロードした特徴学習済みモデルを、画像に適用します 北斎風になりました # cd fast-style-transfer # python evaluate.py --checkpoint ./wave.ckpt --in-path ./a.png -- out-path ./out.png
  25. 25. 24 6.ここから先の進み方
  26. 26. 25 6.ここから先の進み方 今回は、TensorFlowの入門として、チュートリアルの機械学習 モデルを使って、「画像マッチング」と「特徴注入」を行いました ここから先の進み方として、以下のようなルートがあります ① チュートリアルにある、他のモデルを試す https://www.tensorflow.org/tutorials/ ② AI入門 第2回 「EMR/Spark/Mahoutでレコメンドエンジンを作る」 で、TensorFlow以外の機械学習について学ぶ https://www.slideshare.net/piacere_ex/ai2emrsparkmahoutlt ③ 画像データだけでなく、時系列データの 特徴抽出やデータ分析にチャンレジする

×