神經網絡基礎A

BP神經網絡,正向傳播求損失,反向傳播求誤差。

 

 

caffe的fine-tuning: 就是把現成的模型略加修改然後再作少量training,主要用於樣本數量不足的情形。

 

 

激活層點進點出,逐點計算,維度不會改變

 

 

pytorch最重要是把class完成(網絡結構、前向運算),然後定義損失函數、優化器,for循環計算loss。

 

 

content loss 歐式距離

 

 

tf.placeholder

tf.Variable

op(操作符/算子)

圖,session中跑流程

 

 

softmax就是如果某一個zj大過其他z,那這個映射的分量就逼近於1,其他就逼近於0,主要應用就是多分類,sigmoid函數只能分兩類,而softmax能分多類,softmax是sigmoid的擴展。

 

 

 

損失函數(hinge loss/支持向量機損失、交叉熵損失)

 

 

 

 

線性分類器的理解:模板匹配

 

 

 

 

 

神經元感知器

 

 

 

 

 

 

激勵層

 

 

 

 


 

 

 

端到端指的是輸入是原始數據,輸出是最後的結果,原來輸入端不是直接的原始數據,而是在原始數據中提取的特徵,這一點在圖像問題上尤爲突出,因爲圖像像素數太多,數據維度高,會產生維度災難,所以原來一個思路是手工提取圖像的一些關鍵特徵,這實際就是就一個降維的過程。

 

端到端強調中間不用手工干預

 

做了一些前置處理的,就不是end-to-end了。比如去噪、平滑、顯著性提取、分割、去色等等。還比如提取過特徵,將特徵作爲輸入的,也不是end-to-end,比如提取個SIFT、RGB值什麼的。

將原始圖片直接作爲輸入的,將物理系統需要的調節參數作爲輸出的,纔是端到端。(例如將車輛速度、轉角作爲輸出)

 

 

 

 

 

深度學習中的Batch Normalization

BN就是在神經網絡的訓練過程中對每層的輸入數據加一個標準化處理。

 

BN通過規範化輸入數據改變數據分佈,在前傳過程中消除梯度彌散。

 

 

 

比如你要研究一個新的模型,你是在前人的模型基礎上新增加了一些組件,別人也基本都是在這個模型上進行修改,那這個模型就叫做baseline model——基準模型。聽名字就能聽出來,就是你自己模型的一個基準,一個基本的框架,模型再複雜,最根本的框架是差不多的。比如序列標註任務baseline基本是BILSTM+CRF,大多數人都是在這基礎上增改,加些Char-CNN,Attention機制之類的。

 

 

 

 

神經網絡單隱層可以逼近任何連續函數單隱層交 多隱層or

 

 

 

 

 

 

 

softmax函數

 

 

 

 

 

 

數據格式(data_format)

 

        目前主要有兩種方式來表示張量:

        a) th模式或channels_first模式,Theano和caffe使用此模式。

        b)tf模式或channels_last模式,TensorFlow使用此模式。

 

 

        下面舉例說明兩種模式的區別:

         對於100張RGB3通道的16×32(高爲16寬爲32)彩色圖,

         th表示方式:(100,3,16,32)

         tf表示方式:(100,16,32,3)

         唯一的區別就是表示通道個數3的位置不一樣。

 

 

 

 

 

 

 

張量(tensor),可以看作是向量、矩陣的自然推廣,用來表示廣泛的數據類型。張量的階數也叫維度。

 

          0階張量,即標量,是一個數。

 

          1階張量,即向量,一組有序排列的數

 

          2階張量,即矩陣,一組向量有序的排列起來

 

          3階張量,即立方體,一組矩陣上下排列起來

 

          4階張量......

          依次類推

 

          重點:關於維度的理解

 

          假如有一個10長度的列表,那麼我們橫向看有10個數字,也可以叫做10維度,縱向看只能看到1個數字,那麼就叫1維度。注意這個區別有助於理解Keras或者神經網絡中計算時出現的維度問題。

 

 

 

 

 

 

 

Dense(500,input_shape=(784,))

 

               a)Dense層屬於網絡層-->常用層中的一個層

 

               b) 500表示輸出的維度,完整的輸出表示:(*,500):即輸出任意個500維的數據流。但是在參數中只寫維度就可以了,比較具體輸出多少個是有輸入確定的。換個說法,Dense的輸出其實是個N×500的矩陣。

 

              c)input_shape(784,) 表示輸入維度是784(28×28),完整的輸入表示:(*,784):即輸入N個784維度的數據

 

 

 

 

 

shenji

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