0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

訓練模型:討論兩種訓練方法

電子工程師 ? 來源:lp ? 2019-04-05 17:09 ? 次閱讀

訓練模型

一、討論兩種訓練方法二、線性回歸三、如何訓練四、正規(guī)方程五、示例六、模型圖像七、梯度下降八、梯度下降的陷阱

一、討論兩種訓練方法

1、直接使用封閉方程進行求根運算,得到模型在當前訓練集上的最優(yōu)參數(shù)(即在訓練集上使損失函數(shù)達到最小值的模型參數(shù))2、使用迭代優(yōu)化方法:梯度下降(GD),在訓練集上,它可以逐漸調整模型參數(shù)以獲得最小的損失函數(shù),最終,參數(shù)會收斂到和第一種方法相同的的值。同時,我們也會介紹一些梯度下降的變體形式:批量梯度下降(Batch GD)、小批量梯度下降(Mini-batch GD)、隨機梯度下降(Stochastic GD)。對于多項式回歸,它可以擬合非線性數(shù)據(jù)集,由于它比線性模型擁有更多的參數(shù),于是它更容易出現(xiàn)模型的過擬合。因此,我們將介紹如何通過學習曲線去判斷模型是否出現(xiàn)了過擬合,并介紹幾種正則化方法以減少模型出現(xiàn)過擬合的風險。

二、線性回歸

線性回歸預測模型

三、如何訓練

訓練一個模型指的是設置模型的參數(shù)使得這個模型在訓練集的表現(xiàn)較好。為此,我們首先需要找到一個衡量模型好壞的評定方法。在回歸模型上,最常見的評定標準是均方根誤差。因此,為了訓練一個線性回歸模型,需要找到一個θ值,它使得均方根誤差(標準誤差)達到最小值。實踐過程中,最小化均方誤差比最小化均方根誤差更加的簡單,這兩個過程會得到相同的θ因為函數(shù)在最小值時候的自變量,同樣能使函數(shù)的方根運算得到最小值。線性回歸模型的 MSE 損失函數(shù):

四、正規(guī)方程

為了找到最小化損失函數(shù)的 值,可以采用公式解,換句話說,就是可以通過解正規(guī)方程直接得到最后的結果。正規(guī)方程如下:

五、示例

生成一些近似線性的數(shù)據(jù)來測試一下這個方程。

importnumpyasnpX=2*np.random.rand(100,1)y=4+3*X+np.random.randn(100,1)

X_b=np.c_[np.ones((100,1)),X]theta_best=np.linalg.inv(X_b.T.dot(X_b)).dot(X_b.T).dot(y)

實際上產生數(shù)據(jù)的兩個系數(shù)是4和3 。讓我們看一下最后的計算結果。

>>>theta_bestarray([[4.21509616],[2.77011339]])

由于存在噪聲,參數(shù)不可能達到到原始函數(shù)的值?,F(xiàn)在我們能夠使用 來進行預測:

X_new=np.array([[0],[2]])X_new_b=np.c_[np.ones((2,1)),X_new]y_predict=X_new_b.dot(theta_best)y_predict>>>array([[4.21509616],[9.75532293]])

六、模型圖像

plt.plot(X_new,y_predict,"r-")plt.plot(X,y,"b.")plt.axis([0,2,0,15])plt.show()

使用下面的 Scikit-Learn 代碼可以達到相同的效果:

fromsklearn.linear_modelimportLinearRegressionlin_reg=LinearRegression()lin_reg.fit(X,y)lin_reg.intercept_,lin_reg.coef_(array([4.21509616]),array([2.77011339]))lin_reg.predict(X_new)array([[4.21509616],[9.75532293]])

七、梯度下降

