美文网首页机器学习人工智能Python机器学习
深度学习笔记(一)感知器、梯度下降、反向传播

深度学习笔记(一)感知器、梯度下降、反向传播

作者: nfter | 来源:发表于2017-09-05 21:42 被阅读513次

    本文是在学习优达学城深度学习课程第一部分后做的笔记,只供查阅使用,具体公式推导与代码实践在文中给了参考资料的链接。

    深度学习

    神经网络是一种机器学习算法,模型如下。

    神经网络

    神经网络由输入层、隐藏层、输出层组成,当隐藏层的层数大于等于2时,叫做深层神经网络,使用深层神经网络算法进行机器学习就叫做深度学习。

    感知器 perceptron

    神经网络是由神经元组成的,而激活函数为阶跃函数的神经元就是感知器。感知器的模型如下:

    perceptron

    感知器的运作流程是,将输入inputs乘以权重weights,然后相加,再经过激活函数step function,得到一个输出。通过对权重的设置,可以让激活函数代表任意线性函数。具体解释可以看这个非常棒的博客:零基础入门深度学习(1) - 感知器

    这里,我们只需知道一个感知器可以表示一个函数,但是这好像并没有什么实际作用。对,一个感知器是作用不大,但是,当感知器变成神经网络时情况就完全不同了,它会有非常神奇的效果。目前自然语言处理、图像和语音处理、自动驾驶等领域都广泛使用深度学习,由此可见一斑。

    梯度下降 Gradient Decent

    要得到有实际作用的感知器,我们必须设置它的参数,如何设置呢?梯度下降可以解决这个问题。

    梯度下降整体的逻辑就是,通过已知的输入值x和真实的输出值y,求出感知器最合适的参数w。那么如何定义最合适的参数w?我们认为通过感知器计算得到的输出值pred与真实的数值y最接近的时候,那么参数w的值就最合适。

    基于以上,在数学里面,通过求导数的方式,我们可以知道通过让w每次加上delta_w的方式,可以让pred 与 y的值越来越接近。

    梯度下降

    而delta_w等于:

    这里具体的数学公式推导可以参考:
    吴恩达的机器学习课程
    零基础入门深度学习(2) - 线性单元和梯度下降

    反向传播 Back Propagation

    当上面的梯度下降算法,应用到神经网络时,就叫做反向传播算法。核心点就在于:不断的更新每一层的权重w。

    反向传播示例

    总结一下:
    反向传播时,与输出层k连接的参数w_jk的调整值delta_w_jk还是和上面梯度下降中的求法一样。

    输入层i隐藏层j的w_ij的调整值delta_w_ij的计算公式如下:

    这里更多的内容可以参考:
    零基础入门深度学习(3) - 神经网络和反向传播算法
    Andrej Karpathy:Yes you should understand backprop

    代码实现

    关于使用代码实现,可以下载我在优达学城第一个项目的作业:我的第一个神经网络里面的First_neural_network.ipynb文件和数据文件。

    相关文章

      网友评论

      • 七月你未央:文科生看得懂吗?😅
        七月你未央:@未央长苏 你的分享比理科还理科😭同样是文科生差距咋那么大
        nfter:@未央长苏 我也是文科生😁

      本文标题:深度学习笔记(一)感知器、梯度下降、反向传播

      本文链接:https://www.haomeiwen.com/subject/gbjpjxtx.html