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

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Sklearn與TensorFlow機(jī)器學(xué)習(xí)實(shí)用指南

lviY_AI_shequ ? 來(lái)源:未知 ? 作者:胡薇 ? 2018-06-22 10:02 ? 次閱讀

在之前的描述中,我們通常把機(jī)器學(xué)習(xí)模型和訓(xùn)練算法當(dāng)作黑箱子來(lái)處理。如果你實(shí)踐過(guò)前幾章的一些示例,你驚奇的發(fā)現(xiàn)你可以優(yōu)化回歸系統(tǒng),改進(jìn)數(shù)字圖像的分類器,你甚至可以零基礎(chǔ)搭建一個(gè)垃圾郵件的分類器,但是你卻對(duì)它們內(nèi)部的工作流程一無(wú)所知。事實(shí)上,許多場(chǎng)合你都不需要知道這些黑箱子的內(nèi)部有什么,干了什么。

然而,如果你對(duì)其內(nèi)部的工作流程有一定了解的話,當(dāng)面對(duì)一個(gè)機(jī)器學(xué)習(xí)任務(wù)時(shí)候,這些理論可以幫助你快速的找到恰當(dāng)?shù)臋C(jī)器學(xué)習(xí)模型,合適的訓(xùn)練算法,以及一個(gè)好的假設(shè)集。同時(shí),了解黑箱子內(nèi)部的構(gòu)成,有助于你更好地調(diào)試參數(shù)以及更有效的誤差分析。本章討論的大部分話題對(duì)于機(jī)器學(xué)習(xí)模型的理解,構(gòu)建,以及神經(jīng)網(wǎng)絡(luò)(詳細(xì)參考本書(shū)的第二部分)的訓(xùn)練都是非常重要的。

首先我們將以一個(gè)簡(jiǎn)單的線性回歸模型為例,討論兩種不同的訓(xùn)練方法來(lái)得到模型的最優(yōu)解:

直接使用封閉方程進(jìn)行求根運(yùn)算,得到模型在當(dāng)前訓(xùn)練集上的最優(yōu)參數(shù)(即在訓(xùn)練集上使損失函數(shù)達(dá)到最小值的模型參數(shù))

使用迭代優(yōu)化方法:梯度下降(GD),在訓(xùn)練集上,它可以逐漸調(diào)整模型參數(shù)以獲得最小的損失函數(shù),最終,參數(shù)會(huì)收斂到和第一種方法相同的的值。同時(shí),我們也會(huì)介紹一些梯度下降的變體形式:批量梯度下降(Batch GD)、小批量梯度下降(Mini-batch GD)、隨機(jī)梯度下降(Stochastic GD),在第二部分的神經(jīng)網(wǎng)絡(luò)部分,我們會(huì)多次使用它們。

接下來(lái),我們將研究一個(gè)更復(fù)雜的模型:多項(xiàng)式回歸,它可以擬合非線性數(shù)據(jù)集,由于它比線性模型擁有更多的參數(shù),于是它更容易出現(xiàn)模型的過(guò)擬合。因此,我們將介紹如何通過(guò)學(xué)習(xí)曲線去判斷模型是否出現(xiàn)了過(guò)擬合,并介紹幾種正則化方法以減少模型出現(xiàn)過(guò)擬合的風(fēng)險(xiǎn)。

最后,我們將介紹兩個(gè)常用于分類的模型:Logistic回歸和Softmax回歸

提示

在本章中包含許多數(shù)學(xué)公式,以及一些線性代數(shù)和微積分基本概念。為了理解這些公式,你需要知道什么是向量,什么是矩陣,以及它們直接是如何轉(zhuǎn)化的,以及什么是點(diǎn)積,什么是矩陣的逆,什么是偏導(dǎo)數(shù)。如果你對(duì)這些不是很熟悉的話,你可以閱讀本書(shū)提供的 Jupyter 在線筆記,它包括了線性代數(shù)和微積分的入門指導(dǎo)。對(duì)于那些不喜歡數(shù)學(xué)的人,你也應(yīng)該快速簡(jiǎn)單的瀏覽這些公式。希望它足以幫助你理解大多數(shù)的概念。

