Delta正在增长,而不是在简单的神经元神经网络中下降

时间:2016-01-12 16:35:23

标签: python neural-network

尝试使用Delta规则实现简单的神经网络,没有步进功能,几乎没有编程和机器学习的经验。到目前为止,我有下一个代码。

%matplotlib inline
from random import choice 
from numpy import array, dot, random
import matplotlib.pyplot as plt
training_data = [(array([20,10,1]), 10), 
             (array([10,12,1]), 8), 
             (array([11,20,1]), 5), 
             (array([13,16,1]), 9), ]
w = random.rand(3)
a = []
mu = 0.001
n = 50
for i in xrange(n): 
    x, expected = choice(training_data)
    result = dot(w,x)
    delta = abs(expected - result)
    a.append(delta)
    if delta < a[-1]:
        w += mu * delta * x
    else: w -= mu * delta * x
plt.plot(a)

此代码的问题在于增量规则正在成长而不是下降。You may see that from this graph.我不确定我在哪里犯了错误。任何帮助表示赞赏。

我的圈子的编辑版本

for i in xrange(n): 
x, expected = choice(training_data)
result = dot(w,x)
delta = abs(expected - result)
if delta < a[-1]:
    w += mu * delta * x
else: w -= mu * delta * x
a.append(delta)

另外,我已经陈述了a = [0]。 new results

1 个答案:

答案 0 :(得分:0)

如果您将delta追加到a的末尾,然后将deltaaa[-1])的最后一个元素进行比较,则您要进行比较{ {1}},永远不会访问此分支。