机器学习之模型训练

346 阅读4分钟

机器学习任务模型训练流程图

image.png

所谓模型是含有大量未知参数(w)的表达式
训练过程中会用到的两个术语:

  1. step: 一次梯度更新的过程
  2. Epoch: 模型完成一次完整训练集的训练;

上图可用流程图总结如下:

graph LR
准备数据 --> 模型建立 --> 模型训练 --> 模型评估

数据集

关于数据集的采集等流程请看笔者的另外一个文章:机器学习的任务流程之流程详解

解原始数据的采集方法: 机器学习的获取原始数据集方法

正向传播与反向传播

在深度学习中,一个神经网络其实就是多个复合函数组成。函数的本质就是将输入x映射到输出y中,即f ( x ) = y f(x)=yf(x)=y,而函数中的系数就是我们通过训练确定下来的,那么如何训练这些函数从而确定参数呢?这就涉及网络中的两个计算:前向传播和反向传播。

前向传播和反向传播是神经网络中的重要基础。

正向传播

什么是正向传播

前向传播(Forward Propagation)的理解较为简单,从输入经过一层层隐层计算得到输出的过程即为前向过程,也称前向传播。前向传播如图所示:图片下方的单词表示该层所使用的active function。

image.png

正向传播的流程

image.png

前向传播算法分析

公式与图示如下所示

image.png

反向传播

无论是机器学习,还是 深度学习。都绕不开一个梯度下降。在进行深度学习简介的时候,我们有介绍过深度学习的大致步骤,分别为:

  • 构建神经网络
  • 数据拟合
  • 选出最佳模型

其中,选出最佳模型的方式,其实就是利用梯度下降算法,选出损失函数最小的那个。在传统的机器学习当中,直接算就行了。但是在深度学习当中,由于存在输入层,隐藏层,输出层,且隐藏层到底有多深这些都是未知数,其计算也会更加繁杂。如果,在输出层输出的数据和我们设定的目标以及标准相差比较大,这个时候就需要反向传播。利用反向传播,逐层求出目标函数对各神经元权值的偏导数,构成目标函数对权值向量的梯度,进而对权值的优化提供依据,等权值优化了之后,再转为正向传播……当输出的结果达到设定的标准时,算法结束。

什么是反向传播

反向传播(英語:Backpropagation,缩写为BP)是“误差反向传播”的简称,是一种与最优化方法(如 梯度下降法)结合使用的,用来训练 人工神经网络 的常见方法。该方法对网络中所有权重计算 损失函数 的梯度。这个梯度会反馈给最优化方法,用来更新权值以最小化损失函数。

反向传播算法分析

反向传播法其实是神经网络的基础了,其实质就是一个链式求导法则反复用。公式与图示如下所示。

学习时可直接把数值带进去,实际计算一下,这样体会一下这个过程之后再来推导公式,这样会学起来更容易。

公式与推导过程如下图:

image.png

机器学习的相关概念

梯度

什么是梯度

梯度是一个向量(矢量),函数在一点处沿着该点的梯度方向变化最快,变化率最大。换言之,自变量沿着梯度方向变化,能够使因变量(函数值)变化最大。模型f满足f(x,w)=ypredictf(x,w)=y_predict。如下图:

image.png

判断模型的好坏的两个参数:

  • 回归均方损失: loss=(YpredictYtrue)2loss=(Y_predict - Y_true)^2
  • 分类损失:loss=YtrueLogpredictloss=Y_true * Log_predict

模型训练的目标是 调整参数w 使得尽可能降低损失loss

梯度计算

image.png

梯度就是多元函数参数的变化趋势(参数学习的方向), 只有一个自变量的时候就是导数

复合函数求导 -> 链式法则

损失函数

用于衡量预测值与真实值之间误差量或损失量的一个函数,是模型训练的核心。

机器学习之模型训练概念

Activation - 激活函数

# 机器学习之模型训练概念有激活函数的简单说明。

后期笔者会专门针对损失函数, 写文章解释说明,笔者也在成长。