線性回歸

在第一章,我們介紹了一個(gè)簡(jiǎn)單的的生活滿意度回歸模型:

$$ life_satisfaction = \theta _{0} + \theta _{1} * GDP_per_capita $$

這個(gè)模型僅僅是輸入量GDP_per_capita的線性函數(shù),$\theta _{0}$ 和 $\theta _{1}$ 是這個(gè)模型的參數(shù),線性模型更一般化的描述指通過(guò)計(jì)算輸入變量的加權(quán)和,并加上一個(gè)常數(shù)偏置項(xiàng)(截距項(xiàng))來(lái)得到一個(gè)預(yù)測(cè)值。如公式 4-1:

公式 4-1:線性回歸預(yù)測(cè)模型

$$ \hat{y} = \theta _{0} + \theta _{1}x _{1}+\theta _{2}x _{2}+\dots+\theta _{n}x _{n} $$

$\hat{y}$ 表示預(yù)測(cè)結(jié)果

$n$ 表示特征的個(gè)數(shù)

$x_{i}$ 表示第i個(gè)特征的值

$\theta_{j}$ 表示第j個(gè)參數(shù)(包括偏置項(xiàng) $\theta _{0}$ 和特征權(quán)重值 $\theta _{1},\theta _{2},\dots,\theta _{n}$)

上述公式可以寫(xiě)成更為簡(jiǎn)潔的向量形式,如公式 4-2:

公式 4-2:線性回歸預(yù)測(cè)模型(向量形式)

$$ \hat{y} = h _{\theta} (\mathbf{x})= \theta^T \cdot \mathbf{x} $$

$\theta$ 表示模型的參數(shù)向量包括偏置項(xiàng) $\theta _{0}$ 和特征權(quán)重值 $\theta _{1}$ 到 $\theta _{n}$

$\theta^T$ 表示向量$\theta$的轉(zhuǎn)置(行向量變?yōu)榱肆邢蛄浚?/p>

$\mathbf{x}$ 為每個(gè)樣本中特征值的向量形式,包括 $x {1}$ 到 $x{n}$,而且 $x_0$ 恒為 1

$\theta^T \cdot \mathbf{x}$ 表示 $\theta^T$ 和$ \mathbf{x}$ 的點(diǎn)積

$h_{\theta}$ 表示參數(shù)為 $\theta$ 的假設(shè)函數(shù)

怎么樣去訓(xùn)練一個(gè)線性回歸模型呢?好吧,回想一下,訓(xùn)練一個(gè)模型指的是設(shè)置模型的參數(shù)使得這個(gè)模型在訓(xùn)練集的表現(xiàn)較好。為此,我們首先需要找到一個(gè)衡量模型好壞的評(píng)定方法。在第二章,我們介紹到在回歸模型上,最常見(jiàn)的評(píng)定標(biāo)準(zhǔn)是均方根誤差(RMSE,詳見(jiàn)公式 2-1)。因此,為了訓(xùn)練一個(gè)線性回歸模型,你需要找到一個(gè) $\theta$ 值,它使得均方根誤差(標(biāo)準(zhǔn)誤差)達(dá)到最小值。實(shí)踐過(guò)程中,最小化均方誤差比最小化均方根誤差更加的簡(jiǎn)單,這兩個(gè)過(guò)程會(huì)得到相同的 $\theta$,因?yàn)楹瘮?shù)在最小值時(shí)候的自變量,同樣能使函數(shù)的方根運(yùn)算得到最小值。

在訓(xùn)練集 $\mathbf{X}$ 上使用公式 4-3 來(lái)計(jì)算線性回歸假設(shè) $h_{\theta}$ 的均方差($MSE$)。

公式 4-3:線性回歸模型的 MSE 損失函數(shù)

