SlideShare a Scribd company logo
1 of 21
Download to read offline
Copyright © 2018 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.
Keras/TesorFlowによる
ディープラーニング事始め
2018年1月27日
TensorFlow勉強会シリーズ2 成果報告会
野田 洋之 (個人会員)
Copyright © 2018 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.
Kerasとは
• 高水準のニューラルネットワークライブラリ
– 迅速に、シンプルに、ニューラルネットが実装できる
• バックエンドとして TensorFlow をサポート
• 日本語のドキュメントが整備されている
2
Keras Documentation (https://keras.io/ja/)
Copyright © 2018 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.
今回やったこと
Keras により手書き文字データセット MINIST の学習、および
予測を実行。モデルはシンプルな全結合3層のネットワーク。
• ベースは Keras examples directory のサンプル
mnist_mlp.py
• ベースに対し次の点を変更
➢訓練データとテスト用データの構成を変更
➢TensorBoard用のコールバックを追加
➢学習済みモデルにより予測をするコードを追加
3
Copyright © 2018 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.
MNISTとは
28x28ピクセル、グレースケールの手書き数字のデータセット。
訓練データ6万枚、テストデータ1万枚。
機械学習の実験用データとして使われることが多い。
個々のデータは入力データ(画像データ)と教師データ
(正解データ)のペアで与えられている。
4
入力データ
(画像データ)
教師データ
正解データ
6 2 4 3 4 1 0 6
Copyright © 2018 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.
訓練データの分割
今回、学習済みモデルでの予測をするため、学習には
MNISTの訓練データを8:2に分割して使用。
5
訓練データ
(60,000枚)
テストデータ
(10,000枚)
テストデータ (test data)
(10,000枚)
訓練データ (training data)
(48,000枚)
検証データ (validation data)
(12,000枚)
学習に使用
学習済みモデルによる
予測に使用
Copyright © 2018 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.
環境&インストール
 環境
OS : Ubuntu 16.04 LTS (X64)
Python : 3.5.4 (pyenv-virtualenv)
TensorFlow : 1.4.1
Keras : 2.1.3
 インストール
pyenv-virtualenv 環境から pip でインストール。
• Keras/TensorFlow 関連のパッケージ
6
> pip install keras tensorflow jupyter
• その他のパッケージ。
> pip install jupyter pandas matplotlib sklearn pydot
Copyright © 2018 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.
モデル
7
 モデル
ディープラーニングでは、ニューラルネットワークのこと。
➢ ハイパーパラメータ
学習で決定できないパラメータ。
• モデルの層の数、活性化関数などモデルの構造に関わる
パラメータ
• ドロップアウトの割合、学習率など、学習の際のパラメータ
➢ パラメータ
学習で決定するパラメータ。バイアス、重みなど。
Copyright © 2018 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.
学習と予測
8
 学習
訓練データと教師データのペアを入力として、最適化アルゴ
リズムにより、損失が最小となるモデルのパラメータを決定
する。損失は、訓練データをモデルに入力し得られた出力と
教師データとの差で、損失関数で計算する。
 予測
回帰や分類において、学習済みモデルにデータを入力し、
予測値を得ること。
Copyright © 2018 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.
エポックとバッチサイズ
 エポック
全訓練データを1回学習に用いると1エポック。
学習のエポック数が6の場合、全訓練データを用いた学習を
6回繰り返す。
 バッチサイズ
学習の際、訓練データからバッチサイズ数のデータを無作為
に抜き出し、最適化アルゴリズムによりパラメータを更新する
(ミニバッチ学習)。訓練データが48,000個、バッチサイズが
100の場合、1エポックで480回ミニバッチ学習を実行する。
9
Copyright © 2018 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.
AND回路, OR回路
10
𝑥1 𝑥2 𝑦
0 0 0
1 0 0
0 1 0
1 1 1
𝑥1
𝑥2
𝑦
𝑥1
𝑥2
𝑦
𝑥1 𝑥2 𝑦
0 0 0
1 0 0
0 1 0
1 1 1
Copyright © 2018 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.
AND回路、OR回路のモデル
AND回路、OR回路は1層のモデルで学習できる。
11
model = Sequential()
model.add(Dense(units=1,
activation='sigmoid',
input_shape=(2,)))
𝑦 = ℎ 𝑏 + 𝑤1 𝑥1 + 𝑤2 𝑥2
𝑤 : 重み
𝑏 : バイアス
ℎ() : 活性化関数
𝑥1
1
𝑥2
𝑦1
𝑤1
𝑤2
𝑏
入力の形状
出力の形状
活性化関数
通常の全結合ニューラル
ネットワークレイヤー
入力層 出力層
○ はノード,ニューロン
Copyright © 2018 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.
ExOR回路
ExOR回路はAND回路とOR回路で実現できる。
12
𝑥1
𝑥2
𝑦
𝑥1 𝑥2 𝑦
0 0 0
1 0 1
0 1 1
1 1 0
Copyright © 2018 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.
ExOR回路のモデル
ExOR回路は2層のモデルで学習できる。
13
model = Sequential()
model.add(Dense(units=2,
activation='relu’,
input_shape=(2,)))
model.add(Dense(units=1,
activation='sigmoid’))
𝑥21
1
𝑥22
𝑦1
𝑤12
(1)
𝑥11
1
𝑥12
𝑤11
(1)
𝑤22
(1)
𝑤21
(1)
𝑏1
(1)
𝑏2
(1)
𝑏1
(2)
𝑤11
(2)
𝑤12
(2)
入力層 出力層中間層
(隠れ層)
Copyright © 2018 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.
MNISTサンプルプログラムのモデル
KerasのMNISTサンプルプログラム (mnist_mlp.py) のモデル。
シンプルな全結合3層のネットワーク。
14
model = Sequential()
model.add(Dense(512, activation='relu', input_shape=(28*28,)))
model.add(Dropout(0.2))
model.add(Dense(512, activation='relu'))
model.add(Dropout(0.2))
model.add(Dense(num_classes, activation='softmax'))
Copyright © 2018 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.
ドロップアウト
ドロップアウトは、学習の際、一定割合で使用しないノードを
設定することで、予測に寄与しないノードが発生するのを
抑止する。ミニバッチごとに設定される。
15
Copyright © 2018 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.
活性化関数
ノードの入力の総和を変換する関数。
• 非線形関数であること
• 微分可能であること
16
適用 種類 関数名 説明
中間層 ReLU関数 relu ℎ(𝑥) = max 0, 𝑥 = ቊ
0 (𝑥 < 0)
𝑥 (𝑥 ≥ 0)
出力層
回帰 恒等関数 linear ℎ(𝑥) = 𝑥 線形分類器。
分類
(2値変数)
シグモイド
関数
sigmoid
出力は0から1.0の間の実数。
確率変数の出力に利用。
分類
(多値変数)
ソフトマックス
関数
softmax
出力は0から1.0の間の実数。
出力の総和は1。
ソフトマックス関数の出力は確率と解
釈できる。
上記以外にも様々な活性化関数が用意されている。
活性化関数 - Keras Documentation
Copyright © 2018 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.
損失関数
モデルの出力と教師データ(正解データ)との差を計算する
関数。モデルをコンパイルする際に指定する。
17
適用 種類 関数名 説明
回帰 2乗和誤差 mean_squared_error
分類
(2値変数)
交差エントロピー
誤差
binary_crossentropy
分類
(多値変数)
交差エントロピー
誤差
categorical_crossentropy
上記以外にも様々な損失関数が用意されている。
損失関数 - Keras Documentation
Copyright © 2018 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.
最適化アルゴリズム
ミニバッチ学習の際、最適なパラメータを計算するための
アルゴリズム。モデルをコンパイルする際に指定する。
Keras で利用可能な最適化アルゴリズムは
最適化 - Keras Documentation を参照。
学習率など、いくつかのハイパーパラメータは、最適化アルゴリズムから
設定できる。
 学習率
学習の際、どれくらいパラメータを更新するか、調整するハイパー
パラメータ。大きすぎると発散し、小さすぎると学習が進まない。
18
Copyright © 2018 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.
分類(多値変数)のお約束
分類(多値変数)の予測モデルを構築する際(損失関数として
categorical_crossentropy を使用する際)、お約束がある。
 モデルの出力
モデルの出力は教師データのカテゴリ数とする。
MNISTの場合、0~9の10カテゴリなので、10次元とする。
 教師データ
教師データを、次元がカテゴリ数のone-hot表現に変換する。one-hot表現
は、カテゴリに対応する次元が1、それ以外が0のベクトル。Kerasでは
keras.utils.to_categorical 関数で、カテゴリカル変数をone-hot表現に変換で
きる。
19
損失関数 - Keras Documentation より抜粋
Copyright © 2018 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.
TensorBoardログ出力
コールバックにより、TensorBoardのログの出力ができる。
コールバックに登録した関数は学習の際に実行される。
20
tb_cb = keras.callbacks.TensorBoard(log_dir=tb_log_dir, histogram_freq=1)
cbks = [tb_cb]
keras.callbacks.TensorBoard メソッドのインスタンスを取得。
log_dir : ログの出力先
histogram_freq : モデルの層の活性化ヒストグラムを計算する(エポック中の)頻度
history = model.fit(x_train, y_train,
batch_size=batch_size,
epochs=epochs,
callbacks=cbks,
verbose=1,
validation_data=(x_target, y_target))
学習を実行する際、オプションにコールバックのインスタンスを指定。
Copyright © 2018 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.
TensorBoardログ出力
学習完了後、 tensorboard コマンドを実行。ブラウザで
TensorBoard サーバー(デフォルトはポート6006)にアクセス。
21
> tensorboard --logdir [tensorboard_log_dir]

More Related Content

What's hot

PythonによるDeep Learningの実装
PythonによるDeep Learningの実装PythonによるDeep Learningの実装
PythonによるDeep Learningの実装Shinya Akiba
 
(公開版)FPGAエクストリームコンピューティング2017
(公開版)FPGAエクストリームコンピューティング2017 (公開版)FPGAエクストリームコンピューティング2017
(公開版)FPGAエクストリームコンピューティング2017 Hiroki Nakahara
 
ICLR2020読み会 (neural-tangents)
ICLR2020読み会 (neural-tangents)ICLR2020読み会 (neural-tangents)
ICLR2020読み会 (neural-tangents)RyuichiKanoh
 
[DL輪読会]Auto-DeepLab: Hierarchical Neural Architecture Search for Semantic Ima...
[DL輪読会]Auto-DeepLab: Hierarchical Neural Architecture Search for Semantic Ima...[DL輪読会]Auto-DeepLab: Hierarchical Neural Architecture Search for Semantic Ima...
[DL輪読会]Auto-DeepLab: Hierarchical Neural Architecture Search for Semantic Ima...Deep Learning JP
 
[論文紹介] Convolutional Neural Network(CNN)による超解像
[論文紹介] Convolutional Neural Network(CNN)による超解像[論文紹介] Convolutional Neural Network(CNN)による超解像
[論文紹介] Convolutional Neural Network(CNN)による超解像Rei Takami
 
これから始める人のためのディープラーニング基礎講座
これから始める人のためのディープラーニング基礎講座これから始める人のためのディープラーニング基礎講座
これから始める人のためのディープラーニング基礎講座NVIDIA Japan
 
Chainer/CuPy v5 and Future (Japanese)
Chainer/CuPy v5 and Future (Japanese)Chainer/CuPy v5 and Future (Japanese)
Chainer/CuPy v5 and Future (Japanese)Seiya Tokui
 
Res netと派生研究の紹介
Res netと派生研究の紹介Res netと派生研究の紹介
Res netと派生研究の紹介masataka nishimori
 
Clustering of time series subsequences is meaningless 解説
Clustering of time series subsequences is meaningless 解説Clustering of time series subsequences is meaningless 解説
Clustering of time series subsequences is meaningless 解説Osamu Masutani
 
第3回機械学習勉強会「色々なNNフレームワークを動かしてみよう」-Keras編-
第3回機械学習勉強会「色々なNNフレームワークを動かしてみよう」-Keras編-第3回機械学習勉強会「色々なNNフレームワークを動かしてみよう」-Keras編-
第3回機械学習勉強会「色々なNNフレームワークを動かしてみよう」-Keras編-Yasuyuki Sugai
 
[DL輪読会]Deep Face Recognition: A Survey
[DL輪読会]Deep Face Recognition: A Survey[DL輪読会]Deep Face Recognition: A Survey
[DL輪読会]Deep Face Recognition: A SurveyDeep Learning JP
 
Cvim saisentan-6-4-tomoaki
Cvim saisentan-6-4-tomoakiCvim saisentan-6-4-tomoaki
Cvim saisentan-6-4-tomoakitomoaki0705
 
Densely Connected Convolutional Networks
Densely Connected Convolutional NetworksDensely Connected Convolutional Networks
Densely Connected Convolutional Networksharmonylab
 
CNNチュートリアル
CNNチュートリアルCNNチュートリアル
CNNチュートリアルIkuro Sato
 
モデルアーキテクチャ観点からのDeep Neural Network高速化
モデルアーキテクチャ観点からのDeep Neural Network高速化モデルアーキテクチャ観点からのDeep Neural Network高速化
モデルアーキテクチャ観点からのDeep Neural Network高速化Yusuke Uchida
 
Introduction to Chainer and CuPy
Introduction to Chainer and CuPyIntroduction to Chainer and CuPy
Introduction to Chainer and CuPyKenta Oono
 
ChainerでDeep Learningを試すために必要なこと
ChainerでDeep Learningを試すために必要なことChainerでDeep Learningを試すために必要なこと
ChainerでDeep Learningを試すために必要なことRetrieva inc.
 
Deep Learning技術の最近の動向とPreferred Networksの取り組み
Deep Learning技術の最近の動向とPreferred Networksの取り組みDeep Learning技術の最近の動向とPreferred Networksの取り組み
Deep Learning技術の最近の動向とPreferred Networksの取り組みKenta Oono
 

What's hot (20)

PythonによるDeep Learningの実装
PythonによるDeep Learningの実装PythonによるDeep Learningの実装
PythonによるDeep Learningの実装
 
SeRanet
SeRanetSeRanet
SeRanet
 
(公開版)FPGAエクストリームコンピューティング2017
(公開版)FPGAエクストリームコンピューティング2017 (公開版)FPGAエクストリームコンピューティング2017
(公開版)FPGAエクストリームコンピューティング2017
 
ICLR2020読み会 (neural-tangents)
ICLR2020読み会 (neural-tangents)ICLR2020読み会 (neural-tangents)
ICLR2020読み会 (neural-tangents)
 
[DL輪読会]Auto-DeepLab: Hierarchical Neural Architecture Search for Semantic Ima...
[DL輪読会]Auto-DeepLab: Hierarchical Neural Architecture Search for Semantic Ima...[DL輪読会]Auto-DeepLab: Hierarchical Neural Architecture Search for Semantic Ima...
[DL輪読会]Auto-DeepLab: Hierarchical Neural Architecture Search for Semantic Ima...
 
[論文紹介] Convolutional Neural Network(CNN)による超解像
[論文紹介] Convolutional Neural Network(CNN)による超解像[論文紹介] Convolutional Neural Network(CNN)による超解像
[論文紹介] Convolutional Neural Network(CNN)による超解像
 
これから始める人のためのディープラーニング基礎講座
これから始める人のためのディープラーニング基礎講座これから始める人のためのディープラーニング基礎講座
これから始める人のためのディープラーニング基礎講座
 
Chainer/CuPy v5 and Future (Japanese)
Chainer/CuPy v5 and Future (Japanese)Chainer/CuPy v5 and Future (Japanese)
Chainer/CuPy v5 and Future (Japanese)
 
Res netと派生研究の紹介
Res netと派生研究の紹介Res netと派生研究の紹介
Res netと派生研究の紹介
 
Clustering of time series subsequences is meaningless 解説
Clustering of time series subsequences is meaningless 解説Clustering of time series subsequences is meaningless 解説
Clustering of time series subsequences is meaningless 解説
 
第3回機械学習勉強会「色々なNNフレームワークを動かしてみよう」-Keras編-
第3回機械学習勉強会「色々なNNフレームワークを動かしてみよう」-Keras編-第3回機械学習勉強会「色々なNNフレームワークを動かしてみよう」-Keras編-
第3回機械学習勉強会「色々なNNフレームワークを動かしてみよう」-Keras編-
 
20150930
2015093020150930
20150930
 
[DL輪読会]Deep Face Recognition: A Survey
[DL輪読会]Deep Face Recognition: A Survey[DL輪読会]Deep Face Recognition: A Survey
[DL輪読会]Deep Face Recognition: A Survey
 
Cvim saisentan-6-4-tomoaki
Cvim saisentan-6-4-tomoakiCvim saisentan-6-4-tomoaki
Cvim saisentan-6-4-tomoaki
 
Densely Connected Convolutional Networks
Densely Connected Convolutional NetworksDensely Connected Convolutional Networks
Densely Connected Convolutional Networks
 
CNNチュートリアル
CNNチュートリアルCNNチュートリアル
CNNチュートリアル
 
モデルアーキテクチャ観点からのDeep Neural Network高速化
モデルアーキテクチャ観点からのDeep Neural Network高速化モデルアーキテクチャ観点からのDeep Neural Network高速化
モデルアーキテクチャ観点からのDeep Neural Network高速化
 
Introduction to Chainer and CuPy
Introduction to Chainer and CuPyIntroduction to Chainer and CuPy
Introduction to Chainer and CuPy
 
ChainerでDeep Learningを試すために必要なこと
ChainerでDeep Learningを試すために必要なことChainerでDeep Learningを試すために必要なこと
ChainerでDeep Learningを試すために必要なこと
 
Deep Learning技術の最近の動向とPreferred Networksの取り組み
Deep Learning技術の最近の動向とPreferred Networksの取り組みDeep Learning技術の最近の動向とPreferred Networksの取り組み
Deep Learning技術の最近の動向とPreferred Networksの取り組み
 

Similar to 2018年01月27日 Keras/TesorFlowによるディープラーニング事始め

CPU / GPU高速化セミナー!性能モデルの理論と実践:理論編
CPU / GPU高速化セミナー!性能モデルの理論と実践:理論編CPU / GPU高速化セミナー!性能モデルの理論と実践:理論編
CPU / GPU高速化セミナー!性能モデルの理論と実践:理論編Fixstars Corporation
 
超個体性をもったエッジコンピューティング実現に向けたElixir/Nerves環境の適合性評価
超個体性をもったエッジコンピューティング実現に向けたElixir/Nerves環境の適合性評価超個体性をもったエッジコンピューティング実現に向けたElixir/Nerves環境の適合性評価
超個体性をもったエッジコンピューティング実現に向けたElixir/Nerves環境の適合性評価Shunsuke Kikuchi
 
[AI08] 深層学習フレームワーク Chainer × Microsoft で広がる応用
[AI08] 深層学習フレームワーク Chainer × Microsoft で広がる応用[AI08] 深層学習フレームワーク Chainer × Microsoft で広がる応用
[AI08] 深層学習フレームワーク Chainer × Microsoft で広がる応用de:code 2017
 
MySQL Cluster 解説 & MySQL Cluster 7.3 最新情報
MySQL Cluster 解説 & MySQL Cluster 7.3 最新情報MySQL Cluster 解説 & MySQL Cluster 7.3 最新情報
MySQL Cluster 解説 & MySQL Cluster 7.3 最新情報yoyamasaki
 
マルチレイヤコンパイラ基盤による、エッジ向けディープラーニングの実装と最適化について
マルチレイヤコンパイラ基盤による、エッジ向けディープラーニングの実装と最適化についてマルチレイヤコンパイラ基盤による、エッジ向けディープラーニングの実装と最適化について
マルチレイヤコンパイラ基盤による、エッジ向けディープラーニングの実装と最適化についてFixstars Corporation
 
Vldb2002 report-200210231500
Vldb2002 report-200210231500Vldb2002 report-200210231500
Vldb2002 report-200210231500Takeo Kunishima
 
[db tech showcase Tokyo 2014] C31: PostgreSQLをエンタープライズシステムで利用しよう by PostgreS...
[db tech showcase Tokyo 2014] C31: PostgreSQLをエンタープライズシステムで利用しよう  by PostgreS...[db tech showcase Tokyo 2014] C31: PostgreSQLをエンタープライズシステムで利用しよう  by PostgreS...
[db tech showcase Tokyo 2014] C31: PostgreSQLをエンタープライズシステムで利用しよう by PostgreS...Insight Technology, Inc.
 
Chainer on Azure 2 年の歴史
Chainer on Azure 2 年の歴史Chainer on Azure 2 年の歴史
Chainer on Azure 2 年の歴史Hirono Jumpei
 
Autonomous選手権システムエグゼ社発表資料
Autonomous選手権システムエグゼ社発表資料Autonomous選手権システムエグゼ社発表資料
Autonomous選手権システムエグゼ社発表資料Mai Nagahisa
 
第9回ACRiウェビナー_日立/島田様ご講演資料
第9回ACRiウェビナー_日立/島田様ご講演資料第9回ACRiウェビナー_日立/島田様ご講演資料
第9回ACRiウェビナー_日立/島田様ご講演資料直久 住川
 
CMD2021 f01 xilinx_20210921_r1.1
CMD2021 f01 xilinx_20210921_r1.1CMD2021 f01 xilinx_20210921_r1.1
CMD2021 f01 xilinx_20210921_r1.1Yoshihiro Horie
 
インメモリーで超高速処理を実現する場合のカギ
インメモリーで超高速処理を実現する場合のカギインメモリーで超高速処理を実現する場合のカギ
インメモリーで超高速処理を実現する場合のカギMasaki Yamakawa
 
今秋リリース予定のPostgreSQL11を徹底解説
今秋リリース予定のPostgreSQL11を徹底解説今秋リリース予定のPostgreSQL11を徹底解説
今秋リリース予定のPostgreSQL11を徹底解説Masahiko Sawada
 
2020/11/19 Global AI on Tour - Toyama プログラマーのための機械学習入門
2020/11/19 Global AI on Tour - Toyama プログラマーのための機械学習入門2020/11/19 Global AI on Tour - Toyama プログラマーのための機械学習入門
2020/11/19 Global AI on Tour - Toyama プログラマーのための機械学習入門Daiyu Hatakeyama
 
OpenStack Summit November 2014 Paris出張報告
OpenStack Summit November 2014 Paris出張報告OpenStack Summit November 2014 Paris出張報告
OpenStack Summit November 2014 Paris出張報告Mitsuhiro SHIGEMATSU
 
Orb dlt technical_overview(特許情報なし)
Orb dlt technical_overview(特許情報なし)Orb dlt technical_overview(特許情報なし)
Orb dlt technical_overview(特許情報なし)Wataru Fukatsu
 
DAシンポジウム2019招待講演「深層学習モデルの高速なTraining/InferenceのためのHW/SW技術」 金子紘也hare
DAシンポジウム2019招待講演「深層学習モデルの高速なTraining/InferenceのためのHW/SW技術」 金子紘也hareDAシンポジウム2019招待講演「深層学習モデルの高速なTraining/InferenceのためのHW/SW技術」 金子紘也hare
DAシンポジウム2019招待講演「深層学習モデルの高速なTraining/InferenceのためのHW/SW技術」 金子紘也harePreferred Networks
 
AngulaとElixirの新しい関係
AngulaとElixirの新しい関係AngulaとElixirの新しい関係
AngulaとElixirの新しい関係陸 谷出
 
ついにリリース!! MySQL 8.0 最新情報
ついにリリース!! MySQL 8.0 最新情報ついにリリース!! MySQL 8.0 最新情報
ついにリリース!! MySQL 8.0 最新情報yoyamasaki
 
運用中のゲームにAIを導入するには〜プロジェクト推進・ユースケース・運用〜 [DeNA TechCon 2019]
運用中のゲームにAIを導入するには〜プロジェクト推進・ユースケース・運用〜 [DeNA TechCon 2019]運用中のゲームにAIを導入するには〜プロジェクト推進・ユースケース・運用〜 [DeNA TechCon 2019]
運用中のゲームにAIを導入するには〜プロジェクト推進・ユースケース・運用〜 [DeNA TechCon 2019]DeNA
 

Similar to 2018年01月27日 Keras/TesorFlowによるディープラーニング事始め (20)

CPU / GPU高速化セミナー!性能モデルの理論と実践:理論編
CPU / GPU高速化セミナー!性能モデルの理論と実践:理論編CPU / GPU高速化セミナー!性能モデルの理論と実践:理論編
CPU / GPU高速化セミナー!性能モデルの理論と実践:理論編
 
超個体性をもったエッジコンピューティング実現に向けたElixir/Nerves環境の適合性評価
超個体性をもったエッジコンピューティング実現に向けたElixir/Nerves環境の適合性評価超個体性をもったエッジコンピューティング実現に向けたElixir/Nerves環境の適合性評価
超個体性をもったエッジコンピューティング実現に向けたElixir/Nerves環境の適合性評価
 
[AI08] 深層学習フレームワーク Chainer × Microsoft で広がる応用
[AI08] 深層学習フレームワーク Chainer × Microsoft で広がる応用[AI08] 深層学習フレームワーク Chainer × Microsoft で広がる応用
[AI08] 深層学習フレームワーク Chainer × Microsoft で広がる応用
 
MySQL Cluster 解説 & MySQL Cluster 7.3 最新情報
MySQL Cluster 解説 & MySQL Cluster 7.3 最新情報MySQL Cluster 解説 & MySQL Cluster 7.3 最新情報
MySQL Cluster 解説 & MySQL Cluster 7.3 最新情報
 
マルチレイヤコンパイラ基盤による、エッジ向けディープラーニングの実装と最適化について
マルチレイヤコンパイラ基盤による、エッジ向けディープラーニングの実装と最適化についてマルチレイヤコンパイラ基盤による、エッジ向けディープラーニングの実装と最適化について
マルチレイヤコンパイラ基盤による、エッジ向けディープラーニングの実装と最適化について
 
Vldb2002 report-200210231500
Vldb2002 report-200210231500Vldb2002 report-200210231500
Vldb2002 report-200210231500
 
[db tech showcase Tokyo 2014] C31: PostgreSQLをエンタープライズシステムで利用しよう by PostgreS...
[db tech showcase Tokyo 2014] C31: PostgreSQLをエンタープライズシステムで利用しよう  by PostgreS...[db tech showcase Tokyo 2014] C31: PostgreSQLをエンタープライズシステムで利用しよう  by PostgreS...
[db tech showcase Tokyo 2014] C31: PostgreSQLをエンタープライズシステムで利用しよう by PostgreS...
 
Chainer on Azure 2 年の歴史
Chainer on Azure 2 年の歴史Chainer on Azure 2 年の歴史
Chainer on Azure 2 年の歴史
 
Autonomous選手権システムエグゼ社発表資料
Autonomous選手権システムエグゼ社発表資料Autonomous選手権システムエグゼ社発表資料
Autonomous選手権システムエグゼ社発表資料
 
第9回ACRiウェビナー_日立/島田様ご講演資料
第9回ACRiウェビナー_日立/島田様ご講演資料第9回ACRiウェビナー_日立/島田様ご講演資料
第9回ACRiウェビナー_日立/島田様ご講演資料
 
CMD2021 f01 xilinx_20210921_r1.1
CMD2021 f01 xilinx_20210921_r1.1CMD2021 f01 xilinx_20210921_r1.1
CMD2021 f01 xilinx_20210921_r1.1
 
インメモリーで超高速処理を実現する場合のカギ
インメモリーで超高速処理を実現する場合のカギインメモリーで超高速処理を実現する場合のカギ
インメモリーで超高速処理を実現する場合のカギ
 
今秋リリース予定のPostgreSQL11を徹底解説
今秋リリース予定のPostgreSQL11を徹底解説今秋リリース予定のPostgreSQL11を徹底解説
今秋リリース予定のPostgreSQL11を徹底解説
 
2020/11/19 Global AI on Tour - Toyama プログラマーのための機械学習入門
2020/11/19 Global AI on Tour - Toyama プログラマーのための機械学習入門2020/11/19 Global AI on Tour - Toyama プログラマーのための機械学習入門
2020/11/19 Global AI on Tour - Toyama プログラマーのための機械学習入門
 
OpenStack Summit November 2014 Paris出張報告
OpenStack Summit November 2014 Paris出張報告OpenStack Summit November 2014 Paris出張報告
OpenStack Summit November 2014 Paris出張報告
 
Orb dlt technical_overview(特許情報なし)
Orb dlt technical_overview(特許情報なし)Orb dlt technical_overview(特許情報なし)
Orb dlt technical_overview(特許情報なし)
 
DAシンポジウム2019招待講演「深層学習モデルの高速なTraining/InferenceのためのHW/SW技術」 金子紘也hare
DAシンポジウム2019招待講演「深層学習モデルの高速なTraining/InferenceのためのHW/SW技術」 金子紘也hareDAシンポジウム2019招待講演「深層学習モデルの高速なTraining/InferenceのためのHW/SW技術」 金子紘也hare
DAシンポジウム2019招待講演「深層学習モデルの高速なTraining/InferenceのためのHW/SW技術」 金子紘也hare
 
AngulaとElixirの新しい関係
AngulaとElixirの新しい関係AngulaとElixirの新しい関係
AngulaとElixirの新しい関係
 
ついにリリース!! MySQL 8.0 最新情報
ついにリリース!! MySQL 8.0 最新情報ついにリリース!! MySQL 8.0 最新情報
ついにリリース!! MySQL 8.0 最新情報
 
運用中のゲームにAIを導入するには〜プロジェクト推進・ユースケース・運用〜 [DeNA TechCon 2019]
運用中のゲームにAIを導入するには〜プロジェクト推進・ユースケース・運用〜 [DeNA TechCon 2019]運用中のゲームにAIを導入するには〜プロジェクト推進・ユースケース・運用〜 [DeNA TechCon 2019]
運用中のゲームにAIを導入するには〜プロジェクト推進・ユースケース・運用〜 [DeNA TechCon 2019]
 

More from aitc_jp

ITフォーラム2024 AITCセッション(5)
ITフォーラム2024 AITCセッション(5)ITフォーラム2024 AITCセッション(5)
ITフォーラム2024 AITCセッション(5)aitc_jp
 
ITフォーラム2024 AITCセッション(4)
ITフォーラム2024 AITCセッション(4)ITフォーラム2024 AITCセッション(4)
ITフォーラム2024 AITCセッション(4)aitc_jp
 
ITフォーラム2024 AITCセッション(3)
ITフォーラム2024 AITCセッション(3)ITフォーラム2024 AITCセッション(3)
ITフォーラム2024 AITCセッション(3)aitc_jp
 
ITフォーラム2024 AITCセッション(2)
ITフォーラム2024 AITCセッション(2)ITフォーラム2024 AITCセッション(2)
ITフォーラム2024 AITCセッション(2)aitc_jp
 
ITフォーラム2024 AITCセッション
ITフォーラム2024  AITCセッションITフォーラム2024  AITCセッション
ITフォーラム2024 AITCセッションaitc_jp
 
2)AIを活用したウェルビーイングを測定
2)AIを活用したウェルビーイングを測定2)AIを活用したウェルビーイングを測定
2)AIを活用したウェルビーイングを測定aitc_jp
 
