学习的基本是梯度下降算法,因为之前大概了解这个算法是怎么回事,所以看得特别快。这本书讲的数学相对而言更加简单容易理解。
简单总结今天学习的东西:
w,b的定义跟上一节的定义一样。参考这个
这个函数叫做代价函数,n表示训练数据个数,a表示当输入为x时的输出向量,y(x)表示期望输出(真实值)。这个书上定义二次代价函数,又称为为均方误差(MSE),我查了下定义,跟百度的均方误差稍微有点不同的地方是,每次计算误差的时候,这个公式都除以了2,即每次求的实际是(||y(x)-a||^2)/2再求的和再求的平均。不过这个不重要。
介绍完公式后,书上撇开了公式开始讲梯度下降算法:
想象 C 是一个只有两个变量v1和v2的简单函数:
然后假设有一个球从某个位置开始往下滚,我们假设在v1方向和v2方向上都滚动得很小,根据微积分的定义有:
定义,定义 C 的梯度为偏导数的向量
,则有:
假设选取,
其中η是个很小的正数又叫学习速率,所以有
迭代这个过程:
更新位置,再一次计算下一次移动,不断迭代直到收敛。
这个就是梯度下降最简单的描述了,然后之前我们的C是跟w,b有关的,所以更新下降规则,位置的决定有w与b来决定:
然后书上也介绍了批量和随机下降,这个参考之前的文章,很好理解,不多赘述了。
做书上的两个习题作为收尾:
用柯西不等式来证明当取最小值时,
。下降的步长||Delta v||为定长,且记为很小的数---“伊布C罗”……
证明如下:
第二题是问对比具有一个小批量输入大小为 20的随机梯度下降,说出递增学习(就是之前那个文章里面的随机梯度下降算法)的一个优点和一个缺点。
优点:计算更快,这个很显然
缺点:计算可能不准确,得到的平均值跟所有样本的平均值差距比较大。