梯度下降是一種非常通用的優(yōu)化算法,它能夠很好地解決一系列問題。梯度下降的整體思路是通過的迭代來逐漸調整參數(shù)使得損失函數(shù)達到最小值。假設濃霧下,你迷失在了大山中,你只能感受到自己腳下的坡度。為了最快到達山底,一個最好的方法就是沿著坡度最陡的地方下山。這其實就是梯度下降所做的:它計算誤差函數(shù)關于參數(shù)向量 的局部梯度,同時它沿著梯度下降的方向進行下一次迭代。當梯度值為零的時候,就達到了誤差函數(shù)最小值 。具體來說,開始時,需要選定一個隨機的 (這個值稱為隨機初始值),然后逐漸去改進它,每一次變化一小步,每一步都試著降低損失函數(shù)(例如:均方差損失函數(shù)),直到算法收斂到一個最小值。在梯度下降中一個重要的參數(shù)是步長,超參數(shù)學習率的值決定了步長的大小。如果學習率太小,必須經(jīng)過多次迭代,算法才能收斂,這是非常耗時的。另一方面,如果學習率太大,你將跳過最低點,到達山谷的另一面,可能下一次的值比上一次還要大。這可能使的算法是發(fā)散的,函數(shù)值變得越來越大,永遠不可能找到一個好的答案。最后,并不是所有的損失函數(shù)看起來都像一個規(guī)則的碗。它們可能是洞,山脊,高原和各種不規(guī)則的地形,使它們收斂到最小值非常的困難。梯度下降的兩個主要挑戰(zhàn):如果隨機初始值選在了圖像的左側,則它將收斂到局部最小值,這個值要比全局最小值要大。 如果它從右側開始,那么跨越高原將需要很長時間,如果你早早地結束訓練,你將永遠到不了全局最小值。

八、梯度下降的陷阱

幸運的是線性回歸模型的均方差損失函數(shù)是一個凸函數(shù),這意味著如果你選擇曲線上的任意兩點,它們的連線段不會與曲線發(fā)生交叉(譯者注:該線段不會與曲線有第三個交點)。這意味著這個損失函數(shù)沒有局部最小值,僅僅只有一個全局最小值。同時它也是一個斜率不能突變的連續(xù)函數(shù)。這兩個因素導致了一個好的結果: 梯度下降可以無限接近全局最小值。(只要你訓練時間足夠長,同時學習率不是太大 )。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 梯度
    +關注

    關注

    0

    文章

    30

    瀏覽量

    10333
  • 線性回歸
    +關注

    關注

    0

    文章

    41

    瀏覽量

    4315
  • 訓練模型
    +關注

    關注

    1

    文章

    36

    瀏覽量

    3876

原文標題:訓練模型

