• 深度学习 神经网络(2)前向传播


    一、前言

    前面介绍了《感知器》,类似于单个神经元细胞,现在我们用多个感知器组合成更加复杂的神经网络。本文介绍了多层神经网络通过前向传播方法,逐层计算出最终结果值的过程。

    二、神经网络结构

    在这里插入图片描述
    如上图所示(亲绘 ^ _ ^),展示了两层神经网络,有n+1个输入,2个输出,包含1个隐藏层。
    其他N层的神经网络以此类推就行。

    输入 x = [ x 0 x 1 ⋮ x n ] x=

    [x0x1xn]" role="presentation" style="position: relative;">[x0x1xn]
    x= x0x1xn

    第1层权重 w ( 1 ) = [ w 00 ( 1 ) w 01 ( 1 ) w 02 ( 1 ) . . . w 0 n ( 1 ) w 11 ( 1 ) w 11 ( 1 ) w 12 ( 1 ) . . . w 1 n ( 1 ) . . . . . . . . . . . . . . . w k 1 ( 1 ) w k 1 ( 1 ) w k 2 ( 1 ) . . . w k n ( 1 ) ] w^{(1)}=

    [w00(1)w01(1)w02(1)...w0n(1)w11(1)w11(1)w12(1)...w1n(1)...............wk1(1)wk1(1)wk2(1)...wkn(1)]" role="presentation" style="position: relative;">[w00(1)w01(1)w02(1)...w0n(1)w11(1)w11(1)w12(1)...w1n(1)...............wk1(1)wk1(1)wk2(1)...wkn(1)]
    w(1)= w00(1)w11(1)...wk1(1)w01(1)w11(1)...wk1(1)w02(1)w12(1)...wk2(1)............w0n(1)w1n(1)...wkn(1)

    第1层输出 a ( 1 ) = f 1 ( w ( 1 ) x ) = [ a 0 ( 1 ) a 1 ( 1 ) ⋮ a k ( 1 ) ] a^{(1)}=f_1(w^{(1)}x)=

    [a0(1)a1(1)ak(1)]" role="presentation" style="position: relative;">[a0(1)a1(1)ak(1)]
    a(1)=f1(w(1)x)= a0(1)a1(1)ak(1)
    其中 f 1 f_1 f1是第1层的激活函数。

    第2层权重 w ( 2 ) = [ w 00 ( 2 ) w 01 ( 2 ) w 02 ( 2 ) . . . w 0 k ( 2 ) w 11 ( 2 ) w 11 ( 2 ) w 12 ( 2 ) . . . w 1 k ( 2 ) ] w^{(2)}=

    [w00(2)w01(2)w02(2)...w0k(2)w11(2)w11(2)w12(2)...w1k(2)]" role="presentation" style="position: relative;">[w00(2)w01(2)w02(2)...w0k(2)w11(2)w11(2)w12(2)...w1k(2)]
    w(2)=[w00(2)w11(2)w01(2)w11(2)w02(2)w12(2)......w0k(2)w1k(2)]

    第2层输出 a ( 2 ) = f 2 ( w ( 2 ) a ( 1 ) ) = f 2 ( w ( 2 ) ( f 1 ( w ( 1 ) x ) ) ) = f 2 ( [ w 00 ( 2 ) w 01 ( 2 ) w 02 ( 2 ) . . . w 0 k ( 2 ) w 11 ( 2 ) w 11 ( 2 ) w 12 ( 2 ) . . . w 1 k ( 2 ) ] [ a 0 ( 1 ) a 1 ( 1 ) ⋮ a k ( 1 ) ] ) = [ a 0 ( 2 ) a 1 ( 2 ) ] a^{(2)}=f_2(w^{(2)}a^{(1)})=f_2\big(w^{(2)}(f_1(w^{(1)}x))\big)=f_2\bigg(

    [w00(2)w01(2)w02(2)...w0k(2)w11(2)w11(2)w12(2)...w1k(2)]" role="presentation" style="position: relative;">[w00(2)w01(2)w02(2)...w0k(2)w11(2)w11(2)w12(2)...w1k(2)]
    [a0(1)a1(1)ak(1)]" role="presentation" style="position: relative;">[a0(1)a1(1)ak(1)]
    \bigg)=
    [a0(2)a1(2)]" role="presentation" style="position: relative;">[a0(2)a1(2)]
    a(2)=f2(w(2)a(1))=f2(w(2)(f1(w(1)x)))=f2([w00(2)w11(2)w01(2)w11(2)w02(2)w12(2)......w0k(2)w1k(2)] a0(1)a1(1)ak(1) )=[a0(2)a1(2)]
    其中 f 2 f_2 f2是第2层的激活函数。

    三、前向传播

    以此类推,那么在第 l l l
    a ( l ) = f l ( w ( l ) a ( l − 1 ) ) a^{(l)}=f_l(w^{(l)}a^{(l-1)}) a(l)=fl(w(l)a(l1))

    x → f 1 w ( 1 ) a ( 1 ) → f 2 w ( 2 ) ⋯ → f l w ( l ) a ( l ) x\xrightarrow[f_1]{w^{(1)}}a^{(1)}\xrightarrow[f_2]{w^{(2)}}\dots \xrightarrow[f_l]{w^{(l)}}a^{(l)} xw(1) f1a(1)w(2) f2w(l) fla(l)的形式,神经网络通过逐层的信息传递,最终得到网络的输出 a ( l ) a^{(l)} a(l),这叫前馈神经网络的前向传播。

    四、参考资料

    神经网络与深度学习-邱锡鹏
    《深度学习入门:基于Python的理论与实现》

  • 相关阅读:
    报考PMP怕上当,都会遇到哪些坑,我该如何避开这些坑?
    Spring Cloud 面试题总结
    英语六级-day7
    LeetCode-分割回文串(C++)
    JAVAOTET交通在线查询购票系统计算机毕业设计Mybatis+系统+数据库+调试部署
    3.17 让你的小红书笔记排名更靠前的六个方法【玩赚小红书】
    计算机组成原理历年考研真题对应知识点(计算机系统层次结构)
    域名列入备案黑名单解除教程
    安卓程序执行入口
    新荣耀两周年:一次隘口突围、一场创新盛宴、一场价值跃迁
  • 原文地址:https://blog.csdn.net/Leytton/article/details/127522170