人工神經網絡的原理與訓練

2021-02-20 Jiang的金融窩

之前寫過幾篇大白話介紹系列,比如金融危機起因這種。但還是有朋友跟我說,這不是大白話。其實,我已經盡力把問題解釋到入門者的程度了。有一些困難的東西,一是因為有些問題是無法避免,比如解釋一個CDO的結構,這確實需要思考;還一個原因是,在現在一個快餐網絡知識的時代,真正願意花時間仔細讀的人也不是多數。

這次寫的這篇因為有一些數學上的東西,所以會難以避免的涉及一些麻煩的東西。但其實只要有線性代數的一定基礎,都是很容易理解的。

==============分割線==============

最近這段時間,人工智慧、神經網絡算法著實的又火了一把。在金融中,也有了不少的人在試圖合理的運用這套技術。那麼到底什麼是人工神經網絡?它背後的原理又是什麼?

這篇文章適合只聽說過人工神經網絡,但沒有了解其原理的人。

1)人工神經網絡的結構

我們在這裡介紹一個最簡單的神經網絡。這個簡單的神經網絡有三層結構:輸入層,隱藏層,輸出層。如下圖所示(圖片來自谷歌)


顧名思義:在輸入層,我們對神經網絡輸入變量;在隱藏層和輸出層,我們進行計算並輸出。在神經網絡的隱藏層上,存在著依靠Activation function來進行運算的「神經元」。這些具體計算流程我們稍後一起講。


其中,矩陣W是連接輸入層與隱藏層的橋梁,叫做weight。然後,每個神經元上都有一個常數變量b0,我們叫作bias。N個神經元有N的bias,所以這些bias構成了一個常數向量b0。在隱藏層的神經元接收到了向量z之後,神經元會進行Activation function的計算




在輸出層,類似於在隱藏層,我們還要添加一個bias b1,這個bias的維度和輸出的維度是一致的。

總結來說,假如我們有M個輸入變量組成的向量X,N個神經元,L個輸出變量組成的向量Y。則神經網絡的計算公式就是


在這裡,W,b0,theta,b1都是神經網絡自身的變量。而所謂的神經網絡訓練,也就是讓這些變量與training data「擬合」。

2)人工神經網絡的訓練

最常用的神經網絡訓練方式是反向傳播算法(backpropagation)。反向傳播算法有兩個要素,簡單來說就是:正向計算得到誤差函數,反向求導梯度下降。以上述神經網絡為例,假設我們有K組訓練用的輸入與輸出數據(x_i, y_i),i=1, ..., K,我們來推導一下訓練的算法。

首先,我們的訓練其實就是使得定義的誤差函數最小化,那麼什麼是誤差函數?常用的誤差函數有很多,我們以平方和為例


其中,函數N( . )代表著人工神經網絡這個函數。這樣,我們首先要做的就是初始化神經網絡的一些自身變量,然後將初始化的變量代入神經網絡,加上所有的訓練數據,得到初始的誤差函數值如下


第二步,我們就是要update神經網絡的自身變量,使得神經網絡的誤差函數在更新之後的自身變量下縮小。而我們使用的主要方法,和牛頓法求零點一樣,是梯度下降。所以,我們需要求出誤差函數關於神經網絡自身變量(W、b0、theta、b1)的偏導數。


其中,空心圓代表矩陣點乘。

在得到了偏導數之後,我們利用下式來更新我們的變量


其中,r被稱作learning rate,代表了神經網絡的學習速度與質量。關於r的選取,是一個要權衡利弊的問題:r太小,梯度下降太慢,訓練時間很長;r太大,可能無法訓練成功。


在這裡,反向傳播算法更新神經網絡的方式就是梯度下降,原理與牛頓法、最小二乘法是一致的。就這樣,我們不斷的重複上述步驟,直到誤差函數縮小到一個可接受範圍,則我們就完成了神經網絡對訓練數據的學習。

3)Universal approximation theorem

查德一看,神經網絡對一個未知函數的估計是很暴力的。但其實它背後是有理論支撐的,那就是這一個定理。這個定理的大白話描述(不是嚴謹的)就是,如果你的activation function是單調增、有上下界、非常數且連續,那麼給定一個任意的連續函數,總是存在一個有限的N,使得含有N個神經元的單隱藏層神經網絡可以無限逼近這個連續函數。

這個定理的證明用到了Hahn-Banach theorem、Riesz representation theorem和Fourier analysis,有興趣的朋友可以去自己查看一下。

