相关疑难解决方法(0)

随机化输入顺序对神经网络的影响

对于我的高级算法和数据结构课程,我的教授要求我们挑选任何感兴趣的主题.他还告诉我们研究它并尝试在其中实施解决方案.我之所以选择神经网络,是因为这是我长期想学的东西.

我已经能够使用神经网络实现AND,OR和XOR,神经网络的神经元使用激活器的阶跃函数.之后,我尝试实现一个反向传播神经网络,学习识别XOR运算符(使用sigmoid函数作为激活器).通过使用3-3-1网络(输入和隐藏层的1个偏差,随机初始化权重),我能够在90%的时间内将其工作.在其他时候它似乎陷入我认为是当地的最小值,但我不确定(我之前已经问过这个问题,人们告诉我应该没有当地的最小值).

在它工作的90%的时间里,我一直按照这个顺序呈现我的输入:[0, 0], [0, 1], [1, 0], [1, 0]将预期的输出设置为[0, 1, 1, 0].当我以相同的顺序一致地呈现值时,网络最终会学习该模式.它实际上并不重要我发送它的顺序,只要它是每个纪元的完全相同的顺序.

然后我实现了训练集的随机化,因此这次输入的顺序足够随机化.我现在已经注意到我的神经网络卡住而且错误正在减少,但是速度很慢(每个时期都会变小).过了一会儿,错误开始在一个值周围振荡(所以错误停止减少).

我是这个主题的新手,到目前为止我所知道的一切都是自学成才(阅读教程,论文等).为什么输入的呈现顺序会改变我的网络行为?是因为从一个输入到下一个输入的错误变化是一致的(因为排序是一致的),这使得网络易于学习?

我该怎么做才能解决这个问题?我正在检查我的反向传播算法,以确保我已经正确实现了它; 目前它以学习率和动力实施.我正在考虑其他增强功能,如自适应学习率.但是,XOR网络通常被描绘成一个非常简单的网络,因此我认为我不需要使用复杂的反向传播算法.

artificial-intelligence machine-learning xor backpropagation neural-network

5
推荐指数
1
解决办法
3803
查看次数