TForum2023_AITC_2.pdf
TForum2023_AITC_2.pdfTForum2023_AITC_2.pdf
TForum2023_AITC_2.pdfaitc_jp
 
2)AIを活用したウェルビーイングを測定
2)AIを活用したウェルビーイングを測定2)AIを活用したウェルビーイングを測定
2)AIを活用したウェルビーイングを測定aitc_jp
 
5)パネルディスカッション:『空気を読む家』×ウェルビーイング/メタバース・Web3
5)パネルディスカッション:『空気を読む家』×ウェルビーイング/メタバース・Web35)パネルディスカッション:『空気を読む家』×ウェルビーイング/メタバース・Web3
5)パネルディスカッション:『空気を読む家』×ウェルビーイング/メタバース・Web3aitc_jp
 
4)技術視点でウェルビーイングを考える
4)技術視点でウェルビーイングを考える4)技術視点でウェルビーイングを考える
4)技術視点でウェルビーイングを考えるaitc_jp
 
3-2)『空気を読む家』とメタバース駆動開発構想
3-2)『空気を読む家』とメタバース駆動開発構想3-2)『空気を読む家』とメタバース駆動開発構想
3-2)『空気を読む家』とメタバース駆動開発構想aitc_jp
 
3-1)『空気を読む家』とメタバース駆動開発構想 空間OS モノと社会をつなげる
3-1)『空気を読む家』とメタバース駆動開発構想   空間OS モノと社会をつなげる3-1)『空気を読む家』とメタバース駆動開発構想   空間OS モノと社会をつなげる
3-1)『空気を読む家』とメタバース駆動開発構想 空間OS モノと社会をつなげるaitc_jp
 
