91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

AI怎么訓練機器學習的模型

發布時間:2021-04-16 09:27:56 來源:億速云 閱讀:460 作者:小新 欄目:開發技術

這篇文章將為大家詳細講解有關AI怎么訓練機器學習的模型,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

1.Training: 如何訓練模型

一句話理解機器學習一般訓練過程 :通過有標簽樣本來調整(學習)并確定所有權重Weights和偏差Bias的理想值。

訓練的目標:最小化損失函數

(損失函數下面馬上會介紹)

機器學習算法在訓練過程中,做的就是:檢查多個樣本并嘗試找出可最大限度地減少損失的模型;目標就是將損失(Loss)最小化

AI怎么訓練機器學習的模型

上圖就是一般模型訓練的一般過程(試錯過程),其中

  • 模型: 將一個或多個特征作為輸入,然后返回一個預測 (y') 作為輸出。為了進行簡化,不妨考慮一種采用一個特征并返回一個預測的模型,如下公式(其中b為 bias,w為weight)

AI怎么訓練機器學習的模型

  • 計算損失:通過損失函數,計算該次參數(bias、weight)下的loss。

  • 計算參數更新:檢測損失函數的值,并為參數如bias、weight生成新值,以降低損失為最小。

例如:使用梯度下降法,因為通過計算整個數據集中w每個可能值的損失函數來找到收斂點這種方法效率太低。所以通過梯度能找到損失更小的方向,并迭代。

舉個TensorFlow代碼栗子,對應上面公式在代碼中定義該線性模型:

y_output = tf.multiply(w,x) + b

假設該模型應用于房價預測,那么y_output為預測的房價,x為輸入的房子特征值(如房子位置、面積、樓層等)

2. Loss Function:損失和損失函數

損失是一個數值 表示對于單個樣本而言模型預測的準確程度。

如果模型的預測完全準確,則損失為零,否則損失會較大。

訓練模型的目標是從所有樣本中找到一組平均損失“較小”的權重和偏差。

損失函數的目標:準確找到預測值和真實值的差距

AI怎么訓練機器學習的模型

如圖 紅色箭頭表示損失,藍線表示預測。明顯左側模型的損失較大;右側模型的損失較小

要確定loss,模型必須定義損失函數 loss function。例如,線性回歸模型通常將均方誤差用作損失函數,而邏輯回歸模型則使用對數損失函數。

正確的損失函數,可以起到讓預測值一直逼近真實值的效果,當預測值和真實值相等時,loss值最小。

舉個TensorFlow代碼栗子,在代碼中定義一個損失loss_price 表示房價預測時的loss,使用最小二乘法作為損失函數:

loss_price = tr.reduce_sum(tf.pow(y_real - y_output), 2)

這里,y_real是代表真實值,y_output代表模型輸出值(既上文公式的y' ),因為有的時候這倆差值會是負數,所以會對誤差開平方,具體可以搜索下最小二乘法公式

3. Gradient Descent:梯度下降法

理解梯度下降就好比在山頂以最快速度下山:

好比道士下山,如何在一座山頂上,找到最短的路徑下山,并且確定最短路徑的方向

原理上就是凸形問題求最優解,因為只有一個最低點;即只存在一個斜率正好為 0 的位置。這個最小值就是損失函數收斂之處。

AI怎么訓練機器學習的模型

通過計算整個數據集中 每個可能值的損失函數來找到收斂點這種方法效率太低。我們來研究一種更好的機制,這種機制在機器學習領域非常熱門,稱為梯度下降法。

梯度下降法的目標:尋找梯度下降最快的那個方向

梯度下降法的第一個階段是為 選擇一個起始值(起點)。起點并不重要;因此很多算法就直接將 設為 0 或隨機選擇一個值。下圖顯示的是我們選擇了一個稍大于 0 的起點:

AI怎么訓練機器學習的模型

然后,梯度下降法算法會計算損失曲線在起點處的梯度。簡而言之,梯度是偏導數的矢量;它可以讓您了解哪個方向距離目標“更近”或“更遠”。請注意,損失相對于單個權重的梯度(如圖 所示)就等于導數。

請注意,梯度是一個矢量,因此具有以下兩個特征:

  • 方向

  • 大小

梯度始終指向損失函數中增長最為迅猛的方向。梯度下降法算法會沿著負梯度的方向走一步,以便盡快降低損失

為了確定損失函數曲線上的下一個點,梯度下降法算法會將梯度大小的一部分與起點相加

AI怎么訓練機器學習的模型

然后,梯度下降法會重復此過程,逐漸接近最低點。(找到了方向)

  • 隨機梯度下降法SGD:解決數據過大,既一個Batch過大問題,每次迭代只是用一個樣本(Batch為1),隨機表示各個batch的一個樣本都是隨機選擇。

4. Learning Rate:學習速率

好比上面下山問題中,每次下山的步長。

因為梯度矢量具有方向和大小,梯度下降法算法用梯度乘以一個稱為學習速率(有時也稱為步長)的標量,以確定下一個點的位置。這是超參數,用來調整AI算法速率

例如,如果梯度大小為 2.5,學習速率為 0.01,則梯度下降法算法會選擇距離前一個點 0.025 的位置作為下一個點。

超參數是編程人員在機器學習算法中用于調整的旋鈕。大多數機器學習編程人員會花費相當多的時間來調整學習速率。如果您選擇的學習速率過小,就會花費太長的學習時間:

AI怎么訓練機器學習的模型

繼續上面的栗子,實現梯度下降代碼為:

train_step = tf.train.GradientDescentOptimizer(0.025).minimize(loss_price)

這里設置梯度下降學習率為0.025, GradientDescentOptimizer()就是使用的隨機梯度下降算法, 而loss_price是由上面的損失函數獲得的loss

至此有了模型、損失函數以及梯度下降函數,就可以進行模型訓練階段了:

Session = tf.Session()
Session.run(init)
for _ in range(1000):
	Session.run(train_step, feed_dict={x:x_data, y:y_data})

這里可以通過for設置固定的training 次數,也可以設置條件為損失函數的值低于設定值,

x_data y_data則為訓練所用真實數據,x y 是輸入輸出的placeholder(代碼詳情參見TensorFlow API文檔)

5. 擴展:BP神經網絡訓練過程

BP(BackPropagation)網絡的訓練,是反向傳播算法的過程,是由數據信息的正向傳播和誤差Error的反向傳播兩個過程組成。

反向傳播算法是神經網絡算法的核心,其數學原理是:鏈式求導法則

  • 正向傳播過程:

輸入層通過接收輸入數據,傳遞給中間層(各隱藏層)神經元,每一個神經元進行數據處理變換,然后通過最后一個隱藏層傳遞到輸出層對外輸出。

  • 反向傳播過程:

正向傳播后通過真實值和輸出值得到誤差Error,當Error大于設定值,既實際輸出與期望輸出差別過大時,進入誤差反向傳播階段:

Error通過輸出層,按照誤差梯度下降的方式,如上面提到的隨機梯度下降法SGD,反向修正各層參數(如Weights),向隱藏層、輸入層逐層反轉。

通過不斷的正向、反向傳播,直到輸出的誤差減少到預定值,或到達最大訓練次數。

AI怎么訓練機器學習的模型

關于“AI怎么訓練機器學習的模型”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

凤台县| 灵璧县| 廉江市| 共和县| 亚东县| 天峨县| 苏州市| 陇川县| 天津市| 天柱县| 额尔古纳市| 甘南县| 梁平县| 平乡县| 郎溪县| 沅江市| 大渡口区| 温泉县| 保定市| 木兰县| 柘荣县| 大田县| 南宁市| 平湖市| 呼伦贝尔市| 图们市| 宜君县| 襄樊市| 娄烦县| 华坪县| 固始县| 无极县| 桓台县| 务川| 尤溪县| 鄂温| 张家界市| 乐平市| 金川县| 东光县| 怀远县|