狠狠撸

狠狠撸Share a Scribd company logo
TECHNOMOBILE
GROUP
HEAD OFFICE
TOKUSHIMA development section
| 5floor Column Minamiaoyama,7-1-5,Minamiaoyama,Minato-ku,Tokyo 107-0062,Japan
| 3floor Tokushimakenkohkagaku-center,Hiraishisumiyoshi,Kawauchi-cho,Tokushima-shi Tokushima 771-0134,Japan
Tensorflowのチュートリアルて?理解するDeepLearningはし?めてハンス?オン
2
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
ディープラーニング、知ってますよね?
3
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
顔を分類
カラーに変換
その画家風の絵を作成
4
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
見て分かりやすいし、面白そうですよね。
5
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
サンプルプログラムを動かした人はいる
とは思いますが、
ちゃんとプログラム内容を理解している
ひとは少ないですよね。
6
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
今回は、簡単な統計知識をもとにサンプ
ルコードを理解して、
自分で作れるようになりましょう。
7
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
どんな環境が良いの?
Chainer
Caffe
いろいろありますが、Pythonは避け
て通れません。どれもPythonのライ
ブラリーです。
行列計算のライブラリ numpy の強
みです。
8
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
最近の動向ではGoogleがリリースし
ているTensorflowがコーディング量も
少なく、チュートリアルや情報が充実
しているのでおすすめです。
勉強会も盛んにおこなわれています。
9
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
今回はTensorflowのチュートリアルを理解
してDeepLearningの世界を見ていきま
しょう。
10
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
DeepLearnigとは?
ニュ
ーロ
ン
人の神経細胞が信号を伝える仕組
みを真似して作られた、ニューラ
ルネットワークの発展版
入
力
層
隠
れ
層
隠
れ
層
出
力
層
正
解
ズレを評価
して重み付
けを調整す
る
何度も繰り返して特徴を残
す。これがDeepな理由。
重み
AzureMLのような機械学習との最大の違い
は特徴量を自動的に抽出するところです。
11
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
?画像認識に使われるCNN。データが固
定長。画像サイズを揃えないとダメ。
?可変長のデータ(音声?テキストなど)に
使われるRNN
?入力と出力を同じデータにして圧縮
データから推論(色など)するAutoEncoder
主なDeepLearningのアルゴリズムの種類は?
12
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
Tensorflowの以下のチュートリアルを
理解して段階的にDeepLearningの仕
組みを理解します。
?回帰
?MNIST(ニューラルネットワーク)
?MNIST(DeepLearning)CNN
何を作るの?
13
「サンプルプログラムをDownloadしましょう」「Tensorflowをインストールしましょう」
ページを参考にTensorflowをインストールしておいてください。Macまたは
Windows環境。
専門用語が多いので、一通り資料に目を通しておくことをおすすめします。
6
事前準備
14
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
この学びの対象者は?
→Mac、Windowsを使えるPython初心者。
PythonがわからなくてもDeepLearningの
基礎アルゴリズムは理解できます。簡単な
行列、直線式の理解が必要です。
WindowsではDocker(仮想環境)で動きま
す。
教えないことは?
→DeepLearningの専門家ではないので。。。
わかったことがあったらフィードバックく
ださい。
15
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
講師
Gashfara,Inc.代表
デジタルハリウッド大学院客員講師
茂木健一
mogi@gashfara.com
kenichi.mogi@tcmobile.jp
http://facebook.com/mogiken
http://www.slideshare.net/mogiken1
自己紹介
[プロフィール/実績]
もぎ?けんいち●青山学院大学大学院卒。Gashfara,Inc.代表。本社はハワイですが出社したことなし。
ホノルルマラソンには参加w
青山学院大学大学院卒:エニックスでオリジナルゲーム制作(Z80アセンブラ CP/M)、SmallTalkで
人工知能開発(企業買収)。
(株)東洋情報システム退社後、(株)エイチアイ、グランスフィア(株)、(株)ファッション
ウォーカー(えびもえのEC)など数社のベンチャー企業の立ち上げ?創業期に参画し、ガシュファ
ラ?インクをUSで起業。システム開発ではゲーム、TOL(ツタヤオンライン)の立ち上げ。動画配
信システム(USENのGate01:Gyaoの前進)、電子マネーシステム(Bitcash)、ECフルフィルメント
システムなど、多彩な分野を経験。IT関連教育では1998年ころからデジハリの2.5階に間借りしな
がら教育コンテンツ作成(JIB社)。Brew、Java、セキュリティーなどの講師として活躍。現在、
(株)HUGGを設立し、スマホのカップル向けSNSサービス[HUGG]をグローバルに展開。㈱テクノ
モバイルにて技術顧問。㈱SGPにてドローンのソフトウェア開発もしています。
【著書】
BREWプログラミング実践バイブル [共著] (インプレス)、PHP逆引き大全 516の極意[共著](秀和
システム)
16
成長を実現させるシステム”モバイルトータルソリュー
ション”
Web
システム
1
スマホ
アプリ
2 ゲーム
アプリ
3
モバイルトータルソリューション
B2B2C
? コンシューマ向けの大規模Webシステムの開発からアプリ?ゲーム開発までをマルチデバイスで対応
高い技術力 市場ニーズとマッチ
大規模
Webシステム
に強い
Java,PHP
Strong1
最先端技術?独自
フレームワークで
効率的な
開発
Strong2
高トラフィック、
インフラ
ネットワーク
に強い
Strong3 プライマリー
ベンダー、
ヒアリング?
要件定義
に強い
StrongⅠ
情報資産の活用
最先端と
知見に強い
StrongⅡ
最先端のマルチ
デバイス
ウェアラブルに
強い
StrongⅢ
Mashup Awards 5年連続 受賞
会社名 株式会社テクノモバイル
設 立 2008年
資本金 2,500万円
代 表 播田 誠
従業員数 100名(グループ合計)
本社所在地
〒 107-0062
東京都港区南青山7-1-5 コラム南青山 5F
開発室
〒771-0134
徳島県徳島市川内町平石住吉209-5
徳島健康科学総合センター 3F
17
サンプルプログラムをDownloadしましょう
下記のURLからサンプルプログラムをダウン
ロードしてください。
https://goo.gl/sHkxQB
18
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
Tensorflowをインストールしましょう
下記の手順でインストールしてください。Mac
の場合
参考http://dev.classmethod.jp/machine-learning/tensorflow-hello-world/
Python2.7の環境が必要です。インストール済みを前提にします。
Python用のライブラリ管理コマンドpipをインストールします。
sudo easy_install pip
Pythonの下層実行環境virtualenvをインストールします。
sudo pip install --upgrade virtualenv
Tensorflowの実行ディレクトリを作成し移動します。ここにTensorflowを配置します。日本語がない
パスに作らないとinstallの時にエラーになります。
mkdir ~/tensorflow
cd ~/tensorflow
実行ディレクトリに仮想環境を作成します。source bin/activateで環境を設定します。プログラムを
実行する前に実行が必要です。
virtualenv --system-site-packages ~/tensorflow
source bin/activate
Tensorflowを仮想環境にインストールします。
sudo pip install --upgrade https://storage.googleapis.com/tensorflow/mac/tensorflow-0.7.1-cp27-
none-any.whl
動作確認します。
test.pyを作成。新しいターミナルでsource ~/tensorflow/bin/activate を実行してからpython test.py
で動けばOK.
Windowsの場合は次ページのとおり仮想環境で。参考:http://goo.gl/F2vC2C
MacではWindowsと同じようにDocker環境でのTensorflowの実行を推奨します。
Dockerのインストール以外は同じです。
19
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
Windows環境は下記の手順で構築。
参考:http://goo.gl/F2vC2C
https://www.tensorflow.org/versions/r0.10/get_started/os_setup.html#docker-installation
前提:
?Windows7以上
?仮想化が有効になっていること
タスクマネージャー→パフォーマンス → CPU → 「仮想化: 有効」
?OSが64 bit
1.Docker Toolboxのインストール
https://www.docker.com/products/docker-toolbox からDockerToolboxをダウンロードしてインス
トールしてください。デフォルトのままインストールを進めてOKです。
インストールされたDocker Quickstart Terminalを起動して下記のようなターミナルが表示されればイ
ンストールはOKです。
20
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
2.TensorFlowのインストール
Docker Quickstart Terminalで下記のコマンドを実行してインストールします。
docker run --name "tensorflowtest" -v /c/Users/mogi/Downloads:/share -it tensorflow/tensorflow /bin/bash
exit で終了
※-vオプションをつけてmogiの部分を自分のアカウントにするとダウンロードフォルダーが/shareとし
てマウントされます。 デファルトではc:/Usersしかマウントを許可されていません。
TensorFlowの起動も上記のコマンドで実行できます。imageがなければDownload。あれば実行。
exitで終了。
3.下記のコマンドでログインできます
docker start tensorflowtest
docker attach tensorflowtest
4. ログイン後以下のコマンドでplot系のライブラリーをインストールしてください。
apt-get update
apt-get install python-tk
Dockerイメージを削除したい時などはここを参考
http://qiita.com/tifa2chan/items/e9aa408244687a63a0ae
Dockerの仮想ドライブファイルVMDKをDドライブなどに移動したいと
きはここを参考
http://takaya030.hatenablog.com/entry/20150621/1434857168
21
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
回帰分析のチュートリアルを理解しよう
ここにある回帰分析のチュートリアルを理解
しましょう。http://goo.gl/CA7BIe
回帰分析とは。。ここにあるようにばらつき
のあるデータから直線の式を求めて値を推測
する方法です。http://goo.gl/woqBKX
このチュートリアルでは式による計算ではな
く推論モデル勾配降下法を使って式を推論し
ます。
22
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
勾配降下法とは
傾きを利用して最小値を求める方法です。
http://goo.gl/1Ce08K
チュートリアルでは答えと推論した値の誤差
が最小になるようにモデルを作成します。
学習率を大きくすると発散して学習が進まな
い。小さいと学習速度が遅い。学習率:移動
する幅。
23
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
Shapeとは
Tensorflow独特の配列構造を示すShapeがあり
ます。これを理解すると理解が早いです。単
純に説明すると配列の次元の組み合わせを表
します。
例)
[[1, 2, 3], [4, 5, 6], [7, 8, 9]] → Shapeは3次元(要素)x3次元なので[3, 3]
[1] →Shapeは[1]
[1,2,3] →Shapeは[3]
[[1 2 3]
[4 5 6]
[7 8 9]
[0 2 3]]→Shapeは[4,3]
参考:http://goo.gl/49LMxJ https://goo.gl/6qJqQ2
24
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
Tensorflowの実行の仕組み
test.pyをもとに説明します。python test.pyで
実行。
参考: http://goo.gl/5Up5UH
Node Edge
1つのNodeが1つの計算処理op(operation)を表します
Sessionが計算の順番、並列処理、リソースの管理をします。
Session
25
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
test1.py(回帰サンプル)を解説 python test1.pyで実行
ポイント:
y=W*x+bの直線式において、
y=0.1*x+0.3の直線にランダムに点を生成しこ
のランダムなデータから、この式y=0.1*x+0.3
を推論します。この式が確定すれば値を推論
できるようになるわけです。
y=0.1*x+0.3
※一般的な最小二乗法ではなく、勾配
降下法を使って解くのがポイント
26
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
MNIST(ニューラルネット)のチュートリア
ルを理解しよう
ここにあるMNISTのチュートリアルを理解し
ましょう。http://goo.gl/teJPty
27
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
ニューラルネットワークとは
資料の導入部分を参考に
28
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
MNISTとは
下記のような手書きの画像とその答え[0-9]の
ラベルからなるデータです。この訓練データ
を使って手書き文字を認識します。
29
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
MNISTのデータについて
手書き画像は28x28ピクセルの色の濃さを表し
たデータです。
30
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
MNISTのtrainデータ
28x28=784のデータが55000用意されている。
画像
答え(ラベル)
例えば 3 は [0,0,0,1,0,0,0,0,0,0] になります。最終的にはこれの確率
分布を求めます。
31
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
Softmax関数とは
活性化関数の一つ
回帰式からラベル(答え)の確率分布を計算しま
す。
回帰式 y = W*x +b (Wが画像がラベルに影響する重み。
bがバイアス)これをsoftmax関数で活性化します。
y = softmax(W*x+b)
softmax関数:ニューラルネットワークの出力結果を確率(0~1.0)に変換します。
※下記y1,y2....y10がありそれぞれが0,1,2...9の数値を推測する確率になり
ます。
32
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
test2.py(MNIST)を解説 python test2.pyで実行
ポイント:
?訓練ロジックは回帰のサンプルとほぼおな
じ。最後にsoftmax関数を使っているだけ。W
とbの値がモデルのパラメータ(これを推測)。
Wとbは配列。
?検証はテストデータを使って訓練したモデ
ルを評価する。
ニューラルネットワークがー階層だけなので
DeepLearningではないですね。
33
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
MNIST(多層化:DeepLearning)のチュー
トリアルを理解しよう
ここにあるMNISTのチュートリアルを理解し
ましょう。http://goo.gl/z1hRCp
test2.pyでは784のデータが10のデータにいき
なり削減されています。そのため重要な特徴
データが失われている可能性があります。
ニューラルネットワークを多層化して特徴を
残しつつ、データを削減(次元を削減)するのが
ポイントです。
34
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
層の種類
?畳み込み層
近隣にあるノードの値
次のノードに渡す
活性化関数
?プーリング層
近隣にあるノードの値の最大値を渡す
特徴を抽出
特徴を強調
例:3x3のパッチを1画像
ずつずらしながら計算
35
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
層の種類
?全結合層
全ての組み合わせを活性化関数で処理
活性化関数
36
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
CNNの多層化例(主に画像処理)
入
力
層
畳
み
込
み
層
プ
|
リ
ン
グ
層
畳
み
込
み
層
プ
|
リ
ン
グ
層
全
結
合
層
出
力
層
第一層 第二層
37
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
test3.py(MNIST:DeepLearning)を解説
ポイント:
?層は[第1層→第2層→全結合層]になっている
?層での計算後test2.pyと同じくsoftmax関数を使っ
ている。
?第1層、第2層は[畳み込み層+プーリング層]から
なる
?Wが特徴(重み)で、x(画像)をかけることにより特
徴を抽出。xは前の層からわたってくる。なので基本
式:y=W*x+bでWとbを推測することは変わらない。
? reluなどは活性化関数。入力出力結果を調整。
https://goo.gl/StpYXm
※次頁のイメージがあると分かりやすい
38
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
6
第1層
畳み込み層
+
プーリング層
第2層
畳み込み層
+
プーリング層
全結合層
Softmax
dropout層で
過学習を防ぐ
28x28=784 14x14x32=6272 7x7x64=3136 1024
10
第1層、2層の特徴データは次ページのようになります
39
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
1層目
32の特徴(W)
テストデータ↓
テストデータに
特徴を適用
※学習時には、
前の層の出力
データと特徴W
をかけて答えに
近くなるように
Wを考える
40
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
2層目(特徴が64(W)あるので2行に表示)
41
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
参考書籍
http://goo.gl/nraR0R
ライブラリーはTensorflow
ではなくCaffeを使ってい
ます。DeepLearningの仕組
みの理解に役立ちます。
http://amzn.to/2lMkDQ7
ブラックボックスな活性
化関数や最小化の関数の
アルゴリズムが記載され
ています。
http://amzn.to/2vY44Vx
簡単な式で簡潔に説明されています。
NNの式を完全に理解したいときに便利。
画像分類が目的ならkerasが簡単。
http://qiita.com/tsunaki/items/608ff3cd941d82cd656b
Udemy https://goo.gl/fCcQyE
42
COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED.
6
?DeepLearningを使った画像サービスの提案
?画像認識を使ったPOSレジ(打ち込みが不
要なので会計が早い)
例)ECサイトで、自分で撮影した写真の服
に似た服をレコメンド。
適用事例(経営者?営業担当の方に)

