一、神经网络基础

(一) 动机:从感知器到多层结构

【单层感知器】只能处理线性可分问题,无法处理XOR等问题

  • 突破途径: 1.作非线性变换 2.增加网络层数

【多层感知器】输入层(原始特征)→隐藏层(非线性变换)→输出层

(二) 神经网络模型

1.全连接前馈神经网络:没有反馈回路,相邻层神经元全连接

输出层可以省略激活,直接输入S=输出x,或者用softmax做分类

2.核心激活函数

函数优点缺点
Sigmoid导数平滑连续,不会出现梯度爆炸梯度易消失,输出非零均值(每一层输出都是正数),训练速度慢
Tanh解决了非零均值的问题,训练更稳定,无梯度爆炸仍存在梯度消失问题
ReLU训练速度快,不存在梯度消失问题x≤0时永久失效,导数在x=0处不连续
Leaky ReLu解决死亡 ReLU 问题需额外调整参数

二、神经网络学习

通过最小化损失函数,更新所有权重w

(一) BP算法

1.步骤

1) 前向传播,计算所有层的输入S和输出x,得到输出层预测值

2) 反向传播,求梯度:从输出层反向计算各层误差项

3) 权重更新:按梯度下降法更新权重

2.计算图

三、深度神经网络与CNN

浅层网络(1 个隐藏层)需极多神经元才能拟合复杂函数,而深层网络可通过 “分层特征提取”,用更少参数实现更好性能

(一)卷积神经网路(CNN)

用“权值共享”解决参数爆炸问题,用“局部连接”保留空间特征

CNN结构

1) Conv卷积层:输出特征图

2) Pool池化层:下采样, 参数量:0【因为无权重更新】

减少特征图尺寸,增强鲁棒性(抗平移),减少计算量

常见类型:取局部最大值和取局部平均值

3) FC全连接层:分类

参数量计算:(输入神经元+1)*数输出神经元数(输入神经元数 = 前一层特征图总元素数)

更多推荐