深度学习
深度学习
和机器学习的区别
特征提取方面
- 机器学习的特征工程步骤是要靠手动完成的,而且需要大量领域专业知识
- 深度学习通常有多个层组成,它们通常将更简单的模型组合在一起,通过将数据从一层传递到另一层来构建更复杂的模型。通过大量数据的训练自动得到模型,不需要人工设计特征提取环节
深度学习算法试图从数据中学习高级功能,这是深度学习的一个非常独特地部分。因此,减少了为每个问题开发新特征提取器的任务。适合用于在难提取的图像、语音、自然语言领域。
神经网络
人工神经网络
Artificial Neural Network,简写为ANN,也简称为神经网络(NN)
经典神经网络结构包含三个层次的神经网络。
- 输入层
- 输出层
- 隐藏层
深度学习进阶
深度学习正则化
学习目标
- 了解偏差与方差的意义
- 知道
L2正则化与L1正则化的数学意义 - 知道
Droupout正则化方法 - 了解早停止法、数据增强法的其他正则化方式
方差与偏差
数据集划分
- 训练集(
train set):用训练集对算法或模型进行训练过程 - 验证集(
development set):利用验证集(又称为简单交叉验证集,hold-out cross validation set)进行交叉验证,选出最好的模型 - 测试集(
test set):最后利用测试集对模型进行测试,对学习方法进行评估
方差与偏差的意义
偏差-方差分解bias-variance decomposition是解释学习算法泛化性能的一种重要工具
泛化误差可以分解为偏差、方差与噪声,泛化性能是由学习算法的能力、数据的充分性以及学习任务本身的困难所共同决定的
- 偏差:度量了学习算法的期望预测与真实结果的偏离程度,即刻画了算法本身的拟合能力
- 方差:度量了同样大小的训练集的变动所导致的学习性能的变化,即刻画了数据扰动所造成的影响
- 噪声:表达了当前任务上任何学习算法所能够达到的期望泛化的下界,即刻画了学习问题本身的难度
偏差、方差与数据集划分的关系
- 训练集的错误率较小,而验证集/测试集的错误率较大,说明模型存在较大方差,可能出现过拟合
- 训练集和测试集的错误率都较大,且两者相近,说明模型存在较大偏差,可能出现了欠拟合
- 训练集和测试集的错误率都较小,且两者相近,说明方差和偏差都较小,模型效果较好
总结:
- 方差一般指的是数据模型得出来了,能不能对未知数据的扰动预测准确。
- 而偏差说明了训练集当中就已经误差较大了。基本上在测试集中没有好的效果
解决方法
对于高偏差(过拟合)
- 获取更多的数据,使得训练能够包含所有出现的情况
- 正则化(
Regularization) - 寻找更合适的网络结构
对于高偏差(欠拟合)
- 扩大网络规模,如添加隐藏层或者神经元数量
- 寻找合适的网络架构,使用更大的网络结构,如
AlexNet - 训练时间更长些
正则化
即在损失函数中加入一个正则化项(惩罚项),惩罚模型的复杂度,防止网络过拟合
Droupout
随机的对神经网络每一层丢弃部分神经元操作
卷积神经网络
- 卷积层
- 池化层
- 全连接层
- 激活函数
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 WereAsh!
评论
ValineDisqus




