當前位置:
首頁 > 最新 > 數據挖掘乾貨總結-神經網路和深度學習

數據挖掘乾貨總結-神經網路和深度學習

本文共計2584字,預計閱讀時長二十分鐘

神經網路與深度學習

前言

1.神經元的構成:

2.樹突:神經元接收信號的部位,多個

3.軸突:神經元輸出信號的部位,一個,但是在末端可以分叉,即神經末梢

4.突觸:神經末梢與其他神經元的樹突接觸的區域(當然也可以與胞體直接接觸)

5.神經網路:是指一種結構,指類似於神經元之間形成的一種網路狀的結構。下圖即為人工神經網路(Artificial Neural Networks,簡寫為ANNs)

6.人工智慧、機器學習、神經網路、深度學習之間的關係

–神經網路和深度學習都屬於機器學習的一種

–深度學習是神經網路的一大分支

–深度學習的基本結構是深度神經網路

7.深度學習能否取代傳統機器學習?

?有的觀點認為:深度學習會導致其他機器學習演算法瀕臨滅絕,因為其有著非常卓越的預測能力,尤其大規模數據集上。

?有的觀點認為:傳統機器學習演算法不會被取代,深度學習容易把簡單問題複雜化,深度學習適合不可知域,若有領域知識的話,傳統演算法表現更好。

下面進入正文內容 》》》》》》》

一、什麼是神經網路

1.最簡單的神經網路——線性感知機

線性感知機的原理是根據輸入的一維或多維信號p,預設w和b,經過處理後(S = p1*w1+p2*w2+...+pn*wn+1*b)得到一個輸出值,再由輸出值與實際值計算得到誤差,對w和b進行更新,直到所有的樣本都能被輸出正確。但是感知機僅在線性可分的情況下有效,無法處理非線性問題。

2.遇到了非線性問題

對於非線性問題,之前SVM演算法里解決辦法是引入了一個新的概念:核函數。它可以將樣本從原始空間映射到一個更高維的特質空間中,使得樣本在這個新的高維空間中可以被線性劃分為兩類,即在空間內線性劃分。(文末有SVM的傳送門)

而另一種解決方法便是採用多個感知機,構成神經網路(所以傳統神經網路也被稱為多層感知機)。

3.神經網路基於感知機的擴展

1)加入了隱藏層,隱藏層可以有多層,增強了模型的表達能力,如下圖實例

2)輸出層的神經元也可以不止一個輸出,可以有多個輸出,這樣模型可以靈活的應用於分類回歸,以及其他的機器學習領域比如降維和聚類等。多個神經元輸出的輸出層對應的一個實例如下圖,輸出層現在有4個神經元了。

3)對激活函數做擴展,感知機的激活函數是sign(z),雖然簡單但是處理能力有限,因此神經網路中一般使用的其他的激活函數,比如我們在邏輯回歸裡面使用過的Sigmoid函數。

二、如何訓練神經網路

1.尋找特徵

人類學習新事物的過程,是對一個物體總結出幾個特徵,再與以往的認知進行匹配,進一步進行識別或判斷。人工神經網路也是類似,一般是綜合一些細粒度的基礎特徵,最終得到幾個可用的結構性特徵。例如,一個個的像素點對於模型訓練來說,意義不大,只有將粒度放大到一定程度,比如輪胎、車把等特徵,才有利於模型的訓練。

2.確定神經網路的結構

上圖是不同結構的神經網路(多層感知機)可以解決的問題,一般來說,雙隱層神經網路能夠解決任意複雜的分類問題。

3.確定(隱層)的節點數量

以一個三層的神經網路為例,一般有幾個經驗:

1)隱層節點數量一定要小於N-1(N為樣本數)

2)訓練樣本數應當是連接權(輸入到第一隱層的權值數目+第一隱層到第二隱層的權值數目+...第N隱層到輸出層的權值數目,不就是邊的數量么)的2-10倍(也有講5-10倍的),另外,最好將樣本進行分組,對模型訓練多次,也比一次性全部送入訓練強很多。

3)節點數量儘可能少,簡單的網路泛化能力往往更強

4)確定隱層節點的下限和上限,依次遍歷,找到收斂速度較快,且性能較高的節點數

4.訓練神經網路

? BP演算法

Back Propagation,也稱為Error Back Propagation(誤差反向傳播法),實現步驟見下圖(多看幾遍就清晰了):

GIF

信號正向傳播(FP):樣本由輸入層傳入,經過各個隱層逐層處理後,傳向輸出層,若輸出層的實際輸出和期望的輸出不符,則轉入誤差的反向傳播階段。