但是,在選取N上,如果你的N選擇過多,你的問題就會有兩種:1,訓練速度緩慢;2,overfiting,增加預測值的誤差。而如果選擇過少的N,你的主要問題就是,難以訓練成功。因此,在N的選擇上,要注意使用cross-validation來做test,以避免overfiting的問題。

本文屬於作者原創,抄襲侵權必究。

歡迎關注本人微信公眾號:QuantJiang


相關焦點

  • 人工神經網絡簡介
    概要:人工神經網絡簡稱神經網絡,是基於生物學中神經網絡的基本原理。
  • 人工神經網絡
    隨著科技的快速發展,人工智慧這個詞變得越來越熱門了,今天,小創君想給大家分享一個與人工智慧有關的主題——人工神經網絡。那麼,什麼是人工神經網絡呢?看到這個主題,相信很多理工科的學生的腦海裡都會自然而然地想到三個熟悉的詞:人工智慧、機器學習與深度學習。那他們之間到底具有怎樣的一個關係呢?
  • 什麼是人工神經網絡(ANN)?
    人工神經網絡如何運作人工神經網絡的核心成分是人工神經元。每個神經元接收來自其他幾個神經元的輸入,將它們乘以分配的權重,將它們相加,然後將總和傳遞給一個或多個神經元。一些人工神經元可能在將輸出傳遞給下一個變量之前將激活函數應用於輸出。
  • 土木工程與人工神經網絡(一)
    本文是該系列的第一篇文章,主要先介紹人工神經網絡(Artificial Neural Network)的原理和發展歷程。1.什麼是人工神經網絡第一次看到人工神經網絡(ANN)的時候會覺得它是一個黑盒子,扔進去一堆數據會返回一些東西,但其實簡單的人工神經網絡可以看做一個帶有若干參數的擬合函數或模型(類似於多項式擬合),但不同於簡單地線性相加,它的結構很複雜,神經元之間不光可以像下圖一樣,從輸入層到輸出層單向連接(前饋型神經網絡
  • 人工神經網絡算法及其簡易R實現
    人工神經網絡(Artificial Neural Network)簡單而言是一種分類算法。作為機器學習的一個龐大分支,人工神經網絡目前大約有幾百種算法,其中包括一些著名的ANN算法:感知器神經網絡(Perceptron Neural Network), 反向傳遞(Back Propagation), Hopfield網絡和自組織映射(Self-Organizing Map, SOM)等等,這篇文章我們只介紹最基本的人工神經網絡算法原理及其簡易的R語言實現方式。
  • 獨家 | 一文讀懂人工神經網絡學習原理
    本文對人工神經網絡是如何學習的進行了簡單介紹,使讀者可以對神經網絡的運行機制有更進一步的認識。在之前的博客中,我們談到了關於人工神經網絡(ANN)的一些非常有趣的主題。其中介紹了人工神經網絡的基本結構以及一些最常用的激活函數。然而,我們並未提及人工神經網絡最重要的方面 ---- 學習。
  • 初識人工神經網絡
    這也就是神經網絡的魅力所在。人工神經網絡(artificial neural networks) 是一種模仿生物神經網絡行為特徵,進行信息處理的算法數學模型。在人工神經網絡模型中使用單元節點模擬神經元,通過調整神經網絡內部大量節點(神經元)之間相互連接的權重來達到處理信息的目的。
  • 「人工神經網絡」人工神經網絡之BP算法
    人工神經網絡(Artificial Neural Network,ANN)是在受到了生物學的啟發後創建的,在某種程度上它是對生物大腦的一種模擬。人們仿照生物神經網絡的結構,使用簡單運算單元模擬神經元,並將大量運算單元按某種形式密集連接,便構成了人工神經網絡。結構如圖:人工神經網絡(ANN)模型帶有權重值(w1,w2,...
  • 算法的算法:人工神經網絡
    在上周的人工神經網絡課程中介紹了機器學習中的支持向量機(SVM:Support Vector Machine)與前饋網絡RBF的之間的聯繫,而對於由傳遞函數為線性函數組成的單層網絡的代表自適應線性單元(ADLINE:Adaptive  Linear Element)更是和傳統信號處理中的自適應濾波器相類似。
  • 人工神經網絡初學:是什麼以及為什麼?
    [來自IT168]  【IT168 技術】談及人工智慧,就會涉及到人工神經網絡。人工神經網絡是現代人工智慧的重要分支,它是一個為人工智慧提供動力,可以模仿動物神經網絡行為特徵,進行分布式並行信息處理的系統。
  • 科學家用DNA造出人工神經網絡
    來自加州理工學院生物工程系、計算機科學系、計算與神經系統學系及電子工程系的研究人員首次在試管中用DNA構造出了人工神經網絡,這一人工神經網絡可以像大腦一樣根據不完整的信息回想起相關的記憶
  • 神經網絡學習的原理與在OpenCV中的應用
    神經網絡介紹    神經網絡的原理根本在於對人類大腦行為的神經生物學模擬,這樣看的話克隆技術也能算一種了吧。大腦可以看做一臺精密、穩定、計算能力超強的計算機,其中的信息處理單元就是神經元(Neuron)。神經元是大腦處理信息的最小單元,它的結構如下圖:
  • 深度|人工神經網絡深入分析
    文章從神經網絡談到了人工神經網絡,並對此進行詳細的介紹。最近「神經網絡」非常火,特別是AlphaGo與韓國選手李世石的比賽落幕後,各種關於神經網絡的文章滿天飛,但可能對於非專業領域出身的人來說接觸這些文章就會雲裡霧裡了。究其原因主要是缺少適合大部分人理解的神經網絡的科普文章,其實吳軍老師的《數學之美》在科普神經網絡這方面做的就比較通俗易懂,感興趣的朋友可以去讀一下吳老師的書。
  • 獨家 | 一文讀懂人工神經網絡
    本文通過使用淺顯易懂的語言和介紹youtube上的實驗方式帶讀者認識人工神經網絡。人工神經網絡(ANN)是一種用於機器學習的計算模型,它的工作方式和生物的神經元類似。 當信息到達神經元,它們(神經元)通過調整網絡去感知和獲取這些信息得出一個理想的結果。通過神經元傳輸儘量多的數據會有助於得到更精準的結果。這就是神經網絡中的「訓練」。 在使用神經網絡之前,我們需要訓練和調試,以得到理想的決策結果。
  • 用於英文字母識別的三種人工神經網絡的設計
    本文引用地址:http://www.eepw.com.cn/article/198994.htm1引言人工神經網絡是在人類對其大腦神經網絡認識理解的基礎上人工構造的能夠實現某種功能的神經網絡。代寫論文 它是理論化的人腦神經網絡的數學模型,是基於模仿大腦神經網絡結構和功能而建立的一種信息處理系統。
  • 人工神經網絡算法介紹及其參數講解
    每兩個節點間的連接都代表一個對於通過該連接信號的加權值,稱之為權重,這相當於人工神經網絡的記憶。網絡的輸出則依網絡的連接方式,權重值和激勵函數的不同而不同。而網絡自身通常都是對自然界某種算法或者函數的逼近,也可能是對一種邏輯策略的表達。人工神經網絡模型主要考慮網絡連接的拓撲結構、神經元的特徵、學習規則等。
  • 走近深度學習:神經網絡工作原理解析
    神經網絡是一種模仿生物神經網絡的結構和功能的數學模型或計算模型,由大量的人工神經元聯結進行計算。在深度學習時代,基於神經網絡的目標檢測算法也大放異彩。為了能夠幫助大家更好的了解目標檢測領域,猩算法開設「目標檢測」系列文章,精選乾貨文章,持續分享。
  • 機器學習:人工神經網絡ANN
    神經網絡是從生物領域自然的鬼斧神工中學習智慧的一種應用。
  • 基於英文字母識別的三種人工神經網絡的設計方案
    是在人類對其大腦神經網絡認識理解的基礎上人工構造的能夠實現某種功能的神經網絡。代寫論文 它是理論化的人腦神經網絡的數學模型,是基於模仿大腦神經網絡結構和功能而建立的一種信息處理系統。因其自組織、自學習能力以及具有信息的分布式存儲和並行處理,信息存儲與處理的合一等特點得到了廣泛的關注,已經發展了上百種人工神經網絡。 一般來說,人工神經網絡從結構上可分為兩種:前向網絡和反饋網絡。
  • 如何通過人工神經網絡實現圖像識別?
    人工神經網絡(Artificial Neural Networks)(簡稱ANN)系統從20 世紀40 年代末誕生至今僅短短半個多世紀,但由於他具有信息的分布存儲這裡討論的是將要識別的目標物體用成像頭(紅外或可見光等)攝入後形成的圖像信號序列送入計算機,用神經網絡識別圖像的問題。一、BP 神經網絡BP 網絡是採用Widrow-Hoff 學習算法和非線性可微轉移函數的多層網絡。