深度学习理论:为什么需要隐藏层?

数据挖掘 机器学习 神经网络 深度学习
2022-02-24 06:32:19

对于这个问题,我会参考3Blue1Brown 的热门 YouTube 视频,内容是深度学习应用于文字数字的识别

该视频描述了一个具有以下层的神经网络:

  1. 输入(单个灰度像素)

  2. 小规模特征确定(例如,数字 9 中循环的顶部四分之一)

  3. 更大规模的特征(例如,数字 9 中的整个循环)

  4. 输出层,显示输入图像是数字 0-9 中的每一个的概率

我还将尝试在这里通读整个 wiki 部分,我目前在神经网络页面上

我特别喜欢对系数的解释……“一个节点将来自数据的输入与一组系数或权重组合起来,这些系数或权重可以放大或抑制该输入,从而根据算法试图执行的任务为输入分配重要性学习; 例如,哪个输入最有帮助是对数据进行无错误分类?“

本质上,它是说每个输入对每个输出都有一定程度的重要性,这对我来说引出了一个问题……组件特征/隐藏层是否必要?在手写示例中,如果不使用隐藏层,难道每个输入节点都不能连接到每个输出节点吗?这个想法是,所有高权重输入像素或给定输出仍然具有该输出的高权重,但网络将跳过特征/聚合阶段。这只是训练效率的问题(即,通过多次有效地提取相同的特征来防止重复)?

另外,是否需要专门选择各个节点之间的连接,以便智能选择节点的数量和连接的数量和选择?

是否准确地说,一个足够深的神经网络会寻找输入值的所有相关组合的重要性,而这基本上就是它所做的一切?

2个回答

每个输入节点都可以连接到每个输出节点,但这并不能解释可预测的特征和相互关系的非线性。没有任何隐藏层的神经网络只是一种回归。我认为是对深度学习的一个很好的介绍。

回答您的第二个问题:节点数和连接性是应该优化的超参数。此外,人们使用dropout(即丢弃节点)作为正则化的一种形式。

如果你想更详细地理解神经网络,这里有一本很棒的免费交互式书籍,它解释了神经网络是如何工作的。我链接到的那一章表明,只要至少有一个隐藏层,神经网络就可以逼近任何函数。

正如fractalnature 上面所说,如果没有隐藏层,每个输出神经元实际上将是一个广义线性模型,它线性组合输入特征。您的神经网络将有效地成为one vs rest 分类器在许多情况下,这会表现良好,而且它肯定比神经网络更容易训练,但它无法达到相同的性能,因为它无法对特征之间的非线性关系进行建模。