神经网络概述
神經(jīng)網(wǎng)絡(luò)概述
以監(jiān)督學(xué)習(xí)為例,假設(shè)我們有訓(xùn)練樣本集??,那么神經(jīng)網(wǎng)絡(luò)算法能夠提供一種復(fù)雜且非線性的假設(shè)模型??,它具有參數(shù)??,可以以此參數(shù)來(lái)擬合我們的數(shù)據(jù)。
為了描述神經(jīng)網(wǎng)絡(luò),我們先從最簡(jiǎn)單的神經(jīng)網(wǎng)絡(luò)講起,這個(gè)神經(jīng)網(wǎng)絡(luò)僅由一個(gè)“神經(jīng)元”構(gòu)成,以下即是這個(gè)“神經(jīng)元”的圖示:
這個(gè)“神經(jīng)元”是一個(gè)以??及截距??為輸入值的運(yùn)算單元,其輸出為??,其中函數(shù)??被稱為“激活函數(shù)”。在本教程中,我們選用sigmoid函數(shù)作為激活函數(shù)?
可以看出,這個(gè)單一“神經(jīng)元”的輸入-輸出映射關(guān)系其實(shí)就是一個(gè)邏輯回歸(logistic regression)。
雖然本系列教程采用sigmoid函數(shù),但你也可以選擇雙曲正切函數(shù)(tanh):
以下分別是sigmoid及tanh的函數(shù)圖像
?
?函數(shù)是sigmoid函數(shù)的一種變體,它的取值范圍為??,而不是sigmoid函數(shù)的??。
注意,與其它地方(包括OpenClassroom公開課以及斯坦福大學(xué)CS229課程)不同的是,這里我們不再令??。取而代之,我們用單獨(dú)的參數(shù)??來(lái)表示截距。
最后要說(shuō)明的是,有一個(gè)等式我們以后會(huì)經(jīng)常用到:如果選擇??,也就是sigmoid函數(shù),那么它的導(dǎo)數(shù)就是??(如果選擇tanh函數(shù),那它的導(dǎo)數(shù)就是??,你可以根據(jù)sigmoid(或tanh)函數(shù)的定義自行推導(dǎo)這個(gè)等式。
神經(jīng)網(wǎng)絡(luò)模型
所謂神經(jīng)網(wǎng)絡(luò)就是將許多個(gè)單一“神經(jīng)元”聯(lián)結(jié)在一起,這樣,一個(gè)“神經(jīng)元”的輸出就可以是另一個(gè)“神經(jīng)元”的輸入。例如,下圖就是一個(gè)簡(jiǎn)單的神經(jīng)網(wǎng)絡(luò):
我們使用圓圈來(lái)表示神經(jīng)網(wǎng)絡(luò)的輸入,標(biāo)上“”的圓圈被稱為偏置節(jié)點(diǎn),也就是截距項(xiàng)。神經(jīng)網(wǎng)絡(luò)最左邊的一層叫做輸入層,最右的一層叫做輸出層(本例中,輸出層只有一個(gè)節(jié)點(diǎn))。中間所有節(jié)點(diǎn)組成的一層叫做隱藏層,因?yàn)槲覀儾荒茉谟?xùn)練樣本集中觀測(cè)到它們的值。同時(shí)可以看到,以上神經(jīng)網(wǎng)絡(luò)的例子中有3個(gè)輸入單元(偏置單元不計(jì)在內(nèi)),3個(gè)隱藏單元及一個(gè)輸出單元。
我們用??來(lái)表示網(wǎng)絡(luò)的層數(shù),本例中??,我們將第??層記為??,于是??是輸入層,輸出層是??。本例神經(jīng)網(wǎng)絡(luò)有參數(shù)??,其中??(下面的式子中用到)是第??層第??單元與第??層第??單元之間的聯(lián)接參數(shù)(其實(shí)就是連接線上的權(quán)重,注意標(biāo)號(hào)順序),??是第??層第??單元的偏置項(xiàng)。因此在本例中,??,??。注意,沒有其他單元連向偏置單元(即偏置單元沒有輸入),因?yàn)樗鼈兛偸禽敵?。同時(shí),我們用??表示第??層的節(jié)點(diǎn)數(shù)(偏置單元不計(jì)在內(nèi))。
我們用??表示第??層第??單元的激活值(輸出值)。當(dāng)??時(shí),??,也就是第??個(gè)輸入值(輸入值的第??個(gè)特征)。對(duì)于給定參數(shù)集合??,我們的神經(jīng)網(wǎng)絡(luò)就可以按照函數(shù)??來(lái)計(jì)算輸出結(jié)果。本例神經(jīng)網(wǎng)絡(luò)的計(jì)算步驟如下:
我們用??表示第??層第??單元輸入加權(quán)和(包括偏置單元),比如,??,則??。
這樣我們就可以得到一種更簡(jiǎn)潔的表示法。這里我們將激活函數(shù)??擴(kuò)展為用向量(分量的形式)來(lái)表示,即??,那么,上面的等式可以更簡(jiǎn)潔地表示為:
我們將上面的計(jì)算步驟叫作前向傳播。回想一下,之前我們用??表示輸入層的激活值,那么給定第??層的激活值??后,第??層的激活值??就可以按照下面步驟計(jì)算得到:
將參數(shù)矩陣化,使用矩陣-向量運(yùn)算方式,我們就可以利用線性代數(shù)的優(yōu)勢(shì)對(duì)神經(jīng)網(wǎng)絡(luò)進(jìn)行快速求解。
目前為止,我們討論了一種神經(jīng)網(wǎng)絡(luò),我們也可以構(gòu)建另一種結(jié)構(gòu)的神經(jīng)網(wǎng)絡(luò)(這里結(jié)構(gòu)指的是神經(jīng)元之間的聯(lián)接模式),也就是包含多個(gè)隱藏層的神經(jīng)網(wǎng)絡(luò)。最常見的一個(gè)例子是??層的神經(jīng)網(wǎng)絡(luò),第??層是輸入層,第??層是輸出層,中間的每個(gè)層??與層??緊密相聯(lián)。這種模式下,要計(jì)算神經(jīng)網(wǎng)絡(luò)的輸出結(jié)果,我們可以按照之前描述的等式,按部就班,進(jìn)行前向傳播,逐一計(jì)算第??層的所有激活值,然后是第??層的激活值,以此類推,直到第??層。這是一個(gè)前饋神經(jīng)網(wǎng)絡(luò)的例子,因?yàn)檫@種聯(lián)接圖沒有閉環(huán)或回路。
神經(jīng)網(wǎng)絡(luò)也可以有多個(gè)輸出單元。比如,下面的神經(jīng)網(wǎng)絡(luò)有兩層隱藏層:??及??,輸出層??有兩個(gè)輸出單元。
要求解這樣的神經(jīng)網(wǎng)絡(luò),需要樣本集??,其中??。如果你想預(yù)測(cè)的輸出是多個(gè)的,那這種神經(jīng)網(wǎng)絡(luò)很適用。(比如,在醫(yī)療診斷應(yīng)用中,患者的體征指標(biāo)就可以作為向量的輸入值,而不同的輸出值??可以表示不同的疾病存在與否。)
中英文對(duì)照
neural networks 神經(jīng)網(wǎng)絡(luò)
activation function 激活函數(shù)
hyperbolic tangent 雙曲正切函數(shù)
bias units 偏置項(xiàng)
activation 激活值
forward propagation 前向傳播
feedforward neural network 前饋神經(jīng)網(wǎng)絡(luò)(參照Mitchell的《機(jī)器學(xué)習(xí)》的翻譯)
總結(jié)
- 上一篇: 计算机电路基础答案,计算机电路基础模拟试
- 下一篇: html本地缓存未查看信息,不同用户看到