神經網路(1)

2022-04-23 01:29:50 字數 3543 閱讀 8435

一、什麼是神經網路

神經網路模型(knn)**於生物體的神經系統,是一組連線的輸入/輸出單元,每個連線都與乙個權重相關聯。神經網路模式可以學習資料的特點,訓練的資料不同,產生的模型不同。

應用場景:不知道用什麼數學模型合適;知道應用什麼模型但不知道模型複雜度時可以使用。比如要做分類問題,但屬於非線性的切分,此時想用lr或svm但又不知道用什麼樣的特徵工程可以實現非線性切分,這個時候就可以用到神經網路。神經網路可以完成分類、回歸、聚類等問題。

優點:對未經訓練的資料的模式分類能力強,能夠模擬很強的非線性決策邊界及關係,當缺乏屬性與類之間聯絡的知識時,可以使用它們。同時它也不像大多數決策樹演算法,非常適合連續值的輸入和輸出。

缺點:需要很長的訓練時間;解釋性差,人們很難解釋神經網路中學習的權重和「隱含單元」的符號含義。

二、神經網路的構成

感知器:從乙個神經元,到另乙個神經元之間的傳遞,經過乙個線性變換,再經過乙個非線性變換。z是一些輸入值的線性變換,z=wx+b,b為偏置項,x為輸入的訊號值。g(z)是傳遞函式,對z做了乙個非線性變換,該函式可以是sigmoid、relu、tanh等,可以理解成控制訊號傳遞強弱,另外如果不加g函式,中間無論加多少個隱藏層也都是線性變換。

新增少量隱藏層,加入多個神經元,構成淺層神經網路(snn

增多中間層,由此得到深度神經網路(dnn

三、神經網路空間切分原理

神經網路對於非線性的切分問題,要優於lr和svm,例如下面圖中例子,如果用一條直線無法完成分類,需要兩條直線分類器。而神經網路可以在第一層完成一次輸入後,通過第二層的類似於計算機的and操作,只有當x1,x2同時為完成兩個線性分類器的與操作,從而實現非線性切分。同樣,神經網路也可以完成or操作。

當無隱藏層,只是個感知器時,類似於線性分類器lr和svm,由乙個超平面分成兩個;含有單個隱藏層時,可以完成「與」操作,決策區域可以是開凸區域或閉凸區域;而含有多個隱藏層時,通過對線性分類器的「與」和「或」的組合,完美的對空間區域切分,完成分類。

神經元的表達力與過擬合:理論上說單隱層神經網路,只要隱藏的神經元個數足夠多,可以構成多個線性分類器,可以逼近任何連續函式,完成分類,但是這種效果遠遠弱於多隱藏層神經網路。但是,需要注意,如果不是影象或語音等複雜資料,對於人工神經網路,3層神經網路效果優於2層,但如果把層數再不斷增加(4,5,6層),對於最後的結果就沒有那麼大幫助了。過多的隱層和神經元節點會帶來過擬合問題。但是不要試圖通過降低神經網路參數量來減緩過擬合,用正則化或者dropout。

四、bp神經網路

神經網路有很多種:前向傳輸網路、反向傳輸網路、遞迴神經網路、卷積神經網路等。本文介紹基本的反向傳輸神經網路,bp 神經網路中的 bp 為 back  propagation 的簡寫。神經網路每一次的輸出都可以追溯到上一層輸入,直到第一層,由此而來bp神經網路。在bp神經網路中,只有相鄰的神經層的各個單元之間有聯絡,除了輸出層外,每一層都有乙個偏置結點(有些地方翻譯為偏倚,偏置結點是為了描述訓練資料中沒有的特徵,偏置結點對於下一層的每乙個結點的權重的不同而生產不同的偏置):

該機器學習演算法,依舊要定義乙個損失函式,根據這個損失函式最小化,去求每層的權重和b,隱藏層的個數k也是未知引數。首先,正向傳播求損失,如果是回歸問題,損失函式為離差平方和最小;如果是分類問題,損失函式為交叉熵(求exi/sum(exi)(概率向量)與[1,0,0..]的kl距離)。假設只有三層感知器時,回歸問題的損失函式可以做如下推導。可以看到最後得出的損失函式十分複雜,是乙個巢狀函式的形式。由於這個lossfunction是非凸的,不能用梯度下降gd,但可以用sgd隨機梯度下降,乙個乙個樣本丟進來做梯度更新,不一定能找到全域性最低點,但能找到接近最低點的低點。bp神經網路之所以叫反向傳播神經網路,因為對損失函式求導時,要追溯到對前面的函式一層一層求導。反向傳播回傳誤差,根據誤差訊號修正每層的權重。

具體的演算法,可以看下圖中的例子,把每一步的過程講的很清楚,來自於寒小陽老師的課件。1.先是隨機假定引數w和b,g(x)為sigmoid函式,求出各部分的輸入、輸出值。

2.反向傳播,求出各個部分的偏導,求出最後一層中誤差對於分別對於w5,w6,w7,w8的偏導。

3.通過梯度下降,先更新引數w5,w6,w7,w8;再更新前一層的引數w1,w2,w3,w4。

通過更新權值和偏倚的方式,以反映誤差的傳播,不斷調整,處理每乙個樣本都有更新權重和偏倚,直到:設定最大迭代次數,比如使用資料集迭代100次後停止訓練;計算訓練集在網路上的**準確率,達到一定門限值後停止訓練。

五、神經網路使用

神經網路用的是標準資料的轉置。

神經網路一般將樣本分為訓練集、測試集和驗證集(用於調整引數)。

神經網路中需要求解的引數包括權重w,偏置項b。可以調整的超引數包括,,隱藏層節點數,神經網路層數,訓練次數、梯度下降過程的步長,用於隨機梯度下降法的最小樣本數(mini_batch_size)等等。超引數是影響所求引數最終取值的引數,是機器學習模型裡面的框架引數,可以理解成引數的引數,它們通常是手工設定,不斷試錯調整的,或者對一系列窮舉出來的引數組合一通進行列舉(網格搜尋)來確定。

每層的神經元的個數可以考慮

左右,x為輸入個數,y為輸出的個數。

下圖來自龍心塵老師部落格,寫的很詳細  

神經網路 1 快速了解神經網路

常規的神經網路我們可以知道包括 輸入層,隱藏層,輸出層 如 傳播過程為 h x w1 b1 y h w2 b2 需要注意 一系列線性方程的運算最終都可以用乙個線性方程表示。也就是說,上述兩個式子聯立後可以用乙個線性方程表達。對於兩次神經網路是這樣,就算網路深度加到100層,也依然是這樣。這樣的話神經...

神經網路基礎1

1.背景 1.1 以人腦中的神經網路為啟發,歷史上出現過很多不同版本 1.2 最著名的演算法是1980年的 backpropagation 2.多層向前神經網路 multilayer feed forward neural network 2.1 backpropagation被使用在多層向前神經網...

卷積神經網路(1)

卷積神經網路作為一種置換了傳統網路中隱藏層的可自動提取樣本特徵的技術,具有較高的識別率。本文利用dlib與tensorflow平台實現了卷積神經網路人臉識別。結果準確率達到了0.984,取的了較為理想的結果。人臉識別是通過提取人的臉部特徵資訊進行身份識別的一種技術。目前,卷積神經網路在人臉識別上具有...