图片笔记
文字笔记
特征缩放
为什么要用特征缩放?
不用的话,特征尺度不一样,导致损失函数的曲面分布会变得很扁很细,甚至出现某个截面是U型的状况。这样一来,梯度下降就会走得很艰难了。
亲身体验,缩放前,学习率就是大爷,大一点就爆炸,小了又比蜗牛还慢,4kw次才勉勉强强到最小点;缩放后,学习率成了怎么玩都玩不坏的橡皮泥,400次迭代就到了最小点。
均值归一化
公式如图,就是对特征进行一定的处理。网上有说一个特征就不用归一化的,我反正get不来。
关键是归一化后的算出来θ’值要怎么处理:
1. 对θ’进行处理。本质是把xn’(第n个特征)恢复到xn,然后把产生的系数转移到θ上,得到符合原来特征的θ。
2.对x进行处理。即把x做同样的特征缩放(这里是均值归一化)且数值一样,就能符合新的θ’了,得到的y是一样的。
一开始还是比较习惯第一种方法,但是仔细想想,可能第二种方法更加适用。因为现在只是线性回归,到了以后复杂的算法,比如神经网络,想要把θ’变回θ就不是那么简单了。
机器学习–特征缩放/均值归一化,看了这篇博客后才想明白这些的,吴老师的课里没讲。。。也算是印证了一句话——大学期间学习一门课程,往往需要参考很多的资料。
Q:如果对y进行缩放呢?理论上也能返回到原来的θ或者反归一化得到真正的y。可以看成是换了个单位,比如元到分,甚至到美元。
多项式拟合
多项式拟合,算是多特征的另一个版本吧,相似又不同。本质上来说只有一个特征,x,取决于怎么看待:
A.把xn看成x的n次幂,这样就不是线性回归了,但是同样可以使用损失函数和梯度下降来帮我们找到一个很好的函数去拟合这些数据。求导也不难,只是把x换成了x的n次幂。
B.把xn看成第n个特征,不过这个特征是通过n次幂的方法人为造出来的。于是又回到了线性回归问题上,而且从求导的结果来看,也是一样的。事实上也有对应的例子,比如正方形房子的边长和面积。
正规方程
初次接触,觉得梯度下降被完爆!也的确是,只要n<10000,正规方程解法都很快。据说是n3量级的运算量,所以当n太大,选梯度下降会更好。
公式是θ=(XTX)-1XTY,简单粗暴。至于原理,貌似是让新产生的Y’在平面上和Y的投影重合。等我会了再补上。
正规方程只能用于线性方程组,但是加上把xn看成新特征,不由得产生一个大胆的想法,多项式拟合+正规方程,实现MATLAB的polyfit函数的功能!
Ps:正规方程里的特征不必进行缩放。缩放了也没事,和梯度下降的最优解是一样的,也能变回去。