框架图如下,纵向是建立模型的主要流程,是一个简化且宏观的概念,横向是针对具体模块的延展。
框架图
数据处理
数据处理一般涉及到一下五个环节:
读入数据
划分数据集
生成批次数据
训练样本集乱序
校验数据有效性
模型设计
网络结构
网络结构指的就是通常所说的神经网络算法中的网络框架,如全连接神经网络,卷积神经网络以及循环神经网络等,不同的网络结构通常有各自最优的处理场景,所以在处理具体问题时选择合适的网络结构是十分重要的。
损失函数
损失函数是模型优化的目标,用于在众多的参数取值中,识别出最优的参数。损失函数的计算在训练过程的代码中,每一轮模型训练的过程都相同,分如下三步:
先根据输入特征数据正向计算预测输出
再根据预测值和真实值计算损失(误差)
最后根据损失反向传播梯度并更新参数
损失函数也有很多种,如均方差,交叉熵等,不同的深度学习任务需要有各自适宜的损失函数,具体可以参考该博客机器学习-损失函数
训练配置
优化算法
优化算法用来确定参数更新的方式以及快慢,常用的优化算法有如下四个:
随机梯度下降(SGD):随机梯度下降算法,每次训练少量数据,抽样偏差导致参数收敛过程中震荡。
动量(Momentum):引入物理“动量”的概念,累积速度,减少震荡,使参数更新的方向更稳定。
AdaGrad: 根据不同参数距离最优解的远近,动态调整学习率。学习率逐渐下降,依据各参数变化大小调整学习率。