$$ MSE (\mathbf{X},h {\theta}$) = $\frac{1}{m} \sum\limits{i=1}^m{\left(\theta^T \cdot \mathbf{x}^{(i)}-y^{(i)}\right)}^2 $$

公式中符號(hào)的含義大多數(shù)都在第二章(詳見(jiàn)“符號(hào)”)進(jìn)行了說(shuō)明,不同的是:為了突出模型的參數(shù)向量 $\theta$,使用 $h_{\theta}$ 來(lái)代替 $h$。以后的使用中為了公式的簡(jiǎn)潔,使用 $MSE(\theta)$ 來(lái)代替 $MSE(\mathbf{X},h _{\theta})$。

正態(tài)方程

為了找到最小化損失函數(shù)的 $\theta$ 值,可以采用公式解,換句話說(shuō),就是可以通過(guò)解正態(tài)方程直接得到最后的結(jié)果。

公式 4-4:正態(tài)方程

$$ \hat{\theta} = ({\mathbf{X}}^T\cdot\mathbf{X})^{-1}\cdot{\mathbf{X}}^T\cdot\mathbf{y} $$

$\hat{\theta}$ 指最小化損失 $\theta$ 的值

$\mathbf{y}$ 是一個(gè)向量,其包含了 $y^{(1)}$ 到 $y^{(m)}$ 的值

讓我們生成一些近似線性的數(shù)據(jù)(如圖 4-1)來(lái)測(cè)試一下這個(gè)方程。

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

圖 4-1:隨機(jī)線性數(shù)據(jù)集

現(xiàn)在讓我們使用正態(tài)方程來(lái)計(jì)算 $\hat{\theta}$,我們將使用 Numpy 的線性代數(shù)模塊(np.linalg)中的inv()函數(shù)來(lái)計(jì)算矩陣的逆,以及dot()方法來(lái)計(jì)算矩陣的乘法。

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)

我們生產(chǎn)數(shù)據(jù)的函數(shù)實(shí)際上是 $y = 4 + 3x_0 + 高斯噪聲$。讓我們看一下最后的計(jì)算結(jié)果。

>>> theta_best array([[4.21509616],[2.77011339]])

我們希望最后得到的參數(shù)為 $\theta_0=4,\theta_1=3$ 而不是 $\theta_0=3.865,\theta_1=3.139$ (譯者注:我認(rèn)為應(yīng)該是 $\theta_0=4.2150,\theta_1=2.7701$)。這已經(jīng)足夠了,由于存在噪聲,參數(shù)不可能達(dá)到到原始函數(shù)的值。

現(xiàn)在我們能夠使用 $\hat{\theta}$ 來(lái)進(jìn)行預(yù)測(cè):

>>> 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]])

畫(huà)出這個(gè)模型的圖像,如圖 4-2

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

圖4-2:線性回歸預(yù)測(cè)

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

計(jì)算復(fù)雜度

正態(tài)方程需要計(jì)算矩陣 ${\mathbf{X}}^T\cdot\mathbf{X}$ 的逆,它是一個(gè) $n * n$ 的矩陣($n$ 是特征的個(gè)數(shù))。這樣一個(gè)矩陣求逆的運(yùn)算復(fù)雜度大約在 $O(n^{2.4})$ 到 $O(n^3)$ 之間,具體值取決于計(jì)算方式。換句話說(shuō),如果你將你的特征個(gè)數(shù)翻倍的話,其計(jì)算時(shí)間大概會(huì)變?yōu)樵瓉?lái)的 5.3($2^{2.4}$)到 8($2^3$)倍。

提示

當(dāng)特征的個(gè)數(shù)較大的時(shí)候(例如:特征數(shù)量為 100000),正態(tài)方程求解將會(huì)非常慢。

