看了课程之后,尝试写下来,看看是否有不一样的收获。课堂的知识不重复,只写自己的思考与疑惑。
(1)目标函数可以写成:
其中的h(x)可以是一次线性函数,也可以是二次函数,更可以是高次函数。不过不管h(x)的形式如何,梯度下降的求解方式都是同一个式子:
(后一个等式是针对一次线性函数而言,如果二次函数会更加复杂,具体的我也没求过。。。)
(2)上面的算法属于批量梯度下降算法,此算法的缺点是计算量大,每一次权值的更新都需要用到全部的训练样本(遍历),对待大数据时候很笨。改进的算法是随机梯度下降算法,算法思路是:每一次权值更新仅仅对一个训练样本更新。优点是训练速度很快,但是精准度有待商榷。
个人想法:所谓的新的算法仅仅是对其中的某一个点做出改变,但是效果却会非常不一样。需要的是深入理解和不一样的思路。现阶段我只能够学习各种算法,但各种算法的分支还无法细细琢磨。
(3)梯度下降法和神经网络的区别是什么?课堂上老师讲过神经网络算法的核心就是梯度下降。个人感觉一层的神经网络(貌似叫感知机)和梯度下降法很像。。由于没有相关书籍在身边,就先写下来,遇到之后再解决吧。
(4)何为“收敛”?最理想的状态莫过于目标函数在n+1次之后都不再变化(即斜率为0),但通常情况下这会造成不必要的计算时间,所以我们可以自己设置,当目标函数小于某一个设定值时,判断为收敛,即可停止迭代。