1)空気を読む家』のこれまでの取り組み
1)空気を読む家』のこれまでの取り組み1)空気を読む家』のこれまでの取り組み
1)空気を読む家』のこれまでの取り組みaitc_jp
 
2022/07/22 AITC 第4回オープンラボ「メタバース応用編~空間OSのこれまでとこれから~」セッション2 「空間OSと空気を読む家の実証」
2022/07/22 AITC 第4回オープンラボ「メタバース応用編~空間OSのこれまでとこれから~」セッション2 「空間OSと空気を読む家の実証」2022/07/22 AITC 第4回オープンラボ「メタバース応用編~空間OSのこれまでとこれから~」セッション2 「空間OSと空気を読む家の実証」
2022/07/22 AITC 第4回オープンラボ「メタバース応用編~空間OSのこれまでとこれから~」セッション2 「空間OSと空気を読む家の実証」aitc_jp
 
2022/07/22 AITC 第4回オープンラボ「メタバース応用編~空間OSのこれまでとこれから~」セッション1 「空間OSとメタバース」
2022/07/22 AITC 第4回オープンラボ「メタバース応用編~空間OSのこれまでとこれから~」セッション1 「空間OSとメタバース」2022/07/22 AITC 第4回オープンラボ「メタバース応用編~空間OSのこれまでとこれから~」セッション1 「空間OSとメタバース」
2022/07/22 AITC 第4回オープンラボ「メタバース応用編~空間OSのこれまでとこれから~」セッション1 「空間OSとメタバース」aitc_jp
 
