我正在阅读一篇论文,作者将他们的网络描述如下:
“为了训练相应的深度网络,使用了一个具有一个隐藏层的全连接网络。该网络有九个二进制输入节点。隐藏层包含一个 sigmoid 节点,输出层有一个内积函数。因此,网络有 10 个变量。”
该网络用于预测连续数 (y)。我的问题是,我不明白 sigmoid 节点之后的网络结构。输出层是做什么的?内积是做什么用的?
我正在阅读一篇论文,作者将他们的网络描述如下:
“为了训练相应的深度网络,使用了一个具有一个隐藏层的全连接网络。该网络有九个二进制输入节点。隐藏层包含一个 sigmoid 节点,输出层有一个内积函数。因此,网络有 10 个变量。”
该网络用于预测连续数 (y)。我的问题是,我不明白 sigmoid 节点之后的网络结构。输出层是做什么的?内积是做什么用的?
通常,每个神经元的预激活函数是内积(或向量-向量乘法中的点积)和一个用于引入偏差的加法的组合。单个神经元可以描述为
z = b + w1*x1 + x2*x2 + ... + xn*xn
= b + w'*x
h = activation(z)
其中b
是一个附加项(神经元的偏差),每个h
都是一层的输出,对应于下一层的输入。在“输出层”的情况下,就是y = h
. 一个层也可能由多个神经元组成,或者 - 就像在您的示例中一样 - 仅由单个神经元组成。
在所描述的情况下,似乎没有使用偏见。我的理解如下:
对于 的每个输入神经元x1
,x9
使用单个权重,这里没什么特别的。由于有 9 个输入,这就产生了 9 个权重,结果如下:
hidden_out = sigmoid(w1*x1 + w2*x2 + ... + w9*x9)
为了将隐藏层连接到输出,同样的规则适用:输出层的输入被加权,然后对所有输入求和。由于只有一个输入,因此只有一个权重要“求和”,这样
output = w10*hidden_out
请记住,sigmoid 函数将其输入压缩到 0..1 的输出范围内,因此将其乘以权重会将其重新缩放到所需的输出范围。