最后一层的激活函数和误差函数
问题类型 | 最后一层的激活函数 | 误差函数 |
---|---|---|
二分类 | sigmoid | binary_crossentropy |
多分类 | softmax | categorical_crossentropy |
回归到任意值 | 没有 | mse |
回归到0到1之间的值 | sigmoid | mse or binary_crossentropy |
$$ MSE = \frac{1}{m}\sum_{i=1}^{m}(y_i - \hat{y}_i)^2 $$
超参数
- 隐藏层数量
- 每层的隐藏单元数目
训练误差和泛化误差
训练误差: 出自于训练数据
泛化误差: 出自于新数据
K折交叉验证
在没有足够的数据时非常有用
算法:
- 将训练数据划分为K个部分
- 对于
i = 1, ... , K
- 每次使用第i部分作为验证集, 其余部分用于训练
- 报告平均K个验证错误
常见的K值选择: 5-10
VC维度
VC维度反映了函数集的学习能力, VC维度越大, 则学习机器越复杂(容量越大), 学习能力越强
参考https://www.iteye.com/blog/xiaoxia001-1163338, https://blog.csdn.net/houlaizhexq/article/details/22957591
VC维度的效用
- 提供理论解释模型的工作原理
- 限制了训练误差和泛化误差之间的差距
- 在深度学习的实践中很少使用
- 难以计算深度神经网络的VC维数
- 边界过于宽松
- 其他统计学习理论工具也是如此
特征工程
- 特征描述, 例如SIFT(尺度不变特征变换), SURF(更高效的完成特征的提取和描述)
- 视觉词袋(聚类)
- 应用SVM(支持向量机)
1 X 1 卷积层
不识别空间模式, 而是融合通道
池化层
最大池化层: 每个窗口中最强的模式信号
平均池化层: 每个窗口中的平均信号强度
重要的网络结构
- LeNet (第一个卷积层, 1998)
- AlexNet (2012)
- 升华版的LeNet
- ReLu激活, 丢弃法, 图像增强
- VGG (2014)
- 升华版的AlexNet
- 重复的VGG块
- GoogLeNet (Inception, 2014)
- 卷积的不均匀混合(不同深度)
- 批量归一化
- ResNet (残差网络, 2015)
- DenseNet (稠密连接网络, 2016)
网络架构
神经网络可以大致分为两部分:
- 特征提取器将原始像素映射为线性可分离的特征
- 用线性分类做决定
微调 (迁移学习)
神经网络学习分层特征表示:
- 低层特征是通用的
- 高层特征与数据集中的对象更相关
Inception块
参考https://zhuanlan.zhihu.com/p/37505777
与单个3x3或5x5卷积层相比, 初始块具有更少的参数和更低的计算复杂度
- 不同功能混合(多样的功能类)
- 内存计算高效(良好的泛化)
残差网络 (ResNet)
参考https://www.cnblogs.com/wuliytTaotao/p/9560205.html