IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 学习笔记9--深度前馈网络 -> 正文阅读

[人工智能]学习笔记9--深度前馈网络

本系列博客包括6个专栏,分别为:《自动驾驶技术概览》、《自动驾驶汽车平台技术基础》、《自动驾驶汽车定位技术》、《自动驾驶汽车环境感知》、《自动驾驶汽车决策与控制》、《自动驾驶系统设计及应用》,笔者不是自动驾驶领域的专家,只是一个在探索自动驾驶路上的小白,此系列丛书尚未阅读完,也是边阅读边总结边思考,欢迎各位小伙伴,各位大牛们在评论区给出建议,帮笔者这个小白挑出错误,谢谢!
此专栏是关于《自动驾驶汽车环境感知》书籍的笔记



2.深度前馈网络

2.1 神经元

  1. 人工神经元(artificial neuron)简称神经元(neuron),是构成神经网络的基本单元,主要是模拟生物神经元的结构和特性,接收一组输入信号并产出输出;

  2. 神经元模型:
    1
    f ( ∑ i ω i x i + b ) f(\sum_i\omega_ix_i+b) f(i?ωi?xi?+b)
    其中: f f f为激活函数;为了增强网络的表达能力及学习能力,一般使用连续非线性激活函数(activation function);

    1. sigmoid激活函数
      sigmoid激活函数的两种形式:logistic函数和tanh函数;
      logistic函数定义为: σ ( x ) \sigma(x) σ(x)
      σ ( x ) = 1 1 + e ? x \sigma(x)=\frac{1}{1+e^{-x}} σ(x)=1+e?x1?
      2
      logistic函数图像如上,可以看成一个"挤压"函数,把一个实数域的输入"挤压"到(0,1);当输入值在0附近时,sigmoid函数近似线性函数;当输入值靠近两端时,对输入进行抑制;输入越小,其值越接近0;输入越大,其值越接近1;
      tanh函数定义为tanh(x):
      t a n h ( x ) = e x ? e ? x e x + e ? x = 2 σ ( 2 x ) ? 1 tanh(x)=\frac{e^x-e^{-x}}{e^x+e^{-x}}=2\sigma(2x)-1 tanh(x)=ex+e?xex?e?x?=2σ(2x)?1
      3
    2. Hard-Logistic和Hard-tanh函数
      logistic函数的导数为: σ ′ ( x ) = σ ( x ) ( 1 ? σ ( x ) ) \sigma'(x)=\sigma(x)(1-\sigma(x)) σ(x)=σ(x)(1?σ(x));logistic函数在0附近的一阶泰勒展开式为:
      g l ( x ) ≈ σ ( 0 ) + x × σ ′ ( 0 ) = 0.25 x + 0.5 gl(x)≈\sigma(0)+x\times\sigma'(0)=0.25x+0.5 gl(x)σ(0)+x×σ(0)=0.25x+0.5
      h a r d ? l o g i s t i c ( x ) = { 1 g l ( x ) ≥ 1 g l ( x ) 0 < g l ( x ) < 1 = max ? ( min ? ( g l ( x ) , 1 ) , 0 ) 0 g l ( x ) ≤ 0 hard-logistic(x)= \left\{ \begin{array}{lr} 1& & gl(x) \ge 1\\ gl(x) && 0 < gl(x)<1=\max(\min(gl(x),1),0)\\ 0 & &gl(x)≤0 \end{array} \right. hard?logistic(x)=????1gl(x)0??gl(x)10<gl(x)<1=max(min(gl(x),1),0)gl(x)0?
      tanh函数在0附近的一阶泰勒展开式为:
      g t ( x ) ≈ tanh ? ( 0 ) + x × tanh ? ′ ( 0 ) x gt(x)≈\tanh(0)+x\times\tanh'(0)x gt(x)tanh(0)+x×tanh(0)x

      h a r d ? t a n h ( x ) = max ? ( min ? ( g t ( x ) , 1 ) , ? 1 ) = max ? ( min ? ( x , 1 ) , ? 1 ) hard-tanh(x)=\max(\min(gt(x),1),-1)=\max(\min(x,1),-1) hard?tanh(x)=max(min(gt(x),1),?1)=max(min(x,1),?1)

    3.修正线性单元
    修正线性单元(Rectified Linear Unit,ReLU),ReLU函数实际是一个斜坡函数,定义:
    r e c t i f i e r ( x ) = { x x ≥ 0 0 x < 0 = max ? ( 0 , x ) rectifier(x)= \left\{ \begin{array}{lr} x& & x \ge 0\\ 0 && x<0 \end{array} \right.=\max(0,x) rectifier(x)={x0??x0x<0?=max(0,x)
    注:rectifier函数为左饱和函数,在 x > 0 x>0 x>0时导数为1,在 x ≤ 0 x≤0 x0时导数为0;在训练时,学习率设置过大,在一次更新参数后,一个采用ReLU的神经元在所有的训练数据上都不能被激活

    1. 带泄露的ReLU
      带泄露的ReLU(Leaky ReLU)在输入 x < 0 x<0 x<0时,保持一个很小的梯度;这样当神经元非激活时也有一个非零的梯度可以更新参数,避免永远不能被激活,定义:
      f ( x ) = max ? ( 0 , x ) + γ min ? ( 0 , x ) = { x x ≥ 0 γ x x < 0 ; γ ∈ ( 0 , 1 ) 是 一 个 很 小 的 常 数 , 如 0.01 f(x)=\max(0,x)+\gamma\min(0,x)=\left\{ \begin{array}{lr} x& & x \ge 0\\ \gamma{x} && x<0 \end{array} \right.;\gamma\in(0,1)是一个很小的常数,如0.01 f(x)=max(0,x)+γmin(0,x)={xγx??x0x<0?γ(0,1)0.01
    2. 带参数的ReLU
      带参数的ReLU(Parametric ReLU,PReLU)引入一个可学习的参数,不同神经元可以有不同的参数;对于第 i i i个神经元,ReLU定义:
      P R e L U i ( x ) = max ? ( 0 , x ) + γ i min ? ( 0 , x ) = { x x > 0 γ i x x ≤ 0 ; γ i 为 x ≤ 0 时 函 数 的 斜 率 PReLU_i(x)=\max(0,x)+\gamma_i\min(0,x)=\left\{ \begin{array}{lr} x& & x > 0\\ \gamma_i{x} && x≤0 \end{array} \right.;\gamma_i为x≤0时函数的斜率 PReLUi?(x)=max(0,x)+γi?min(0,x)={xγi?x??x>0x0?γi?x0
    3. softplus函数
      softplus函数定义:
      s o f t p l u s ( x ) = log ? ( 1 + e x ) softplus(x)=\log(1+e^x) softplus(x)=log(1+ex)

2.2 网络结构

常用的神经网络结构:

  1. 前馈网络;
    1. 网络中各个神经元按接收信息的先后分为不同的组;每一个组可以看成一个神经层;
    2. 每一层的神经元接收前一层神经元的输出,并输出到下一层神经元;
    3. 整个网络中信息只朝一个方向传播,没有反向的信息传播;
    4. 前馈网络包括:全连接前馈网络和卷积神经网络;
  2. 反馈网络;
    1. 网络中神经元可以接收其他神经元的信号,也可以接收自己的反馈信号;
    2. 反馈网络在不同的时刻具有不同的状态,具有记忆功能;
  3. 记忆网络;
    1. 记忆网络在前馈网络或反馈网络基础上,引入一组记忆单元,用保存中间状态;
    2. 记忆网络具有比反馈网络更强的记忆功能;
      4
      5
      6

2.3 深度前馈网络

  1. 前馈神经网络中,各神经元分别属于不同层;

  2. 每一层的神经元可以接收前一层神经元的信号,并产生信号输出到下一层;

  3. 第一层为输入层,最后一层为输出层,其他中间层为隐藏层;

  4. 整个网络无反馈,信号从输入层向输出层单向传播;
    7

    1. L L L:表示神经网络的层数;
    2. n l n^l nl:表示第 l l l层神经元的个数;
    3. f l ( ? ) f_l(·) fl?(?):表示 l l l层神经元的激活函数;
    4. W ( l ) ∈ R n l × n l ? 1 W^{(l)}\in{R^{n^l\times{n^{l-1}}}} W(l)Rnl×nl?1:表示 l ? 1 l-1 l?1层到第 l l l层的权重矩阵;
    5. b ( l ) ∈ R n l b^{(l)}\in{R^{n^l}} b(l)Rnl:表示 l ? 1 l-1 l?1层到第 l l l层的偏置;
    6. z ( l ) ∈ R n l z^{(l)}\in{R^{n^l}} z(l)Rnl:表示 l l l层神经元的净输入;
    7. a ( l ) ∈ R n l a^{(l)}\in{R^{n^l}} a(l)Rnl:表示 l l l层神经元的输出;

    前馈神经网络信息传播的公式:
    z ( l ) = W ( l ) a ( l ? 1 ) + b ( l ) ; a ( l ) = f l ( z ( l ) ) z^{(l)}=W^{(l)}a^{(l-1)}+b^{(l)};a^{(l)}=f_l(z^{(l)}) z(l)=W(l)a(l?1)+b(l)a(l)=fl?(z(l))

2.4 参数学习

深度前馈神经网络中, ( W , b ) (W,b) (W,b)是模型参数,给定输入和输出数据对 ( x , y ) (x,y) (x,y),得到模型参数的过程称为训练或学习;

交叉熵损失函数实例:

  1. 函数表示
    L ( y , y ^ ) = ? y T log ? y ^ , y ^ 为 对 应 的 o n e ? h o t 向 量 表 示 L(y,\hat{y})=-y^T\log{\hat{y}},\hat{y}为对应的one-hot向量表示 L(y,y^?)=?yTlogy^?y^?one?hot
  2. 给定训练集: D = { ( x ( i ) , y ( i ) ) } , 1 ≤ i ≤ N D=\{{(x^{(i)},y^{(i)})}\},1≤i≤N D={(x(i),y(i))},1iN,将每个样本 x ( i ) x^{(i)} x(i)输入给前馈网络,得到网络输出 y ^ \hat{y} y^?,其在数据集 D D D上的风险函数为: R ( W , b ) = 1 N ∑ i = 1 N L ( y ( i ) , y ^ ( i ) ) + 1 2 λ ∣ ∣ W ∣ ∣ F 2 R(W,b)=\frac{1}{N}\sum^{N}_{i=1}L(y^{(i)},\hat{y}^{(i)})+\frac{1}{2}\lambda||W||^2_F R(W,b)=N1?i=1N?L(y(i),y^?(i))+21?λWF2?
    1. W 和 b W和b Wb包含了每一层的权重矩阵和偏置向量;
    2. ∣ ∣ W ∣ ∣ F 2 ||W||^2_F WF2?是正则化项,用来防止过拟合;
    3. λ \lambda λ是正数的超参数; λ \lambda λ越大, W W W越接近0;
  3. 网络参数通过梯度下降法进行学习;在梯度下降每次迭代中,第 l l l层的参数 W ( l ) W^{(l)} W(l) b ( l ) b^{(l)} b(l)更新方式:
    W ( l ) ← W ( l ) ? α ? R ( W , b ) ? W ( l ) = W ( l ) ? α ( 1 N ∑ i = 1 N ? L ( y ( i ) , y ^ ( i ) ) ? W ( l ) + λ W ( l ) ) W^{(l)}\leftarrow{W^{(l)}}-\alpha\frac{\partial{R(W,b)}}{\partial{W^{(l)}}}=W^{(l)}-\alpha(\frac{1}{N}\sum^{N}_{i=1}\frac{\partial{L(y^{(i)},\hat{y}^{(i)}})}{\partial{W^{(l)}}}+\lambda{W^{(l)}}) W(l)W(l)?α?W(l)?R(W,b)?=W(l)?α(N1?i=1N??W(l)?L(y(i),y^?(i))?+λW(l))
    b ( l ) ← b ( l ) ? α ? R ( W , b ) ? b ( l ) = b ( l ) ? α ( 1 N ∑ i = 1 N ? L ( y ( i ) , y ^ ( i ) ) ? b ( l ) ) b^{(l)}\leftarrow{b^{(l)}}-\alpha\frac{\partial{R(W,b)}}{\partial{b^{(l)}}}=b^{(l)}-\alpha(\frac{1}{N}\sum^N_{i=1}\frac{\partial{L(y^{(i)},\hat{y}^{(i)})}}{\partial{b^{(l)}}}) b(l)b(l)?α?b(l)?R(W,b)?=b(l)?α(N1?i=1N??b(l)?L(y(i),y^?(i))?)
    α \alpha α为学习率;
  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-12-08 13:48:54  更:2021-12-08 13:51:16 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 1:35:28-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码