从数据中学习
数据是机器学习的命根子。神经网络的特征就是从数据中学习,即可以由数据自动决定权重参数的值。
下图展示了从人工设计规则转变为由机器从数据中学习的不同方法
神经网络的优点是对所有的问题都可以用同样的流程解决。不论是识别数字,还是识别狗或者人脸,神经网络都是通过不断地学习所提供的数据,尝试发现待求解的问题的模式。
训练数据和测试数据
机器学习中,一般将数据分为训练数据和测试数据两部分进行学习和室验。
首先,使用训练数据进行需学习,寻找最优的参数。
然后,使用测试数据对训练得到的模型进行评价。
之所里这样分类,是因为我们追求的是模型的泛化能力(处理未被观察过的数据的能力)。为了正确评价模型的泛化能力,就必须划分训练数据和测试数据。
损失函数
神经网络的学习效果需要有个评价指标,该指标即损失函数,一般采用均方误差、交叉熵误差等。
均方误差
交叉熵误差
为什么分类问题的损失函数采用交叉熵
为什么设定损失函数
在进行神经网络学习时,不能将识别精度作为指标。因为如果以识别精度为指标,则参数的导数在绝大多数地方都会变为0。
这是因为当时别率达到一定程度将很难有较大的提高,仅有少量的变化,识别精度对微小的参数变化基本上没有什么反应。
梯度法
神经网络需要在学习中找到最优参数(权重和偏置),即损失函数取最小值时的参数。常用的方法为梯度法,即使用梯度寻找函数最小值。
特别的,梯度表示的是各点处的函数值减小最多的方向,无法保证梯度所指的方向就是函数的最小值或者真正应该前进的方向。实际上,在复杂的函数中,梯度制式的方向基本上都不是函数值最小处。
虽然梯度的方向并不一定指向最小值,但沿着它的方向能够最大限度地减小函数地值。这种通过不断地沿梯度方向前进,逐渐减小函数值地过程就是梯度法。
学习算法地实现
- 步骤1
从训练数据中随机选出一部分数据,可称为mini-batch。我们的目标是较小mini-batch损失函数地值。
设定初始权重参数(权重使用符合高斯分的函数进行初始化)。 - 步骤2
求出各个权重参数的梯度。 - 步骤3
将权重参数沿梯度方向进行更新。 - 步骤4
重复步骤1、步骤2、步骤3。