有利的一面是,這個(gè)方程在訓(xùn)練集上對(duì)于每一個(gè)實(shí)例來(lái)說(shuō)是線性的,其復(fù)雜度為 $O(m)$,因此只要有能放得下它的內(nèi)存空間,它就可以對(duì)大規(guī)模數(shù)據(jù)進(jìn)行訓(xùn)練。同時(shí),一旦你得到了線性回歸模型(通過(guò)解正態(tài)方程或者其他的算法),進(jìn)行預(yù)測(cè)是非常快的。因?yàn)槟P椭杏?jì)算復(fù)雜度對(duì)于要進(jìn)行預(yù)測(cè)的實(shí)例數(shù)量和特征個(gè)數(shù)都是線性的。 換句話說(shuō),當(dāng)實(shí)例個(gè)數(shù)變?yōu)樵瓉?lái)的兩倍多的時(shí)候(或特征個(gè)數(shù)變?yōu)樵瓉?lái)的兩倍多),預(yù)測(cè)時(shí)間也僅僅是原來(lái)的兩倍多。

接下來(lái),我們將介紹另一種方法去訓(xùn)練模型。這種方法適合在特征個(gè)數(shù)非常多,訓(xùn)練實(shí)例非常多,內(nèi)存無(wú)法滿足要求的時(shí)候使用。

梯度下降

梯度下降是一種非常通用的優(yōu)化算法,它能夠很好地解決一系列問(wèn)題。梯度下降的整體思路是通過(guò)的迭代來(lái)逐漸調(diào)整參數(shù)使得損失函數(shù)達(dá)到最小值。

假設(shè)濃霧下,你迷失在了大山中,你只能感受到自己腳下的坡度。為了最快到達(dá)山底,一個(gè)最好的方法就是沿著坡度最陡的地方下山。這其實(shí)就是梯度下降所做的:它計(jì)算誤差函數(shù)關(guān)于參數(shù)向量$\theta$的局部梯度,同時(shí)它沿著梯度下降的方向進(jìn)行下一次迭代。當(dāng)梯度值為零的時(shí)候,就達(dá)到了誤差函數(shù)最小值 。

具體來(lái)說(shuō),開(kāi)始時(shí),需要選定一個(gè)隨機(jī)的$\theta$(這個(gè)值稱為隨機(jī)初始值),然后逐漸去改進(jìn)它,每一次變化一小步,每一步都試著降低損失函數(shù)(例如:均方差損失函數(shù)),直到算法收斂到一個(gè)最小值(如圖:4-3)。

圖 4-3:梯度下降

在梯度下降中一個(gè)重要的參數(shù)是步長(zhǎng),超參數(shù)學(xué)習(xí)率的值決定了步長(zhǎng)的大小。如果學(xué)習(xí)率太小,必須經(jīng)過(guò)多次迭代,算法才能收斂,這是非常耗時(shí)的(如圖 4-4)。

圖 4-4:學(xué)習(xí)率過(guò)小

另一方面,如果學(xué)習(xí)率太大,你將跳過(guò)最低點(diǎn),到達(dá)山谷的另一面,可能下一次的值比上一次還要大。這可能使的算法是發(fā)散的,函數(shù)值變得越來(lái)越大,永遠(yuǎn)不可能找到一個(gè)好的答案(如圖 4-5)。

圖 4-5:學(xué)習(xí)率過(guò)大

最后,并不是所有的損失函數(shù)看起來(lái)都像一個(gè)規(guī)則的碗。它們可能是洞,山脊,高原和各種不規(guī)則的地形,使它們收斂到最小值非常的困難。 圖 4-6 顯示了梯度下降的兩個(gè)主要挑戰(zhàn):如果隨機(jī)初始值選在了圖像的左側(cè),則它將收斂到局部最小值,這個(gè)值要比全局最小值要大。 如果它從右側(cè)開(kāi)始,那么跨越高原將需要很長(zhǎng)時(shí)間,如果你早早地結(jié)束訓(xùn)練,你將永遠(yuǎn)到不了全局最小值。

圖 4-6:梯度下降的陷阱

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

