国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

機(jī)器學(xué)習(xí)_通過梯度下降找到最佳參數(shù)

這篇具有很好參考價(jià)值的文章主要介紹了機(jī)器學(xué)習(xí)_通過梯度下降找到最佳參數(shù)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。


訓(xùn)練機(jī)器要有正確的方向

所謂訓(xùn)練機(jī)器,也稱擬合的過程,也就是確定模型內(nèi)部參數(shù)的過程。具體到線性模型,也就是確定y’=wx+b 函數(shù)中的w和b。

機(jī)器學(xué)習(xí)_通過梯度下降找到最佳參數(shù),機(jī)器學(xué)習(xí),機(jī)器學(xué)習(xí),人工智能

對(duì)于線性回歸來說,針對(duì)損失函數(shù)的梯度下降(gradient descent )方法可以使猜測沿著正確的方向前進(jìn),因此總能找到比起上一次猜測時(shí)誤差更小的w和b組合。

梯度下降可以說是整個(gè)機(jī)器學(xué)習(xí)的精髓,堪稱機(jī)器學(xué)習(xí)之魂。在我們身邊發(fā)生的種種機(jī)器學(xué)習(xí)和深度學(xué)習(xí)的奇跡,歸根結(jié)底都是拜梯度下降所賜。

凸函數(shù)確保有最小損失點(diǎn)

只是前進(jìn)的方向?qū)α?,這還不夠,還有另外一個(gè)關(guān)鍵點(diǎn)是凸函數(shù),能夠找到全局最低點(diǎn),就是你要知道什么時(shí)候停下來最合適

回憶一下均方誤差函數(shù):
機(jī)器學(xué)習(xí)_通過梯度下降找到最佳參數(shù),機(jī)器學(xué)習(xí),機(jī)器學(xué)習(xí),人工智能
函數(shù)方程式中的x,y都可以視為常量,則L就只隨著w和b 而變,而函數(shù)是連續(xù)的平滑曲線,每一個(gè)微小的w和b的改變都會(huì)帶來微小的L的改變,而且這個(gè)函數(shù)很顯然是個(gè)二次函數(shù)(w和b被平方)。為了簡化描述,方便繪圖,先忽略參數(shù)b。對(duì)于給定的數(shù)據(jù)集來說,平均損失L和w的對(duì)應(yīng)關(guān)系如下圖所示。
機(jī)器學(xué)習(xí)_通過梯度下降找到最佳參數(shù),機(jī)器學(xué)習(xí),機(jī)器學(xué)習(xí),人工智能
我們將這個(gè)函數(shù)圖像稱為損失曲線,這是一個(gè)凸函數(shù)。凸函數(shù)的圖像會(huì)流暢、連續(xù)地形成相對(duì)于y軸的全局最低點(diǎn),也就是說存在著全局最小損失點(diǎn)。這也是此處選擇MSE作為線性回歸的損失函數(shù)的原因。

梯度下降的實(shí)現(xiàn)

梯度下降的過程就是在程序中一點(diǎn)點(diǎn)變化參數(shù)w和b,使L也就是損失值,逐漸趨近最低點(diǎn)(也稱為機(jī)器學(xué)習(xí)中的最優(yōu)解)。這個(gè)過程經(jīng)常用“下山”來比喻:想象你站在一座山的山腰上,正在尋找一條下山的路,這時(shí)你環(huán)望四周,找到一個(gè)最低點(diǎn)并向那個(gè)方向邁出一步;接著再環(huán)望四周朝最低點(diǎn)方向再邁出一步……一步接一步,走到最低點(diǎn)。
這里用圖來詳細(xì)解釋比較清楚,為了簡化說明,還是暫時(shí)只考慮權(quán)重w和損失L之間的關(guān)系、 給w隨機(jī)分配一個(gè)初始值(如5)的時(shí)候,損失曲線上對(duì)應(yīng)的點(diǎn)就是下圖中有小猴子的地方。
機(jī)器學(xué)習(xí)_通過梯度下降找到最佳參數(shù),機(jī)器學(xué)習(xí),機(jī)器學(xué)習(xí),人工智能
此時(shí)w等于5,下一步要進(jìn)行新的猜測了,w應(yīng)該往哪個(gè)方向移動(dòng),才能得到更小的損失L?也就是說,w應(yīng)該是增大(5.01)還是減小(4.99),L才能更快地趨近最小損失點(diǎn)(五角星)?
秘密武器正是導(dǎo)數(shù)。導(dǎo)數(shù)描述了函數(shù)在某點(diǎn)附近的變化率(L正在隨著w增大而增大還是減小),而這正是進(jìn)一步猜測更好的權(quán)重時(shí)所需要的全部內(nèi)容。
程序中用梯度下降法通過求導(dǎo)來計(jì)算損失曲線在起點(diǎn)處的梯度。此時(shí),梯度就是損失曲線導(dǎo)數(shù)的矢量,它可以讓我們了解哪個(gè)方向距離目標(biāo)“更近”或“更遠(yuǎn)”。

  • 如果求導(dǎo)后梯度為正值,則說明L正在隨著w增大而增大,應(yīng)該減小w,以得到更小的損失。
  • 如果求導(dǎo)后梯度為負(fù)值,則說明L正在隨著w增大而減小,應(yīng)該增大w,以得到更小的損失。

