深度学习软件
PyTorch(TODO)
组成(三层)
Tensor
运行在GPU上的命令式数组(Imperative ndarray)
Variable
计算图中的节点,存储数据和梯度
Module
一个神经网络的层
CNN架构
AlexNet:8layers
ZFNet:在AlexNet基础上调整了超参数
VGG:16/19layers(全部采用3X3的卷积核——更有利于加深神经网络的深度)
GoogleNet:
22layers,高效的“Inception”层,无全连接层
Inception层是设计好的一个局部网络拓朴,对输入的层进行并行操作,然后将每个滤波器的输出进行深度上的串联,通过0填充保持输出尺寸一致。
利用1X1卷积核进行深度的压缩对模型进行改进。
ResNet: 152layers
ResNet的整体结构
RNN
Vanilla RNN
Loss是每一个时步下的loss之和
W的梯度是每个节点的W梯度值和
Vanilla RNN梯度流
在计算h0梯度时会发生梯度爆炸或者梯度消失
当梯度爆炸,L2范式大于一个阙值时可以进行剪枝。
1 | grad_norm = np.sum(grad * grad) |
当梯度消失时可以采用更深的RNN网络,比如LSTM。
LSTM(长短期记忆网络)
ht为隐藏状态,ct为单元状态,保留在lstm内部不会暴露到外面。
LSTM状态变化图
利用加法和乘法门可以很好的解决梯度消失和梯度爆炸问题。
图像标注