深度网络的基础组件

来源:互联网 发布:软件测试课程大纲 编辑:程序博客网 时间:2024/05/24 06:53
网络架构的主要分类:
1. 无监督网
2. CNN
3. 循环网:[LSTM]
4. 递归网


网络的主要组件:
1. 参数:在不同的架构中,层的结构方式不同,影响参数。
比如DBN中有两套连接。一套是RBM,用于抽取另一个网的特征。另一套是DBN,用RBM的输出去初始化网络。
2. 分层
可以通过改变激活函数的类型或子网类型来定制层。
3. 激活函数
输入层:不用激活函数。
隐藏层:用于抽于高阶特征。Sigmoid(少用)/Tanh(ReLU用得不爽时代替)/Hard tanh/ReLU(常用,用于连续的输入)及其变体。
输出层:回归:单值,线性激活函数
输出层:二元分类:在一个神经元上用sigmoid。
输出层:多类别分类:softmax, 或sigmoid加多神经元。
softmax输出苹果80%。
sigmoid+多神经元输出:绿75% 苹果80%
4. 损失函数
最佳拍档: 交叉熵失损函数+ softmax激活函数 
在UPN中,使用重构熵损失函数(reconstruction entropy loss function)+ 高斯噪音,可以自主学习不同的特征。
5. 优化方法/学习函数
优化算法分为两类:
First-order:计算雅可比矩阵。雅可比矩阵是损失函数的偏导组成的矩阵。变量是模型参数。
计算坡度。坡度下降算法属于这一类。最强的还是SGD。
Second-order:计算雅可比矩阵的偏导,即黑森Hessian矩阵。它考虑了参数之间的相互依赖。
Second-order包括的方法有:
Limited-memory BFGS (L-BFGS):又称为拟牛顿法quasi-Newton method。是Broyden-Fletcher-Goldfarb-Shanno(BFGS)算法的变体。去计算hessian的逆。优于SGD。
Conjugate gradient:共轭梯度,也优于SGD。
Hessian-free:比牛顿法更好的处理二次函数的最小化问题。2010年用于深度网络。
其它优化算法包括:
• Genetic algorithms
• Particle swarm optimization
• Ant colony optimization
• Simulated annealing
6. 超参数
包括:
层大小
量级(动量,学习率)
规整化(剪枝,drop connect, L1, L2)
激活量(包括激活函数家族)
权重初始化策略
损失函数
对epochs的设置(mini-batch size)
输入数据的标准化方案(vectorization)


混个眼熟:受限波兹曼机RBMs,自动编码器Autoencoders
ND4j:N-Dimensional Arrays for Java


小结:本篇讨论了深度网络的基础组件,以及激活函数、损失函数和优化算法如何取舍。