通过大量带有标记的训练数据来调整参数,最后做到对于训练数据之外的图像,也有识别能力

调整参数的方法就是梯度下降法 gradient descent,首先将所有参数随机化,然后根据这个初始化的模型得到训练数据的结果。我们需要定义一个代价/损失/误差函数 cost/loss function 从而衡量模型的识别准确性。优化参数,其实就是为了让代价函数最小化

代价函数 Loss Function

单个样本的代价,就是这个样本的输出值和理想值之间的差的平方和。3B1B的例子里,用所有样本的平均代价/经验风险 empirical risk 来衡量识别准确性

这个平均代价函数,自变量是模型的所有参数,输出一个值,参数则是所有的训练样本。训练目标是找到这个代价函数在何处取最小值(找到自变量的值)

梯度下降法 Gradient Descent

考虑一个一元函数,随机挑选一个点作为初始值。计算这个点处的斜率,斜率向何处倾斜,就向何处移动这个初始值,最后会在某个极小值处稳定v 另外,每一步移动应当和斜率的绝对值成正比,这样在最小值附近移动会更平缓

对于多元函数,这点的梯度大小代表变化快慢

梯度是一个向量,向量的每一个元素是原函数分别对每个自变量求偏导的结果

example1

代价函数就是一个复杂的多元函数,将模型得到的输出带入到这个多元函数中,求出梯度,具体的求法见3B1B 反向传播算法

也是为了求梯度,代价函数应该是光滑的,这也说明了为何神经元的值是double而不是生物神经元的二元取值模式

与3B1B 反向传播算法的区别

严格意义的梯度下降,是对所有的训练样本进行的;而反向传播是对单个训练样本。实际操作的时候往往不适用严格的梯度下降


This site uses Just the Docs, a documentation theme for Jekyll.