事實(shí)上,損失函數(shù)的圖像呈現(xiàn)碗狀,但是不同特征的取值范圍相差較大的時(shí),這個(gè)碗可能是細(xì)長(zhǎng)的。圖 4-7 展示了梯度下降在不同訓(xùn)練集上的表現(xiàn)。在左圖中,特征 1 和特征 2 有著相同的數(shù)值尺度。在右圖中,特征 1 比特征2的取值要小的多,由于特征 1 較小,因此損失函數(shù)改變時(shí),$\theta_1$ 會(huì)有較大的變化,于是這個(gè)圖像會(huì)在$\theta_1$軸方向變得細(xì)長(zhǎng)。

圖 4-7:有無(wú)特征縮放的梯度下降

正如你看到的,左面的梯度下降可以直接快速地到達(dá)最小值,然而在右面的梯度下降第一次前進(jìn)的方向幾乎和全局最小值的方向垂直,并且最后到達(dá)一個(gè)幾乎平坦的山谷,在平坦的山谷走了很長(zhǎng)時(shí)間。它最終會(huì)達(dá)到最小值,但它需要很長(zhǎng)時(shí)間。

提示

當(dāng)我們使用梯度下降的時(shí)候,應(yīng)該確保所有的特征有著相近的尺度范圍(例如:使用 Scikit Learn 的 StandardScaler類),否則它將需要很長(zhǎng)的時(shí)間才能夠收斂。

這幅圖也表明了一個(gè)事實(shí):訓(xùn)練模型意味著找到一組模型參數(shù),這組參數(shù)可以在訓(xùn)練集上使得損失函數(shù)最小。這是對(duì)于模型參數(shù)空間的搜索,模型的參數(shù)越多,參數(shù)空間的維度越多,找到合適的參數(shù)越困難。例如在300維的空間找到一枚針要比在三維空間里找到一枚針復(fù)雜的多。幸運(yùn)的是線性回歸模型的損失函數(shù)是凸函數(shù),這個(gè)最優(yōu)參數(shù)一定在碗的底部。

批量梯度下降

使用梯度下降的過(guò)程中,你需要計(jì)算每一個(gè) $\theta_j$ 下?lián)p失函數(shù)的梯度。換句話說(shuō),你需要計(jì)算當(dāng)$\theta_j$變化一點(diǎn)點(diǎn)時(shí),損失函數(shù)改變了多少。這稱為偏導(dǎo)數(shù),它就像當(dāng)你面對(duì)東方的時(shí)候問(wèn):"我腳下的坡度是多少?"。然后面向北方的時(shí)候問(wèn)同樣的問(wèn)題(如果你能想象一個(gè)超過(guò)三維的宇宙,可以對(duì)所有的方向都這樣做)。公式 4-5 計(jì)算關(guān)于 $\theta_j$ 的損失函數(shù)的偏導(dǎo)數(shù),記為 $\frac{\partial }{\partial \theta_j}MSE(\theta)$。

公式 4-5: 損失函數(shù)的偏導(dǎo)數(shù)

$$ \frac{\partial }{\partial \theta_j}MSE(\theta)=\frac{2}{m} \sum\limits_{i=1}^m{\left(\theta^T \cdot \mathbf{x}^{(i)}-y^{(i)}\right)}{x_j}^{(i)} $$

為了避免單獨(dú)計(jì)算每一個(gè)梯度,你也可以使用公式 4-6 來(lái)一起計(jì)算它們。梯度向量記為 $\nabla_{\theta}MSE(\theta)$,其包含了損失函數(shù)所有的偏導(dǎo)數(shù)(每個(gè)模型參數(shù)只出現(xiàn)一次)。

公式 4-6:損失函數(shù)的梯度向量

$$ \nabla_{\theta}MSE(\theta)= \left(\begin{matrix} \frac{\partial }{\partial \theta_0}MSE(\theta)\ \frac{\partial }{\partial \theta_1}MSE(\theta)\ \vdots \ \frac{\partial }{\partial \theta_n}MSE(\theta)\ \end{matrix}\right) =\frac{2}{m}{\mathbf{X}}^T\cdot{(\mathbf{X}\cdot\theta-y)} $$