More Related Content

Tensorflowのチュートリアルて?理解するdeep learningはし?めてハンス?オン

  • 1. TECHNOMOBILE GROUP HEAD OFFICE TOKUSHIMA development section | 5floor Column Minamiaoyama,7-1-5,Minamiaoyama,Minato-ku,Tokyo 107-0062,Japan | 3floor Tokushimakenkohkagaku-center,Hiraishisumiyoshi,Kawauchi-cho,Tokushima-shi Tokushima 771-0134,Japan Tensorflowのチュートリアルて?理解するDeepLearningはし?めてハンス?オン
  • 2. 2 COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. ディープラーニング、知ってますよね?
  • 3. 3 COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. 顔を分類 カラーに変換 その画家風の絵を作成
  • 4. 4 COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. 見て分かりやすいし、面白そうですよね。
  • 5. 5 COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. サンプルプログラムを動かした人はいる とは思いますが、 ちゃんとプログラム内容を理解している ひとは少ないですよね。
  • 6. 6 COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. 今回は、簡単な統計知識をもとにサンプ ルコードを理解して、 自分で作れるようになりましょう。
  • 7. 7 COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. どんな環境が良いの? Chainer Caffe いろいろありますが、Pythonは避け て通れません。どれもPythonのライ ブラリーです。 行列計算のライブラリ numpy の強 みです。
  • 8. 8 COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. 最近の動向ではGoogleがリリースし ているTensorflowがコーディング量も 少なく、チュートリアルや情報が充実 しているのでおすすめです。 勉強会も盛んにおこなわれています。
  • 9. 9 COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. 今回はTensorflowのチュートリアルを理解 してDeepLearningの世界を見ていきま しょう。
  • 10. 10 COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. DeepLearnigとは? ニュ ーロ ン 人の神経細胞が信号を伝える仕組 みを真似して作られた、ニューラ ルネットワークの発展版 入 力 層 隠 れ 層 隠 れ 層 出 力 層 正 解 ズレを評価 して重み付 けを調整す る 何度も繰り返して特徴を残 す。これがDeepな理由。 重み AzureMLのような機械学習との最大の違い は特徴量を自動的に抽出するところです。
  • 11. 11 COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. ?画像認識に使われるCNN。データが固 定長。画像サイズを揃えないとダメ。 ?可変長のデータ(音声?テキストなど)に 使われるRNN ?入力と出力を同じデータにして圧縮 データから推論(色など)するAutoEncoder 主なDeepLearningのアルゴリズムの種類は?
  • 12. 12 COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. Tensorflowの以下のチュートリアルを 理解して段階的にDeepLearningの仕 組みを理解します。 ?回帰 ?MNIST(ニューラルネットワーク) ?MNIST(DeepLearning)CNN 何を作るの?
  • 14. 14 COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. 6 この学びの対象者は? →Mac、Windowsを使えるPython初心者。 PythonがわからなくてもDeepLearningの 基礎アルゴリズムは理解できます。簡単な 行列、直線式の理解が必要です。 WindowsではDocker(仮想環境)で動きま す。 教えないことは? →DeepLearningの専門家ではないので。。。 わかったことがあったらフィードバックく ださい。
  • 15. 15 COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. 講師 Gashfara,Inc.代表 デジタルハリウッド大学院客員講師 茂木健一 mogi@gashfara.com kenichi.mogi@tcmobile.jp http://facebook.com/mogiken http://www.slideshare.net/mogiken1 自己紹介 [プロフィール/実績] もぎ?けんいち●青山学院大学大学院卒。Gashfara,Inc.代表。本社はハワイですが出社したことなし。 ホノルルマラソンには参加w 青山学院大学大学院卒:エニックスでオリジナルゲーム制作(Z80アセンブラ CP/M)、SmallTalkで 人工知能開発(企業買収)。 (株)東洋情報システム退社後、(株)エイチアイ、グランスフィア(株)、(株)ファッション ウォーカー(えびもえのEC)など数社のベンチャー企業の立ち上げ?創業期に参画し、ガシュファ ラ?インクをUSで起業。システム開発ではゲーム、TOL(ツタヤオンライン)の立ち上げ。動画配 信システム(USENのGate01:Gyaoの前進)、電子マネーシステム(Bitcash)、ECフルフィルメント システムなど、多彩な分野を経験。IT関連教育では1998年ころからデジハリの2.5階に間借りしな がら教育コンテンツ作成(JIB社)。Brew、Java、セキュリティーなどの講師として活躍。現在、 (株)HUGGを設立し、スマホのカップル向けSNSサービス[HUGG]をグローバルに展開。㈱テクノ モバイルにて技術顧問。㈱SGPにてドローンのソフトウェア開発もしています。 【著書】 BREWプログラミング実践バイブル [共著] (インプレス)、PHP逆引き大全 516の極意[共著](秀和 システム)
  • 16. 16 成長を実現させるシステム”モバイルトータルソリュー ション” Web システム 1 スマホ アプリ 2 ゲーム アプリ 3 モバイルトータルソリューション B2B2C ? コンシューマ向けの大規模Webシステムの開発からアプリ?ゲーム開発までをマルチデバイスで対応 高い技術力 市場ニーズとマッチ 大規模 Webシステム に強い Java,PHP Strong1 最先端技術?独自 フレームワークで 効率的な 開発 Strong2 高トラフィック、 インフラ ネットワーク に強い Strong3 プライマリー ベンダー、 ヒアリング? 要件定義 に強い StrongⅠ 情報資産の活用 最先端と 知見に強い StrongⅡ 最先端のマルチ デバイス ウェアラブルに 強い StrongⅢ Mashup Awards 5年連続 受賞 会社名 株式会社テクノモバイル 設 立 2008年 資本金 2,500万円 代 表 播田 誠 従業員数 100名(グループ合計) 本社所在地 〒 107-0062 東京都港区南青山7-1-5 コラム南青山 5F 開発室 〒771-0134 徳島県徳島市川内町平石住吉209-5 徳島健康科学総合センター 3F
  • 18. 18 COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. 6 Tensorflowをインストールしましょう 下記の手順でインストールしてください。Mac の場合 参考http://dev.classmethod.jp/machine-learning/tensorflow-hello-world/ Python2.7の環境が必要です。インストール済みを前提にします。 Python用のライブラリ管理コマンドpipをインストールします。 sudo easy_install pip Pythonの下層実行環境virtualenvをインストールします。 sudo pip install --upgrade virtualenv Tensorflowの実行ディレクトリを作成し移動します。ここにTensorflowを配置します。日本語がない パスに作らないとinstallの時にエラーになります。 mkdir ~/tensorflow cd ~/tensorflow 実行ディレクトリに仮想環境を作成します。source bin/activateで環境を設定します。プログラムを 実行する前に実行が必要です。 virtualenv --system-site-packages ~/tensorflow source bin/activate Tensorflowを仮想環境にインストールします。 sudo pip install --upgrade https://storage.googleapis.com/tensorflow/mac/tensorflow-0.7.1-cp27- none-any.whl 動作確認します。 test.pyを作成。新しいターミナルでsource ~/tensorflow/bin/activate を実行してからpython test.py で動けばOK. Windowsの場合は次ページのとおり仮想環境で。参考:http://goo.gl/F2vC2C MacではWindowsと同じようにDocker環境でのTensorflowの実行を推奨します。 Dockerのインストール以外は同じです。
  • 19. 19 COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. 6 Windows環境は下記の手順で構築。 参考:http://goo.gl/F2vC2C https://www.tensorflow.org/versions/r0.10/get_started/os_setup.html#docker-installation 前提: ?Windows7以上 ?仮想化が有効になっていること タスクマネージャー→パフォーマンス → CPU → 「仮想化: 有効」 ?OSが64 bit 1.Docker Toolboxのインストール https://www.docker.com/products/docker-toolbox からDockerToolboxをダウンロードしてインス トールしてください。デフォルトのままインストールを進めてOKです。 インストールされたDocker Quickstart Terminalを起動して下記のようなターミナルが表示されればイ ンストールはOKです。
  • 20. 20 COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. 6 2.TensorFlowのインストール Docker Quickstart Terminalで下記のコマンドを実行してインストールします。 docker run --name "tensorflowtest" -v /c/Users/mogi/Downloads:/share -it tensorflow/tensorflow /bin/bash exit で終了 ※-vオプションをつけてmogiの部分を自分のアカウントにするとダウンロードフォルダーが/shareとし てマウントされます。 デファルトではc:/Usersしかマウントを許可されていません。 TensorFlowの起動も上記のコマンドで実行できます。imageがなければDownload。あれば実行。 exitで終了。 3.下記のコマンドでログインできます docker start tensorflowtest docker attach tensorflowtest 4. ログイン後以下のコマンドでplot系のライブラリーをインストールしてください。 apt-get update apt-get install python-tk Dockerイメージを削除したい時などはここを参考 http://qiita.com/tifa2chan/items/e9aa408244687a63a0ae Dockerの仮想ドライブファイルVMDKをDドライブなどに移動したいと きはここを参考 http://takaya030.hatenablog.com/entry/20150621/1434857168
  • 21. 21 COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. 6 回帰分析のチュートリアルを理解しよう ここにある回帰分析のチュートリアルを理解 しましょう。http://goo.gl/CA7BIe 回帰分析とは。。ここにあるようにばらつき のあるデータから直線の式を求めて値を推測 する方法です。http://goo.gl/woqBKX このチュートリアルでは式による計算ではな く推論モデル勾配降下法を使って式を推論し ます。
  • 22. 22 COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. 6 勾配降下法とは 傾きを利用して最小値を求める方法です。 http://goo.gl/1Ce08K チュートリアルでは答えと推論した値の誤差 が最小になるようにモデルを作成します。 学習率を大きくすると発散して学習が進まな い。小さいと学習速度が遅い。学習率:移動 する幅。
  • 23. 23 COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. 6 Shapeとは Tensorflow独特の配列構造を示すShapeがあり ます。これを理解すると理解が早いです。単 純に説明すると配列の次元の組み合わせを表 します。 例) [[1, 2, 3], [4, 5, 6], [7, 8, 9]] → Shapeは3次元(要素)x3次元なので[3, 3] [1] →Shapeは[1] [1,2,3] →Shapeは[3] [[1 2 3] [4 5 6] [7 8 9] [0 2 3]]→Shapeは[4,3] 参考:http://goo.gl/49LMxJ https://goo.gl/6qJqQ2
  • 24. 24 COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. 6 Tensorflowの実行の仕組み test.pyをもとに説明します。python test.pyで 実行。 参考: http://goo.gl/5Up5UH Node Edge 1つのNodeが1つの計算処理op(operation)を表します Sessionが計算の順番、並列処理、リソースの管理をします。 Session
  • 25. 25 COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. 6 test1.py(回帰サンプル)を解説 python test1.pyで実行 ポイント: y=W*x+bの直線式において、 y=0.1*x+0.3の直線にランダムに点を生成しこ のランダムなデータから、この式y=0.1*x+0.3 を推論します。この式が確定すれば値を推論 できるようになるわけです。 y=0.1*x+0.3 ※一般的な最小二乗法ではなく、勾配 降下法を使って解くのがポイント
  • 26. 26 COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. 6 MNIST(ニューラルネット)のチュートリア ルを理解しよう ここにあるMNISTのチュートリアルを理解し ましょう。http://goo.gl/teJPty
  • 27. 27 COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. 6 ニューラルネットワークとは 資料の導入部分を参考に
  • 28. 28 COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. 6 MNISTとは 下記のような手書きの画像とその答え[0-9]の ラベルからなるデータです。この訓練データ を使って手書き文字を認識します。
  • 29. 29 COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. 6 MNISTのデータについて 手書き画像は28x28ピクセルの色の濃さを表し たデータです。
  • 30. 30 COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. 6 MNISTのtrainデータ 28x28=784のデータが55000用意されている。 画像 答え(ラベル) 例えば 3 は [0,0,0,1,0,0,0,0,0,0] になります。最終的にはこれの確率 分布を求めます。
  • 31. 31 COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. 6 Softmax関数とは 活性化関数の一つ 回帰式からラベル(答え)の確率分布を計算しま す。 回帰式 y = W*x +b (Wが画像がラベルに影響する重み。 bがバイアス)これをsoftmax関数で活性化します。 y = softmax(W*x+b) softmax関数:ニューラルネットワークの出力結果を確率(0~1.0)に変換します。 ※下記y1,y2....y10がありそれぞれが0,1,2...9の数値を推測する確率になり ます。
  • 32. 32 COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. 6 test2.py(MNIST)を解説 python test2.pyで実行 ポイント: ?訓練ロジックは回帰のサンプルとほぼおな じ。最後にsoftmax関数を使っているだけ。W とbの値がモデルのパラメータ(これを推測)。 Wとbは配列。 ?検証はテストデータを使って訓練したモデ ルを評価する。 ニューラルネットワークがー階層だけなので DeepLearningではないですね。
  • 33. 33 COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. 6 MNIST(多層化:DeepLearning)のチュー トリアルを理解しよう ここにあるMNISTのチュートリアルを理解し ましょう。http://goo.gl/z1hRCp test2.pyでは784のデータが10のデータにいき なり削減されています。そのため重要な特徴 データが失われている可能性があります。 ニューラルネットワークを多層化して特徴を 残しつつ、データを削減(次元を削減)するのが ポイントです。
  • 34. 34 COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. 6 層の種類 ?畳み込み層 近隣にあるノードの値 次のノードに渡す 活性化関数 ?プーリング層 近隣にあるノードの値の最大値を渡す 特徴を抽出 特徴を強調 例:3x3のパッチを1画像 ずつずらしながら計算
  • 35. 35 COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. 層の種類 ?全結合層 全ての組み合わせを活性化関数で処理 活性化関数
  • 36. 36 COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. 6 CNNの多層化例(主に画像処理) 入 力 層 畳 み 込 み 層 プ | リ ン グ 層 畳 み 込 み 層 プ | リ ン グ 層 全 結 合 層 出 力 層 第一層 第二層
  • 37. 37 COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. test3.py(MNIST:DeepLearning)を解説 ポイント: ?層は[第1層→第2層→全結合層]になっている ?層での計算後test2.pyと同じくsoftmax関数を使っ ている。 ?第1層、第2層は[畳み込み層+プーリング層]から なる ?Wが特徴(重み)で、x(画像)をかけることにより特 徴を抽出。xは前の層からわたってくる。なので基本 式:y=W*x+bでWとbを推測することは変わらない。 ? reluなどは活性化関数。入力出力結果を調整。 https://goo.gl/StpYXm ※次頁のイメージがあると分かりやすい
  • 38. 38 COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. 6 6 第1層 畳み込み層 + プーリング層 第2層 畳み込み層 + プーリング層 全結合層 Softmax dropout層で 過学習を防ぐ 28x28=784 14x14x32=6272 7x7x64=3136 1024 10 第1層、2層の特徴データは次ページのようになります
  • 39. 39 COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. 6 1層目 32の特徴(W) テストデータ↓ テストデータに 特徴を適用 ※学習時には、 前の層の出力 データと特徴W をかけて答えに 近くなるように Wを考える
  • 40. 40 COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. 6 2層目(特徴が64(W)あるので2行に表示)
  • 41. 41 COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. 6 参考書籍 http://goo.gl/nraR0R ライブラリーはTensorflow ではなくCaffeを使ってい ます。DeepLearningの仕組 みの理解に役立ちます。 http://amzn.to/2lMkDQ7 ブラックボックスな活性 化関数や最小化の関数の アルゴリズムが記載され ています。 http://amzn.to/2vY44Vx 簡単な式で簡潔に説明されています。 NNの式を完全に理解したいときに便利。 画像分類が目的ならkerasが簡単。 http://qiita.com/tsunaki/items/608ff3cd941d82cd656b Udemy https://goo.gl/fCcQyE
  • 42. 42 COPYRIGHT(C) TECHNOMOBILE ALL RIGHTS RESERVED. 6 ?DeepLearningを使った画像サービスの提案 ?画像認識を使ったPOSレジ(打ち込みが不 要なので会計が早い) 例)ECサイトで、自分で撮影した写真の服 に似た服をレコメンド。 適用事例(経営者?営業担当の方に)

Editor's Notes

  1. 弊社がご提供しているソリューション内容です。 企画から運営?保守にいたるまでを一気通貫で、 軸となるコンシューマ向けの大規模Webシステムをはじめ、スマホアプリ、ゲーム開発などをご提供しております。 特に大きな実績として、大規模ECシステム、求人検索サイトの開発となっております。 他にも音楽DLサイトや、業務を効率する管理系のシステムの実績も多数あります。 (30秒)