这绝对是一个关于神经网络的新手问题,但这就是我的问题:
我理解神经网络中一层的神经元都以不同的(基本上是随机的)输入特征权重进行初始化,以此来改变它们的反向传播结果,使它们能够收敛到不同的函数来描述输入数据。然而,我不明白这些生成独特函数以描述输入数据的神经元是何时或如何“交流”它们的结果的,就像在集成机器学习方法中所做的那样(例如,通过种植一丛具有随机初始决策标准的树,然后确定森林中最具区分性的模型)。在树集成示例中,所有的树都在共同努力以概括每个模型学到的规则。
神经元是如何、在哪里以及何时交流它们的预测函数的?我知道单个神经元使用梯度下降来收敛到它们各自的函数,但它们是独特的,因为它们从独特的权重开始。它们如何交流这些差异?我想象在输出层中结合神经元结果时会有一些微妙的行为,其中发生了这种交流。此外,这种交流是否是迭代训练过程的一部分?
有人在评论部分(https://datascience.stackexchange.com/questions/14028/what-is-the-purpose-of-multiple-neurons-in-a-hidden-layer)问了一个类似的问题,但我没有看到答案。
任何帮助将不胜感激!
回答:
在传播过程中,每个神经元通常参与形成下一层多个神经元的值。在反向传播中,这些下一层的神经元会试图调整参与神经元的权重,以最小化误差。这就是全部内容了。
例如,假设你试图让一个神经网络识别数字。假设隐藏层中的一个神经元开始识别垂直线,另一个开始识别水平线,依此类推。负责识别1
的下一层神经元会发现,如果它想更准确,它应该多关注识别垂直线的神经元;而且如果识别水平线的神经元越是大声喊叫,就越不是1
。这就是权重的作用:告诉每个神经元它应该对每个输入关注的程度。反过来,识别垂直线的神经元会通过调整其输入层的权重(例如,单个像素)来更好地识别垂直线。
(虽然这很抽象。没有人告诉识别垂直线的神经元它应该识别垂直线。不同的神经元只是训练不同的东西,由于所涉及的数学,它们最终会选择不同的特征。其中一个可能或可能不会成为垂直线。)
在同一层的神经元之间没有“交流”(在基本情况下,层是从一层线性流向下一层)。这一切都是关于一层的神经元在预测下一层认为有用的特征方面变得更好。
在输出层,识别1
的神经元可能会说“我有72%的把握这是1
”,而识别7
的神经元可能会说“我给7
打个B+”,而第三个可能会说“一个糟糕的3
,不值得再看一眼”。我们通常要么听从最响亮的声音,要么对输出层进行归一化(除以所有输出的总和),以便我们获得实际可比较的概率。然而,这种归一化实际上并不是神经网络本身的一部分。