深度学习入门笔记之神经网络基础

深度学习入门

一、神经网络基础

1.人工神经元

从人类神经元中抽象出来的数学模型

在这里插入图片描述

Threshold指的是激活函数 , 当输入达到一定阈值时 , 函数会被激活

∑和Threshold组成了对信息处理的模块 , 对应人类的神经元的细胞核

output对应人类神经元的神经末梢

input对应人类神经元的树突

人工神经网络是大量的人工神经元以某种连接方式构成的机器学习模型

连接的权重表示神经元与神经元之间连接的强弱

o = σ ( < w , x > + b ) o=\sigma(<w,x>+b) o=σ(<w,x>+b) // 其中 , b是指bias表示偏置 , σ表示激活函数

2.多层感知机

单层神经网络基础上引入一个或多个隐藏层 , 使神经网络有多个网络层 , 由此称其为多层感知机

在这里插入图片描述

数据的前向传播 : 以上图为例 , 输入的数据是一个 X 1 ∗ 4 X_{1*4} X14 的向量 , 第一个隐藏层是一个 H 1 ∗ 5 H_{1*5} H15的向量 , 其中的运算过程如下
σ ( X 1 ∗ 4 ⋅ W h ) = H 1 ∗ 5 \sigma (X_{1*4} \cdot W_h )= H_{1*5} σ(X14Wh)=H15
这里 W h W_h Wh是输入层和第一个隐藏层之间的权重矩阵 , σ ( X 1 ∗ 4 ⋅ W h ) \sigma (X_{1*4} \cdot W_h ) σ(X14Wh)是多层感知机的激活函数

多层感知机必须要有激活函数 ,如果没有激活函数的话, 多层感知机就会退化成单层网络 , 以一个包含一层隐藏层的多层感知机为例

在这里插入图片描述

H = X W h + b h H = XW_h+b_h H=XWh+bh

O = H W o + b o O = ( X W h + b h ) W o + b o = X W h W o + b o = X W h W o + b h W o + b o O = HW_o+b_oO = (XW_h+b_h)W_o+b_o=XW_hW_o+b_o=XW_hW_o+b_hW_o+b_o O=HWo+boO=(XWh+bh)Wo+bo=XWhWo+bo=XWhWo+bhWo+bo

其中 , 公式(3)的最后一项 , b h W o + b o b_hW_o+b_o bhWo+bo可以看作是一个偏置项 b b b , X W h W o XW_hW_o XWhWo项中的输入数据X与两个矩阵的相乘可以看作是 X W XW XW , 因此若没有激活函数 , 公式(3)可以看作为 O = X W + b O =XW+b O=XW+b , 就退化到了单层网络了

3.激活函数

激活函数的作用

  1. 让多层感知机成为真正的多层,否则无论增加多少层数 , 多层感知机仍然等价于一层
  2. 引入非线性 , 使网络可以逼近任意非线性函数

激活函数需要具备的性质

  1. 连续并可导 , 但允许在少数点上不可导 , 便于利用数值优化的方法学习网络参数
  2. 激活函数及其导数要尽可能的简单
  3. 激活函数的导函数的值域要在合适区间内

三个常见的激活函数

在这里插入图片描述

Sigmoid函数 (S型)
g ( z ) = 1 / 1 + e − z g(z)=1/1+e^{-z} g(z)=1/1+ez

g ‘ ( z ) = g ( z ) ∗ ( 1 − g ( z ) ) g^`(z)=g(z)*(1-g(z)) g(z)=g(z)(1g(z))

公式(4)是sigmoid函数的表示 , (5)为其导函数 , 值接近于0 , 遗忘,接近于1则保留该值。

导函数的两侧接近于0的区域被称为饱和区。 如果神经元大量落入到饱和区 , 会使得网络模型的训练比较困难

在这里插入图片描述

Than双曲正切函数
tanh ⁡ ( x ) = ( e x − e − x ) / ( e x + e − x ) \tanh(x)=(e^x-e^{-x})/(e^x+e^{-x}) tanh(x)=(exex)/(ex+ex)

g ‘ ( z ) = 1 − ( g ( z ) ) 2 g`(z)=1-(g(z))^2 g(z)=1(g(z))2

函数曲线与sigmoid函数非常接近 , 但是值域是[-1,1]。导函数同样存在一个饱和区
在这里插入图片描述

