optimization

weixin_30788239發表於2020-04-05

最近幾天看了一些優化理論方面的知識。但感覺把握還是不夠深刻,看都看懂了,但是不清楚說的是什麼,用在哪類問題上。

參考了cmu機器學習課程的recitation of optimization

optimization在機器學習中是用來幹嘛的?

  • 找到最優化的係數?
  • 其他應用?

 

1、convex set 和convex function的定義。

什麼是convex set?

什麼是convex function?

兩者的聯絡是什麼?convex function的below-set是一個convex set

2、unconstrained convex optimization

unconstrained: 無約束就是什麼約束都沒有,dx可以是任意方向的

基本演算法:

1) gradient descent

分成batch 和stochastic 兩種

一般來說,learning_rate是利用一維搜尋找到的(line search). line search中一個重要問題是step的大小確定(beta)。有什麼方法可確定這個beta大小?

batch就是每次用所有的點來調整係數。stochastic就是每次只用隨機的一部分點。

gradient descent優點是計算量小,儲存變數少,初始變數要求不高。但是靠近極值點時收斂速度不夠快。一般是作為優化問題的前期迭代。

 

類比:可以不用迭代,直接用數學方法求出theta係數。參考http://blog.sina.com.cn/s/blog_698213630101576y.html

 

(XT*X)^-1 *XT就是所謂的偽逆矩陣。如果X是可逆矩陣,則(XT*X)^-1 *XT=X^-1.

但是直接計算的話,計算量太大。這也是為什麼用迭代法的原因吧。

2)newton's method

不太理解牛頓法的過程。但是牛頓法是基於taylor展開的。

在taylor expansion不給力的地方,牛頓法的收斂速度和gradient descent一樣慢
在極值點附近(滿足上圖的邊界條件),呈現二次收斂的速度
 
牛頓法的問題是計算量特別大。
牛頓法的適用情況:

 

轉載於:https://www.cnblogs.com/chenhuanfa/archive/2013/04/29/3050913.html

相關文章