1
ニューラルネットワークと勾配降下アルゴリズムを使用して私のプログラムがOR論理ゲートを学習しようとしています。後で活性化のためにニューロンの閾値を調整できるように、-1と入力されたニューロンを追加しました。現在のしきい値はここで実装勾配降下によるORゲートの学習
#!/usr/bin/env python
from numpy import *
def pcntrain(inp, tar, wei, eta):
for data in range(nData):
activation = dot(inp,wei)
wei += eta*(dot(transpose(inp), target-activation))
print "ITERATION " + str(data)
print wei
print "TESTING LEARNED ALGO"
# Sample input
activation = dot(array([[0,0,-1],[1,0,-1],[1,1,-1],[0,0,-1]]),wei)
print activation
nIn = 2
nOut = 1
nData = 4
inputs = array([[0,0],[0,1],[1,0],[1,1]])
target = array([[0],[1],[1],[1]])
inputs = concatenate((inputs,-ones((nData,1))),axis=1) #add bias input = -1
weights = random.rand(nIn +1,nOut)*0.1-0.05 #random weight
if __name__ == '__main__':
pcntrain(inputs, target, weights, 0.25)
での私の試みは、このコードだ単に0 であるORゲートのように見えるしていません出力を生成するように見えます。助けて?
グレート答え、あなたが言うことができますあなたは行列[[0.] [1.] [1.] [1.]]をどうやって得ましたか? – Sigma
私はnumpyをnpとしてインポートし、あなたの得点にnp.round()を呼び出しました – lejlot
ありがとう、ありがとう。これは本当に便利でした – Sigma