機器學習_線性迴歸,梯度下降算法與正規方程

個人對這方面的理解,文字純手打,圖片來自於coursera的課件
1.線性迴歸的定義:給出若干的訓練集(訓練集中x(j)i 表示樣本j中第i個項),然後擬合爲一條直線,使得cost最小
不妨先看一個例子,拿課程中的例子,賣房
現在已經知道了若干的房子的大小以及賣出去的價格,現在跟着這些信息,來推斷一些房子的價格
房子的價格
我們的任務,就是把圖中的點儘可能爲擬合成一條”花費最小”的直線h(x)=θ0+θ1x
2.”花費”怎麼定義呢?使用的是最小二乘法
J(θ1,θ2)=12mmi=1(h(x(i))y(i))2
簡單點兒說,就是所有的點到直線上x值相等的點的距離的平方,求平均,就是對應的花費
3.花費的最小怎麼求呢,可以想到,這個函數肯定是連續的,那麼就可以通過求偏倒解決
這裏寫圖片描述
這就是梯度下降算法

  • 對於例子,迭代方法如下
    θ0=θ0α1mmi=1(h(x(i))y(i))
    θ1=θ1α1mmi=1(h(x(i))y(i))x(i)
  • α 被稱爲learning rate,需要被選擇爲一個合適的值,如果太大的話,可能會越過最佳的值,然後越變越大,如果太小的話,需要迭代的次數太多
  • 通常的做法就是,先任取一個θ0θ1 然後通過多次的迭代,就可以找到一個局部最小值,可以取多組初始的θ0θ1 ,然後找到其中最好的解,那麼有一個很有意思的問題,怎麼確定,找到的解肯定就是全局最好的呢
  • 還有一個問題,就是更新時候必須得同步更新,簡單點兒說,就是計算出的新的θi ,先保存起來,待這一次所有的θj 都計算完後,再同時更新所有的θi這裏寫圖片描述

4.接下來考慮多feature的情況,首先梯度下降算法是肯定成立的

  • 如果x1與x2相差很多,但α 是固定的,那麼可能會出現θ1 在最優值附近擺動很大,而θ2 卻迭代的很慢,這種情況下,通常會對數據做一個初步的處理,先轉換爲-1~1之間的數,處理方式如下
    這裏寫圖片描述這種方法也會加快尋到最優的速度

5.最後介紹一個更強大Normal Equation(正規方程),直接用矩陣運算就可以得到最優解(證明還沒有看)

  • θ=(XTX)(1)XTY ,其中X 是一個矩陣,每一行都是1+各特徵值,Y 就是所有的結果值,來分析一下,X 是m*(n+1)的矩陣,所以複雜度就是O(n^3)
  • 很強大!但也有弊端,那就是比較慢,如果n=100 0000,那將慢到不可忍受,所以還得用梯度下降算法,但如果處理1000內的數據,將十分的方便

先說這麼多,想到接着補充

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章