所以我开始学习神经网络,但我发现很难找出基础知识.感谢任何人都能提供的任何帮助..
1)是否有应输入神经元的标准值?例如,如果一个神经元有5个传入连接,那么每个连接是否应该提供a)0到1之间的连续值?b)0或1?c)还有别的吗?
2)如果你使用tanh的激活函数,这意味着如果点积输入达到约3(tanh(3)= .995),神经元将开始输出1.如果我有一个20个隐藏节点的层,这意味着权重需要很小 - 大约.05标记 - 如果我们要避免最大化激活功能?那么我们为什么要将起始权重设置在-1和1之间呢?最好从非常小的开始?
3)神经元的输出应该是多少?a)介于0和1之间的值?b)0或1?c)还有别的吗?一些人工神经网络的神经元输出在-1和1之间(我想我已经看到了吗?)
4)似乎输入层和输出层的规则发生了变化?对于输入层,我猜你必须将输入数据编码为合适的格式.这总是意味着编码为0到1之间的值吗?同样对于输出层,大概你必须按下你的输出值到有用的东西?因此,如果您的ANN输出0到1之间的连续值,并且您想要YES或NO,那么您可以制定一个规则<0.5为NO且> 0.5为YES.它是如何工作的?
5)将标量输入值编码为二进制是否有缺点?似乎有点奇怪,大数字可能有一个1作为最后一位,但是这个数字+ 1最后一位有0?是否有更连续的编码值更好的方法?
对不起,很多问题..感谢任何答案.谢谢!
标准化值有助于培训,因此请确保您的输入在短距离内.范围应该取决于任务:有时,变量是自然的布尔值,但是当它们是真值时,你最好将它们缩放并将它们置于零.否则,网络将花时间学习数据的均值和方差,这是浪费的,因为有非常快速,非常简单的算法.
如果你从较大的权重开始,训练行为是不可预测的.我从来没有听到有人说初始权重应该在[-1,1]中; 常见的配方,AFAIK,是使用平均0和方差1的小随机高斯(你randn在matlab或NumPy中得到的).
取决于激活功能.对于隐藏层神经元,tanh是一种常见的激活函数,它的范围为[-1,1].对于输出层,适当的激活功能取决于任务.对于回归,您需要线性(无界)激活,而对于概率估计和分类,您需要使用范围(0,1)进行逻辑或softmax激活.
这是问题1和3的重复.
我真的不明白你为什么要这样做.浮点数有什么问题吗?
| 归档时间: |
|
| 查看次数: |
3333 次 |
| 最近记录: |