前言
啊,这个吴恩达老师讲这个梯度下降的方式有点吓人,又掏公式又弄三维坐标系的,其实梯度下降没有看上去那么难,视频中讲的比较专业,虽然努努力还是可以理解的,但是相对于萌新来说不太友好,有的同学可能一看这么多公式就放弃了。不过不要紧嘛,我也是萌新嘛,我给你们解释你们不就懂的容易了,萌新何必为难萌新呢。不过我还是会把吴恩达老师讲的内容放到文章最后,你们先看简单的,再看比较难的,就会很开心。
梯度下降零公式易懂版本
刚接触机器学习的同学避不开的一个专业名词就是梯度下降。顿时心里万马奔腾,其实很简单的,你先得理解概念才能看到那些公式不怂。
我们上来就要整点实际的:1. 梯度到底是啥?2. 梯度下降有啥用?3. 为啥要下降?
梯度是个啥
其实“梯度”你替换成“导数”就可以了,梯度就是目标函数的导数。以后你在书上遇到这个词就替换成“导数”就容易理解多了。
梯度下降有啥用
用问题一的解决方案,替换“梯度”为“导数”。问题变成了:导数下降干嘛的?我暂时把答案写上稍后解释:梯度下降就是用来求某个函数最小值时自变量对应取值。这个函数名字叫做损失函数(cost/loss function),直白点就是误差函数(我在上一篇文章里已经讲过,如果你忘了,没关系,在这里我会再讲一遍)。一个算法不同参数会产生不同拟合曲线,也意味着有不同的误差。损失函数就是一个自变量为算法的参数,函数值为误差值的函数。梯度下降就是找让误差值最小时候算法取的参数。
[敲黑板,忘记的同学我再讲一遍啊]那么什么是损失函数(误差函数)?
机器学习算法中有一类算法就是产生一条曲线来拟合现有的数据,这样子就可以实现预测未来的数据,这个专业术语叫做回归(见到回归就替换成拟合就好了)。还有另外一种类似也是产生一条曲线,但是这个曲线时用来将点分隔成两块,实现分类,在这个曲线一侧为一类另外一侧算一类。但是我怎么知道这个算法产生的拟合曲线效果好不好呢?这个东东叫做误差,预测值减去真实值最后取绝对值,没错就是这么简单粗暴~~
产生的拟合曲线并不是完全和现有的点重合,拟合曲线和真实值之间有一个误差。一个算法不同参数会产生不同拟合曲线,也意味着有不同的误差。损失函数就是一个自变量为算法的参数,函数值为误差值的函数。梯度下降就是找让误差值最小时候这个算法对应的参数