? ? ? 大家好,我是帶我去滑雪!
? ? ? 深度學(xué)習(xí)算法是一種神經(jīng)網(wǎng)絡(luò),而神經(jīng)網(wǎng)絡(luò)就是數(shù)據(jù)結(jié)構(gòu)的圖形結(jié)構(gòu),函數(shù)集的運(yùn)算是向量和矩陣運(yùn)算,調(diào)整函數(shù)集的參數(shù)需要使用微分和偏微分來找出最優(yōu)解。深度學(xué)習(xí)可以通過幾何學(xué)來進(jìn)行解釋,從幾何學(xué)上看,深度學(xué)習(xí)是一種平面坐標(biāo)的轉(zhuǎn)換。假設(shè)在一個(gè)三維空間中,在手中有兩張藍(lán)色和紅色的紙,用手將兩張紙揉成團(tuán),那么這個(gè)由紙構(gòu)成的團(tuán)就為深度學(xué)習(xí)中的輸入數(shù)據(jù)。很明顯,這是一個(gè)分類問題,我們需要將這個(gè)由藍(lán)紅兩張紙構(gòu)成的團(tuán),分成藍(lán)色和紅色兩類。神經(jīng)網(wǎng)絡(luò)的工作就是將這個(gè)團(tuán),通過多個(gè)神經(jīng)層來轉(zhuǎn)換這個(gè)團(tuán),直到將兩張紙分開。下面學(xué)習(xí)一些神經(jīng)網(wǎng)絡(luò)的常用知識。
目錄
1、神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)方式、學(xué)習(xí)目標(biāo)、訓(xùn)練循環(huán)
(1)神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)方式與學(xué)習(xí)目標(biāo)
(2)神經(jīng)網(wǎng)絡(luò)的訓(xùn)練循環(huán)
2、神經(jīng)網(wǎng)絡(luò)到底學(xué)到了什么?
3、激活函數(shù)與損失函數(shù)
(1)激活函數(shù)
(2)損失函數(shù)
4、梯度下降法與反向傳播算法
(1)梯度下降法
?(2)反向傳播算法
5、神經(jīng)網(wǎng)絡(luò)的樣本和標(biāo)簽數(shù)據(jù)
6、樣本數(shù)據(jù)—特征標(biāo)準(zhǔn)化
(1)特征標(biāo)準(zhǔn)化
?(2)訓(xùn)練集、驗(yàn)證集、測試集
(3)訓(xùn)練周期、批次、批次尺寸
1、神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)方式、學(xué)習(xí)目標(biāo)、訓(xùn)練循環(huán)
(1)神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)方式與學(xué)習(xí)目標(biāo)
? ? ? 神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)目標(biāo):找出正確的權(quán)重值來縮小損失(損失是指實(shí)際值與預(yù)測值之間的差距)。神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)方式:神經(jīng)網(wǎng)絡(luò)的輸入值X,在經(jīng)過每一層 f 的數(shù)據(jù)轉(zhuǎn)換的計(jì)算后,可以得到預(yù)測值Y',因?yàn)槭潜O(jiān)督學(xué)習(xí),輸入數(shù)據(jù)X有對應(yīng)的真實(shí)目標(biāo)值Y,也稱為標(biāo)簽,可以使用損失函數(shù)計(jì)算Y‘與Y之間差異的損失分?jǐn)?shù),隨后通過優(yōu)化器來更新權(quán)重,找出最好的權(quán)重減少損失分?jǐn)?shù),以便縮小預(yù)測值與目標(biāo)值之間的差異。
(2)神經(jīng)網(wǎng)絡(luò)的訓(xùn)練循環(huán)
? ? ? ?神經(jīng)網(wǎng)絡(luò)可以自行使用數(shù)據(jù)來自自我訓(xùn)練,這個(gè)訓(xùn)練步驟不是只會進(jìn)行一次,而是一個(gè)訓(xùn)練循環(huán),其需要重復(fù)輸入數(shù)據(jù)來訓(xùn)練很多次,這個(gè)被稱為迭代。訓(xùn)練循環(huán)會進(jìn)行到訓(xùn)練出最優(yōu)的預(yù)測模型為止。
? ? ? ?在神經(jīng)網(wǎng)絡(luò)的訓(xùn)練循環(huán)環(huán)節(jié)可以分為正向傳播、評估損失、反向傳播三大階段,輸入的數(shù)據(jù)經(jīng)過正向傳播計(jì)算出預(yù)測值,與真實(shí)目標(biāo)值比較后計(jì)算出損失,然后使用反向傳播計(jì)算出每一層神經(jīng)層的錯誤比例,使用梯度下降法來更新權(quán)重。因?yàn)樯窠?jīng)網(wǎng)絡(luò)本身是一張計(jì)算圖,決定如何從輸入數(shù)據(jù)計(jì)算出預(yù)測值,并反過來計(jì)算各權(quán)重的更新比例。事實(shí)上,整個(gè)訓(xùn)練循環(huán)的步驟均是圍繞著權(quán)重的初始化、使用和更新操作。
? ? ? 上述訓(xùn)練循環(huán)會一直重復(fù)進(jìn)行,直到符合一定條件才會停止訓(xùn)練,神經(jīng)網(wǎng)絡(luò)的循環(huán)步驟如下:
- 第一步:初始化權(quán)重。整個(gè)訓(xùn)練循環(huán)從初始化權(quán)重開始,通常使用隨機(jī)數(shù)來初始化每一層的權(quán)重,這些權(quán)重構(gòu)成神經(jīng)網(wǎng)絡(luò)的參數(shù);
- 第二步:使用正向傳播計(jì)算預(yù)測值。使用輸入數(shù)據(jù)以正向傳播的方式,通過整個(gè)神經(jīng)網(wǎng)絡(luò)來計(jì)算出預(yù)測值,使用第一步中的權(quán)重計(jì)算出這些預(yù)測值,使用 f(wx+b)。wx為點(diǎn)積運(yùn)算,f()為激活函數(shù);
- 第三步:評估預(yù)測值與真實(shí)值誤差的損失。在經(jīng)過反向傳播計(jì)算出預(yù)測值之后,使用損失函數(shù)計(jì)算這些預(yù)測值與真實(shí)值之間的誤差,根據(jù)不同的問題,可以選擇不同的損失函數(shù)進(jìn)行計(jì)算;
- 第四步:使用反向傳播計(jì)算更新權(quán)重的比例。當(dāng)使用損失函數(shù)計(jì)算出損失分?jǐn)?shù)后,可以使用連鎖律(由于神經(jīng)網(wǎng)絡(luò)具有很多層,前一層的輸出會變成后一層的輸入,連鎖率是指從外向內(nèi)一層一層進(jìn)行微分)和偏微分反向從輸出層到輸入層,使用反向傳播算法計(jì)算出每一層神經(jīng)網(wǎng)絡(luò)的權(quán)重所造成的損失比,即梯度;
- 更新權(quán)重并繼續(xù)下一次訓(xùn)練。在使用反向傳播算法計(jì)算出各層權(quán)重的梯度后,就可以使用梯度下降法更新權(quán)重,即更新整個(gè)神經(jīng)網(wǎng)絡(luò)的參數(shù),以達(dá)到減少整體損失并創(chuàng)建更好的神經(jīng)網(wǎng)絡(luò)預(yù)測模型。最好,可以使用更新參數(shù)進(jìn)行下一次訓(xùn)練,即重復(fù)第二步到第五步,直到訓(xùn)練出最優(yōu)的預(yù)測模型。
2、神經(jīng)網(wǎng)絡(luò)到底學(xué)到了什么?
? ? ? ?當(dāng)訓(xùn)練神經(jīng)網(wǎng)絡(luò)時(shí),并不是進(jìn)行越多次訓(xùn)練循環(huán)就越能夠訓(xùn)練出最好的預(yù)測模型,隨著訓(xùn)練循環(huán)次數(shù)的增加,神經(jīng)網(wǎng)絡(luò)的更新權(quán)重?cái)?shù)量和次數(shù)也相應(yīng)贈加,神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)曲線會經(jīng)歷低度擬合、最優(yōu)化、過度擬合三個(gè)階段。低度擬合:訓(xùn)練誤差太大,神經(jīng)網(wǎng)絡(luò)壓根兒沒有學(xué)習(xí)成功,最優(yōu)化:理想的神經(jīng)網(wǎng)絡(luò)訓(xùn)練目標(biāo),過度擬合:神經(jīng)網(wǎng)絡(luò)模型已經(jīng)過度學(xué)習(xí),所建立的模型缺乏泛化性。擬合是指將獲取的數(shù)據(jù)吻合一個(gè)連續(xù)函數(shù),即一條曲線。泛化性是指預(yù)測模型對于未知的數(shù)據(jù)也具有很好的預(yù)測性。
? ? ? ?想要理解神經(jīng)網(wǎng)絡(luò)到底學(xué)習(xí)了什么?可以這樣理解,以學(xué)生考試為例,學(xué)生需要在短時(shí)間內(nèi)準(zhǔn)備期末考試,剛開始會瘋狂背書,盡可能的將知識點(diǎn)都死記硬背住,但隨著復(fù)習(xí)的進(jìn)行,你逐漸對知識點(diǎn)有了新的認(rèn)識,能夠融會貫通舉一反三,并記住了知識點(diǎn)的核心內(nèi)容,這就類似泛化性。相反,如果知識死記硬背,無法融會貫通、舉一反三,就是過度擬合。
3、激活函數(shù)與損失函數(shù)
(1)激活函數(shù)
? ? ? ?對神經(jīng)網(wǎng)絡(luò)的神經(jīng)元使用激活函數(shù),可以讓神經(jīng)元執(zhí)行非線性數(shù)據(jù)的轉(zhuǎn)化。神經(jīng)網(wǎng)絡(luò)如果沒有使用激活函數(shù),那么前一層神經(jīng)層輸出的是張量(張量是機(jī)器學(xué)習(xí)、深度學(xué)習(xí)最最常用的基本數(shù)據(jù)結(jié)構(gòu),以程序語言來說,張量就是不同大小維度的多維數(shù)組,例如(樣本數(shù),特征1,特征2、特征3、特征4))的點(diǎn)積運(yùn)算(點(diǎn)積運(yùn)算是兩個(gè)張量對應(yīng)元素的行和列的乘積和,類似矩陣的乘法運(yùn)算),不論經(jīng)過多少層神經(jīng)層,其擬合的都是一條線性函數(shù)。激活函數(shù)的功能就是打破線性關(guān)系,讓神經(jīng)網(wǎng)絡(luò)擬合更多非線性問題,實(shí)現(xiàn)可以用曲線來擬合。
常用的激活函數(shù):
- 隱藏層:常使用ReLU()函數(shù);
- 輸出層:使用Sigmoid()函數(shù)、Tanh()函數(shù)、Softmax()函數(shù),前兩個(gè)在二元分類中使用,后一個(gè)在多元分類中使用。
(2)損失函數(shù)
? ? ? ? 深度學(xué)習(xí)的目標(biāo)函數(shù)就是損失函數(shù),損失函數(shù)可以評估預(yù)測值和真實(shí)值之間的差異,損失函數(shù)是一個(gè)非負(fù)實(shí)數(shù)的函數(shù),損失函數(shù)越小,表示預(yù)測模型越好。深度學(xué)習(xí)的回歸問題的損失函數(shù)常使用均方誤差,而分類問題常使用交叉熵。
? ? ? ?均方誤差(MSE)是計(jì)算預(yù)測值與真實(shí)值之間差異的平方,其計(jì)算公式:
? ? ? ? 這里均方差的計(jì)算公式中為什么乘以二分之一,這只是為了方便反向傳播計(jì)算梯度的微分,可以抵消平方的2,平方的目的是避免負(fù)值。
? ? ? ?熵是物理學(xué)中用來測量混亂的程度,熵低表示混亂程度低。在信息論中的熵是用來測量不確定性。信息量是信息的量化值(單位為比特),其大小和事件發(fā)生的概率的大小相反,很少發(fā)生的事情才能引起關(guān)注,司空見慣的事情不會引起注意。信息熵是量化信息的混亂程度,計(jì)算方式為所有可能的概率乘以該概率的信息量并求和,混亂程度越低,信息熵越小。交叉熵是使用信息熵來評估兩組概率向量之間的差異程度,交叉熵越小,就表示兩組概率向量越接近。在深度學(xué)習(xí)中利用交叉熵計(jì)算真實(shí)值和預(yù)測值的損失分?jǐn)?shù),交叉熵越小,說明預(yù)測值越接近目標(biāo)值。
4、梯度下降法與反向傳播算法
(1)梯度下降法
? ? ? ? 梯度下降法是最優(yōu)化理論中一種找出最佳解的方法,就是往梯度的反方向走來找出局部最小值。使用梯度下降法需要考量的重要因素是學(xué)習(xí)率,如果學(xué)習(xí)率過小,神經(jīng)網(wǎng)絡(luò)就需要多次訓(xùn)練來調(diào)整權(quán)重,如果學(xué)習(xí)率過大,就也可能錯過全局最小值。
梯度意義:
- 在單變量函數(shù)中:梯度是函數(shù)的微分,即函數(shù)在某特定點(diǎn)的斜率;
? ? ? ?假設(shè)單變量函數(shù)為L(w)=w^2,假設(shè)起點(diǎn)為5,訓(xùn)練周期為5,學(xué)習(xí)率為0.4,使用python實(shí)現(xiàn)梯度下降法,代碼如下:
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimSun'] #'畫圖使中文正常顯示為宋體def L(w):
? ? return w * w
def dL(w):
? ? return 2 * w
def gradient_descent(w_start, df, lr, epochs):#定義一個(gè)梯度函數(shù),其參數(shù)分別是起點(diǎn)、微分函數(shù)名稱、學(xué)習(xí)率、走幾步的訓(xùn)練周期
?w_gd = []#使用列表保留每一步計(jì)算的新位置,在指定初始位置后,使用for循環(huán)重復(fù)步數(shù)來#計(jì)算下一步梯度下降的新位置,w為目前位置,pre_w為前一個(gè)位置,最好返回每一步的位#置值
? ? w_gd.append(w_start)
? ? pre_w = w_start? ? for i in range(epochs):
? ? ? ? w = pre_w - lr * df(pre_w)
? ? ? ? w_gd.append(w)
? ? ? ? pre_w = w
? ? return np.array(w_gd)
w0 = 5
epochs = 5
lr = 0.4
w_gd = gradient_descent(w0, dL, lr, epochs)
print(w_gd)#繪制梯度下降法的圖表
t = np.arange(-5.5, 5.5, 0.01)
plt.plot(t, L(t), c='b')
plt.plot(w_gd, L(w_gd), c='r', label='學(xué)習(xí)率={}'.format(lr))
plt.scatter(w_gd, L(w_gd), c='r')
plt.legend()
plt.savefig("squares1.png",
? ? ? ? ? ? bbox_inches ="tight",
? ? ? ? ? ? pad_inches = 1,
? ? ? ? ? ? transparent = True,
? ? ? ? ? ? facecolor ="w",
? ? ? ? ? ? edgecolor ='w',
? ? ? ? ? ? dpi=300,
? ? ? ? ? ? orientation ='landscape')輸出結(jié)果:
- 在多變量函數(shù)中:梯度是各變量偏微分的向量,向量是有方向的,梯度就是該點(diǎn)變化率最大的方向。
? ? ? 假設(shè)有如下雙變量函數(shù):
? ? ? ?設(shè)置起點(diǎn)為[2,4],學(xué)習(xí)率為0.1,使用python實(shí)現(xiàn)雙變量函數(shù)的梯度下降法,代碼如下:
import numpy as np
import matplotlib.pyplot as pltdef L(w1, w2):
? ? return w1**2 + w2**2def dL(w):
? ? return np.array([2*w[0], 2*w[1]])def gradient_descent(w_start, df, lr, epochs):
? ? w1_gd = []
? ? w2_gd = []
? ? w1_gd.append(w_start[0])
? ? w2_gd.append(w_start[1])?
? ? pre_w = w_start? ? for i in range(epochs):
? ? ? ? w = pre_w - lr*df(pre_w)
? ? ? ? w1_gd.append(w[0])
? ? ? ? w2_gd.append(w[1])
? ? ? ? pre_w = w? ? return np.array(w1_gd), np.array(w2_gd)
w0 = np.array([2, 4])
lr = 0.1
epochs = 40x1 = np.arange(-5, 5, 0.05)
x2 = np.arange(-5, 5, 0.05)w1, w2 = np.meshgrid(x1, x2)
fig1, ax1 = plt.subplots()
ax1.contour(w1, w2, L(w1, w2), levels=np.logspace(-3, 3, 30), cmap='jet')
min_point = np.array([0., 0.])
min_point_ = min_point[:, np.newaxis]
ax1.plot(*min_point_, L(*min_point_), 'r*', markersize=10)
ax1.set_xlabel('w1')
ax1.set_ylabel('w2')w1_gd, w2_gd = gradient_descent(w0, dL, lr, epochs)
w_gd = np.column_stack([w1_gd, w2_gd])
print(w_gd)ax1.plot(w1_gd, w2_gd, 'bo')
for i in range(1, epochs+1):
? ? ax1.annotate('', xy=(w1_gd[i], w2_gd[i]),?
? ? ? ? ? ? ? ? ? ?xytext=(w1_gd[i-1], w2_gd[i-1]),
? ? ? ? ? ? ? ? ? ?arrowprops={'arrowstyle': '->', 'color': 'r', 'lw': 1},
? ? ? ? ? ? ? ? ? ?va='center', ha='center')
plt.savefig("squares2.png",
? ? ? ? ? ? bbox_inches ="tight",
? ? ? ? ? ? pad_inches = 1,
? ? ? ? ? ? transparent = True,
? ? ? ? ? ? facecolor ="w",
? ? ? ? ? ? edgecolor ='w',
? ? ? ? ? ? dpi=300,
? ? ? ? ? ? orientation ='landscape')輸出結(jié)果:
?(2)反向傳播算法
? ? ? 反向傳播算法是一種訓(xùn)練神經(jīng)網(wǎng)絡(luò)常用的優(yōu)化方法,整個(gè)算法可以分為如下3個(gè)階段:
- 前向傳播階段:輸入值經(jīng)過神經(jīng)網(wǎng)絡(luò),輸出預(yù)測值;
- 反向傳播階段:將預(yù)測值與真實(shí)值計(jì)算出誤差后,反向傳播計(jì)算出各層權(quán)重誤差比例的精度
- 權(quán)重更新階段:依據(jù)計(jì)算出的各層權(quán)重比例的梯度,使用梯度下降法來更新權(quán)重。
5、神經(jīng)網(wǎng)絡(luò)的樣本和標(biāo)簽數(shù)據(jù)
? ? ? ?神經(jīng)網(wǎng)絡(luò)的樣本是用來訓(xùn)練神經(jīng)網(wǎng)絡(luò)的數(shù)據(jù)集,標(biāo)簽是每一個(gè)樣本對應(yīng)的真實(shí)目標(biāo)值。標(biāo)簽是監(jiān)督學(xué)習(xí)訓(xùn)練所需樣本對應(yīng)的結(jié)果,神經(jīng)網(wǎng)絡(luò)在訓(xùn)練時(shí)才能計(jì)算預(yù)測值和真實(shí)值之間的損失分?jǐn)?shù)。對于分類數(shù)據(jù)來說,因?yàn)榻徊骒厥鞘褂酶怕氏蛄縼碛?jì)算損失,我們需要先對標(biāo)簽執(zhí)行One-hot編碼,才能和Softmax函數(shù)輸出概率向量進(jìn)行損失分?jǐn)?shù)的計(jì)算。
? ? ? 使用NumPy可以實(shí)現(xiàn)One-hot編碼,假設(shè)我們需要將[5,3,7,4]這樣一組標(biāo)簽數(shù)組,可以通過如下代碼:
import numpy as np
def one_hot_encoding(raw, num):
? ? result = []
? ? for ele in raw:
? ? ? ? arr = np.zeros(num)
? ? ? ? np.put(arr, ele, 1)
? ? ? ? result.append(arr)
? ? ? ??
? ? return np.array(result)
? ??
digits = np.array([5, 3, 7, 4])one_hot = one_hot_encoding(digits, 10)
print('代轉(zhuǎn)換標(biāo)簽數(shù)組:',digits)
print('獨(dú)立熱編碼后:',one_hot)輸出結(jié)果:
代轉(zhuǎn)換標(biāo)簽數(shù)組: [5 3 7 4] 獨(dú)立熱編碼后: [[0. 0. 0. 0. 0. 1. 0. 0. 0. 0.] [0. 0. 0. 1. 0. 0. 0. 0. 0. 0.] [0. 0. 0. 0. 0. 0. 0. 1. 0. 0.] [0. 0. 0. 0. 1. 0. 0. 0. 0. 0.]]
6、樣本數(shù)據(jù)—特征標(biāo)準(zhǔn)化
? ? ? ?神經(jīng)網(wǎng)絡(luò)的樣本是一個(gè)數(shù)據(jù)集,在送入神經(jīng)網(wǎng)絡(luò)訓(xùn)練前,需要執(zhí)行特征標(biāo)準(zhǔn)化,將樣本分成訓(xùn)練集、驗(yàn)證集和測試集,并確定訓(xùn)練周期、批次、批次尺寸。
(1)特征標(biāo)準(zhǔn)化
? ? ? ?特征標(biāo)準(zhǔn)化的目的在于平衡特征值的貢獻(xiàn),一般有以下兩種方法:
- 歸一化:將數(shù)據(jù)縮放為0到1之間,如果數(shù)據(jù)范圍是固定的,沒有極端值,可以使用歸一化方法;
import numpy as np
def normalization(raw):
? ? max_value = max(raw)
? ? min_value = min(raw)
? ? norm = [(float(i)-min_value)/(max_value-min_value) for i in raw]
? ? return norm
? ??
x = np.array([255, 128, 45, 0])print('原始數(shù)據(jù):',x)
norm = '歸一化后的原始數(shù)據(jù):',normalization(x)
print(norm)輸出結(jié)果:
原始數(shù)據(jù): [255 128 45 0] ('歸一化后的原始數(shù)據(jù):', [1.0, 0.5019607843137255, 0.17647058823529413, 0.0])
- 標(biāo)準(zhǔn)化:將數(shù)據(jù)轉(zhuǎn)換成均值為0,標(biāo)準(zhǔn)差為1,如果數(shù)據(jù)雜亂且存在極端值,可以使用標(biāo)準(zhǔn)化方法。
import numpy as np
from scipy.stats import zscorex = np.array([255, 128, 45, 0])
z_score = zscore(x)
print(z_score)print(zscore([[1, 2, 3],
? ? ? ? ? ? ? [6, 7, 8]], axis=1))輸出結(jié)果:
[ 1.52573266 0.21648909 -0.63915828 -1.10306348] [[-1.22474487 0. 1.22474487] [-1.22474487 0. 1.22474487]]
?(2)訓(xùn)練集、驗(yàn)證集、測試集
一份神經(jīng)網(wǎng)絡(luò)數(shù)據(jù)集,會先分成訓(xùn)練集和測試集,訓(xùn)練集在訓(xùn)練時(shí)會再分成訓(xùn)練集和驗(yàn)證集。一般來說訓(xùn)練集、驗(yàn)證集、測試集的比例為70%、20%、10%,它們分別的作用是:
- 訓(xùn)練集:訓(xùn)練神經(jīng)網(wǎng)絡(luò),調(diào)整模型權(quán)重;
- 驗(yàn)證集:用于評估和優(yōu)化神經(jīng)網(wǎng)絡(luò),防止訓(xùn)練的神經(jīng)網(wǎng)絡(luò)模型過擬合,即訓(xùn)練集的準(zhǔn)確率提升,同時(shí)驗(yàn)證集的準(zhǔn)確率卻沒有什么變化甚至還出現(xiàn)降低;
- 測試集:用來評估神經(jīng)網(wǎng)絡(luò)最終的訓(xùn)練模型,并且測試集數(shù)據(jù)只會使用一次。
(3)訓(xùn)練周期、批次、批次尺寸
? ? ? ?深度學(xué)習(xí)的數(shù)據(jù)集一般很大,無法一次將整個(gè)訓(xùn)練數(shù)據(jù)輸入神經(jīng)網(wǎng)絡(luò),為了執(zhí)行效能,會將訓(xùn)練數(shù)據(jù)分為較小單位,稱為批次。每一批的樣本數(shù)量稱為批次尺寸。當(dāng)整個(gè)訓(xùn)練集(分為多個(gè)批次)從前向傳播至反向傳播通過整個(gè)神經(jīng)網(wǎng)絡(luò)一次,稱為一個(gè)訓(xùn)練周期。迭代的重復(fù)次數(shù)是指需要多少個(gè)批次來完成一個(gè)訓(xùn)練周期。
更多優(yōu)質(zhì)內(nèi)容持續(xù)發(fā)布中,請移步主頁查看。
若有問題可郵箱聯(lián)系:1736732074@qq.com?
博主的WeChat:TCB1736732074文章來源:http://www.zghlxwxcb.cn/news/detail-464483.html
? ?點(diǎn)贊+關(guān)注,下次不迷路!文章來源地址http://www.zghlxwxcb.cn/news/detail-464483.html
到了這里,關(guān)于深度學(xué)習(xí)之神經(jīng)網(wǎng)絡(luò)是如何自行學(xué)習(xí)的?的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!