2022/04/20 AITCオープンラボ第2回「田園都市国家構想とデジタル政策について」
2022/04/20 AITCオープンラボ第2回「田園都市国家構想とデジタル政策について」2022/04/20 AITCオープンラボ第2回「田園都市国家構想とデジタル政策について」
2022/04/20 AITCオープンラボ第2回「田園都市国家構想とデジタル政策について」aitc_jp
 
2022/03/23 AITCオープンラボ第1回「メタ―バース入門」
2022/03/23 AITCオープンラボ第1回「メタ―バース入門」2022/03/23 AITCオープンラボ第1回「メタ―バース入門」
2022/03/23 AITCオープンラボ第1回「メタ―バース入門」aitc_jp
 
ITフォーラム2022 先端IT活用推進コミュニティ(3-1)
ITフォーラム2022 先端IT活用推進コミュニティ(3-1)ITフォーラム2022 先端IT活用推進コミュニティ(3-1)
ITフォーラム2022 先端IT活用推進コミュニティ(3-1)aitc_jp
 
ITフォーラム2022 先端IT活用推進コミュニティ(5-2)
ITフォーラム2022 先端IT活用推進コミュニティ(5-2)ITフォーラム2022 先端IT活用推進コミュニティ(5-2)
ITフォーラム2022 先端IT活用推進コミュニティ(5-2)aitc_jp
 