此處在單個(gè)權(quán)重參數(shù)的情況下,損失相對(duì)于權(quán)重的梯度就稱為導(dǎo)數(shù);若考慮偏置,或存在多1個(gè)權(quán)重參數(shù)時(shí),損失相對(duì)于單個(gè)權(quán)重的梯度就稱為偏導(dǎo)數(shù)。

因此,通過對(duì)損失曲線進(jìn)行求導(dǎo)之后,就得到了梯度。梯度具有以下兩個(gè)特征。

  • 方向(也就是梯度的正負(fù))。
  • 大小(也就是切線傾斜的幅度)。
    這兩個(gè)重要的特征,尤其是方向特征確保了梯度始終指向損失函數(shù)中增長最為迅猛的方向。梯度下降法會(huì)沿著負(fù)梯度的方向走一步,以降低損失。
    機(jī)器學(xué)習(xí)_通過梯度下降找到最佳參數(shù),機(jī)器學(xué)習(xí),機(jī)器學(xué)習(xí),人工智能
    通過梯度下降法,如果初始估計(jì)的w值落在最優(yōu)值左邊,那么梯度下降會(huì)將w增大,以趨近最低值;如果初始估計(jì)的w值落在最優(yōu)值右邊,那么梯度下降會(huì)將w減小,以趨近最低值。這個(gè)逐漸趨近于最優(yōu)值的過程也叫作損失函數(shù)的收斂。

機(jī)器學(xué)習(xí)_通過梯度下降找到最佳參數(shù),機(jī)器學(xué)習(xí),機(jī)器學(xué)習(xí),人工智能
此處的N是數(shù)據(jù)集的數(shù)目。符號(hào)Σ代表對(duì)所有訓(xùn)練數(shù)據(jù)集中的特征和標(biāo)簽進(jìn)行處理并求和,這是已經(jīng)推導(dǎo)出來的求梯度的具體步驟。如果不熟悉導(dǎo)數(shù)(也就是對(duì)損失函數(shù)的微分)的演算也沒有什么影響。因?yàn)樘荻鹊挠?jì)算過程都已經(jīng)封裝在各種機(jī)器學(xué)習(xí)框架中,并不用我們自己寫代碼實(shí)現(xiàn)。
而且即使要通過Python來實(shí)現(xiàn)梯度下降公式,代碼同樣是非常的簡潔:

y_hat weight*x + bias這是向量化運(yùn)算實(shí)現(xiàn)的假設(shè)函數(shù)
loss =y_hat-y#這是中間過程,求得的是假設(shè)函數(shù)預(yù)測的y'和真正的y值之間的差值 
derivative_wight - X.T.dot(loss)/len(X)#對(duì)權(quán)重求導(dǎo),len(X)就是樣本總數(shù) 
derivative_bias - sum(loss)*1/len (X)對(duì)偏置求導(dǎo),len(X)就是樣本總數(shù)

