Pythonの機械学習モジュール「Keras」で簡単なニューラルネットモデルを構築する方法をソースコード付きで解説します。
簡単なニューラルネットモデル(MLP)の構築
多層パーセプトロン(MLP)とは、下図のように(単純)パーセプトロンを複数繋いで多層構造にしたニューラルネットです。
| – | 多層パーセプトロンの詳細はこちら |
|---|---|
| 詳細 | 【ニューラルネット】多層パーセプトロン(MLP)の原理・計算式 |

左から入力層、中間層(隠れ層)、出力層と呼ばれます。
この場合は3層構造なので「3層パーセプトロン」とも呼ばれます。
今回はKerasを使って入力の次元数2、中間層の次元数3、出力の次元数2の簡単な多層パーセプトロン(MLP)を作ってみます。
サンプルコード
サンプルプログラムのソースコードです。
# -*- coding: utf-8 -*
import numpy as np
import keras
from keras.datasets import mnist
from keras.models import Sequential
from keras.layers import Dense, Dropout
from keras.optimizers import RMSprop
def main():
# 訓練データ
x_train = np.array([[0,0],[0,1],[1,0],[1,1]]) # 入力(学習データ)
y_train = np.array([[0,0],[0,0],[0,0],[1,1]]) # 出力(教師データ)
# テスト用データ
x_test = np.array([[150,70],[175,66]])
# モデル生成
model = Sequential()
# 入力の次元数2, 3次元に線形変換, 活性化関数(シグモイド)
model.add(Dense(units=3, activation='sigmoid', input_dim=2))
# 2次元に線形変換, 活性化関数(softmax)
model.add(Dense(units=2, activation='softmax'))
# コンパイル(勾配法:adam、誤差関数:categorical_crossentropy)
model.compile(loss='categorical_crossentropy', optimizer='adam')
# 構築したモデルで学習
model.fit(x_train, y_train, epochs=100)
# モデルの検証・性能評価
y_test = model.predict(x_test)
print(y_test)
if __name__ == '__main__':
main()
| – | 関連記事 |
|---|---|
| 1 | Python入門 基本文法 |
| 2 | 【Python/Keras】ディープラーニング入門・使い方 |


コメント