2019/12/23
《No.22: p172-p181》《增强型分析-AI驱动的数据分析、业务决策与案例实践》读书笔记
第6章 深入探讨CNN
6.1.5 CNN的训练及结果
CNN的算法就是一个反向传播的过程;训练过程也可以通过反抗的方式来完成。
1.反向传播(Back Propagation): 通过迭代将预测结果误差按照Gradient Descent的原理求导,重新更新函数中相关变量。
2.Epoch: 一次Forward Propagation和一次Back Propagation称为一个Epoch。
3.Dropout: 训练过程中强迫神经网络放弃一些神经元,避免模型过拟合。
4.Optimizer: Keras提供基于Gradient Descent的各种优化算法。
5.Checkpoint: 训练模型会花大量时间,为能从中断的地方重新开始分析,Keras提供callback函数可供使用。
6.2 用CNN做人脸识别
6.2.1数据加载
1.采用Labeled Faces in the Wild数据库
2.使用sklearn的各种函数
1)函数fetch_lfw_people:将图片裁剪成125*94
2)函数slice: 使获得的图片为250*250
3)函数color: 获取彩色图片
4)函数min_faced_per_person: 每人至少50张图片
6.2.2 使用ImageDataGenerator
1.使用ImageDataGenerator图片生成器批量生成数据,防止过拟合
2.在只有少量图片下,ImageDataGenerator可协助训练出较好的模型。
6.2.3 定义模型和训练模型
1.使用类似AlexNet的网络结构,AlexNet是2012年ImangeNet竞赛的冠军。
2.使用relu作为激活函数
3.Epoch增加可使准确率提高。
6.2.4 详细研究卷积的最终效果
1.使用Lena的照片来显示最终效果
2.通过dsplay_activation方法,将所有的filter(第一层卷积层、激活层、池化层)展示出来。