簡單地解釋一下這段代碼。

  • weight*X 是求出X數(shù)據(jù)集中的全部數(shù)據(jù)的y’值,就是w·x(i)的實(shí)現(xiàn),是對(duì)數(shù)組的整體操作,不用通過循環(huán)去分別操作每一個(gè)數(shù)據(jù)。
  • 對(duì)weight 求導(dǎo)的過程中,使用了上一課中介紹過的多項(xiàng)式點(diǎn)積規(guī)則一-兩個(gè)相同維度的向量對(duì)應(yīng)元素先相乘,后相加。這其中的兩個(gè)向量是X和loss,也就是y(i)-( w·x(i))·x(i)的實(shí)現(xiàn)。
  • 對(duì)偏置b求導(dǎo)并不需要與特征X相乘,因?yàn)槠门c權(quán)重不同,它與特征并不相關(guān)。另外還有一種思路,是把偏置看作W,那么就需要給X特征矩陣添加一行數(shù)字1,形成x0,與偏置相乘,同時(shí)確保偏置值不變——我們會(huì)在多變量線性回歸的代碼中試一下這個(gè)技巧。

學(xué)習(xí)速率也很重要

下一個(gè)問題是應(yīng)該以多快的速度下山。這在機(jī)器學(xué)習(xí)中被稱為學(xué)習(xí)速率(learing rate)的確定。學(xué)習(xí)速率也記作a,讀作alpha。
學(xué)習(xí)速率乘以損失曲線求導(dǎo)之后的微分值,就是一次梯度變化的步長(step size )。它控制著當(dāng)前梯度下降的節(jié)奏,或快或慢,w將在每一次迭代過程中被更新、優(yōu)化。
引入學(xué)習(xí)速率之后,用數(shù)學(xué)語言描述參數(shù)w隨梯度更新的公式如下:
機(jī)器學(xué)習(xí)_通過梯度下降找到最佳參數(shù),機(jī)器學(xué)習(xí),機(jī)器學(xué)習(xí),人工智能

Python 代碼實(shí)現(xiàn)如下:

weight = weight - alpha*derivative_wight#結(jié)合學(xué)習(xí)速率alpha更新權(quán)重
bias = bias - alpha*derivative_bias #結(jié)合學(xué)習(xí)速率alpha更新偏置 

大多數(shù)機(jī)器學(xué)習(xí)從業(yè)者真正花費(fèi)相當(dāng)?shù)臅r(shí)間來調(diào)試的,是像學(xué)習(xí)速率、迭代次數(shù)這樣的參數(shù),我們稱這類位于模型外部的人工可調(diào)節(jié)的參數(shù)為超參數(shù)。而權(quán)重w、偏置b,當(dāng)然都是模型內(nèi)部參數(shù),由梯度下降負(fù)責(zé)優(yōu)化,不需要人工調(diào)整

如果所選擇的學(xué)習(xí)速率過小,機(jī)器就會(huì)花費(fèi)很長的學(xué)習(xí)時(shí)間,需要迭代很多次才能到達(dá)損失函數(shù)的最底點(diǎn),如下面左圖所示。相反,如果學(xué)習(xí)速率過大,導(dǎo)致L的變化過大,越過了損失曲線的最低點(diǎn),則下一個(gè)點(diǎn)將永遠(yuǎn)在U形曲線的底部隨意彈跳,損失可能越來越大。

在機(jī)器學(xué)習(xí)實(shí)戰(zhàn)中,這種損失不僅不會(huì)隨著迭代次數(shù)減小,反而會(huì)越來越大的情況時(shí)有發(fā)生。
機(jī)器學(xué)習(xí)_通過梯度下降找到最佳參數(shù),機(jī)器學(xué)習(xí),機(jī)器學(xué)習(xí),人工智能

最佳學(xué)習(xí)速率(如圖所示)與具體問題相關(guān)。因?yàn)樵诓煌瑔栴}中,損失函數(shù)的平坦程度不同。如果我們知道損失函數(shù)的梯度較小,則可以放心地試著采用更大的學(xué)習(xí)速率,以補(bǔ)償較小的梯度并獲得更大的步長。
尋找最佳學(xué)習(xí)速率很考驗(yàn)經(jīng)驗(yàn)和感覺。一個(gè)常見的策略是,在機(jī)器學(xué)習(xí)剛剛開始的時(shí)候,學(xué)習(xí)速率可以設(shè)置得大一些,快速幾步達(dá)到靠近最佳權(quán)重的位置,當(dāng)逐漸地接近最佳權(quán)重時(shí),可以減小學(xué)習(xí)速率,防止一下子越過最優(yōu)值。

