我需要训练一个网络来增加或增加2个输入,但是在20000次迭代之后,它似乎并不适合所有点.更具体地说,我在整个数据集上训练它并且它在最后几点很接近,但似乎对第一个端点没有任何好处.我规范化数据,使其介于-0.8和0.8之间.网络本身由2个输入3个隐藏神经元和1个输出神经元组成.我还将网络的学习率设置为0.25,并将其用作学习函数tanh(x).
对于在数据集中最后训练的点,它非常接近,但对于第一点,它似乎不能很好地近似.我不知道它是什么,它无法帮助它调整好,无论是我正在使用的拓扑还是其他什么?
此网络的隐藏层中有多少神经元适合?
由权重= {1,1},偏差= 0和线性激活函数的单个神经元组成的网络执行两个输入数的相加.
乘法可能更难.以下是网络可以使用的两种方法:
a*b = a*(b0*2^0 + b1*2^1 + ... + bk*2^k) = a*b0*2^0 + a*b1*2^1 + ... + a*bk*2^k.这种方法很简单,但需要与输入的长度(对数)成比例的可变数量的神经元b.a*b = exp(ln(a) + ln(b))该网络可以处理任何长度的数字,只要它可以足够接近对数和指数.reg*_*fry -3
想象一下,如果用tanh(x)x 的线性函数(称之为)替换阈值函数a.x,并将其视为a每个神经元中唯一的学习参数,会发生什么。这实际上就是您的网络将要优化的目标;它是函数过零的近似值tanh。
现在,当你对这种线性类型的神经元进行分层时会发生什么?当脉冲从输入到输出时,将每个神经元的输出相乘。您正在尝试用一组乘法来近似加法。正如他们所说,这不能计算。
| 归档时间: |
|
| 查看次数: |
9748 次 |
| 最近记录: |