神經網絡基礎

人工神經網絡

        人工神經網絡(Artificial Neural Network,ANN)是指一系列受生物學和神 經學啓發的數學模型。這些模型主要是通過對人腦的神經元網絡進行抽象,構 建人工神經元,並按照一定拓撲結構來建立人工神經元之間的連接,來模擬生 物神經網絡。在人工智能領域,人工神經網絡也常常簡稱爲神經網絡(Neural Network,NN)或神經模型(Neural Model)。

神經元

       人工神經元(Artificial Neuron),簡稱神經元(Neuron)也叫感知器,是構成神經網絡的基本單元,其主要是模擬生物神經元的結構和特性,接受一組輸入信號 產出輸出。

        生物學家在20世紀初就發現了生物神經元的結構。一個生物神經元通常具 有多個樹突和一條軸突。樹突用來接受信息(輸入層),軸突用來發送信息(輸出層)。當神經元所 獲得的輸入信號的積累超過某個閾值時(激活函數),它就處於興奮狀態,產生電脈衝。軸突尾端有許多末梢可以給其他個神經元的樹突產生連接(突觸),並將電脈衝信 號傳遞給其它神經元。

一個神經元(感知器)有如下組成部分:

  • 輸入權值 一個感知器可以接收多個輸入(x_{1},x_{2},...,x_{d}| x_{i}\epsilon \mathbb{R}),每個輸入上有一個權值 \omega _{i}\epsilon \mathbb{R},此外還有一個偏置項b\epsilon \mathbb{R},就是上圖中的b

  • 激活函數 感知器的激活函數可以有很多選擇,比如我們可以選擇下面這個階躍函數來作爲激活函數:

  • 輸出 感知器的輸出由這個公式來計算y=f(\omega \cdot x+b)

激活函數

        激活函數在神經元中非常重要的。爲了增強網絡的表示能力和學習能 力,激活函數需要具備以下幾點性質: 

  • 連續並可導(允許少數點上不可導)的非線性函數。可導的激活函數可以 直接利用數值優化的方法來學習網絡參數。
  • 激活函數及其導函數要儘可能的簡單,有利於提高網絡計算效率。
  • 激活函數的導函數的值域要在一個合適的區間內,不能太大也不能太小, 否則會影響訓練的效率和穩定性。

      常見的激活函數有sigmoid、tanh、relu,

推薦文章:26種神經網絡激活函數可視化英文鏈接

                  前饋神經網絡

前饋神經網絡

        一個生物神經細胞的功能比較簡單,而人工神經元只是生物神經細胞的理 想化和簡單實現,功能更加簡單。要想模擬人腦的能力,單一的神經元是遠遠 不夠的,需要通過很多神經元一起協作來完成複雜的功能。這樣通過一定的連 接方式或信息傳遞方式進行協作的神經元可以看作是一個網絡,就是神經網絡。目前最常見的神經網絡結構有三種:前饋網絡、反饋網絡、圖網絡。本次只講前饋網絡。

       前饋網絡中各個神經元按接受信息的先後分爲不同的組。每一組可以看作 一個神經層。每一層中的神經元接受前一層神經元的輸出,並輸出到下一層神 經元。整個網絡中的信息是朝一個方向傳播,沒有反向的信息傳播,可以用一 個有向無環路圖表示。前饋網絡包括全連接前饋網絡和卷積神經網絡等。

       前饋神經網絡的目的是對於輸入 [公式] ,假設我們要模擬從輸入到輸出的真實函數 [公式] ,神經網絡想要找到這樣的映射 [公式] 和合適的參數 [公式] 使得其預測儘量接近於真實函數[公式]

正則化

      機器學習的關鍵問題是泛化性,即要避免過擬合。由於神經網絡的擬合能力強且過度參數化,導致模型的泛化性很差。如何提高神經網絡的泛化能力?通常做法是正則化、Dropout。

      正則化(Regularization)是一類通過限制模型複雜度,從而避免過擬合,提 高泛化能力的方法,包括引入一些約束規則,增加先驗、提前停止等。

l_{1}和l_{2}l_{2}正則化

       正則化主要是在目標函數後額外添加一項,作爲懲罰項。

數據增強

        深層神經網絡一般都需要大量的訓練數據才能獲得比較理想的效果。在數 據量有限的情況下,可以通過數據增強(Data Augmentation)來增加數據量,提 高模型魯棒性,避免過擬合。目前,數據增強還主要應用在圖像數據上,在文本等 其它類型的數據還沒有太好的方法。

權重衰減

     在每次參數更新時,引入一個衰減系

提前停止

        由於深層神經網絡的擬合能力非常強,因此比較容易在訓練集上過擬合。在 使用梯度下降法進行優化時,我們可以使用一個和訓練集獨立的樣本集合,稱 爲驗證集(Validation Set),並用驗證集上的錯誤來代替期望錯誤。當驗證集上 的錯誤率不再下降,就停止迭代。

丟棄法Dropout

       當訓練一個深層神經網絡時,我們可以隨機丟棄一部分神經元(同時丟棄其 對應的連接邊)來避免過擬合,這種方法稱爲丟棄法(Dropout Method)。

深度模型中的優化

後續補上

FastText

     FastText模型架構和word2vec的CBOW模型架構非常相似。下面是fastText模型架構圖:

ææ¯å¹²è´§ä¸¨fastTextåçåå®è·µ

相同的是,和CBOW一樣,fastText模型也只有三層:輸入層、隱含層、輸出層(Hierarchical Softmax),輸入都是多個經向量表示的單詞,輸出都是一個特定的target,隱含層都是對多個詞向量的疊加平均。

不同的是,CBOW的輸入是目標單詞的上下文,fastText的輸入是多個單詞及其n-gram特徵,這些特徵用來表示單個文檔;CBOW的輸入單詞被onehot編碼過,fastText的輸入特徵是被embedding過;CBOW的輸出是目標詞彙,fastText的輸出是文檔對應的類標。

fastText的核心思想就是:將整篇文檔的詞及n-gram向量疊加平均得到文檔向量,然後使用文檔向量做softmax多分類。

例子:利用FastText模型進行文本分類

https://fasttext.cc/docs/en/supervised-tutorial.html

 

推薦文章:

統計學習方法:http://www.dgt-factory.com/uploads/2018/07/0725/%E7%BB%9F%E8%AE%A1%E5%AD%A6%E4%B9%A0%E6%96%B9%E6%B3%95.pdf

神經網絡與深度學習:https://nndl.github.io/nndl-book.pdf

常見FastText問題:https://fasttext.cc/docs/en/faqs.html#content

FastText原理及實踐:http://www.52nlp.cn/fasttext

FastText文本分類例子:https://juejin.im/post/5c95fdfb6fb9a070b96f0f4c

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章