成本函數我們在機器學習中最主要的目標是最小化成本函數,因此,將執行優化過程以最小化該成本函數。成本函數由下式給出: 為了深入了解成本函數的幾何形狀,讓我們學習凹函數和凸函數: 凹函數 在凹函數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∥2≥0,所以保證了ΔC≤0,即,C將總是減小而從不增大。 降低C是主要動機,因為我們希望盡可能降低成本。 因此,我們以以下方式實現梯度: 梯度下降是機器學習的基礎,因此必須了解該算法背后的數學知識才能真正理解機器學習模型的工作原理。此外,所有深度學習模型在反向傳播過程中都使用梯度下降算法來更新權重和偏差。希望這篇文章能幫助您了解機器學習中的成本函數,學習率和梯度下降的一些基礎知識。 |
|
來自: taotao_2016 > 《it》