ITフォーラム2022 先端IT活用推進コミュニティ(5-1)
ITフォーラム2022 先端IT活用推進コミュニティ(5-1)ITフォーラム2022 先端IT活用推進コミュニティ(5-1)
ITフォーラム2022 先端IT活用推進コミュニティ(5-1)aitc_jp
 

More from aitc_jp (20)

ITフォーラム2024 AITCセッション(5)
ITフォーラム2024 AITCセッション(5)ITフォーラム2024 AITCセッション(5)
ITフォーラム2024 AITCセッション(5)
 
ITフォーラム2024 AITCセッション(4)
ITフォーラム2024 AITCセッション(4)ITフォーラム2024 AITCセッション(4)
ITフォーラム2024 AITCセッション(4)
 
ITフォーラム2024 AITCセッション(3)
ITフォーラム2024 AITCセッション(3)ITフォーラム2024 AITCセッション(3)
ITフォーラム2024 AITCセッション(3)
 
ITフォーラム2024 AITCセッション(2)
ITフォーラム2024 AITCセッション(2)ITフォーラム2024 AITCセッション(2)
ITフォーラム2024 AITCセッション(2)
 
ITフォーラム2024 AITCセッション
ITフォーラム2024  AITCセッションITフォーラム2024  AITCセッション
ITフォーラム2024 AITCセッション
 
