【问题标题】:What are hidden neurons doing in neural networks?神经网络中隐藏的神经元在做什么?
【发布时间】:2017-01-17 09:00:12
【问题描述】:
所以,例如,我的训练集是 20 x 20 图像或 400 个特征图像来识别书写数字,我假设我在 NN 中有 3 层模型:输入层包含 400 个神经元;一个隐藏层包含 25 个神经元,输出层包含 10 个神经元。
我在neural network and deep learning 阅读了第 1 章。
在最后部分“一个简单的手写数字分类网络”(你可以用 ctrl-f 搜索),它说“隐藏层中的神经元检测是否存在以下图像”。
那么,是不是想说隐藏层中的神经元是由图像呈现的呢?
我认为它们是价值像素。如果我错了,如何从输入层的神经元创建图像?
【问题讨论】:
标签:
machine-learning
neural-network
【解决方案1】:
我相信您已经听说过隐藏层从输入特征中“提取高阶特征”的说法。简而言之,这就是他们通过“检查”这些输入特征之间的关系所做的事情。
为了更深入地了解这个问题,让我们使用逻辑回归。
逻辑回归是一种类似类型的学习算法,但没有隐藏层。在逻辑回归中(为方便起见假设二元分类),您采用输入特征矩阵和权重矩阵的乘积的 sigmoid 函数,根据网络的预测确定性输出 0 到 1 之间的值。
所以它需要输入矩阵乘以权重矩阵并应用 sigmoid 函数,答案就是输出层。 (即 sigmoid(input_matrix * weight_matrix) = output)
嗯,在人工神经网络中,隐藏层基本上位于上述 sigmoid 函数和输出层之间。它获取 sigmoid 函数的返回值,然后将其乘以该层中神经元集的另一个权重矩阵。这是为每一层神经元完成的。
因此对于具有一个隐藏层的网络,它是 - sigmoid(sigmoid(input_matrix * weight_matrix1) * weight_matrix2)
现在这看起来差别不大,但它在反向传播过程中确实派上用场,因为我们能够确定每个神经元对损失函数的各自贡献,从而调整所有权重相应的矩阵,一直返回到输入层的权重。这为建模更复杂的功能提供了更复杂的工具。
所以本质上,隐藏层与输入层没有什么不同。他们只是接收一些矩阵,将其乘以另一个,然后计算 sigmoid 函数。轻松愉快。