Machine learning 神经网络梯度下降中的反向传播与线性回归

Machine learning 神经网络梯度下降中的反向传播与线性回归,machine-learning,neural-network,linear-regression,backpropagation,gradient-descent,Machine Learning,Neural Network,Linear Regression,Backpropagation,Gradient Descent,我试图理解“反向传播”,因为它用于使用梯度下降优化的神经网络。通读文献似乎可以做一些事情 使用随机权重开始并获取错误值 使用这些权重对损失函数执行梯度下降,以获得新的权重 使用这些新权重更新权重,直到损失函数最小化 上述步骤似乎是求解线性模型的精确过程(例如,回归)?Andrew Ng关于机器学习课程的优秀课程正是针对线性回归的课程 所以,我试图理解反向传播是否比梯度下降对损失函数更有效。。如果不是,为什么它只在神经网络的情况下被引用,为什么不在GLMs(广义线性模型)的情况下被引用。他们似乎都

我试图理解“反向传播”,因为它用于使用梯度下降优化的神经网络。通读文献似乎可以做一些事情

  • 使用随机权重开始并获取错误值
  • 使用这些权重对损失函数执行梯度下降,以获得新的权重
  • 使用这些新权重更新权重,直到损失函数最小化
  • 上述步骤似乎是求解线性模型的精确过程(例如,回归)?Andrew Ng关于机器学习课程的优秀课程正是针对线性回归的课程

    所以,我试图理解反向传播是否比梯度下降对损失函数更有效。。如果不是,为什么它只在神经网络的情况下被引用,为什么不在GLMs(广义线性模型)的情况下被引用。他们似乎都在做同样的事情——我可能遗漏了什么?

    主要部门恰好隐藏在显而易见的地方:线性。事实上,将问题扩展到一阶导数的连续性,你们将封装大部分差异

    首先,请注意神经网络(NN)的一个基本原理:具有线性权重和线性相关性的NN是GLM。此外,拥有多个隐藏层相当于一个隐藏层:它仍然是从输入到输出的线性组合

    “现代”NN具有非线性层:ReLUs(将负值更改为0)、池(最大值、最小值或多个值的平均值)、退出(随机删除一些值)和其他方法破坏了我们平滑应用梯度下降(GD)的能力取而代之的是,我们采用了许多原理,并反向工作,一层一层地应用有限的修正,一直到第1层的权重

    起泡,冲洗,重复,直到收敛

    这能帮你解决问题吗


    你说对了

    典型的ReLU是

    f(x) = x if x > 0,
           0 otherwise
    
    一个典型的池层将输入长度和宽度减少了2倍;在每个2x2平方中,只传递最大值。Dropout简单地消除随机值,使模型从“主要来源”重新训练这些权重。每一个都是GD的头痛问题,因此我们必须逐层进行

    所以,我试图理解反向传播是否比梯度下降对损失函数更有用。如果不是,为什么它只在神经网络的情况下被引用

    我认为(至少最初)误差反向传播的含义比你描述的要小:术语“误差反向传播”仅指计算损失函数导数的方法,而不是例如符号微分,或者。无论梯度用于什么(例如梯度下降,或者可能是Levenberg/Marquardt)

    他们似乎都在做同样的事情——我可能遗漏了什么


    他们使用不同的模型。如果你的神经网络使用线性神经元,它将等同于线性回归。

    非常感谢!这有助于澄清它!如果我理解正确,在“复杂”NNs中,我们可能会有可能不可微的函数(我想你可以有一个中断的ReLU)-因此,如果我们从头到尾构造损失函数,GD将不可用,因此必须将其分解为若干部分并逐层应用…我没有得到的部分是关于线性的。据我所知,GD可以用于非线性函数。那么考虑的更多的是计算效率吗?对。多重layer渐变在每种非线性情况下都很快变得困难。事实上,在CNN的退出层中,它在迭代过程中是不确定的。当我们得到一个大的NN时——比如一个有10^6个参数和10^7个权重的CNN——逐层的反向传播要快得多。太棒了。谢谢!!