版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
前饋神經(jīng)網(wǎng)絡(luò)《Python機器學(xué)習(xí)與項目實踐》XXX大學(xué)教學(xué)內(nèi)容概念基本特征網(wǎng)絡(luò)模型應(yīng)用分析機器學(xué)習(xí)≈構(gòu)建一個映射函數(shù)“貓”“你好”“5-5”“今天天氣真不錯”“你好”用戶輸入機器(落子位置)語音識別圖像識別圍棋對話系統(tǒng)神經(jīng)元與感知機一個生物的神經(jīng)元的結(jié)構(gòu)分為細(xì)胞體和突起兩部分,具有聯(lián)絡(luò)和整合輸入信息并輸出信息的作用。突起包含樹突和軸突,樹突用來接收其他的神經(jīng)元傳遞過來的信號,其一端連接軸突用來給其他的神經(jīng)元傳遞信號,軸突的末端連接到其他神經(jīng)元的樹突或軸突上。神經(jīng)元結(jié)構(gòu)圖感知機的工作原理激活函數(shù)激活函數(shù)(ActivationFunction)是在神經(jīng)網(wǎng)絡(luò)中的神經(jīng)元上運行的函數(shù),負(fù)責(zé)將神經(jīng)元的輸入映射到輸出端。激活函數(shù)在神經(jīng)元中是非常重要的。為了增強神經(jīng)網(wǎng)絡(luò)的表示能力和學(xué)習(xí)能力,激活函數(shù)需要具備以下幾點性質(zhì)。(1)連續(xù)可導(dǎo)(允許少數(shù)點上不可導(dǎo))的非線性函數(shù)??蓪?dǎo)的激活函數(shù)可以直接利用數(shù)值優(yōu)化的方法來學(xué)習(xí)網(wǎng)絡(luò)參數(shù)。(2)激活函數(shù)及其導(dǎo)數(shù)要盡可能的簡單,這樣有利于提高網(wǎng)絡(luò)計算效率。(3)激活函數(shù)的導(dǎo)數(shù)的值域要在一個合適的區(qū)間內(nèi),不能太大也不能太小,否則會影響訓(xùn)練的效率和穩(wěn)定性。Sigmoid函數(shù)Sigmoid函數(shù)連續(xù)且光滑,嚴(yán)格單調(diào),關(guān)于(0,0.5)中心對稱,可以將變量映射到(0,1)之間,是一個非常良好的閾值函數(shù)。Sigmoid函數(shù)作為激活函數(shù)有以下優(yōu)缺點。優(yōu)點:平滑、易于求導(dǎo)。缺點:①Sigmoid函數(shù)極容易導(dǎo)致梯度消失問題。假設(shè)神經(jīng)元輸入Sigmoid函數(shù)的值特別大或特別小,那么對應(yīng)的梯度約等于0,即使從上一步傳導(dǎo)來的梯度較大,該神經(jīng)元權(quán)重和偏置的梯度也會趨近0,導(dǎo)致參數(shù)無法得到有效更新。②計算費時。在神經(jīng)網(wǎng)絡(luò)訓(xùn)練中,常常要計算Sigmoid函數(shù)的值,進(jìn)行冪計算會導(dǎo)致耗時增加。③Sigmoid函數(shù)不是關(guān)于原點中心對稱的(Zero-centered)。
Tanh函數(shù)Tanh函數(shù)作為激活函數(shù)有以下優(yōu)缺點。優(yōu)點:①平滑、易于求導(dǎo)。②解決了Sigmoid函數(shù)收斂變慢的問題,相對于Sigmoid函數(shù)提高了收斂速度。缺點:①梯度消失問題依然存在。②函數(shù)值的計算復(fù)雜度高,是指數(shù)級的。ReLU函數(shù)優(yōu)點:①相比于Sigmoid函數(shù)的兩端飽和,ReLU函數(shù)為左飽和函數(shù),且在x>0時導(dǎo)數(shù)為1,這在一定程度上緩解了神經(jīng)網(wǎng)絡(luò)的梯度消失問題。②沒有復(fù)雜的指數(shù)運算,計算簡單、效率提高。③收斂速度較快,比Sigmoid函數(shù)和Tanh函數(shù)快很多。④單側(cè)抑制、寬興奮邊界使得ReLU函數(shù)比Sigmoid函數(shù)更符合生物學(xué)神經(jīng)激活機制。缺點:①輸出是非零中心化的,給后一層的神經(jīng)網(wǎng)絡(luò)引入偏置偏移,會影響梯度下降的效率。②ReLU神經(jīng)元在訓(xùn)練時比較容易“死亡”。Swish函數(shù)Swish函數(shù)的主要優(yōu)點如下。(1)Swish函數(shù)的無界性有助于防止在慢速訓(xùn)練期間梯度逐漸接近0并導(dǎo)致飽和。(2)Swish函數(shù)的平滑度在優(yōu)化和泛化中起了重要作用。Softmax函數(shù)Softmax函數(shù)常在神經(jīng)網(wǎng)絡(luò)輸出層中充當(dāng)激活函數(shù),將輸出層的值通過激活函數(shù)映射到(0,1)區(qū)間,當(dāng)前輸出可以看作屬于各個分類的概率,從而用來進(jìn)行多分類。Softmax函數(shù)的映射值越大,則真實類別的可能性越大。4.3前饋神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)前饋神經(jīng)網(wǎng)絡(luò)也經(jīng)常稱為多層感知機(Multi-LayerPerceptron,MLP),但多層感知機的叫法并不十分合理。因為前饋神經(jīng)網(wǎng)絡(luò)其實是由多層的邏輯回歸模型(連續(xù)的非線性函數(shù))組成的,而不是由多層的感知機(不連續(xù)的非線性函數(shù))組成的。前饋神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)4.3.1通用近似定理神經(jīng)網(wǎng)絡(luò)最有價值的地方可能在于,它可以在理論上證明:一個包含足夠多隱藏層神經(jīng)元的多層前饋神經(jīng)網(wǎng)絡(luò),能以任意精度逼近任意預(yù)定的連續(xù)函數(shù)。這個定理即通用近似定理(UniversalApproximationTheorem)。這里的Universal也有人將其翻譯成“萬能的”。4.3.2應(yīng)用到機器學(xué)習(xí)根據(jù)通用近似定理,神經(jīng)網(wǎng)絡(luò)在某種程度上可以作為一個“萬能”函數(shù)來使用,可以用來進(jìn)行復(fù)雜的特征轉(zhuǎn)換,或者近似一個復(fù)雜的條件分布。在機器學(xué)習(xí)中,輸入樣本的特征對分類器的影響很大。以監(jiān)督學(xué)習(xí)為例,好的特征可以極大提高分類器的性能。4.3.3參數(shù)學(xué)習(xí)在神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)中,需要尋找最優(yōu)參數(shù)(權(quán)重和偏置),即尋找使損失函數(shù)的值盡可能小的參數(shù)。為了找到使損失函數(shù)的值盡可能小的參數(shù),首先需要計算參數(shù)的梯度(導(dǎo)數(shù)),然后以這個導(dǎo)數(shù)為指引,逐步更新參數(shù)的值。4.4反向傳播算法反向傳播(BackPropagation,BP)算法是目前用來訓(xùn)練神經(jīng)網(wǎng)絡(luò)的常用且有效的算法。反向傳播算法的主要思想是:將訓(xùn)練集數(shù)據(jù)輸入神經(jīng)網(wǎng)絡(luò)的輸入層,經(jīng)過隱藏層,最后到達(dá)輸出層并輸出結(jié)果,這是神經(jīng)網(wǎng)絡(luò)的前向傳播過程。4.5梯度計算前面已經(jīng)介紹了神經(jīng)網(wǎng)絡(luò)的最終目標(biāo),即使所定義的損失函數(shù)的值達(dá)到最小。為了使損失函數(shù)的值最小,常使用的核心方法是“梯度法”。復(fù)合函數(shù)的計算圖
4.5梯度計算4.6網(wǎng)絡(luò)優(yōu)化神經(jīng)網(wǎng)絡(luò)的參數(shù)學(xué)習(xí)比線性模型更加困難,當(dāng)前神經(jīng)網(wǎng)絡(luò)模型的難點主要如下。(1)優(yōu)化問題。神經(jīng)網(wǎng)絡(luò)模型是一個非凸函數(shù),再加上在深度神經(jīng)網(wǎng)絡(luò)中的梯度消失問題,很難進(jìn)行優(yōu)化。另外,深層神經(jīng)網(wǎng)絡(luò)一般參數(shù)比較多,訓(xùn)練數(shù)據(jù)也比較多,這會導(dǎo)致訓(xùn)練的效率比較低。(2)泛化問題。因為神經(jīng)網(wǎng)絡(luò)的擬合能力強,反而容易在訓(xùn)練集上產(chǎn)生過擬合。因此在訓(xùn)練深層神經(jīng)網(wǎng)絡(luò)時,需要通過一定的正則化方法來改善網(wǎng)絡(luò)的泛化能力。優(yōu)化算法1.批量梯度下降(BatchGradientDescent,BGD)2.隨機梯度下降(SGD)3.小批量梯度下降4.7應(yīng)用實例向讀者介紹前饋神經(jīng)網(wǎng)絡(luò)模型在PyTorch中的簡單構(gòu)建。關(guān)于數(shù)據(jù)集的準(zhǔn)備,本節(jié)的示例中使用手寫數(shù)字的MINIST數(shù)據(jù)集。該數(shù)據(jù)集包含60000個用于訓(xùn)練的示例和10000個用于測試的示例。這些數(shù)字已經(jīng)過尺寸標(biāo)準(zhǔn)化并位于圖像中心,圖像是固定大小的(28像素×28像素),其值為0~10。為簡單起見,每個圖像都被展平并轉(zhuǎn)換為784(28×28)個特征的一維NumPy數(shù)組4.7應(yīng)用實例代碼實現(xiàn)如下。1.import
torch
2.import
torch.nn
as
nn
3.import
torchvision
4.import
torchvision.transforms
as
transforms
5.#
配置
6.device=torch.device('cuda'
if
torch.cuda.is_available()
else
'cpu')
7.#
超參數(shù)
8.input_size=784
9.hidden_size=500
10.num_classes=10
11.num_epochs=5
12.batch_size=100
13.learning_rate=0.001
14.
15.#
數(shù)據(jù)集
16.train_dataset=torchvision.datasets.MNIST(root='../../data',
17.
train=True,
18.
transform=transforms.ToTensor(),
19.
download=True)
20.
21.test_dataset=torchvision.datasets.MNIST(root='../../data',
4.7應(yīng)用實例22.
train=False,
23.
transform=transforms.ToTensor())
24.
25.#
引入數(shù)據(jù)集26.train_loader=torch.utils.data.DataLoader(dataset=train_dataset,
27.
batch_size=batch_size,
28.
shuffle=True)
29.
30.test_loader=torch.utils.data.DataLoader(dataset=test_dataset,
31.
batch_size=batch_size,
32.
shuffle=False)
33.
34.#
全連接層35.class
NeuralNet(nn.Module):
36.
def
__init__(self,input_size,hidden_size,num_classes):
37.
super(NeuralNet,self).__init__()
38.
self.fc1=nn.Linear(input_size,hidden_size)
39.
self.relu=nn.ReLU()
40.
self.fc2=nn.Linear(hidden_size,num_classes)
4.7應(yīng)用實例41.
42.
def
forward(self,x):
43.
out=self.fc1(x)
44.
out=self.relu(out)
45.
out=self.fc2(out)
46.
return
out
47.
48.model=NeuralNet(input_size,hidden_size,num_classes).to(device)
49.
50.#
損失與優(yōu)化51.criterion=nn.CrossEntropyLoss()
52.optimizer=torch.optim.Adam(model.parameters(),lr=learning_rate)
53.
54.#
訓(xùn)練模型55.total_step=len(train_loader)
56.for
epoch
in
range(num_epochs):
57.
for
i,(images,labels)
in
enumerate(train_loader):
58.
#
Move
tensors
to
the
configured
device
59.
images=images.reshape(-1,28
*
28).to(device)
60.
labels=labels.to(device)
4.7應(yīng)用實例61.
62.
#
前向傳播和計算損失63.
outputs=model(images)
64.
loss=criterion(outputs,labels)
65.
66.
#
反向優(yōu)化67.
optimizer.zero_grad()
68.
loss.backward()
69.
optimizer.step()
70.
71.
if
(i
+
1)
%
100
==
0:
72.
print('Epoch
[{}/{}],Step
[{}/{}],Loss:
{:.4f}'
73.
.format(epoch
+
1,num_epochs,i
+
1,total_step,loss.item()))
74.
4.7應(yīng)用實例75.#
測試76.#
In
test
phase,we
don't
need
to
compu
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024版瀝青路面攤鋪施工合同
- 2025年度新材料研發(fā)與應(yīng)用合同范本5篇
- 2025年度三人餐飲店財務(wù)管理合作協(xié)議3篇
- 2024運輸三方協(xié)議書
- 2025年度漁業(yè)資產(chǎn)承包與運營管理合同4篇
- 2024版魚塘合作經(jīng)營簡單合同范本
- 2024年項目攜手共進(jìn):合作與分工協(xié)議3篇
- 2025年度中央廚房設(shè)備采購、安裝及售后服務(wù)合同4篇
- 2025年度城鄉(xiāng)實體地域劃分與土地利用規(guī)劃合同3篇
- 2025年度體育場館周邊臨時停車位租賃管理協(xié)議3篇
- (二統(tǒng))大理州2025屆高中畢業(yè)生第二次復(fù)習(xí)統(tǒng)一檢測 物理試卷(含答案)
- 影視作品價值評估-洞察分析
- 公司員工出差車輛免責(zé)協(xié)議書
- 2023年浙江杭州師范大學(xué)附屬醫(yī)院招聘聘用人員筆試真題
- 江蘇某小區(qū)園林施工組織設(shè)計方案
- 口腔執(zhí)業(yè)醫(yī)師定期考核試題(資料)帶答案
- 2024人教版高中英語語境記單詞【語境記單詞】新人教版 選擇性必修第2冊
- 能源管理總結(jié)報告
- 藥店醫(yī)保政策宣傳與執(zhí)行制度
- 勘察工作質(zhì)量及保證措施
- 體外膜肺氧合(ECMO)并發(fā)癥及護理
評論
0/150
提交評論