Machine learning 输入为0的神经网络
想象一下,你有一个带有乙状结肠的神经网络。它有一个输入x,因此节点将输出tanhx连接到一个连接。然后该连接将输出w∗tanhx,其中w是连接件的重量 问题是,如果一个输入是0,而期望的输出应该是类似于1的东西,该怎么办?如果输入为0,那么连接的输出为w∗tanh0=0。因此,如果输入为0,那么无论添加多少节点或连接,或者连接上的权重有多大,输出都将始终为0Machine learning 输入为0的神经网络,machine-learning,neural-network,Machine Learning,Neural Network,想象一下,你有一个带有乙状结肠的神经网络。它有一个输入x,因此节点将输出tanhx连接到一个连接。然后该连接将输出w∗tanhx,其中w是连接件的重量 问题是,如果一个输入是0,而期望的输出应该是类似于1的东西,该怎么办?如果输入为0,那么连接的输出为w∗tanh0=0。因此,如果输入为0,那么无论添加多少节点或连接,或者连接上的权重有多大,输出都将始终为0 如何创建一个简单的网络,其中输入0将提供除0以外的其他内容?您应该添加一个值为常量1的伪输入。然后,该输入可以用作第一层神经元的加权偏倚
如何创建一个简单的网络,其中输入0将提供除0以外的其他内容?您应该添加一个值为常量1的伪输入。然后,该输入可以用作第一层神经元的加权偏倚。乙状结肠功能不限于tanh(x);更一般的形式是w*tanh(ax+c)+b。您的可能看起来像这样,低x值给出接近1.0的结果: -1*tanh(x)+1 权重和偏差是概括将s形曲线移动到所需位置的压缩和平移的工具。旁白 需要注意的一点是,每个层的函数应采用以下形式:
z=转置(W)*X
输出=tanh(z)
其中,在传递到传递函数(tanh)之前,乘以权重向量。但是,这并不能回答您的问题或解决您的问题
第一条路
要回答您的问题,您应该在输入中添加一个偏差单位。这样做的一种方法是使用常量输入1作为输入
因此,如果您有伪代码:number\u of_inputs=10
,那么您应该使用伪代码:number\u of_inputs=11;输入[10]=1
这允许您的输出函数采用与上面相同的形式
第二种方式
您还可以在传递函数之外添加偏差单位。也就是说,您的输出可以是以下形式:
z=转置(W)*X
输出=tanh(z)+b
b
的更新规则将基于损失的导数,而不是转移的导数。您忘记了偏差,因此输出可能不是零。NN是非线性函数。你的输出方程也是错误的。