我正在学习 Cousera 的 DeepAI 课程(第 3 周视频 1 “神经网络概述”),Andrew Ng 正在解释神经网络中的每一层如何只是另一个逻辑回归,但他没有解释它如何使事情变得更准确。
那么在 2 层网络中,多次计算逻辑如何使其更准确?
我正在学习 Cousera 的 DeepAI 课程(第 3 周视频 1 “神经网络概述”),Andrew Ng 正在解释神经网络中的每一层如何只是另一个逻辑回归,但他没有解释它如何使事情变得更准确。
那么在 2 层网络中,多次计算逻辑如何使其更准确?
使用逻辑激活函数时,确实将每个单元的输入与其输出相关联的函数与逻辑回归相同。但是,这与执行逻辑回归的每个单元并不完全相同。不同之处在于,在逻辑回归中,权重和偏差的选择使得输出与给定的目标值最匹配(使用对数/交叉熵损失)。相反,神经网络中的隐藏单元将其输出发送到下游单元。没有与各个隐藏单元匹配的目标输出。相反,选择权重和偏差以最小化取决于网络最终输出的某些目标函数。
与执行逻辑回归相比,将每个隐藏单元视为计算某个特征空间中的坐标可能更有意义。从这个角度来看,隐藏层的目的是转换其输入——输入向量被映射到隐藏层激活向量。您可以将其视为将输入映射到具有与每个隐藏单元对应的维度的特征空间。
输出层通常可以被认为是在这个特征空间中运行的标准学习算法。例如,在分类任务中,使用具有交叉熵损失的逻辑输出单元等效于在特征空间中执行逻辑回归(如果使用 softmax 输出,则使用多项逻辑回归)。在回归任务中,使用具有平方误差的线性输出相当于在特征空间中执行最小二乘线性回归。
训练网络相当于学习特征空间映射和分类/回归函数(在特征空间中),它们共同提供最佳性能。假设非线性隐藏单元,增加隐藏层的宽度或堆叠多个隐藏层允许更复杂的特征空间映射,从而允许拟合更复杂的函数。
了解非线性威力的一种方法是注意通用逼近定理。
尽管它在实践中不是很重要(它与单层网络的能力有关),但它告诉您,如果您使用(任意长的)sigmoid 总和,原则上您可以将任何连续函数逼近到任何所需的水平。如果您了解傅立叶理论或记得魏尔斯特拉斯逼近定理,那就不足为奇了。
当神经网络中存在隐藏层时,我们正在添加非线性特征。请在此处查看我的答案以了解情况。
具体来说,嵌套的 sigmoid 函数将比原始特征的线性变换和一个 sigmoid 函数(逻辑回归)更“强大”。
这是一个解决 OP 评论的数字示例。
假设我们有数据框,它是一个矩阵(10 个数据点,3 个特征。)。如果我们想要有隐藏单元,那么权重矩阵是矩阵。隐藏层的输出(矩阵乘法的输出) 是一个矩阵,对于每个数据点,有扩展的功能。
在标准逻辑回归中,我们在最后一层有 1 个输出。然而,对于单个隐藏层神经网络,我们可以有多个中间值,每个中间值都可以被认为是不同逻辑回归模型的输出,即我们不只是一次又一次地执行相同的逻辑回归。然后认为这些组合可能比标准逻辑回归模型具有更大的表达能力(并且已经在实践和理论中得到证明),这并不是一个很大的跳跃。
您还在评论中提到如果这些节点具有相同的输入,它们在同一层中如何具有不同的值?这是因为它们应该具有不同的权重。神经网络中的每个节点都取输入并产生一个值在哪里是一些选择的函数,在我们的例子中是 sigmoid,是权重,是输入,是一些偏差。权重由优化算法选择以优化我们的目标,例如最小化分类错误。初始化对于通常用于优化权重的梯度下降算法非常重要。请参阅https://intoli.com/blog/neural-network-initialization/,如果所有权重都从 0 开始,则网络无法学习。