• BP神经网络


    B P BP BP神经网络

    1.激活函数

    ​ 激活函数(Activation Function)是在人工神经网络的神经元上运行的函数,负责将神经元的输入映射到输出端。激活函数对于人工神经网络模型去学习、理解复杂的非线性函数,具有十分重要的作用。

    ​ 如果不使用激活函数,每一层输出都是上一层输入的线性运算,无论神经网络有多少层,最终的输出只是输入的线性组合,相当于感知机。如果使用了激活函数,将非线性因素引入到网络中,使得神经网络可以任意逼近任何非线性函数,能够应用到更多的非线性模型。

    常用的激活函数

    s i g m o i d sigmoid sigmoid 函数

    S i g m o i d Sigmoid Sigmoid函数是一个在生物学中常见的S型函数,也称为S型生长曲线。在信息科学中,由于其单增以及反函数单增等性质,Sigmoid函数常被用作神经网络的阈值函数,将变量映射到0,1之间,公式如下:
    f ( x ) = 1 1 + e ( − x ) f(x)=\frac{1}{1+e^{(-x)}} f(x)=1+e(x)1

    sigmoid

    R e L U ReLU ReLU函数

    R e l u Relu Relu激活函数(The Rectified Linear Unit),用于隐藏层的神经元输出。公式如下:
    f ( x ) = m a x ( 0 , x ) f(x)=max(0,x) f(x)=max(0,x)
    在这里插入图片描述

    T a n h Tanh Tanh 函数

    T a n h Tanh Tanh 是双曲函数中的一个, T a n h ( ) Tanh() Tanh() 为双曲正切。在数学中,双曲正切“ T a n h Tanh Tanh”是由基本双曲函数双曲正弦和双曲余弦推导而来。公式如下:
    f ( x ) = e x − e − x e x + e − x f(x)=\frac{e^{x}-e^{-x}}{e^{x}+e^{-x}} f(x)=ex+exexex
    s o f t m a x softmax softmax 函数

    s o f t m a x softmax softmax 函数用于输出层。假设输出层共有 n n n 个神经元,计算第 k k k 个神经元的输出 y k y_k yk s o f t m a x softmax softmax 函数的分子是输入信号 a k a_k ak 的指数函数,分母是所有输入信号的指数函数的和。 s o f t m a x softmax softmax 函数公式如下:
    y k = e a k ∑ i = 1 n e a i y_{k}=\frac{e^{a_{k}}}{\sum_{i=1}^{n} e^{a_{i}}} yk=i=1neaieak

    2.神经网络结构

    ​ 第0层是输入层(2个神经元),第1层是隐含层(3个神经元),第2层是隐含层(2个神经元),第3层是输出层。

    在这里插入图片描述

    符号约定

    w j k [ l ] w_{j k}^{[l]} wjk[l]表示从网络第 ( l − 1 ) t h (l-1)^{t h} (l1)th 层第 k t h k^{t h} kth 个神经元指向第 l t h l^{t h} lth 层第 j t h j^{t h} jth 个神经元的连接权重,同时也是第 l l l 层权重矩阵第 j j j 行第 k k k 列的元素。例如,上图中 w 21 [ 1 ] w_{21}^{[1]} w21[1] ,第0层第1个神经元指向第1层第2个神经元的权重(褐色),也就是第 1 层权重矩阵第 2 行第 1 列的元素。同理,使用 b j [ l ] b_{j}^{[l]} bj[l] 表示第 l t h l^{t h} lth 层第 j t h j^{t h} jth 个神经元的偏置 ,同时也是第 l l l 层偏置向量的第 j j j 个元素。使用 z j [ l ] z_{j}^{[l]} zj[l] 表示第 l t h l^{t h} lth 层第 j t h j^{t h} jth 个神经元的线性结果,使用 a j [ l ] a_{j}^{[l]} aj[l] 来表示第 l t h l^{t h} lth 层第 j t h j^{t h} jth 个神经元的激活函数输出。其中,激活函数使用符号σ表示,第 l t h l^{t h} lth 层中第 j t h j^{t h} jth 个神经元的激活为:

    a j [ l ] = σ ( z j [ l ] ) = σ ( ∑ k w j k [ l ] a k [ l − 1 ] + b j [ l ] ) a_{j}^{[l]}=\sigma(z_{j}^{[l]})=\sigma\left(\sum_{k} w_{j k}^{[l]} a_{k}^{[l-1]}+b_{j}^{[l]}\right) aj[l]=σ(zj[l])=σ(kwjk[l]ak[l1]+bj[l])
    w [ l ] w^{[l]} w[l] 表示第 l l l 层的权重矩阵, b [ l ] b^{[l]} b[l] 表示第 l l l 层的偏置向量, a [ l ] a^{[l]} a[l] 表示第 l l l 层的神经元向量,结合上图讲述:

    w [ 1 ] = [ w 11 [ 1 ] w 12 [ 1 ] w 21 [ 1 ] w 22 [ 1 ] w 31 [ 1 ] w 32 [ 1 ] ] w^{[1]}=\left[

    w11[1]w12[1]w21[1]w22[1]w31[1]w32[1]" role="presentation" style="position: relative;">w11[1]w12[1]w21[1]w22[1]w31[1]w32[1]
    \right] w[1]= w11[1]w21[1]w31[1]w12[1]w22[1]w32[1] w [ 2 ] = [ w 11 [ 2 ] w 12 [ 2 ] w 13 [ 2 ] w 21 [ 2 ] w 22 [ 2 ] w 23 [ 2 ] ] w^{[2]}=\left[
    w11[2]w12[2]w13[2]w21[2]w22[2]w23[2]" role="presentation" style="position: relative;">w11[2]w12[2]w13[2]w21[2]w22[2]w23[2]
    \right]
    w[2]=[w11[2]w21[2]w12[2]w22[2]w13[2]w23[2]]

    b [ 1 ] = [ b 1 [ 1 ] b 2 [ 1 ] b 3 [ 1 ] ] b^{[1]}=\left[

    b1[1]b2[1]b3[1]" role="presentation" style="position: relative;">b1[1]b2[1]b3[1]
    \right] b[1]= b1[1]b2[1]b3[1] b [ 2 ] = [ b 1 [ 2 ] b 2 [ 2 ] ] b^{[2]}=\left[
    b1[2]b2[2]" role="presentation" style="position: relative;">b1[2]b2[2]
    \right]
    b[2]=[b1[2]b2[2]]

    进行线性矩阵运算。

    z [ 1 ] = [ w 11 [ 1 ] w 12 [ 1 ] w 21 [ 1 ] w 22 [ 1 ] w 31 [ 1 ] w 32 [ 1 ] ] ⋅ [ a 1 [ 0 ] a 2 [ 0 ] ] + [ b 1 [ 1 ] b 2 [ 1 ] b 3 [ 1 ] ] = [ w 11 [ 1 ] a 1 [ 0 ] + w 12 [ 1 ] a 2 [ 0 ] + b 1 [ 1 ] w 21 [ 1 ] a 1 [ 0 ] + w 22 [ 1 ] a 2 [ 0 ] + b 2 [ 1 ] w 31 [ 1 ] a 1 [ 0 ] + w 32 [ 1 ] a 2 [ 0 ] + b 3 [ 1 ] ] z^{[1]}=\left[

    w11[1]w12[1]w21[1]w22[1]w31[1]w32[1]" role="presentation" style="position: relative;">w11[1]w12[1]w21[1]w22[1]w31[1]w32[1]
    \right] \cdot\left[
    a1[0]a2[0]" role="presentation" style="position: relative;">a1[0]a2[0]
    \right]+\left[
    b1[1]b2[1]b3[1]" role="presentation" style="position: relative;">b1[1]b2[1]b3[1]
    \right]=\left[
    w11[1]a1[0]+w12[1]a2[0]+b1[1]w21[1]a1[0]+w22[1]a2[0]+b2[1]w31[1]a1[0]+w32[1]a2[0]+b3[1]" role="presentation" style="position: relative;">w11[1]a1[0]+w12[1]a2[0]+b1[1]w21[1]a1[0]+w22[1]a2[0]+b2[1]w31[1]a1[0]+w32[1]a2[0]+b3[1]
    \right] z[1]= w11[1]w21[1]w31[1]w12[1]w22[1]w32[1] [a1[0]a2[0]]+ b1[1]b2[1]b3[1] = w11[1]a1[0]+w12[1]a2[0]+b1[1]w21[1]a1[0]+w22[1]a2[0]+b2[1]w31[1]a1[0]+w32[1]a2[0]+b3[1]

    矩阵形状 (3,2) (2,1) (3,1) (3,1)

    z [ 2 ] = [ w 11 [ 2 ] w 12 [ 2 ] w 13 [ 2 ] w 21 [ 2 ] w 22 [ 2 ] w 23 [ 2 ] ] ⋅ [ a 1 [ 1 ] a 2 [ 1 ] a 3 [ 1 ] ] + [ b 1 [ 2 ] b 2 [ 2 ] ] = [ w 11 [ 2 ] a 1 [ 1 ] + w 12 [ 2 ] a 2 [ 1 ] + w 13 [ 2 ] a 3 [ 1 ] + b 1 [ 2 ] w 21 [ 2 ] a 1 [ 1 ] + w 22 [ 2 ] a 2 [ 1 ] + w 23 [ 2 ] a 3 [ 1 ] + b 2 [ 2 ] ] z^{[2]}=\left[

    w11[2]w12[2]w13[2]w21[2]w22[2]w23[2]" role="presentation" style="position: relative;">w11[2]w12[2]w13[2]w21[2]w22[2]w23[2]
    \right] \cdot\left[
    a1[1]a2[1]a3[1]" role="presentation" style="position: relative;">a1[1]a2[1]a3[1]
    \right]+\left[
    b1[2]b2[2]" role="presentation" style="position: relative;">b1[2]b2[2]
    \right]=\left[
    w11[2]a1[1]+w12[2]a2[1]+w13[2]a3[1]+b1[2]w21[2]a1[1]+w22[2]a2[1]+w23[2]a3[1]+b2[2]" role="presentation" style="position: relative;">w11[2]a1[1]+w12[2]a2[1]+w13[2]a3[1]+b1[2]w21[2]a1[1]+w22[2]a2[1]+w23[2]a3[1]+b2[2]
    \right] z[2]=[w

  • 相关阅读:
    MySQL 索引的使用和设计
    计算机网络:随机访问介质访问控制之ALOHA协议
    base64转file类型,并且作为参数发起axios/xhr请求(已封装好)
    Microsoft Fabric 是什么?
    橘子学MQ之rocketmq
    windows上搭建llama小型私有模型
    运放-电压采集采样电路设计
    阿里面试官最新分享的Java面试宝典,含8大核心内容讲解
    IndexError: invalid index of a 0-dim tensor. Use `tensor.item()` in Python
    多系统对接的适配与包装模式应用
  • 原文地址:https://blog.csdn.net/qq_44700608/article/details/133621264