誤差反向傳播(BP):將輸出以某種形式通過隱層向輸入層逐層反傳,並將誤差分攤給各層的所有單元,從而獲得各層單元的誤差信號,此誤差型號即為修正各個單元權值的依據。

BP演算法的缺點:

1)5層以內的神經網路,可以選擇用BP演算法訓練,否則效果不理想,因為深層結構涉及多個非線性處理單元層,屬於非凸目標函數,普遍存在局部最小,使得訓練困難

2)梯度越來越稀疏:從頂向下,誤差矯正信號越來越小

3)只能用帶標籤的數據進行訓練,而大部分數據是沒有標籤的,但是我們大腦是可以從沒有標籤的數據中學習

三、引入深度學習

2006年,深度神經網路(DNN)深度學習(deep learning)概念被提出來,神經網路又開始煥發一輪新的生命。事實上,Hinton研究組提出的這個深度網路從結構上講,與傳統的多層感知機沒有什麼不同,並且在做有監督學習時演算法也是一樣的。唯一的不同是這個網路在做有監督學習前要先做非監督學習,然後將非監督學習學到的權值當作有監督學習的初值進行訓練。

1.為了解決非監督學習的過程→自動編碼器

①自動編碼器(Auto Encoder)

?無標籤,用非監督學習方法學習特徵

?給定一個神經網路,假定輸入輸出是相同的,然後訓練調整其參數,得到每一層的權重

?通過編碼器產生特徵,然後訓練下一層,逐層下去

?一旦監督訓練完成,該網路就可用來做分類

?神經網路頂層可以作為一個線性分類器,我們 可以用一個更好性能的分類器替代它

②稀疏自動編碼器(Sparse Auto Encoder)

?目的:限制每次得到的表code盡量稀疏,因為稀疏的表達往往比其他表達要有效

?做法:在AutoEncoder基礎上加了L1正則

③降噪自動編碼器(Denoising Auto Encoder)

?訓練數據中加入雜訊,所以自動編碼器會自動學習如何去除雜訊,從而獲得沒有被雜訊污染過的輸入,泛化能力更好

2.為了解決DNN的全連接→卷積神經網路CNN

①卷積層(Convolution)

當DNN在處理圖片的時候,如果繼續沿用全連接的話,數據量會異常的大。例如

對於一個1000 * 1000像素點的圖像,用1000 * 1000個神經元去記錄數據,採用全連接的話,1000 * 1000 * 1000 * 1000 = 10^12個連接,即要訓練10^12個參數

如果採用局部感受野,令一個神經元記錄10*10的區域,訓練的參數可以降到10^8個。

進一步採用權值共享,讓所有神經元共享一套權重值(濾波器Filters),用這個濾波器在原圖上滑動掃描後便會得到一個feature map(圖像的一種特徵),根據自編碼模型,只有一個特徵對模型來說,過於簡單了,學不出什麼規律,因此換用不同的濾波器,便可以得到不同的 feature map(特徵),如選用100個濾波器,得到100個feature map,每個map是10*10,最終的參數為100*10*10 =10^4

濾波器得到feature map的動態圖如下:

GIF

因為在用濾波器一個步長一個步長往後面掃描的時候,涉及到了一個時序的問題,即卷積的過程

因此濾波器在掃描的之前,要先翻轉180°,這個時候我們稱這個濾波器為卷積核。翻轉180°的具體論證過程見鏈接:

②池化層(Pooling)

作用是在不變性的情況下減少參數,例如平移、旋轉、縮放等

③典型結構

CNN一般採用卷積層和池化層交替設置,即一層卷積接一層池化層,池化層後接一層卷積層,最後幾層可以採用全連接或高斯連接

④訓練過程

卷積層:

– Map個數取決於卷積核個數,常用的6或者12

–第j個map的輸出計算:上一層所有map跟自己對應的卷積核做卷積然後求和,再加上偏置,求sigmoid函數

採樣層:

–對上一層map的相鄰小區域進行聚合統計(最值或者均值)

(任何疑問建議,歡迎留言評論~)

只向你推送最實用的乾貨,別忘了收藏置頂

培養興趣比尋找興趣更重要

推送一個本周六的線下活動~


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 全球大搜羅 的精彩文章:

Ripple CEO:比特幣受中國控制,區塊鏈不足以破壞銀行現有體系
臧毅:我買的每一樣東西都是有生命的,它們都在與我並肩前行

TAG:全球大搜羅 |