文章出處:【微信號:lccrunfly,微信公眾號:Python機器視覺】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    Pytorch模型訓練實用PDF教程【中文】

    本教程以實際應用、工程開發(fā)為目的,著重介紹模型訓練過程中遇到的實際問題和方法。在機器學習模型開發(fā)中,主要涉及三大部分,分別是數(shù)據(jù)、模型和損失
    發(fā)表于 12-21 09:18

    gensim增量訓練方法

    使用gensim訓練詞向量
    發(fā)表于 07-31 14:12

    優(yōu)化神經(jīng)網(wǎng)絡訓練方法有哪些?

    優(yōu)化神經(jīng)網(wǎng)絡訓練方法有哪些?
    發(fā)表于 09-06 09:52

    探索一降低ViT模型訓練成本的方法

    (1 GPU)和時間(24小時)資源下從頭開始訓練ViT模型。首先,提出了一向ViT架構添加局部性的有效方法。其次,開發(fā)了一新的圖像大小
    發(fā)表于 11-24 14:56

    微軟在ICML 2019上提出了一個全新的通用預訓練方法MASS

    專門針對序列到序列的自然語言生成任務,微軟亞洲研究院提出了新的預訓練方法:屏蔽序列到序列預訓練(MASS: Masked Sequence to Sequence Pre-training
    的頭像 發(fā)表于 05-11 09:19 ?3520次閱讀
    微軟在ICML 2019上提出了一個全新的通用預<b class='flag-5'>訓練方法</b>MASS

    新的預訓練方法——MASS!MASS預訓練幾大優(yōu)勢!

    專門針對序列到序列的自然語言生成任務,微軟亞洲研究院提出了新的預訓練方法:屏蔽序列到序列預訓練(MASS: Masked Sequence to Sequence Pre-training)。MASS對句子隨機屏蔽一個長度為k的連續(xù)片段,然后通過編碼器-注意力-解碼器
    的頭像 發(fā)表于 05-11 09:34 ?7106次閱讀
    新的預<b class='flag-5'>訓練方法</b>——MASS!MASS預<b class='flag-5'>訓練</b>幾大優(yōu)勢!

    關于語言模型和對抗訓練的工作

    本文把對抗訓練用到了預訓練和微調個階段,對抗訓練方法是針對embedding space,通過最大化對抗損失、最小化
    的頭像 發(fā)表于 11-02 15:26 ?2124次閱讀
    關于語言<b class='flag-5'>模型</b>和對抗<b class='flag-5'>訓練</b>的工作

    側重于學習情感特征的預訓練方法

    transformers編碼表示)的基礎上,提岀了一側重學習情感特征的預訓練方法。在目標領域的預練階段,利用情感詞典改進了BERT的預訓練任務。同時,使用基于上下文的詞粒度情感預測任務對掩蓋詞情感極性進行分類,獲取偏向情感特
    發(fā)表于 04-13 11:40 ?4次下載
    一<b class='flag-5'>種</b>側重于學習情感特征的預<b class='flag-5'>訓練方法</b>

    現(xiàn)代交互技術下的兒童語言表達訓練方法

    現(xiàn)代交互技術下的兒童語言表達訓練方法
    發(fā)表于 06-27 11:27 ?3次下載

    融合Image-Text和Image-Label兩種數(shù)據(jù)的多模態(tài)訓練新方式

    目前CV領域中包括兩種典型的訓練模式,第一是傳統(tǒng)的圖像分類訓練,以離散的label為目標,人工標注、收集干凈、大量的訓練數(shù)據(jù),
    的頭像 發(fā)表于 07-14 14:12 ?2662次閱讀

    介紹幾篇EMNLP&apos;22的語言模型訓練方法優(yōu)化工作

    來自:圓圓的算法筆記 今天給大家介紹3篇EMNLP 2022中語言模型訓練方法優(yōu)化的工作,這3篇工作分別是: 針對檢索優(yōu)化語言模型 :優(yōu)化語言模型
    的頭像 發(fā)表于 12-22 16:14 ?1010次閱讀

    基于生成模型的預訓練方法

    with Deep Generative Models,我認為是個挺強挺有趣的自監(jiān)督方面的工作。DreamTeacher 用于從預訓練的生成網(wǎng)絡向目標圖像 Backbone 進行知識蒸餾,作為一通用的預訓練機制
    的頭像 發(fā)表于 08-11 09:38 ?1245次閱讀
    基于生成<b class='flag-5'>模型</b>的預<b class='flag-5'>訓練方法</b>

    混合專家模型 (MoE)核心組件和訓練方法介紹

    ) 的 Transformer 模型在開源人工智能社區(qū)引起了廣泛關注。在本篇博文中,我們將深入探討 MoEs 的核心組件、訓練方法,以及在推理過程中需要考量的各種因素。 讓我們開始吧! 簡短總結 混合專家模型 (MoEs
    的頭像 發(fā)表于 01-13 09:37 ?1371次閱讀
    混合專家<b class='flag-5'>模型</b> (MoE)核心組件和<b class='flag-5'>訓練方法</b>介紹

    谷歌模型訓練軟件有哪些功能和作用

    谷歌模型訓練軟件主要是指ELECTRA,這是一新的預訓練方法,源自谷歌AI。ELECTRA不僅擁有BERT的優(yōu)勢,而且在效率上更勝一籌。
    的頭像 發(fā)表于 02-29 17:37 ?838次閱讀

    ai大模型訓練方法有哪些?

    AI大模型訓練方法是一個復雜且不斷發(fā)展的領域。以下是ai大模型訓練方法: 數(shù)據(jù)預處理和增強 數(shù)據(jù)清洗:去除噪聲和不完整的數(shù)據(jù)。 數(shù)據(jù)標準化:將數(shù)據(jù)縮放到統(tǒng)一的范圍。 數(shù)據(jù)增強:通過旋轉
    的頭像 發(fā)表于 07-16 10:11 ?1685次閱讀