Pythonの機械学習モジュール「Keras」でニューラルネットワークを実装し、XOR演算を学習する方法をソースコード付きでまとめました。
ニューラルネットでXOR演算の学習
今回は、Python3 + Kerasでニューラルネットワークを実装し、XOR演算の学習を行ってみました。
■XOR演算の訓練データ
入力x | 教師データy |
---|---|
0, 0 | 0 |
1, 0 | 1 |
0, 1 | 1 |
1, 1 | 0 |
サンプルコード
サンプルプログラムのソースコードです。
# -*- coding: utf-8 -*- import numpy as np from keras.models import Sequential, model_from_json from keras.layers.core import Dense from keras.optimizers import RMSprop def main(): # 訓練データの用意 # 入力データ x_train = np.array([[0.0, 0.0], [1.0, 0.0], [0.0, 1.0], [1.0, 1.0]]) # 入力の教師データ y_train = np.array([0.0, 1.0, 1.0, 0.0]) # モデル構築 model = Sequential() # 入力層 model.add(Dense(2, activation='sigmoid', input_shape=(2,))) # 出力層 model.add(Dense(1, activation='linear')) # コンパイル(勾配法:RMSprop、損失関数:mean_squared_error、評価関数:accuracy) model.compile(loss='mean_squared_error', optimizer=RMSprop(), metrics=['accuracy']) # 構築したモデルで学習 history = model.fit(x_train, y_train, batch_size=4, epochs=3000) # テストデータの用意 x_test = x_train y_test = y_train # モデルの性能評価 score = model.evaluate(x_train, y_train, verbose=0) print('Score:', score[0]) # Score: 3.55525435225e-06 print('Accuracy:', score[1]) # Accuracy: 1.0 # 学習済みモデルを使って答えを予測 x = np.array([[0, 1]]) y = model.predict(x) print(y) # [[ 1.00200975]] if __name__ == '__main__': main()
【TensorFlow版Keras入門】ディープラーニングを簡単に学ぶ方法
Pythonモジュール「TensorFlow/Keras」で深層学習(ディープラーニング)を行う方法について入門者向けに使い方を解説します。
コメント