注:从现在的观点来看,本贴太狭隘了。但暂时保留吧。
一、引言
之前系统的学习了深度学习,写了下面三篇博客:
而今天这篇博客主要从顶层视图的角度对之前深度学习方法的一个总结。
二、总结
1. 输入
输入由数据模型确定。
a) 对于属性独立的样本,
n
n
n 个属性需要
n
n
n 个输入端口。
b) 对于长度为
n
n
n 的序列,需要
n
n
n 个输入端口。在机器翻译时,由于句子长短不一致,可以按最长的来(如
n
=
100
n = 100
n=100),句子不足
n
n
n 个单词,则使用padding来补齐。
c) 离散值也一般转换为整数。特别地,文字处理也需要如将字(单词、词)转换为整数,方便处理。
d) 一般情况下,输入是一个向量。特殊情况下,输入也可以是一个矩阵。例如:地震波既需要表达道内的相邻关系,也需要表达道间的相邻关系。
2. 输出
输出与任务紧密相关,也体现了一定的设计理念。
a) 各个输出端一般输出实数,特别是
[
0
,
1
]
[0, 1]
[0,1] 区间的实数。
b) 回归任务只需要一个输出端口。
c)
c
c
c 类数据的分类,需要
c
c
c 个端口,仅需要比较哪个端口输出值大,来预测分类。
d)
l
l
l 个标签的多标签学习,或者标签分布学习,均需要
l
l
l 个输出端口。
e) 地震数据处理,输入端口与输入端口数一致。
3. 节点结构
节点也常被称为“神经元”。
3.1 节点输入
a) 加权和:感知机使用的运算。
b) 卷积:神经网络常用运算。
3.2 节点输出
a) 激活函数:sigmoid, tanh, relu及其变种。
b) softmax
3.3 内部结构
见LSTM.
4. 网络拓扑
网络拓扑常常确定了网络的复杂度。
4.1 全连接
即上一层的每个节点均与下一层每个节点连接。
4.2 Dropout
删除一些连线,以防止过拟合。
4.3 跳线
即跨层的直接连接。
4.4 同一层的连接
支持对序列(时序、文本)的处理。如RNN, LSTM。
4.5 外接线
将某些节点的结果拉出来后,接到外部节点进行运算,再放入网络中的某些节点。
5. 损失函数
损失函数与具体的任务相关,回归、分类任务常用的是MAE, RSME之类。
6. 训练方式
6.1 串线训练
每次仅使用一条数据。
6.2 批量训练
每次使用一批数据。