2)AIを活用したウェルビーイングを測定
2)AIを活用したウェルビーイングを測定2)AIを活用したウェルビーイングを測定
2)AIを活用したウェルビーイングを測定
 
TForum2023_AITC_2.pdf
TForum2023_AITC_2.pdfTForum2023_AITC_2.pdf
TForum2023_AITC_2.pdf
 
2)AIを活用したウェルビーイングを測定
2)AIを活用したウェルビーイングを測定2)AIを活用したウェルビーイングを測定
2)AIを活用したウェルビーイングを測定
 
5)パネルディスカッション:『空気を読む家』×ウェルビーイング/メタバース・Web3
5)パネルディスカッション:『空気を読む家』×ウェルビーイング/メタバース・Web35)パネルディスカッション:『空気を読む家』×ウェルビーイング/メタバース・Web3
5)パネルディスカッション:『空気を読む家』×ウェルビーイング/メタバース・Web3
 
4)技術視点でウェルビーイングを考える
4)技術視点でウェルビーイングを考える4)技術視点でウェルビーイングを考える
4)技術視点でウェルビーイングを考える
 
3-2)『空気を読む家』とメタバース駆動開発構想
3-2)『空気を読む家』とメタバース駆動開発構想3-2)『空気を読む家』とメタバース駆動開発構想
3-2)『空気を読む家』とメタバース駆動開発構想
 
3-1)『空気を読む家』とメタバース駆動開発構想 空間OS モノと社会をつなげる
3-1)『空気を読む家』とメタバース駆動開発構想   空間OS モノと社会をつなげる3-1)『空気を読む家』とメタバース駆動開発構想   空間OS モノと社会をつなげる
3-1)『空気を読む家』とメタバース駆動開発構想 空間OS モノと社会をつなげる
 
