轉自:https://blog.csdn.net/qq_39422642/article/details/78816637
概要:
1. 凸優化的定義
1.1 凸優化
1.2 全局最優化與局部最優化
2. Least-squares and linear programming(最小二乘與線性規划)
2.1 最小二乘
2.2 線性規划
3. 最優化方法的一般結構
4. 優化理論在機器學習,深度學習中扮演的角色
1.優化的定義
1.1 凸優化
最優化問題目前在機器學習,數據挖掘等領域應用非常廣泛,因為機器學習簡單來說,主要做的就是優化問題,先初始化一下權重參數,然后利用優化方法來優化這個權重,直到准確率不再是上升,迭代停止,那到底什么是最優化問題呢?
它的一般形式為:
第一個為優化的目標,即最小化目標函數f(x),而帶大於號或小於號的,則是約束條件。我們希望找到一個滿足約束條件的x∗,使得對於任意的z滿足約束條件:
有
而x∗就是我們所求的最后結果。
相當於你要從上海去北京,你可以選擇搭飛機,或者火車,動車,但只給你500塊錢,要求你以最快的時間到達,其中到達的時間就是優化的目標,500塊錢是限制條件,選擇動車,火車,或者什么火車都是x。
滿足所有約束條件的點集稱為可行域,記為X,又可以寫為:
,s.t表示受限於(subject to)。
在優化問題中,應用最廣泛的是凸優化問題:
- 若可行域X是一個凸集:即對於任給的x,y∈X,總有
- 並且目標函數是一個凸函數:即
我們稱這樣的優化問題為凸優化問題。
用圖像來表示就是:
函數上方的點集就是凸集,函數上任意兩點的連線,仍然在函數圖像上方。
一句話說清楚就是:希望找到合適的x,使得f0(x)最小。
1.2 全局最優化與局部最優化
全局最優化指的是在滿足條件約束的情況下,找到唯一的一個點滿足最大值或者最小值。
局部最優化指的是在滿足條件約束的情況下,有可能找到一個局部最大/小點,但不是全局最大或者最小的點。
用圖像表示為:
2.Least-squares and linear programming(最小二乘與線性規划)
關於這兩個問題的更詳細的例子會在接下來的文章中說到,這次只是簡單的介紹一下我們的內容。
2.1 最小二乘
最小二乘問題是無約束的優化問題,通常可以理解為測量值與真實值之間的誤差平方和:
這個問題既然沒有約束條件,那應該怎么求解呢?我們的目標是求解出最好的x,觀察這個式子可以發現,這個式子一定是大於等於0的,所以這樣的最優化問題,我們可以把它轉成線性方程來求解:
AT為A的轉置,因此根據矩陣的逆:
可以把上式表示為:
加權的最小二乘問題:
權值均為正數,代表每一個 對結果的影響程度。
正則化的最小二乘問題:
ρ是人為的選擇的,用來權衡 最小化 的同時,使得
不必太大的關系。
2.2 線性規划
另一類重要的優化問題是線性規划,它的目標函數和約束條件都是線性的:
用畫圖的方法,就是根據條件,畫出可行域,然后將目標函數在可行域上移動,直到得到最大值。
3.最優化方法的一般結構
最優化的過程,相當於爬山,如圖:
希望找到一個點列xk使得他的函數值是一直減少的,直到到達某一停止條件或者達到最小值的點xk.
用數學上的術語可以表示為:
- 設xk為第k次迭代點,dk為第k次搜索方向,αk為第k次迭代的步長因子,則第k次迭代為:
從這里可以看到不同的步長和不同的搜索方向組成了不同的優化方法,這就是最優化理論中所討論的。f是xk的函數,搜索方向dk是f在xk是f在xk處的下降方向,即dk滿足:
或者
而最優化的基本可以表示為:給定初始點xk
- 確定搜索方向dk,即按照一定規則畫方法確定f在xk處的下降方向
- 確定步長因子αk,使得目標函數有一定的下降
- 令
不斷迭代,直到xk+1滿足某種某種停止條件,即得到最優解xk+1
最優化中的問題中,大部分都是在尋找各種各樣的方法確定步長和方向,使得迭代的速度盡可能快,得到的解盡可能是最優的解。
4.優化理論在機器學習,深度學習中扮演的角色
凸優化,或者更廣泛的說,是最優化理論,在目前的機器學習,數據挖掘,或者是深度學習的神經網絡中,都要用到。
他的地位相當於人的脊背一樣的,支撐着整個模型的學習過程。因為模型,通俗來說就像人學習思考一樣,我們自己知道自己該學什么,該怎么學,發現自己的知識學錯了之后怎么調整,但計算機可沒有人這么聰明,知道學什么,往哪里學。
而最優化,就是告訴模型應該學什么,怎么學的工具。模型學習的往往都是一個映射函數,也就是模型中的參數W,這個參數的好壞,得看答案才能知道,但知道自己錯了之后,該往哪里學,怎么學,怎么調整,這就是優化理論在其中扮演的角色。如果沒有優化理論,那么模型是不知道該怎么學習的,也就是沒有了最優化,模型的學習永遠都是停滯不前的,這下你知道最優化理論的重要性了吧。