提示

在這個(gè)方程中每一步計(jì)算時(shí)都包含了整個(gè)訓(xùn)練集 $\mathbf{X}$,這也是為什么這個(gè)算法稱為批量梯度下降:每一次訓(xùn)練過(guò)程都使用所有的的訓(xùn)練數(shù)據(jù)。因此,在大數(shù)據(jù)集上,其會(huì)變得相當(dāng)?shù)穆ǖ俏覀兘酉聛?lái)將會(huì)介紹更快的梯度下降算法)。然而,梯度下降的運(yùn)算規(guī)模和特征的數(shù)量成正比。訓(xùn)練一個(gè)數(shù)千數(shù)量特征的線性回歸模型使用*梯度下降要比使用正態(tài)方程快的多。

一旦求得了方向是上山的梯度向量,你就可以向著相反的方向去下山。這意味著從 $\theta$ 中減去 $\nabla_{\theta}MSE(\theta)$。學(xué)習(xí)率 $\eta$ 和梯度向量的積決定了下山時(shí)每一步的大小,如公式 4-7。

公式 4-7:梯度下降步長(zhǎng)

$$ \theta^{(next\ step)}=\theta - \eta\nabla_{\theta}MSE(\theta) $$

讓我們看一下這個(gè)算法的應(yīng)用:

eta = 0.1 # 學(xué)習(xí)率 n_iterations = 1000 m = 100 theta = np.random.randn(2,1) # 隨機(jī)初始值 for iteration in range(n_iterations): gradients = 2/m * X_b.T.dot(X_b.dot(theta) - y) theta = theta - eta * gradiens

這不是太難,讓我們看一下最后的結(jié)果 $\theta$:

>>> theta array([[4.21509616],[2.77011339]])

看!正態(tài)方程的表現(xiàn)非常好。完美地求出了梯度下降的參數(shù)。但是當(dāng)你換一個(gè)學(xué)習(xí)率會(huì)發(fā)生什么?圖 4-8 展示了使用了三個(gè)不同的學(xué)習(xí)率進(jìn)行梯度下降的前 10 步運(yùn)算(虛線代表起始位置)。

圖 4-8:不同學(xué)習(xí)率的梯度下降

在左面的那副圖中,學(xué)習(xí)率是最小的,算法幾乎不能求出最后的結(jié)果,而且還會(huì)花費(fèi)大量的時(shí)間。在中間的這幅圖中,學(xué)習(xí)率的表現(xiàn)看起來(lái)不錯(cuò),僅僅幾次迭代后,它就收斂到了最后的結(jié)果。在右面的那副圖中,學(xué)習(xí)率太大了,算法是發(fā)散的,跳過(guò)了所有的訓(xùn)練樣本,同時(shí)每一步都離正確的結(jié)果越來(lái)越遠(yuǎn)。

為了找到一個(gè)好的學(xué)習(xí)率,你可以使用網(wǎng)格搜索(詳見(jiàn)第二章)。當(dāng)然,你一般會(huì)限制迭代的次數(shù),以便網(wǎng)格搜索可以消除模型需要很長(zhǎng)時(shí)間才能收斂這一個(gè)問(wèn)題。

你可能想知道如何選取迭代的次數(shù)。如果它太小了,當(dāng)算法停止的時(shí)候,你依然沒(méi)有找到最優(yōu)解。如果它太大了,算法會(huì)非常的耗時(shí)同時(shí)后來(lái)的迭代參數(shù)也不會(huì)發(fā)生改變。一個(gè)簡(jiǎn)單的解決方法是:設(shè)置一個(gè)非常大的迭代次數(shù),但是當(dāng)梯度向量變得非常小的時(shí)候,結(jié)束迭代。非常小指的是:梯度向量小于一個(gè)值 $\varepsilon$(稱為容差)。這時(shí)候可以認(rèn)為梯度下降幾乎已經(jīng)達(dá)到了最小值。

