Antonic Gulli《Deep Learning with TensorFlow 2 and Keras》 second edition chapter I 阅读笔记
介绍引入
作为TF书籍的第一章简单介绍了tensorflow,什么是tf?支持哪些语言?keras是什么?
- tf是谷歌大脑开源的神经网络框架
- 支持多种语音
- keras是一个建立和训练深度学习的框架,大幅度简化了代码程序。在tf2被采纳兼容,作为一个高级api存在。
手写数字识别
然后以minist手写数字的识别为介绍案例
- 最简一层全连接神经网络,0.9071
- 增加一层隐藏层的神经网络,0.9109
- 增加dropout层,0.942
- optimizer由SGD变更为RMSProp与Adam,0.9766,0.978
- 学习率调整:lr=0.1,0.96;lr=0.01,0.92;lr=0.001,0.82
- 隐藏层神经元数量调整:h=128,0.981;h=512,0.985;h=2048,0.983(准确率变化不大,但h越大意味训练参数越多,不建议这么调整)
- bath_size越大accuracy反而降低
实际建模过程中我们不能光看loss是否最小,还要考虑过拟合的问题。
如果validataion损失值先变小后变大,这就是过拟合的表现
我们可以使用L1、L2、elastic正则化,或者使用batchnormalization处理过拟合问题。