人工知能を動かしてみる(Keras を用いたニューラルネットワークの定義,コンパイル,学習,評価,予測) Iris データセット ニューラルネットワークの作成 ニューラルネットワークの学習 ニューラルネットワークによる予測 リレーショナルデータベースのテーブル、フィールド、データ型について説明します 「パソコン実習」の資料を準備しています https://www.kunihikokaneko.com/dblab/keras/keras.html 人工知能を演習と実践で学ぶシリーズ 金子邦彦
ニューラルネットワーク利用の流れ 1. 定義 (define) ニューラルネットワークの作成 2. コンパイル (compile) ニューラルネットワークの学習過程(損失関数や最適化手法 など)を定めてからコンパイル 3. 学習 (train) ニューラルネットワーク内のパラメータの自動調整(fit と もいう) 4. 評価 (evaluate) 学習の結果できたニューラルネットワークの評価 ※ 前もって準備しておいた「テストデータ」を使用 5. 予測 (make prediction) ニューラルネットワークを用いて予測
層が直列になっているニューラルネットワーク 全結合 全結合 全結合 入力 出力 層数が4の場合(総数はいろいろ変わる)
ユニットと全結合 入力 出力 全結合 全結合 全結合 ※ 層の中には、ユニットが並ぶ
ユニットの活性化 全結合 全結合 全結合 入力 出力 活性化の度合いは数値(オン、オフではない) にするのが普通.活性化の数値は次の層に伝わる
ソフトマックス (softmax) に設定された出力層 全結合 全結合 全結合 入力 出力 出力層(出力を出す層)のユニットについて, 活性化の度合いが高くなるのは同時に1つにしたい
ソフトマックス (softmax) に設定された出力層 ソフトマックスに設定したとき ・各ユニットの活性化の度合いは,0 から1の数値 ※ 右図では,5個のユニットが それぞれ違う度合いで活性化 ・最も値が高いものは「活性化してい る」,それ以外は「活性化してな い」と考える 出力層(出力を出す層)のユニットについて, 活性化の度合いが高くなるのは同時に1つにしたい
ニューラルネットワークのバリエーション Recurrent Network LSTM Recurrent Neural Network フィード バック付き 全結合 全結合 全結合 フィード バック フィード バック LSTM Recurrent Neural Network メモリユニット 付き 全結合 全結合 全結合 メモリユニット付き メモリユニット付き フィード バック フィード バック
ニューラルネットワークのバリエーション CNN 畳みこみ層付き 全結合 全結合 全結合 全結合 畳みこみ層
ニューラルネットワークの学習 中のパラメータが 自動調整される ペア [0 2 1 学習用データ 特徴量 ラベル
ニューラルネットワークの定義とコンパイル import tensorflow as tf import keras from keras.models import Sequential from keras.layers import Dense, Activation m = tf.keras.models.Sequential([ tf.keras.layers.Dense(units=64, input_dim=len(X_train[0]), activation=tf.nn.relu), tf.keras.layers.Dense(units=max(set(y_train)) - min(set(y_train)) + 1, activation=tf.nn.softmax) ]) m.compile(loss=keras.losses.categorical_crossentropy, optimizer=keras.optimizers.SGD(lr=0.01, momentum=0.9, nesterov=True)) 層は 直列(Sequential) 1層目のユニット数は 64 2層目のユニット数は 3 max(set(y_train)) - min(set(y_train)) で計算 「softmax」は「ソフトマックス」 損失関数は categorical_crossentropy, 最適化手法は SGD 「パソコン実習」の資料を準備しています https://www.kunihikokaneko.com/dblab/keras/kerasi.html
アヤメ属 (Iris) ◆多年草 ◆世界に 150種. 日本に 9種. ◆花被片は 6個 外花被片(がいかひへん) Sepal 3個(大型で下に垂れる) 内花被片(ないかひへん) Petal 3個(直立する) 内花被片 外花被片
Iris データセット Iris データセット(データ数は 50 × 3) のうち、先頭 10 行 ◆ 3種のアヤメの外花被 辺、内花被片を計測 ◆ 種類も記録 setosa versicolor virginica ◆ データ数は 50 × 3 作成者:Ronald Fisher 作成年:1936 外花被片(Sepal) の長さと幅 内花被片(Petal) の長さと幅 種類 特徴量 ラベル
Iris データセットと、Python の配列オブジェクト [0 Iris データセット(データ数は 50 × 3)のうち、先頭 10 行 特徴量(数値)が入った 配列オブジェクト サイズ:150 × 4 次元数: 2 ラベル(数値)が入った 配列オブジェクト サイズ:150 次元数: 1 setosa → 0 versicolor → 1 virginia → 2 ラベルの数値化
ニューラルネットワークの例 全結合 出力 入力 4 個の数値 層数: 2 構造は直列(Sequential) (入力層の全 活性化の値が 最大 入力 出力 4 個の数値 (入力層の全 ユニットに同じ入力) ユニット数 64 ユニット数3 ソフト マックス 層数: 2 構造は直列(Sequential)
ニューラルネットワークによる予測 0 である確率 0.0068 1 である確率 0.1592 2 である確率 0.8340 4つの数字 活性化の値が 最大 学習済み
ニューラルネットワークの評価 (良さを調べるには) 予測させてみる 0 である確率 0.0068 1 である確率 0.1592 2 である確率 0.8340 ニューラルネット 学習済み 前もって正解を調べておき、照合: 正解は 2
ニューラルネットワークの進展を助けているもの ニューラルネットワークの技術革新 基盤技術: Heの初期化, Batch Normalization, Dropout, CNN, LTSM, GAN系列 モデル: VGG16 など ニューラルネットワークを高速にシミュレーションで きる高性能のコンピュータ 高性能プロセッサ、GPU ニューラルネットワークの学習に役立つ大量のデータ データ計測、データ収集
終わりに 関連資料や教材は,次の Web ページで公開しています. http://www.kunihikokaneko.com/dblab/intro/ その他,さまざまな資料を金子研究室 Web ページで公開しています http://www.kunihikokaneko.com/index-j.html 金子邦彦
Iris データセット(データ数は 50 × 3)のうち、先頭 10 行 [0 サイズ:150 × 4 サイズ:150 主成分分析 [0 サイズ:150 × 2 x 座標と y 座標 サイズ:150 色