新聞中心

EEPW首頁 > 消費(fèi)電子 > 設(shè)計應(yīng)用 > 人工神經(jīng)網(wǎng)絡(luò)(Artificial Neural Network)算法簡介

人工神經(jīng)網(wǎng)絡(luò)(Artificial Neural Network)算法簡介

作者: 時間:2018-09-14 來源:網(wǎng)絡(luò) 收藏

人工神經(jīng)網(wǎng)絡(luò),簡稱神經(jīng)網(wǎng)絡(luò),是一種模仿生物神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)和功能的數(shù)學(xué)模型或者計算模型。其實(shí)是一種與貝葉斯網(wǎng)絡(luò)很像的一種算法。之前看過一些內(nèi)容始終云里霧里,這次決定寫一篇博客。弄懂這個基本原理,畢竟現(xiàn)在深度學(xué)習(xí)太火了。

本文引用地址:http://butianyuan.cn/article/201809/389189.htm

神經(jīng)網(wǎng)絡(luò)是一種方法,既可以用來做有監(jiān)督的任務(wù),如分類、視覺識別等,也可以用作無監(jiān)督的任務(wù)。首先,我們看一個簡單的例子。如下圖所示(這個圖網(wǎng)上有很多人引用了,但我找不到出處,歡迎指正),如果我們想訓(xùn)練一個算法可以使其識別出是貓還是狗,這是很簡單的一個分類任務(wù),我們可以找一條線(模型),在這個二元坐標(biāo)中進(jìn)行“一刀切”,把這兩組數(shù)據(jù)分開。我們知道,在解析幾何中,這條直線可以用如下的公式表達(dá):

圖1 貓狗數(shù)據(jù)

圖2 一個簡單的神經(jīng)網(wǎng)絡(luò)

這里的W1和W2就是兩個坐標(biāo)軸上的系數(shù),可以稱為權(quán)重。W0可以稱作截距,也叫做偏移。新來一個數(shù)據(jù)點(diǎn),也就是一組輸入值(X1,X2),如果在這條線的左邊,那么它就是一只狗,如果在右邊就是一只貓了。這就可以用一個簡單的神經(jīng)網(wǎng)絡(luò)來表示。如圖2所示,X1和X2分別是輸入值,Y是輸出值,兩條邊的權(quán)重分別是W1和W2。這是一個最簡單的神經(jīng)網(wǎng)絡(luò)了。這就是使用神經(jīng)網(wǎng)絡(luò)定義了一個線性分類器了。這里的一個圓形的節(jié)點(diǎn)就是一個神經(jīng)元。我們也可以采用另一種方式,即在輸入輸出之間加一個中間節(jié)點(diǎn)S,然后增加一個輸出層,包括兩個節(jié)點(diǎn)Y1和Y2,分別對應(yīng)貓和狗,最后哪個輸出節(jié)點(diǎn)的值大,那么這個數(shù)據(jù)就屬于哪個類別(貓或者狗)。

對于簡單的二分類問題這就可以解決了。但在實(shí)際情況中,有很多問題無法簡單的使用“一刀切”的方式解決,如圖3所示,假設(shè)貓和狗的數(shù)據(jù)分布如下圖,那么這就無法用“一刀切”的方式來解決了,但是我們可以切兩刀,橫豎各一刀,然后把相同的“塊”聯(lián)合起來,這樣就解決了比較復(fù)雜的分類問題了。也有些問題,需要用曲線來分割。在這種情況下,我們就需要比較復(fù)雜一點(diǎn)的神經(jīng)網(wǎng)絡(luò)了。以曲線為例,我們可以設(shè)計出一個三層的神經(jīng)網(wǎng)絡(luò)。這就是用神經(jīng)網(wǎng)絡(luò)設(shè)計的一個非線性分類器。理論上講,如何一個分類器都可以設(shè)計一個神經(jīng)網(wǎng)絡(luò)來表征,也就是說,不管實(shí)際圖形如何,我們都可以設(shè)計一個神經(jīng)網(wǎng)絡(luò)來擬合。到這里,可能有人問,每個節(jié)點(diǎn)的這個函數(shù)要如何選擇?根據(jù)吳軍老師《數(shù)學(xué)之美》第二版中的說法,為了提供人工神經(jīng)網(wǎng)絡(luò)的通用性,我們一般規(guī)定每個神經(jīng)元的函數(shù)只能針對其輸入的變量做一次非線性的變換。舉個例子說就是假如某個神經(jīng)元Y 的輸入值是X1,X2,...Xn,它們的邊的權(quán)重分別為W1,W2,...Wn,那么計算Y節(jié)點(diǎn)的值分兩步進(jìn)行,第一步是計算來自輸入值的線性組合:

第二步是計算y=f(G),這里的f(⋅)可以使非線性的,,但因?yàn)槔锩娴膮?shù)是一個具體的值,所以不會很復(fù)雜。這兩個步驟的結(jié)合使得人工神經(jīng)網(wǎng)絡(luò)既靈活又不至于太復(fù)雜。這里的f(⋅)就是激活函數(shù)。線性模型的表達(dá)能力不夠,它的作用就是來增強(qiáng)模型的表示能力。人工神經(jīng)網(wǎng)絡(luò)可以很多層連接在一起,因此在人工神經(jīng)網(wǎng)絡(luò)中,主要的工作就是設(shè)計結(jié)構(gòu)(基層網(wǎng)絡(luò),每層幾個節(jié)點(diǎn)等)和激活函數(shù)。我們常用的激活函數(shù)包括Sigmoid函數(shù)、ReLU函數(shù)、Tanh函數(shù)等等。如下圖所示,這是幾種簡單的激活函數(shù)的示意圖( https://ypwhs.gitbooks.io/nnplayground/content/Activation.html )



關(guān)鍵詞:

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