收斂速率:

當(dāng)損失函數(shù)是凸函數(shù),同時(shí)它的斜率不能突變(就像均方差損失函數(shù)那樣),那么它的批量梯度下降算法固定學(xué)習(xí)率之后,它的收斂速率是 $O(\frac{1}{iterations})$。換句話說(shuō),如果你將容差 $\varepsilon$ 縮小 10 倍后(這樣可以得到一個(gè)更精確的結(jié)果),這個(gè)算法的迭代次數(shù)大約會(huì)變成原來(lái)的 10 倍。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 機(jī)器學(xué)習(xí)

    關(guān)注

    66

    文章

    8423

    瀏覽量

    132744
  • tensorflow
    +關(guān)注

    關(guān)注

    13

    文章

    329

    瀏覽量

    60538
  • sklearn
    +關(guān)注

    關(guān)注

    0

    文章

    2

    瀏覽量

    3410

原文標(biāo)題:【翻譯】Sklearn 與 TensorFlow 機(jī)器學(xué)習(xí)實(shí)用指南 —— 第4章( 上) 訓(xùn)練模型

文章出處:【微信號(hào):AI_shequ,微信公眾號(hào):人工智能愛(ài)好者社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    如何使用TensorFlow構(gòu)建機(jī)器學(xué)習(xí)模型

    在這篇文章中,我將逐步講解如何使用 TensorFlow 創(chuàng)建一個(gè)簡(jiǎn)單的機(jī)器學(xué)習(xí)模型。
    的頭像 發(fā)表于 01-08 09:25 ?1009次閱讀
    如何使用<b class='flag-5'>TensorFlow</b>構(gòu)建<b class='flag-5'>機(jī)器</b><b class='flag-5'>學(xué)習(xí)</b>模型

    機(jī)器學(xué)習(xí)實(shí)踐指南——案例應(yīng)用解析

    機(jī)器學(xué)習(xí)實(shí)踐指南——案例應(yīng)用解析
    發(fā)表于 04-13 16:40

    tensorflow機(jī)器學(xué)習(xí)日志

    tensorflow學(xué)習(xí)日志(四)機(jī)器學(xué)習(xí)(泛化,過(guò)擬合, 數(shù)據(jù)集,驗(yàn)證集,測(cè)試集)
    發(fā)表于 04-14 06:32

    SklearnTensorFlow機(jī)器學(xué)習(xí)實(shí)用指南——第九章習(xí)題答案

    SklearnTensorFlow 機(jī)器學(xué)習(xí)實(shí)用指南——第九章習(xí)題答案
    發(fā)表于 05-13 13:28

    TensorFlow的框架結(jié)構(gòu)解析

    TensorFlow是谷歌的第二代開(kāi)源的人工智能學(xué)習(xí)系統(tǒng),是用來(lái)實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò)的內(nèi)置框架學(xué)習(xí)軟件庫(kù)。目前,TensorFlow機(jī)器
    發(fā)表于 04-04 14:39 ?7115次閱讀
    <b class='flag-5'>TensorFlow</b>的框架結(jié)構(gòu)解析

    谷歌免費(fèi)開(kāi)放基于TensorFlow機(jī)器學(xué)習(xí)速成課程 適合于國(guó)內(nèi)初學(xué)者

    隨著人工智能發(fā)展越來(lái)越快,機(jī)器學(xué)習(xí)成為了如今的熱門行業(yè),機(jī)器學(xué)習(xí)似乎是一個(gè)很重要的,具有很多未知特性的技術(shù)。今日?qǐng)?bào)道,谷歌上線基于TensorFlo
    發(fā)表于 03-01 14:30 ?1964次閱讀

    自學(xué)機(jī)器學(xué)習(xí)的誤區(qū)和陷阱

    Sklearn(scikit-learn: machine learning in Python-http://scikit-learn.org/stable/)是Python上最流行的機(jī)器學(xué)習(xí)
    的頭像 發(fā)表于 05-14 15:54 ?4792次閱讀
    自學(xué)<b class='flag-5'>機(jī)器</b><b class='flag-5'>學(xué)習(xí)</b>的誤區(qū)和陷阱

    機(jī)器學(xué)習(xí)框架Tensorflow 2.0的這些新設(shè)計(jì)你了解多少

    幾天前,Tensorflow剛度過(guò)自己的3歲生日,作為當(dāng)前最受歡迎的機(jī)器學(xué)習(xí)框架,Tensorflow在這個(gè)寶座上已經(jīng)盤踞了近三年。無(wú)論是成熟的Keras,還是風(fēng)頭正盛的pytorch
    的頭像 發(fā)表于 11-17 11:33 ?3168次閱讀

    如何用TensorFlow進(jìn)行機(jī)器學(xué)習(xí)研究

    從理論上講,這幾乎是您使用 TensorFlow 進(jìn)行機(jī)器學(xué)習(xí)研究所需要的全部?jī)?nèi)容。
    的頭像 發(fā)表于 02-05 10:06 ?1975次閱讀
    如何用<b class='flag-5'>TensorFlow</b>進(jìn)行<b class='flag-5'>機(jī)器</b><b class='flag-5'>學(xué)習(xí)</b>研究

    python機(jī)器學(xué)習(xí)工具sklearn使用手冊(cè)的中文版免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是python機(jī)器學(xué)習(xí)工具sklearn使用手冊(cè)的中文版免費(fèi)下載包括了:1.緒言,2.有監(jiān)督學(xué)習(xí),3.廣義線性模型,4.線性與二次判別分析,5.核嶺回歸支持向
    發(fā)表于 03-26 08:00 ?0次下載
    python<b class='flag-5'>機(jī)器</b><b class='flag-5'>學(xué)習(xí)</b>工具<b class='flag-5'>sklearn</b>使用手冊(cè)的中文版免費(fèi)下載

    Swift for TensorFlow:無(wú)邊界機(jī)器學(xué)習(xí),值得大家期待

    據(jù)資料顯示,Swift for TensorFlow:無(wú)邊界機(jī)器學(xué)習(xí)簡(jiǎn)介主要是——Swift for TensorFlow 是為下一代機(jī)器
    的頭像 發(fā)表于 09-20 14:20 ?2932次閱讀

    谷歌推出開(kāi)源的量子機(jī)器學(xué)習(xí)庫(kù)TensorFlow Quantum

    谷歌在其官方AI博客宣布推出TensorFlow Quantum(TFQ),這是一個(gè)開(kāi)源的量子機(jī)器學(xué)習(xí)庫(kù),可將量子計(jì)算與機(jī)器學(xué)習(xí)結(jié)合在一起,
    的頭像 發(fā)表于 03-11 14:25 ?2477次閱讀

    sklearntensorflow優(yōu)劣勢(shì)

    特征工程上,sklearn提供了例如維度壓縮、特征選擇等,但是這樣子并不代表這tf就比sklearn弱。在傳統(tǒng)的機(jī)器學(xué)習(xí)中,sklearn
    的頭像 發(fā)表于 04-15 15:18 ?8378次閱讀

    使用TensorFlow建立深度學(xué)習(xí)機(jī)器學(xué)習(xí)網(wǎng)絡(luò)

    教你使用TensorFlow建立深度學(xué)習(xí)機(jī)器學(xué)習(xí)網(wǎng)絡(luò)。
    發(fā)表于 03-26 09:44 ?18次下載

    輕松入門,高效成長(zhǎng): "TensorFlow 機(jī)器學(xué)習(xí)技能解鎖季"

    體系,體驗(yàn) TensorFlow 的最佳實(shí)踐模式? 《 TensorFlow 入門實(shí)操課程》 帶你零基礎(chǔ)快速上手 想高效實(shí)踐機(jī)器學(xué)習(xí)模型部署,借助
    的頭像 發(fā)表于 11-10 11:35 ?795次閱讀