1)空気を読む家』のこれまでの取り組み
1)空気を読む家』のこれまでの取り組み1)空気を読む家』のこれまでの取り組み
1)空気を読む家』のこれまでの取り組み
 
2022/07/22 AITC 第4回オープンラボ「メタバース応用編~空間OSのこれまでとこれから~」セッション2 「空間OSと空気を読む家の実証」
2022/07/22 AITC 第4回オープンラボ「メタバース応用編~空間OSのこれまでとこれから~」セッション2 「空間OSと空気を読む家の実証」2022/07/22 AITC 第4回オープンラボ「メタバース応用編~空間OSのこれまでとこれから~」セッション2 「空間OSと空気を読む家の実証」
2022/07/22 AITC 第4回オープンラボ「メタバース応用編~空間OSのこれまでとこれから~」セッション2 「空間OSと空気を読む家の実証」
 
2022/07/22 AITC 第4回オープンラボ「メタバース応用編~空間OSのこれまでとこれから~」セッション1 「空間OSとメタバース」
2022/07/22 AITC 第4回オープンラボ「メタバース応用編~空間OSのこれまでとこれから~」セッション1 「空間OSとメタバース」2022/07/22 AITC 第4回オープンラボ「メタバース応用編~空間OSのこれまでとこれから~」セッション1 「空間OSとメタバース」
2022/07/22 AITC 第4回オープンラボ「メタバース応用編~空間OSのこれまでとこれから~」セッション1 「空間OSとメタバース」
 
2022/04/20 AITCオープンラボ第2回「田園都市国家構想とデジタル政策について」
2022/04/20 AITCオープンラボ第2回「田園都市国家構想とデジタル政策について」2022/04/20 AITCオープンラボ第2回「田園都市国家構想とデジタル政策について」
2022/04/20 AITCオープンラボ第2回「田園都市国家構想とデジタル政策について」
 
2022/03/23 AITCオープンラボ第1回「メタ―バース入門」
2022/03/23 AITCオープンラボ第1回「メタ―バース入門」2022/03/23 AITCオープンラボ第1回「メタ―バース入門」
2022/03/23 AITCオープンラボ第1回「メタ―バース入門」
 
ITフォーラム2022 先端IT活用推進コミュニティ(3-1)
ITフォーラム2022 先端IT活用推進コミュニティ(3-1)ITフォーラム2022 先端IT活用推進コミュニティ(3-1)
ITフォーラム2022 先端IT活用推進コミュニティ(3-1)
 
ITフォーラム2022 先端IT活用推進コミュニティ(5-2)
ITフォーラム2022 先端IT活用推進コミュニティ(5-2)ITフォーラム2022 先端IT活用推進コミュニティ(5-2)
ITフォーラム2022 先端IT活用推進コミュニティ(5-2)
 
ITフォーラム2022 先端IT活用推進コミュニティ(5-1)
ITフォーラム2022 先端IT活用推進コミュニティ(5-1)ITフォーラム2022 先端IT活用推進コミュニティ(5-1)
ITフォーラム2022 先端IT活用推進コミュニティ(5-1)
 

