以从零DIY MNIST分类作为例子,来解释一下深度学习的原理
(一)损失函数
就是计算模型出来的函数与实际值之间的差距
(二)过拟合和欠拟合
- 第一个图是欠拟合,说明模型太简单了
- 第三个图是过拟合,模型太复杂了
(三)神经网络
如果不存在线性解,就需要将这个模型变得更加复杂。w是线性变换,g是非线性变换,wg(w1g1x)就组成了简单的神经网络
(四)神经网络的基本单元
层数的多少不一定代表好坏,层数少了有利于计算
1. 全连接层
就是上面的w
2. 卷积层
就是滤波器 ,和传统的滤波器不一样的地方是,这个值是学习出来的,不是预设的
卷积层没必要规定输入的大小,但是全连接层需要规定输入的大小,参考图像卷积
3. pooling层
为了降采样 -> 可以减少计算,提取边缘
4. dropout层
为了减少过拟合
5. batch normalization归一化
(五)常用的激活函数
(六)网络模型优化
梯度 (偏导数,利用反向传播求解)-> 更新参数
(七)问题
门禁设备从一万张照片中训练识别出一千个人,那如果加一个人,是否这个模型就需要重新训练呢?
答案:当然不是,他这个训练其实训练出来的是一个人脸的特征,一张人脸的特征有很多个。如果说识别到的人脸和数据库里面的某张人脸特征十分类似,就可以说明这是同一个人