# 2019秋 ニューラルネットワーク # 定数・設定値の準備 (表2参照) NI = 2 # 入力ノードの数 NC = 4 # 入力パターンの数 X = [[0, 0], [0, 1], [1, 0], [1, 1]] # 入力値の全組み合わせ # 例として「論理和 (OR)」の重みとバイアスを設定 (表1参照) WY = [0.5, 0.5] BY = -0.2 def simple_perceptron(X, Y): # 外側のループ: 全入力パターン (out: 0 〜 NC-1) for out in range(NC): # [ア] に相当: バイアスで初期化 ytemp = BY # 内側のループ: 各入力ノード (in: 0 〜 NI-1) for _in in range(NI): # [イ] に相当: 入力値 × 重みを加算 ytemp = ytemp + X[out][_in] * WY[_in] # [ウ] に相当: 閾値判定 (0より大きい場合は1、それ以外は0) if ytemp > 0: Y[out] = 1 else: Y[out] = 0 # 実行テスト Y = [0] * NC # 出力格納用の配列 simple_perceptron(X, Y) print("--- 単純パーセプトロン (OR演算) の結果 ---") for i in range(NC): print(f"入力: {X[i]} -> 出力: {Y[i]}")