我們在機器學習中最主要的目標是最小化成本函式,因此,將執行優化過程以最小化該成本函式。成本函式由下式給出:
為了深入了解成本函式的幾何形狀,讓我們學習凹函式和凸函式:
凹函式
在凹函式g(x)中,對於x軸上的任意兩個值,即a和b,點g(a)和g(b)之間的直線總是位於g(x)的下方。凹函式的最大值是乙個導數為0的點
凸函式
凸函式具有相反的屬性,凸函式的最小值是導數為0的點。
我們如何找到成本函式的最大值或最小值呢?
有兩種查詢成本函式的最小值或最大值的方法:
解析法:凹函式的最大值和凸函式的最小值是導數為0的點。在導數=0後所形成的方程易於求解之前,解析法是較好的方法。
爬山演算法:該演算法是一種綜合演算法,我們從可能的斜率(θs)的空間中的某個地方開始,然後不斷改變斜率,以期接近最大值或最小值。現在,出現的問題是我應該增加θ(將θ向右移動),還是應該減少θ(向左移動θ)以接近最佳值。在凸函式的情況下,我們可以求導數,如果導數為正,則需要增加θ,即向右移動,而如果導數為負,則減小θ。
t是迭代,α是學習率。
學習率決定了「爬山演算法」中步長的大小。學習率有兩種型別:
靜態:靜態學習率是在所有迭代過程中保持不變的速率。
動態:學習率是動態變化的,即最初在θ偏離最佳值時,α很大,並且隨著我們接近最佳值而不斷下降。
選擇學習率
學習率不能太小,因為需要很多次迭代才能達到最小值。而且,學習率不能太大,因為它可能會錯過最佳點。
更好的想法是選擇動態學習率,該學習率隨著時間的推移而降低,因為它允許演算法快速識別該點。基本的降低學習率時間表如下:
理想情況下,對於凸函式,最優值出現在:
但是,在實踐中需要設定閾值,該閾值定義了與最佳解「足夠接近」的條件:
梯度下降用於實現爬山演算法。為了理解梯度下降,讓我們假設是否要最小化某些成本函式,這可能是許多變數的函式。為了簡單起見,讓我們假設c是兩個變數的函式:
成本函式的變化由下式給出:
梯度向量(∇c)包含c相對於v的偏導數,即∇c使v的變化與c的變化相關:
將向量的變化(δv)和梯度向量(∇c)放在δc方程中:
我們需要以使δc為負的方式選擇δv。假設我們選擇:
其中η是乙個小的正引數(稱為學習率)。那麼δc可以寫成:
因為∥∇c∥²≥0,所以保證了δc≤0,即,c將總是減小而從不增大。 降低c是主要動機,因為我們希望盡可能降低成本。 因此,我們以以下方式實現梯度:
梯度下降是機器學習的基礎,因此必須了解該演算法背後的數學知識才能真正理解機器學習模型的工作原理。此外,所有深度學習模型在反向傳播過程中都使用梯度下降演算法來更新權重和偏差。希望這篇文章能幫助您了解機器學習中的成本函式,學習率和梯度下降的一些基礎知識。
機器學習中的數學
從大學到現在,課堂上學的和自學的數學其實不算少了,可是在研究的過程中總是發現需要補充新的數學知識。learning和vision都是很多種數學的交匯場。看著不同的理論體系的交匯,對於乙個researcher來說,往往是非常exciting的enjoyable的事情。不過,這也代表著要充分了解這個領域...
機器學習中的數學
二 第二課時 1 極限 通俗語言 函式f在 x 0 處的極限是l 數學符號 lim f x l 無窮如何比較大小呢?如x趨近0的時候,sin x 和 tan x 同樣都趨近0,哪個趨近0的速度更快呢?我們可以採用求商的極限來求解 lim sin x tan x lim cos x 1 所以是同樣級別...
小白機器學習中的數學
從平面線性擬合談起 我們知道,線性回歸是最簡單的一種資料擬合,說的直白點,我們舉平面上的例子來看,平面上有若干個樣本點,我們的目標就是去畫一條直線去擬合這些樣本點。如果你對擬合這兩個字還不是吃得很透,我們下面慢慢來介紹。高斯雜訊是如何和最小二乘估計聯絡起來的?也就是換句話說,我們如何從概率的視角去審...