机器学习任务模型训练流程图
所谓模型是含有大量未知参数(w)的表达式
训练过程中会用到的两个术语:
- step: 一次梯度更新的过程
- Epoch: 模型完成一次完整训练集的训练;
上图可用流程图总结如下:
graph LR
准备数据 --> 模型建立 --> 模型训练 --> 模型评估
数据集
关于数据集的采集等流程请看笔者的另外一个文章:机器学习的任务流程之流程详解
解原始数据的采集方法: 机器学习的获取原始数据集方法
正向传播与反向传播
在深度学习中,一个神经网络其实就是多个复合函数组成。函数的本质就是将输入x映射到输出y中,即f ( x ) = y f(x)=yf(x)=y,而函数中的系数就是我们通过训练确定下来的,那么如何训练这些函数从而确定参数呢?这就涉及网络中的两个计算:前向传播和反向传播。
前向传播和反向传播是神经网络中的重要基础。
正向传播
什么是正向传播
前向传播(Forward Propagation)的理解较为简单,从输入经过一层层隐层计算得到输出的过程即为前向过程,也称前向传播。前向传播如图所示:图片下方的单词表示该层所使用的active function。
正向传播的流程
前向传播算法分析
公式与图示如下所示
反向传播
无论是机器学习,还是 深度学习。都绕不开一个梯度下降。在进行深度学习简介的时候,我们有介绍过深度学习的大致步骤,分别为:
- 构建神经网络
- 数据拟合
- 选出最佳模型
其中,选出最佳模型的方式,其实就是利用梯度下降算法,选出损失函数最小的那个。在传统的机器学习当中,直接算就行了。但是在深度学习当中,由于存在输入层,隐藏层,输出层,且隐藏层到底有多深这些都是未知数,其计算也会更加繁杂。如果,在输出层输出的数据和我们设定的目标以及标准相差比较大,这个时候就需要反向传播。利用反向传播,逐层求出目标函数对各神经元权值的偏导数,构成目标函数对权值向量的梯度,进而对权值的优化提供依据,等权值优化了之后,再转为正向传播……当输出的结果达到设定的标准时,算法结束。
什么是反向传播
反向传播(英語:Backpropagation,缩写为BP)是“误差反向传播”的简称,是一种与最优化方法(如 梯度下降法)结合使用的,用来训练 人工神经网络 的常见方法。该方法对网络中所有权重计算 损失函数 的梯度。这个梯度会反馈给最优化方法,用来更新权值以最小化损失函数。
反向传播算法分析
反向传播法其实是神经网络的基础了,其实质就是一个链式求导法则反复用。公式与图示如下所示。
学习时可直接把数值带进去,实际计算一下,这样体会一下这个过程之后再来推导公式,这样会学起来更容易。
公式与推导过程如下图:
机器学习的相关概念
梯度
什么是梯度
梯度是一个向量(矢量),函数在一点处沿着该点的梯度方向变化最快,变化率最大。换言之,自变量沿着梯度方向变化,能够使因变量(函数值)变化最大。模型f满足。如下图:
判断模型的好坏的两个参数:
- 回归均方损失:
- 分类损失:
模型训练的目标是 调整参数w 使得尽可能降低损失loss
梯度计算
梯度就是多元函数参数的变化趋势(参数学习的方向), 只有一个自变量的时候就是导数
复合函数求导 -> 链式法则
损失函数
用于衡量预测值与真实值之间误差量或损失量的一个函数,是模型训练的核心。
Activation - 激活函数
# 机器学习之模型训练概念有激活函数的简单说明。
后期笔者会专门针对损失函数, 写文章解释说明,笔者也在成长。