第一章還是較基礎(chǔ),首先提到的就是 梯度下降法
(1)theta_j := theta_j - apha * J’/theta_j’
J 是最小二乘法得到的 預(yù)測值和真實值之間的差異析珊,越小越好媒楼,故(1)式中為減號
J’ /theta_j’ 一般會化成較簡略的形勢趴俘,比如最小二乘法的會化簡為 (h(theta) - y) * theta_j,羅輯回歸一般能化簡為相同格式瑞妇,不過符號相反始腾,為 (y - h(theta)) * theta_j,不過邏輯回歸是使用最大似然算法呕寝,求的是最大值勋眯,故theta_j := theta_j + apha * J’/theta_j’,最后的格式可以完全一樣下梢。
這就是梯度下降法客蹋,初始化固定一組 theta,選定迭代步長apha, ?即可迭代孽江,下一個點產(chǎn)生時是沿著梯度直線方向
當然會有一些矩陣法讶坯,直接通過矩陣運算得到
theta = (X ^T X) ^?1X^ T y
牛頓法,岗屏,辆琅,
θ := θ ? f(θ) / f ′ (θ)
不過這個是求最小值的,邏輯回歸的問題需要再度求導(dǎo)这刷,即
θ := θ ? ? ′ (θ) /? ′′(θ)
最后得到的簡略式為
θ := θ ? H ^?1?θ?(θ).
H 為hessian矩陣
Hij = ? 2 ?(θ) / ?θi?θj
問題婉烟,如果用牛頓法求最小二乘法的收斂,直接使用 θ := θ ? f(θ) / f ′ (θ) := ?θ ? J(θ) / J ′ (θ)即可暇屋?
牛頓法是二階收斂似袁,梯度下降是一階收斂,所以牛頓法就更快咐刨。如果更通俗地說的話昙衅,比如你想找一條最短的路徑走到一個盆地的最底部,梯度下降法每次只從你當前所處位置選一個坡度最大的方向走一步定鸟,牛頓法在選擇方向時而涉,不僅會考慮坡度是否夠大,還會考慮你走了一步之后联予,坡度是否會變得更大啼县。所以,可以說牛頓法比梯度下降法看得更遠一點躯泰,能更快地走到最底部谭羔。
根據(jù)wiki上的解釋华糖,從幾何上說麦向,牛頓法就是用一個二次曲面去擬合你當前所處位置的局部曲面,而梯度下降法是用一個平面去擬合當前的局部曲面客叉,通常情況下诵竭,二次曲面的擬合會比平面更好话告,所以牛頓法選擇的下降路徑會更符合真實的最優(yōu)下降路徑。
wiki上給的圖很形象卵慰,我就直接轉(zhuǎn)過來了:
紅色的牛頓法的迭代路徑沙郭,綠色的是梯度下降法的迭代路徑。
三次收斂的逼近的每一步需要解三次方程裳朋,涉及的計算量比二次的大很多病线,相比收斂速度的提升不劃算。
牛頓法用曲面達到局部最優(yōu):我的理解是牛頓法求的是當前點的導(dǎo)數(shù)鲤嫡,然后對導(dǎo)數(shù)再求導(dǎo)送挑,意義就是看這個導(dǎo)數(shù)的變化率。
應(yīng)該都是可以解決問題的暖眼,暫且不表惕耕,已經(jīng)關(guān)注一篇知乎文章
多分類求解
1…k 個分類 ? ;每個分類對應(yīng)一組參數(shù) theta_i; ?記住下面的公式即可
仍然使用最大似然函數(shù) 求的l(theta)
好吧诫肠,知道怎么做了吧司澎, 牛頓法怠噪,梯度下降法都扔過來吧贤笆,hessian矩陣的牛頓;;;;嗷嗷 這個就是傳說中的 soft max