(文章中的图片来自 Coursera)
前面几篇文章简单介绍了假设函数和损失函数,接下来的几篇文章将介绍减小损失函数的方法 —— 梯度下降法(Gradient Descent)。
从损失函数的图像入手
举个最简单的例子,假如在数据集中有三组数据分别是
x = 1,y = 1
x = 2,y = 2
x = 3,y = 3
显然,每组数据的 x 只有一个,并且真实结果 y 和 x 的关系是 y = x,那显然图像是条穿过远点且和 x 轴成 45° 角的直线,对于假设函数 h(x) 来说,当然是参数 𝜃1 等于 1 的时候图像可以和真实图像完全吻合,即 h(x) = x,这时的损失函数结果当然是 0。如果改变了参数 𝜃1 的值,就会改变损失函数的值。
假如 𝜃1 等于 2,这时 h(x) = 2x,那么数据集中的三组数据就变成了
x = 1,y = 2
x = 2,y = 4
x = 3,y = 6
再来计算一下损失函数,根据上一篇文章中的公式:
可以算出
大约是 2.3
根据这种方法,可以算出 𝜃1 不同取值时的 J(𝜃1) 的值,然后可以作出 J(𝜃1) 的图像,大概是这样的:
发现没,这个图像中间是凹下去的,而且在 𝜃1=1 的时候达到了最低点,在这个图像中达到这个点就达到了全局最优,所谓全局最优就是 J(𝜃1) 最小的时的情况,这时的 𝜃1 称为全局最优解,所以,我们的任务就是找到全局最优解。
当然,这只是最简单的情况,实际上,由于 𝜃 可能不止一个,当 𝜃 是两个时,J(𝜃) 的图像是三维的,像这样:
而且可能存在局部最优的情况,比如图中左边红色箭头指的地方(不要纠结是左边低还是右边低。。。),我们应该避免陷入局部最优,应该努力达到右边箭头所指的全局最优。
当 𝜃 是三个或以上时,J(𝜃) 的图像就不容易画出来了,因为这时的图像已经是高维的了,但只需要记住,我们的任务就是不断的改变 𝜃,使 J(𝜃) 达到全局最优,也就是最小值,图像只是为了方便大家理解。
那么肯定有人会问,我怎么知道该如何改变 𝜃 的值呢,有一种用的比较多的方法就是梯度下降法,卖个关子,下篇文章再讲什么是梯度下降法以及如何使用。
小结
这篇文章本来就应该讲梯度下降法的,但是我觉得把损失函数的图像讲一下可能会更方便大家理解。
到目前为止,如果大家有没有理解的地方,可以到我的博客留言,传送门
应该很好记,因为我姓刘,liuhd 就是我的姓和名字,me 就是我的意思啦(其实 me 还有别的意思,以后有机会再告诉大家),我在很多社交场所的名字都叫 LiuHDme,比如网易云音乐,微博,Twitter 等等,感兴趣的可以百度或者谷歌一下哈哈,不过谷歌的搜索结果结果多一些。就这样,下一篇文章再见。
md简书加个写公式的服务吧 (╯°□°)╯︵┻━┻