[笔记]飞浆PaddlePaddle-百度架构师手把手带你零基础实践深度学习-21日学习打卡(Day 4)
(Credit: https://gitee.com/paddlepaddle/Paddle/raw/develop/doc/imgs/logo.png)
配置网络
多层神经网络(MLP)
- 基础模型:神经网络
- 输入层 + 隐含层 + 输出层,非线性变换Sigmoid
卷积神经网络(CNN)
- 卷积神经网络
- 卷积层:局部视野 + 参数共享
- 池化层:保留主要特征
- 更善于处理图像的网络
- 飞桨提供直接实现的API
- Conv2D, Pool2D
损失函数
修改损失函数,需要修改的代码部分:
- 数据处理部分
- 网络定义部分
- 训练过程部分
优化算法:主流优化算法的原理和效果
- SGD: 每次训练少量数据,抽样偏差导致参数收敛过程中震荡
optimizer = fluid.optimizer.SGDOptimizer( learning_rate=0.01, parameter_list=model.parameters() )
- Momentum: 引入物理动量的概念,积累速度,减少震荡
optimizer = fluid.optimizer.MomentumOptimizer( learning_rate=0.01, momentum=0.9, parameter_list=model.parameters() )
- AdaGrad: 学习率逐渐下降,依据各参数变化大小调整学习率(不同参数不同)
optimizer = fluid.optimizer.AdagradOptimizer( learning_rate=0.01, parameter_list=model.parameters() )
- Adam: 融合Momentum和AdaGrad的思想 -> 理论最合理的未必在具体案例中最有效,模型调参是必要的
optimizer = fluid.optimizer.AdamaxOptimizer( learning_rate=0.01, parameter_list=model.parameters() )