神經(jīng)網(wǎng)絡(luò)算法的優(yōu)勢與應(yīng)用
人工神經(jīng)網(wǎng)絡(luò)(ANN)以大腦處理機(jī)制作為基礎(chǔ),開發(fā)用于建立復(fù)雜模式和預(yù)測問題的算法。
首先了解大腦如何處理信息:
在大腦中,有數(shù)億個神經(jīng)元細(xì)胞,以電信號的形式處理信息。外部信息或者刺激被神經(jīng)元的樹突接收,在神經(jīng)元細(xì)胞體中處理,轉(zhuǎn)化成輸出并通過軸突,傳遞到下一個神經(jīng)元。下一個神經(jīng)元可以選擇接受它或拒絕它,這取決于信號的強(qiáng)度。
現(xiàn)在,讓我們嘗試了解 ANN 如何工作:
這里,$w_1$,$w_2$,$w_3$ 給出輸入信號的強(qiáng)度
從上面可以看出,ANN 是一個非常簡單的表示大腦神經(jīng)元如何工作的結(jié)構(gòu)。
為了使事情變得更清晰,用一個簡單的例子來理解 ANN:一家銀行想評估是否批準(zhǔn)貸款申請給客戶,所以,它想預(yù)測一個客戶是否有可能違約貸款。它有如下數(shù)據(jù):
所以,必須預(yù)測列 X。更接近 1 的預(yù)測值表明客戶更可能違約。
基于如下例子的神經(jīng)元結(jié)構(gòu),嘗試創(chuàng)建人造神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu):
通常,上述示例中的簡單 ANN 結(jié)構(gòu)可以是:
與結(jié)構(gòu)有關(guān)的要點:
- 網(wǎng)絡(luò)架構(gòu)有一個輸入層,隱藏層(1 個以上)和輸出層。由于多層結(jié)構(gòu),它也被稱為 MLP(多層感知機(jī))。
- 隱藏層可以被看作是一個「提煉層」,它從輸入中提煉一些重要的模式,并將其傳遞到下一層。通過從省略冗余信息的輸入中識別重要的信息,使網(wǎng)絡(luò)更快速和高效。
- 激活函數(shù)有兩個明顯的目的:
- 它捕獲輸入之間的非線性關(guān)系
- 它有助于將輸入轉(zhuǎn)換為更有用的輸出。
- 在上面的例子中,所用的激活函數(shù)是 sigmoid:
- $$O_1=1+e^{-F}$$
- 其中$F=W_1*X_1+W_2*X_2+W_3*X_3$
- Sigmoid 激活函數(shù)創(chuàng)建一個在 0 和 1 之間的輸出。還有其他激活函數(shù),如:Tanh、softmax 和 RELU。
- 類似地,隱藏層導(dǎo)致輸出層的最終預(yù)測:$$O_3=1+e^{-F_1}$$
- 其中$F_1=W_7*H_1+W_8*H_2$
- 這里,輸出值($O_3$)在 0 和 1 之間。接近 1(例如0.75)的值表示有較高的客戶違約跡象。
- 權(quán)重 W 與輸入有重要關(guān)聯(lián)。如果 $w_1$ 是 0.56,$w_2$ 是 0.92,那么在預(yù)測 $H_1$ 時,$X_2$:Debt Ratio 比 $X_1$:Age 更重要。
- 上述網(wǎng)絡(luò)架構(gòu)稱為「前饋網(wǎng)絡(luò)」,可以看到輸入信號只在一個方向傳遞(從輸入到輸出)??梢詣?chuàng)建在兩個方向上傳遞信號的「反饋網(wǎng)絡(luò)」。
- 一個高精度的模型給出了非常接近實際值的預(yù)測。因此,在上表中,列 X 值應(yīng)該非常接近于列 W 值。預(yù)測誤差是列 W 和列 X 之差:
- 獲得一個準(zhǔn)確預(yù)測的好模型的關(guān)鍵是找到預(yù)測誤差最小的「權(quán)重 W 的最優(yōu)值」。這被稱為「反向傳播算法」,這使 ANN 成為一種學(xué)習(xí)算法,因為通過從錯誤中學(xué)習(xí),模型得到改進(jìn)。
- 反向傳播的最常見方法稱為「梯度下降」,其中使用了迭代 W 不同的值,并對預(yù)測誤差進(jìn)行了評估。因此,為了得到最優(yōu)的 W 值,W 值在小范圍變化,并且評估預(yù)測誤差的影響。最后,W 的這些值被選為最優(yōu)的,隨著W的進(jìn)一步變化,誤差不會進(jìn)一步降低。要更詳細(xì)地理解解梯度下降,請參考:
http://www.kdnuggets.com/2017/04/simple-understand-gradient-descent-algorithm.html
神經(jīng)網(wǎng)絡(luò)的主要優(yōu)點:
ANN 有一些關(guān)鍵優(yōu)勢,使它們最適合某些問題和情況:
- ANN 有能力學(xué)習(xí)和構(gòu)建非線性的復(fù)雜關(guān)系的模型,這非常重要,因為在現(xiàn)實生活中,許多輸入和輸出之間的關(guān)系是非線性的、復(fù)雜的。
- ANN 可以推廣,在從初始化輸入及其關(guān)系學(xué)習(xí)之后,它也可以推斷出從未知數(shù)據(jù)之間的未知關(guān)系,從而使得模型能夠推廣并且預(yù)測未知數(shù)據(jù)。
- 與許多其他預(yù)測技術(shù)不同,ANN 不會對輸入變量施加任何限制(例如:如何分布)。此外,許多研究表明,ANN 可以更好地模擬異方差性,即具有高波動性和不穩(wěn)定方差的數(shù)據(jù),因為它具有學(xué)習(xí)數(shù)據(jù)中隱藏關(guān)系的能力,而不在數(shù)據(jù)中強(qiáng)加任何固定關(guān)系。這在數(shù)據(jù)波動非常大的金融時間序列預(yù)測(例如:股票價格)中非常有用。
應(yīng)用:
- 圖像處理和字符識別:ANN 具有接收許多輸入的能力,可以處理它們來推斷隱蔽、復(fù)雜的非線性關(guān)系,ANN在圖像和字符識別中起著重要的作用。手寫字符識別在欺詐檢測(例如:銀行欺詐)甚至國家安全評估中有很多應(yīng)用。圖像識別是一個不斷發(fā)展的領(lǐng)域,廣泛應(yīng)用于社交媒體中的面部識別,醫(yī)學(xué)上的癌癥治療的停滯以及農(nóng)業(yè)和國防用途的衛(wèi)星圖像處理。目前,ANN 的研究為深層神經(jīng)網(wǎng)絡(luò)鋪平了道路,是「深度學(xué)習(xí)」的基礎(chǔ),現(xiàn)已在計算機(jī)視覺、語音識別、自然語言處理等方向開創(chuàng)了一系列令人激動的創(chuàng)新,比如,無人駕駛汽車。
- 預(yù)測:在經(jīng)濟(jì)和貨幣政策、金融和股票市場、日常業(yè)務(wù)決策(如:銷售,產(chǎn)品之間的財務(wù)分配,產(chǎn)能利用率),廣義上都需要進(jìn)行預(yù)測。更常見的是,預(yù)測問題是復(fù)雜的,例如,預(yù)測股價是一個復(fù)雜的問題,有許多潛在因素(一些已知的,一些未知的)。在考慮到這些復(fù)雜的非線性關(guān)系方面,傳統(tǒng)的預(yù)測模型出現(xiàn)了局限性。鑒于其能夠建模和提取未知的特征和關(guān)系,以正確的方式應(yīng)用的 ANN,可以提供強(qiáng)大的替代方案。此外,與這些傳統(tǒng)模型不同,ANN 不對輸入和殘差分布施加任何限制。更多的研究正在進(jìn)行中,例如,使用 LSTM 和 RNN 預(yù)測的研究進(jìn)展。
ANN 是具有廣泛應(yīng)用的強(qiáng)大的模型。以上列舉了幾個突出的例子,但它們在醫(yī)藥、安全、銀行、金融、政府、農(nóng)業(yè)和國防等領(lǐng)域有著廣泛的應(yīng)用。