神經(jīng)網(wǎng)絡(luò):Google可視化體驗平臺Tensorflow Playground

? ? ?谷歌推出了一個神經(jīng)網(wǎng)絡(luò)可視化教學(xué)平臺“游樂場”Tensorflow Playground。通過瀏覽器就可以玩玩神經(jīng)網(wǎng)絡(luò)了!

那么,現(xiàn)在就把網(wǎng)址發(fā)給大家,http://playground.tensorflow.org,整體來看它是長這個樣子的:





首先讓我們來看看數(shù)據(jù)。在這個游樂場中,我們有4種不同形態(tài)的數(shù)據(jù)可以玩:

每組數(shù)據(jù),都是不同形態(tài)分布的一群點。每一個點,都與生俱來了2個特征:x1和x2,表示點的位置。而我們數(shù)據(jù)中的點有2類:橙色和藍色。我們的神經(jīng)網(wǎng)絡(luò)的目標(biāo),就是通過訓(xùn)練,知道哪些位置的點是橙色、哪些位置的點是藍色。

如果橙色是橙子,藍色是藍莓。假設(shè)我們有2000個散落在各處的橙子和藍莓。前1000個,我們知道坐標(biāo)(1,1)的是藍莓,(2,2)的是橙子,(0.5,0.5)的是藍莓等等。我們要用這些信息來訓(xùn)練我們的神經(jīng)網(wǎng)絡(luò),讓它能夠準(zhǔn)確地預(yù)測出后1000個哪些是橙子、哪些是藍莓。

看上面的4組數(shù)據(jù),我們會發(fā)現(xiàn),前3中都能相對簡單地區(qū)分開,而最后一組螺旋數(shù)據(jù)會是最難的。

Tensorflow游樂場中的數(shù)據(jù)十分靈活。我們可以調(diào)整noise(干擾)的大小,還可以改變訓(xùn)練數(shù)據(jù)和測試數(shù)據(jù)的比例多少。下圖是不同noise的數(shù)據(jù)分布。

當(dāng)我們把每一個數(shù)據(jù)點的信息喂給機器學(xué)習(xí)系統(tǒng)時,我們需要做feature

extraction,也就是特征提取。如果我們真的是在區(qū)分藍莓和橙子的話,大小、顏色等等都會是我們的特征。而這里,每一個點都有x1和x2兩個特征。除此之外,由這兩個特征還可以衍生出許多其他特征:

抽象來說,我們的機器學(xué)習(xí)classifier(分類器)其實是在試圖畫一條或多條線。如果我們能夠100%正確地區(qū)分藍色和橙色的點,藍色的點會在線的一邊,橙色的會在另一邊。

上面這些圖其實非常的直觀。第一張圖中,如果x1作為我們的特征,我們其實就是在畫一條和x1軸垂直的線。當(dāng)我們改變參數(shù)時,其實就是在將這條線左右移動。其他的特征也是如此。

很容易可以看出,我們需要智能地結(jié)合這其中一種或多種的特征,才能夠成功地將藍色點和橙色點分類。這樣的feature extraction,其實往往是機器學(xué)習(xí)應(yīng)用中最難的部分。好在我們有神經(jīng)網(wǎng)絡(luò),它能夠幫我們完成大部分的任務(wù)。

如果我們選定x1和x2作為特征,我們神經(jīng)網(wǎng)絡(luò)的每一層的每個神經(jīng)元,都會將它們進行組合,來算出結(jié)果:

而下一層神經(jīng)網(wǎng)絡(luò)的神經(jīng)元,會把這一層的輸出再進行組合。組合時,根據(jù)上一次預(yù)測的準(zhǔn)確性,我們會通過back propogation給每個組合不同的weights(比重)。這里的線越粗,就表示比重越大:

下面就讓我們用最難的螺旋形數(shù)據(jù),來試試這個神經(jīng)網(wǎng)絡(luò)的表現(xiàn)吧!

在神經(jīng)網(wǎng)絡(luò)出現(xiàn)前,我們往往會竭盡所能地想出盡可能好的特征,把它們?nèi)嘉菇o系統(tǒng)。而系統(tǒng)會是個十分淺的系統(tǒng),往往只有一層。用這樣的方法來完成分類。

讓我們先來實驗傳統(tǒng)的方法。在這里,我們將所有能夠想到的7個特征都輸入系統(tǒng),并選擇只有1層的神經(jīng)網(wǎng)絡(luò):

最后的結(jié)果是這樣的,可以看出我們的單層神經(jīng)系統(tǒng)幾乎完美地分離出了橙色點和藍色點:

接下來,讓我們來體驗神經(jīng)網(wǎng)絡(luò)真正的魔法。神經(jīng)網(wǎng)絡(luò)較大的魔力,就在于我們根本不需要想出各種各樣的特征,用來輸入給機器學(xué)習(xí)的系統(tǒng)。我們只需要輸入最基本的特征x1, x2, 只要給予足夠多層的神經(jīng)網(wǎng)絡(luò)和神經(jīng)元,神經(jīng)網(wǎng)絡(luò)會自己組合出最有用的特征。

在這次試驗中,我們只輸入x1, x2,而選擇1個6層的,每層有8個神經(jīng)元的神經(jīng)網(wǎng)絡(luò):

最后的結(jié)果是這樣的。我們發(fā)現(xiàn),通過增加神經(jīng)元和神經(jīng)網(wǎng)絡(luò)的層數(shù),即使沒有輸入許多特征,我們也能夠成功地分類:

神經(jīng)網(wǎng)絡(luò)的偉大之處就在于此。當(dāng)我們在解決分類橙色點和藍色點這樣的簡單問題時,想出額外的特征似乎并不是難事。但是,當(dāng)我們要處理的問題越來越復(fù)雜,想出有用的特征就變成了最最困難的事。比如說,當(dāng)我們需要識別出哪張圖片是貓,哪張圖片是狗時,哪些特征是真正有效的呢?

而當(dāng)我們有了神經(jīng)網(wǎng)絡(luò),我們的系統(tǒng)自己就能學(xué)習(xí)到哪些特征是有效的、哪些是無效的,這就大大提高了我們解決復(fù)雜機器學(xué)習(xí)問題的能力。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容