R e l u = max ⁡ ( 0 , x ) Relu = \max(0,x) Relu=max(0,x)

g ‘ ( z ) = { 1 , if  z >0 u n d e f i n e d , if z=0 0 if  z  <0 g`(z)= \begin{cases} 1, & \text {if $z$>0}\\ undefined,& \text {if z=0}\\ 0 & \text {if $z$ <0} \end{cases} g(z)=1,undefined,0if z>0if z=0if z <0

在现在的神经网络中的隐藏层经常使用

S型和双曲正切激活函数被称为饱和型激活函数 . Relu被称为非饱激活函数

4.反向传播

  1. 前向传播 : 输入层数据开始从前向后 , 数据逐步传递至输出层 传播的是输入样本
  2. 反向传播 : 损失函数开始从后向前 , 梯度逐步传递至第一层 传播的是梯度

反向传播的作用: 用于权重更新,使网络输出更接近标签

损失函数 : 衡量模型输出与真实标签的差异 , L o s s = f ( y ‘ , y ) Loss=f(y^{`},y) Loss=f(y,y) , 损失函数值越小 , 模型效果越好

y ‘ y^` y 可以理解为是模型的输出 , 而y可以理解为是真实的标签

反向传播原理

微积分中的链式求导法则 , 链式求导法则公式
y = f ( u ) , u = g ( x ) ∂ y / ∂ x = ( ∂ y / ∂ u ) ∗ ( ∂ u / ∂ x ) y=f(u) , u=g(x) \\ \partial y/\partial x = (\partial y /\partial u) * (\partial u / \partial x) y=f(u),u=g(x)y/x=(y/u)(u/x)

多层感知机组成中 , 梯度是如何从后往前传播的?

在这里插入图片描述

先讲讲前向传播

计算图中 , 节点用矩形表示 代表数据 , 边用圆圈表示 , 代表操作。

在输入层和隐藏层之间的权重矩阵记为 W 4 ∗ 5 ( 1 ) W^{(1)}_{4*5} W45(1) , 隐藏层和输出层之间的权重矩阵记为 W 5 ∗ 3 ( 2 ) W^{(2)}_{5*3} W53(2)

在计算图中 , z = x ⋅ W ( 1 ) z=x\cdot W^{(1)} z=xW(1) ,即将权重矩阵 W 4 ∗ 5 ( 1 ) W^{(1)}_{4*5} W45(1) 和 输入数据 x相乘得到中间遍历z 。 ϕ \phi ϕ指的是激活函数,h即中间隐藏层的值 , h = ϕ ( z ) h=\phi(z) h=ϕ(z)

在输出层中 , o = h ⋅ W ( 2 ) o=h\cdot W^{(2)} o=hW(2) , 将o和标签值输入到损失函数中 , 得到损失值就是二者之间的差距
z = x ⋅ W ( 1 ) z=x\cdot W^{(1)} z=xW(1)

h = ϕ ( z ) h=\phi(z) h=ϕ(z)

o = h ⋅ W ( 2 ) o=h\cdot W^{(2)} o=hW(2)

然后是反向传播
在这里插入图片描述

**梯度下降法 : **

权值沿梯度的负方向更新,使得函数值减小

目的是让函数值迅速下降

数学概念 :

  1. 导数 : 函数在指定坐标轴上的变化率
  2. 方向导数 : 指定方向上的变化率
  3. 梯度 : 一个向量,方向为方向导数取最大值的方向; 梯度的方向的增长最快的方向

**学习率 : **

控制更新的步长 (一般沿梯度负方向更新) , 通常是小于1的

没有加入学习率可能造成得出的结果无法控制
在这里插入图片描述

5.损失函数

衡量模型输出与真实标签之间的差距

三个常见概念

  1. 损失函数 L o s s = f ( y ‘ , y ) Loss=f(y^{`},y) Loss=f(y,y) 单个样本的差异值。 工程上通常以批量的方式求取
  2. 代价函数 : C o s t = 1 / N ⋅ ∑ i N f ( y i ‘ , y i ) Cost=1/N \cdot \sum_i^N f(y^{`}_i,y_i) Cost=1/NiNf(yi,yi) 求总体样本的差异值
  3. 目标函数 : O b j = C o s t + R e g u l a r i z a t i o n T e r m Obj = Cost+Regularization Term Obj=Cost+RegularizationTerm 损失函数+正则项

正则项通过用于控制模型的复杂度 , 复杂度过高容易造成过拟合现象

两种常见损失函数

  1. MSE 均方误差 , 常用于回归任务中 M S E = ( ∑ i = 1 n y i − y i p ) 2 ) / n MSE= (\sum_{i=1}^n y_i-y^{p}_i)^2)/n MSE=(i=1nyiyip)2)/n 其中 y i p y_i^p yip是回归预测的结果
  2. CE 交叉熵 常用于分类任务 H ( p , q ) = − ∑ i = 1 n p ( x i ) log ⁡ q ( x i ) H(p,q)=-\sum_{i=1}^n p(x_i)\log q(x_i) H(p,q)=i=1np(xi)logq(xi) 用于衡量两个分布之间的差异 p是真实值的概率,q是模型输出的概率

三种熵之间的关系
在这里插入图片描述

P是真实存在的需要去逼近的分布 , 而Q是模型输出的分布 (p,q同义)

为什么优化交叉熵等价于优化相对熵? 信息熵是一个常数

Softmax函数 : 将数据变换到概率分布的形式 , 公式 y i = S ( z ) i = e z i / ∑ j = 1 C e z j , i = 1 , . . . , C y_i=S(z)_i=e^{z_i}/\sum^C_{j=1}e^{z_j},i=1,...,C yi=S(z)i=ezi/j=1Cezj,i=1,...,C

在这里插入图片描述

如何将数据变换到概率分布的形式
在这里插入图片描述

Softmax操作

  • 取指数 , 实现非负
  • 除以指数之和,实现之和为1

概率的两个性质

  • 概率值非负
  • 概率之和等于1

6.权值初始化

训练前对权值参数赋值 , 良好的权值初始化有利于模型的训练

将全部参数初始化为0则是一种错误的方法

通常采用随机初始化法 : 高斯分布随机初始化 , 从高斯分布中随机采样 , 对权重进行赋值 , 比如 N~(0,0.01) (对应公式 N   ( μ , σ ) N~(\mu,\sigma) N (μ,σ))

这里有一个 3 σ 准 则 3\sigma准则 3σ : 数值分布在 ( μ − 3 σ , μ + 3 σ ) (\mu-3\sigma,\mu+3\sigma) (μ3σ,μ+3σ)中的概率为99.73%

自适应标准差 : 自适应方法随机分布中的标准差

Xavier初始化方法 : U ( − 6 / a + b ) , 6 / a + b ) U(-\sqrt{6/a+b)},\sqrt{6/a+b)} U(6/a+b) ,6/a+b) , a是输入神经元的个数 , b是输出神经元的个数

除此之外还有Kaiming初始化方法(MSRA方法)

7.正则化

Regularization : 减小方差的策略 , 通俗理解为是减轻过拟合的策略

误差可以分解为 : 误差=偏差+方差+噪声

  • 偏差 : 度量学习算法的期望预测和真实结果的偏离程度 在训练的模型当前的输出结果到达噪声的差值
  • 方差 : 度量相同大小的训练集的变动导致的学习性能的变换 , 即刻画了数据扰动对结果的影响 训练集和验证集之间的差异
  • 噪声 : 任何学习算法所能达到的期望泛化误差的下界 训练模型的输出结果与1.0之间的差的最小值

示意图

在这里插入图片描述

过拟合现象 : 方差过大 , 在训练集上模型表现良好而在测试集上模型表现糟糕

在这里插入图片描述

曲线只走训练集的点 , 不走测试集的点

常见的正则项

  1. L1 ∑ i N ∣ w i ∣ \sum^N_i |w_i| iNwi
  2. L2 ∑ i N w i 2 \sum^N_i w^2_i iNwi2 用于权值衰减 , 让权值不要太大。 也叫weight decay 权值衰减

在这里插入图片描述

左边是L1 , 右边是L2 , 每个图的右上方是Loss值的等高线 , 黑点表示在这个位置正则项是最小的

加入L2后的表现如图
在这里插入图片描述

L2可以减轻模型在训练集上的过拟合

常见的正则化方法

Dropout : 随机失活 , 随机选择一个神经元使其weight=0

优点 : 避免过度依赖某个神经元 , 实现减轻过拟合

在这里插入图片描述
其它正则化方法

  • BN方法 Batch Normalization
  • Layer Normalization
  • Instance Normalization
  • Group Normalization
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值