2018年01月27日 Keras/TesorFlowによるディープラーニング事始め

  • 1. Copyright © 2018 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved. Keras/TesorFlowによる ディープラーニング事始め 2018年1月27日 TensorFlow勉強会シリーズ2 成果報告会 野田 洋之 (個人会員)
  • 2. Copyright © 2018 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved. Kerasとは • 高水準のニューラルネットワークライブラリ – 迅速に、シンプルに、ニューラルネットが実装できる • バックエンドとして TensorFlow をサポート • 日本語のドキュメントが整備されている 2 Keras Documentation (https://keras.io/ja/)
  • 3. Copyright © 2018 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved. 今回やったこと Keras により手書き文字データセット MINIST の学習、および 予測を実行。モデルはシンプルな全結合3層のネットワーク。 • ベースは Keras examples directory のサンプル mnist_mlp.py • ベースに対し次の点を変更 ➢訓練データとテスト用データの構成を変更 ➢TensorBoard用のコールバックを追加 ➢学習済みモデルにより予測をするコードを追加 3
  • 4. Copyright © 2018 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved. MNISTとは 28x28ピクセル、グレースケールの手書き数字のデータセット。 訓練データ6万枚、テストデータ1万枚。 機械学習の実験用データとして使われることが多い。 個々のデータは入力データ(画像データ)と教師データ (正解データ)のペアで与えられている。 4 入力データ (画像データ) 教師データ 正解データ 6 2 4 3 4 1 0 6
  • 5. Copyright © 2018 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved. 訓練データの分割 今回、学習済みモデルでの予測をするため、学習には MNISTの訓練データを8:2に分割して使用。 5 訓練データ (60,000枚) テストデータ (10,000枚) テストデータ (test data) (10,000枚) 訓練データ (training data) (48,000枚) 検証データ (validation data) (12,000枚) 学習に使用 学習済みモデルによる 予測に使用
  • 6. Copyright © 2018 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved. 環境&インストール  環境 OS : Ubuntu 16.04 LTS (X64) Python : 3.5.4 (pyenv-virtualenv) TensorFlow : 1.4.1 Keras : 2.1.3  インストール pyenv-virtualenv 環境から pip でインストール。 • Keras/TensorFlow 関連のパッケージ 6 > pip install keras tensorflow jupyter • その他のパッケージ。 > pip install jupyter pandas matplotlib sklearn pydot
  • 7. Copyright © 2018 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved. モデル 7  モデル ディープラーニングでは、ニューラルネットワークのこと。 ➢ ハイパーパラメータ 学習で決定できないパラメータ。 • モデルの層の数、活性化関数などモデルの構造に関わる パラメータ • ドロップアウトの割合、学習率など、学習の際のパラメータ ➢ パラメータ 学習で決定するパラメータ。バイアス、重みなど。
  • 8. Copyright © 2018 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved. 学習と予測 8  学習 訓練データと教師データのペアを入力として、最適化アルゴ リズムにより、損失が最小となるモデルのパラメータを決定 する。損失は、訓練データをモデルに入力し得られた出力と 教師データとの差で、損失関数で計算する。  予測 回帰や分類において、学習済みモデルにデータを入力し、 予測値を得ること。
  • 9. Copyright © 2018 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved. エポックとバッチサイズ  エポック 全訓練データを1回学習に用いると1エポック。 学習のエポック数が6の場合、全訓練データを用いた学習を 6回繰り返す。  バッチサイズ 学習の際、訓練データからバッチサイズ数のデータを無作為 に抜き出し、最適化アルゴリズムによりパラメータを更新する (ミニバッチ学習)。訓練データが48,000個、バッチサイズが 100の場合、1エポックで480回ミニバッチ学習を実行する。 9
  • 10. Copyright © 2018 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved. AND回路, OR回路 10 𝑥1 𝑥2 𝑦 0 0 0 1 0 0 0 1 0 1 1 1 𝑥1 𝑥2 𝑦 𝑥1 𝑥2 𝑦 𝑥1 𝑥2 𝑦 0 0 0 1 0 0 0 1 0 1 1 1
  • 11. Copyright © 2018 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved. AND回路、OR回路のモデル AND回路、OR回路は1層のモデルで学習できる。 11 model = Sequential() model.add(Dense(units=1, activation='sigmoid', input_shape=(2,))) 𝑦 = ℎ 𝑏 + 𝑤1 𝑥1 + 𝑤2 𝑥2 𝑤 : 重み 𝑏 : バイアス ℎ() : 活性化関数 𝑥1 1 𝑥2 𝑦1 𝑤1 𝑤2 𝑏 入力の形状 出力の形状 活性化関数 通常の全結合ニューラル ネットワークレイヤー 入力層 出力層 ○ はノード,ニューロン
  • 12. Copyright © 2018 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved. ExOR回路 ExOR回路はAND回路とOR回路で実現できる。 12 𝑥1 𝑥2 𝑦 𝑥1 𝑥2 𝑦 0 0 0 1 0 1 0 1 1 1 1 0
  • 13. Copyright © 2018 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved. ExOR回路のモデル ExOR回路は2層のモデルで学習できる。 13 model = Sequential() model.add(Dense(units=2, activation='relu’, input_shape=(2,))) model.add(Dense(units=1, activation='sigmoid’)) 𝑥21 1 𝑥22 𝑦1 𝑤12 (1) 𝑥11 1 𝑥12 𝑤11 (1) 𝑤22 (1) 𝑤21 (1) 𝑏1 (1) 𝑏2 (1) 𝑏1 (2) 𝑤11 (2) 𝑤12 (2) 入力層 出力層中間層 (隠れ層)
  • 14. Copyright © 2018 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved. MNISTサンプルプログラムのモデル KerasのMNISTサンプルプログラム (mnist_mlp.py) のモデル。 シンプルな全結合3層のネットワーク。 14 model = Sequential() model.add(Dense(512, activation='relu', input_shape=(28*28,))) model.add(Dropout(0.2)) model.add(Dense(512, activation='relu')) model.add(Dropout(0.2)) model.add(Dense(num_classes, activation='softmax'))
  • 15. Copyright © 2018 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved. ドロップアウト ドロップアウトは、学習の際、一定割合で使用しないノードを 設定することで、予測に寄与しないノードが発生するのを 抑止する。ミニバッチごとに設定される。 15
  • 16. Copyright © 2018 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved. 活性化関数 ノードの入力の総和を変換する関数。 • 非線形関数であること • 微分可能であること 16 適用 種類 関数名 説明 中間層 ReLU関数 relu ℎ(𝑥) = max 0, 𝑥 = ቊ 0 (𝑥 < 0) 𝑥 (𝑥 ≥ 0) 出力層 回帰 恒等関数 linear ℎ(𝑥) = 𝑥 線形分類器。 分類 (2値変数) シグモイド 関数 sigmoid 出力は0から1.0の間の実数。 確率変数の出力に利用。 分類 (多値変数) ソフトマックス 関数 softmax 出力は0から1.0の間の実数。 出力の総和は1。 ソフトマックス関数の出力は確率と解 釈できる。 上記以外にも様々な活性化関数が用意されている。 活性化関数 - Keras Documentation
  • 17. Copyright © 2018 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved. 損失関数 モデルの出力と教師データ(正解データ)との差を計算する 関数。モデルをコンパイルする際に指定する。 17 適用 種類 関数名 説明 回帰 2乗和誤差 mean_squared_error 分類 (2値変数) 交差エントロピー 誤差 binary_crossentropy 分類 (多値変数) 交差エントロピー 誤差 categorical_crossentropy 上記以外にも様々な損失関数が用意されている。 損失関数 - Keras Documentation
  • 18. Copyright © 2018 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved. 最適化アルゴリズム ミニバッチ学習の際、最適なパラメータを計算するための アルゴリズム。モデルをコンパイルする際に指定する。 Keras で利用可能な最適化アルゴリズムは 最適化 - Keras Documentation を参照。 学習率など、いくつかのハイパーパラメータは、最適化アルゴリズムから 設定できる。  学習率 学習の際、どれくらいパラメータを更新するか、調整するハイパー パラメータ。大きすぎると発散し、小さすぎると学習が進まない。 18
  • 19. Copyright © 2018 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved. 分類(多値変数)のお約束 分類(多値変数)の予測モデルを構築する際(損失関数として categorical_crossentropy を使用する際)、お約束がある。  モデルの出力 モデルの出力は教師データのカテゴリ数とする。 MNISTの場合、0~9の10カテゴリなので、10次元とする。  教師データ 教師データを、次元がカテゴリ数のone-hot表現に変換する。one-hot表現 は、カテゴリに対応する次元が1、それ以外が0のベクトル。Kerasでは keras.utils.to_categorical 関数で、カテゴリカル変数をone-hot表現に変換で きる。 19 損失関数 - Keras Documentation より抜粋
  • 20. Copyright © 2018 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved. TensorBoardログ出力 コールバックにより、TensorBoardのログの出力ができる。 コールバックに登録した関数は学習の際に実行される。 20 tb_cb = keras.callbacks.TensorBoard(log_dir=tb_log_dir, histogram_freq=1) cbks = [tb_cb] keras.callbacks.TensorBoard メソッドのインスタンスを取得。 log_dir : ログの出力先 histogram_freq : モデルの層の活性化ヒストグラムを計算する(エポック中の)頻度 history = model.fit(x_train, y_train, batch_size=batch_size, epochs=epochs, callbacks=cbks, verbose=1, validation_data=(x_target, y_target)) 学習を実行する際、オプションにコールバックのインスタンスを指定。
  • 21. Copyright © 2018 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved. TensorBoardログ出力 学習完了後、 tensorboard コマンドを実行。ブラウザで TensorBoard サーバー(デフォルトはポート6006)にアクセス。 21 > tensorboard --logdir [tensorboard_log_dir]