機(jī)器學(xué)習(xí)_通過梯度下降找到最佳參數(shù),機(jī)器學(xué)習(xí),機(jī)器學(xué)習(xí),人工智能


學(xué)習(xí)機(jī)器學(xué)習(xí)的參考資料:
(1)書籍
利用Python進(jìn)行數(shù)據(jù)分析
西瓜書
百面機(jī)器學(xué)習(xí)
機(jī)器學(xué)習(xí)實(shí)戰(zhàn)
阿里云天池大賽賽題解析(機(jī)器學(xué)習(xí)篇)
白話機(jī)器學(xué)習(xí)中的數(shù)學(xué)
零基礎(chǔ)學(xué)機(jī)器學(xué)習(xí)
圖解機(jī)器學(xué)習(xí)算法

(2)機(jī)構(gòu)
光環(huán)大數(shù)據(jù)
開課吧
極客時(shí)間
七月在線
深度之眼
貪心學(xué)院
拉勾教育
博學(xué)谷
文章來源地址http://www.zghlxwxcb.cn/news/detail-810706.html

到了這里,關(guān)于機(jī)器學(xué)習(xí)_通過梯度下降找到最佳參數(shù)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 機(jī)器學(xué)習(xí)_梯度下降

    機(jī)器學(xué)習(xí)_梯度下降

    計(jì)算梯度向量其幾何意義,就是函數(shù)變化的方向,而且是變化最快的方向。對(duì)于函數(shù)f(x),在點(diǎn)(xo,yo),梯度向量的方向也就是y值增加最快的方向。也就是說,沿著梯度向量的方向 △f(xo),能找到函數(shù)的最大值。反過來說,沿著梯度向量相反的方向,也就是 -△f(xo)的方向,梯度

    2024年01月19日
    瀏覽(42)
  • 梯度下降與機(jī)器學(xué)習(xí)的關(guān)系

    梯度下降是一種優(yōu)化算法,常用于機(jī)器學(xué)習(xí)中的參數(shù)優(yōu)化問題。在機(jī)器學(xué)習(xí)中,我們通常需要通過調(diào)整模型的參數(shù)來最小化損失函數(shù),從而使模型能夠更好地?cái)M合數(shù)據(jù)。梯度下降算法通過不斷迭代更新參數(shù),沿著損失函數(shù)的負(fù)梯度方向移動(dòng),逐步接近最優(yōu)解。 以下是梯度下降

    2024年02月22日
    瀏覽(26)
  • [機(jī)器學(xué)習(xí)] 1. 梯度下降 Gradient Descent 與隨機(jī)梯度下降 Stochastic Gradient Descent

    ML Theory 太魔怔了?。。。?! 從微積分課上我們學(xué)到 對(duì)一個(gè) (mathscr C^2) 函數(shù),其二階泰勒展開的皮亞諾余項(xiàng)形式 [f(bm w\\\') = f(bm w) + langle nabla f(bm w), bm w\\\' - bm wrangle + o(|bm w\\\' - bm w|)] 這說明只要 (bm w\\\') 和 (bm w) 挨得足夠接近,我們就可以用 (f(bm w) + langle nabla f(

    2024年02月08日
    瀏覽(20)
  • 機(jī)器學(xué)習(xí)&&深度學(xué)習(xí)——隨機(jī)梯度下降算法(及其優(yōu)化)

    在我們沒有辦法得到解析解的時(shí)候,我們可以用過梯度下降來進(jìn)行優(yōu)化,這種方法幾乎可以所有深度學(xué)習(xí)模型。 關(guān)于優(yōu)化的東西,我自己曾經(jīng)研究過智能排班算法和優(yōu)化,所以關(guān)于如何找局部最小值,以及如何跳出局部最小值的一些基本思想是有感觸的,隨機(jī)梯度算法和其優(yōu)

    2024年02月15日
    瀏覽(24)
  • 機(jī)器學(xué)習(xí)中梯度下降法的缺點(diǎn)

    機(jī)器學(xué)習(xí)中梯度下降法的缺點(diǎn)

    機(jī)器學(xué)習(xí)中的梯度下降法是一種尋找函數(shù)最小值的優(yōu)化算法,廣泛應(yīng)用于訓(xùn)練各種模型,尤其是在深度學(xué)習(xí)中。盡管其應(yīng)用廣泛,但梯度下降法也存在一些不可忽視的缺點(diǎn): 1. 局部最小值和鞍點(diǎn) 局部最小值問題: ?對(duì)于非凸函數(shù),梯度下降法可能會(huì)陷入局部最小值,而不是

    2024年02月20日
    瀏覽(18)
  • 機(jī)器學(xué)習(xí)--決策樹、線性模型、隨機(jī)梯度下降

    機(jī)器學(xué)習(xí)--決策樹、線性模型、隨機(jī)梯度下降

    ???♂? 個(gè)人主頁:@Lingxw_w的個(gè)人主頁 ???作者簡介:計(jì)算機(jī)科學(xué)與技術(shù)研究生在讀 ?? 希望大家多多支持,我們一起進(jìn)步!?? 如果文章對(duì)你有幫助的話, 歡迎評(píng)論 ??點(diǎn)贊???? 收藏 ??加關(guān)注+??? 目錄 ?一、決策樹 二、線性模型 三、隨機(jī)梯度下降 決策樹(decision

    2024年02月03日
    瀏覽(34)
  • 【機(jī)器學(xué)習(xí)(二)】線性回歸之梯度下降法

    【機(jī)器學(xué)習(xí)(二)】線性回歸之梯度下降法

    ? 作者簡介: i阿極 ,CSDN Python領(lǐng)域新星創(chuàng)作者, 專注于分享python領(lǐng)域知識(shí)。 ? 本文錄入于《機(jī)器學(xué)習(xí)案例》 ,本專欄精選了經(jīng)典的機(jī)器學(xué)習(xí)算法進(jìn)行講解,針對(duì)大學(xué)生、初級(jí)數(shù)據(jù)分析工程師精心打造,對(duì)機(jī)器學(xué)習(xí)算法知識(shí)點(diǎn)逐一擊破,不斷學(xué)習(xí),提升自我。 ? 訂閱后,

    2023年04月14日
    瀏覽(39)
  • 機(jī)器學(xué)習(xí)中為什么需要梯度下降

    機(jī)器學(xué)習(xí)中為什么需要梯度下降

    ????????在機(jī)器學(xué)習(xí)中,梯度下降是一種常用的優(yōu)化算法,用于尋找損失函數(shù)的最小值。我們可以用一個(gè)簡單的爬山場景來類比梯度下降的過程。 ????????假設(shè)你被困在山上,需要找到一條通往山下的路。由于你是第一次來到這座山,對(duì)地形不熟悉,你只能通過嘗試和

    2024年02月19日
    瀏覽(26)
  • 機(jī)器學(xué)習(xí)(二):線性回歸之梯度下降法

    機(jī)器學(xué)習(xí)(二):線性回歸之梯度下降法

    ? 作者簡介: i阿極 ,CSDN Python領(lǐng)域新星創(chuàng)作者, 專注于分享python領(lǐng)域知識(shí)。 ? 本文錄入于《機(jī)器學(xué)習(xí)案例》 ,本專欄精選了經(jīng)典的機(jī)器學(xué)習(xí)算法進(jìn)行講解,針對(duì)大學(xué)生、初級(jí)數(shù)據(jù)分析工程師精心打造,對(duì)機(jī)器學(xué)習(xí)算法知識(shí)點(diǎn)逐一擊破,不斷學(xué)習(xí),提升自我。 ? 訂閱后,

    2023年04月22日
    瀏覽(20)
  • 機(jī)器學(xué)習(xí)~從入門到精通(三)梯度下降法

    機(jī)器學(xué)習(xí)~從入門到精通(三)梯度下降法

    使用真實(shí)數(shù)據(jù)來進(jìn)行梯度下降的過程 knn算法 線性回歸 數(shù)據(jù)的預(yù)處理(標(biāo)準(zhǔn)化) 模型好壞的校驗(yàn) len(theta_history)

    2024年01月18日
    瀏覽(18)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包