(人工)神经网络基础
1. (人工)神经网络的基本组成元素
- (人工)神经元
单层神经网络
多层神经网络
- 输入层
- 隐层
- 输出层
- 线性输出:常用于回归
- Sigmoid输出:常用于解决二分类问题
- Softmax输出:常用于解决多分类问题
非线性激活函数
作用:防止多层神经网络坍缩成单层神经网络,以增加神经网络的表达能力。
常见的非线性激活函数
Sigmoid
f ( z ) = 1 1 + e − z f(z)=\frac1{1+e^{-z}} f(z)=1+e−z1
Tanh
f ( z ) = tanh ( z ) = e z − e − z e z + e − z f(z)=\tanh(z)=\frac{e^z-e^{-z}}{e^z+e^{-z}} f(z)=tanh(z)=ez+e−zez−e−z
ReLU
f ( z ) = max ( z , 0 ) f(z)=\max(z,0) f(z)=max(z,0)
前向计算:得到结果和中间值
2. 如何训练神经网络
训练目标:最小化损失函数
训练方法:梯度下降法
θ n е w = θ o l d − α ∇ θ Ј ( θ ) \theta^{nеw}=\theta^{old}-\alpha\nabla_{\theta}\text{Ј}(\theta) θnеw=θold−α∇θЈ(θ),α称为步长或学习率
梯度:n输入1输出
∂ F ∂ x = [ ∂ F ∂ x 1 , ∂ F ∂ x 2 . . . ∂ F ∂ x n ] \frac{\partial\mathcal{F}}{\partial x}=[\frac{\partial\mathcal{F}}{\partial x_1},\frac{\partial\mathcal{F}}{\partial x_2}...\frac{\partial\mathcal{F}}{\partial x_n}] ∂x∂F=[∂x1∂F,∂x2∂F...∂xn∂F]
雅可比矩阵:n输入m输出
∂ F ∂ x = [ ∂ F 1 ∂ x 1 . . . ∂ F 1 ∂ x n ⋮ ⋱ ⋮ ∂ F m ∂ x 1 . . . ∂ F m ∂ x n ] \dfrac{\partial F}{\partial x}=\begin{bmatrix}\dfrac{\partial F_1}{\partial x_1}&...&\dfrac{\partial F_1}{\partial x_n}\\\vdots&\ddots&\vdots\\\dfrac{\partial F_m}{\partial x_1}&...&\dfrac{\partial F_m}{\partial x_n}\end{bmatrix} ∂x∂F= ∂x1∂F1⋮∂x1∂Fm...⋱...∂xn∂F1⋮∂xn∂Fm
链式法则求解梯度
反向传播算法:得到下游梯度进行传播
计算图
上游梯度、下游梯度、本地梯度
举例
3. 词向量:Word2Vec
滑动窗口
- 目标词(target word)
- 上下文词(context words)
两类模型
Continuous bag-of-words(CBOW):根据上下文词预测目标词
Continuous skip-gram:根据目标词预测上下文词
提高计算效率
- 负采样(Negative Sampling):按照词频进行负例采样
- 分层softmax(Hierarchical softmax)
词嵌入训练技巧
- Sub-Sampling:平衡常见词与罕见词
- Soft sliding window:不固定大小滑窗
4. 循环神经网络(RNN:Recurrent Neural Networks)
RNN单元
h i = tanh ( W x x i + W h h i − 1 + b ) y i = F ( h i ) \begin{aligned}h_i&=\tanh(W_xx_i+W_hh_{i-1}+b)\\\\y_i&=F(h_i)\end{aligned} hiyi=tanh(Wxxi+Whhi−1+b)=F(hi)
应用场景
- Sequence Labeling
- Sequence Prediction
- Photograph Description
- Text Classification
优点
- 处理变量数据
- 模型大小不会随着输入增大而增大
- 权重共享
- 后续计算可以用前面的计算结果
缺点
- 顺序计算,需要计算出前一个计算结果才能得到后一个计算结果
- 随着时间推移,后续计算很难获取前面计算结果
- 梯度消失或梯度爆炸
RNN变体:计算时保存当前周围记忆进行数据处理以捕捉长距离的依赖性
GRU(Gated Recurrent Unit)
更新门
重置门
LSTM(Long Short-Term Memory Network)
遗忘门
输入门
输出门
双向RNN
5. 卷积神经网络(CNN:Convolutional Neural Networks)
结构
- 输入层
- 卷积层
- 最大化层
- 全连接层
应用场景
- 目标检测
- 视频分类
- 语音识别
- 文本分类
6. CNN与RNN比较
5. 卷积神经网络(CNN:Convolutional Neural Networks)
结构
- 输入层
- 卷积层
- 最大化层
- 全连接层
应用场景
- 目标检测
- 视频分类
- 语音识别
- 文本分类