1.機(jī)器學(xué)習(xí)模型

????上圖展示了機(jī)器學(xué)習(xí)的基本模型, 我們先從最簡(jiǎn)單的線性回歸來(lái)解釋每個(gè)部分的基本概念。

公式如下

對(duì)圖中每一個(gè)點(diǎn)來(lái)說(shuō)

代價(jià)函數(shù)J為

為了簡(jiǎn)化起見(jiàn),我們假設(shè)b=0。所有J是和W有關(guān)的函數(shù),我們只需求



2.神經(jīng)網(wǎng)絡(luò)
2.1處理單元(processing element)
處理單元(PE)也叫神經(jīng)元(neuron), 是神經(jīng)網(wǎng)絡(luò)中最小的單位


上圖展示了一個(gè)最簡(jiǎn)單的PE, 省略了偏置b。非線性方程也被稱為激活函數(shù)。本例選取符號(hào)函數(shù)作為激活函數(shù)。若y等于-1,則判定為紅色點(diǎn), 若y等于1,則判定為藍(lán)色點(diǎn)。 由分類圖可以看出,我們只需要一個(gè)處理單元也就是一條直線就可以對(duì)紅藍(lán)色點(diǎn)進(jìn)行分類。

2.2多層神經(jīng)網(wǎng)絡(luò)

如果我們想分離上圖中三角形區(qū)域和其他區(qū)域,直覺(jué)上來(lái)說(shuō)只需要含有三個(gè)PE的單層網(wǎng)絡(luò)來(lái)分就夠了。但是三個(gè)PE的單層網(wǎng)絡(luò)只能分離出淺藍(lán)色區(qū)域和其他,原因是對(duì)每個(gè)PE來(lái)說(shuō),直線下方表示-1,上方表示1。若要表示三角形區(qū)域,我們需要增加網(wǎng)絡(luò)層數(shù)。

理論上來(lái)說(shuō),神經(jīng)元越多,神經(jīng)網(wǎng)絡(luò)的層數(shù)越多,所能表示的區(qū)域就可以越復(fù)雜。大家可以想一想,怎樣的網(wǎng)絡(luò)結(jié)構(gòu)能夠表示這個(gè)面具,把黑白區(qū)分開(kāi)來(lái)。

2.3 反向傳播算法(Back Propagation algorithm)
基于W更新的公式,每次我們都需要知道計(jì)算值與目標(biāo)值之間的差值e。當(dāng)神經(jīng)網(wǎng)絡(luò)的層數(shù)增加后,我們只知道最后一層也就是輸出層的e而不知道中間層的e。為了計(jì)算中間層的e來(lái)更新w,引入了基于鏈?zhǔn)角髮?dǎo)法則的反向傳播算法。
y是整個(gè)網(wǎng)絡(luò)的輸出,net是x的線性組合,f是激活函數(shù)






3.總結(jié)
本文用平面內(nèi)的二維數(shù)據(jù)作為例子,簡(jiǎn)要的講述了一下神經(jīng)網(wǎng)絡(luò)的基本概念和作用。神經(jīng)網(wǎng)絡(luò)最主要的作用是當(dāng)網(wǎng)絡(luò)層數(shù)增加以后,可以表示任何空間,不論是二維,三維,四維或是圖像的1080*1080的數(shù)據(jù)。Dr.Princepe的一句話我很喜歡"Everyone treats neural net as a black box, but it's not. It all depends on you"在模型構(gòu)造前需要根據(jù)當(dāng)前數(shù)據(jù)的分布來(lái)選取參數(shù),盲目調(diào)參是不可取的。
順帶一提
網(wǎng)絡(luò)初始化時(shí)w一般從0-1中隨機(jī)選取一個(gè)作為初始參數(shù),再根據(jù)w的迭代公式進(jìn)行調(diào)整。
以后可能會(huì)寫(xiě)一寫(xiě)用原生的python實(shí)現(xiàn)一個(gè)簡(jiǎn)單的神經(jīng)網(wǎng)絡(luò),有助于神經(jīng)網(wǎng)絡(luò)細(xì)節(jié)的理解。原生的python性能很差,現(xiàn)在基本都用tensorflow框架,用python調(diào)c++的庫(kù)。