1. 程式人生 > >2018/12/14 Deep Neural Network Training(1)

2018/12/14 Deep Neural Network Training(1)

Loss Function and Optimization

  • 損失函式
  • 如何優化
  1. 線性分類器
    損失函式是量化的評估線性分類器的標準。損失函式是優化的目標。
    損失函式的定義:
    當初始化W很小的時候,S–>0,此時L–>c-1(其中c代表類的個數)
    線性代數
    有限字長
    當我們在訓練集上訓練出來的分類器訓練的很好的時候,這時候會出現一個過擬合效應,原因是我們的訓練集並沒有很好的表現現實中的狀況。接下來就需要避免過擬合問題。
  • 加入約束項(懲罰函式)
    lambda 屬於一個超引數。
    奧卡姆剃刀
    複雜性帶來的多樣式是一些系統適應環境的一種方式,比如人、人類社會
  • SoftMax 分類器:評分–>概率問題
    這個score有了一個資訊學意義,即概率分佈
    一個單樣本問題轉化為
  • 整合起來如何找到最好的W?

最優化方法

  1. 隨機搜尋(random search),就是暴力搜尋
    超級非凸不一定是不連續的–>2
  2. 梯度下降
    超引數 step-size 步長
  3. 隨機梯度下降
    為了縮減計算量,我們認為樣本空間足夠的大,我們在其中隨機的抽取一個小的BATCH。N is a minibatch

BP

鏈式法則
upstream gradient & local gradient(這個是要會算的)
分支處的梯度可以直接加起來,因為其是線性的
雅克比

problem

  • KL散度的定義
    在這裡插入圖片描述
    在這裡插入圖片描述
  • accurate 是如何算出來的以及loss是如何算出來的????
  • 一些計算概念

訓練過程

  • 一次性準備:啟用函式,資料預處理,權重初始化,正則化,梯度
  • 訓練過程:引數更新,超引數(網路引數選項)
  • 驗證評估:模型整合

啟用函式

all kinds of activation functions
sigmoid and tanh 有啥區別呢????

  • sigmoid 很容易飽和,殺死梯度;只能往一個方向走(this is also why you want zero-mean data);計算量稍大
    數值
    計算是一個很重要的問題
  • TANH
  • relu :simple 但是存在無法更新的區域
  • leaky relu :keep properties ; Prelu;這兩個的表現很好
  • Elu :不會選
  • Maxout 計算量太大,不會選

資料預處理

  • preprocess the data
    零均值(隨機取樣,一個很重要的思路;統計意義上,一幅影象的均值和很多張影象的均值相差不大 )和歸一化為了更快地收斂
    PCA and Whitening(影象一般不會再做了)

假定小的隨機數:值不停地在衰減,所以每一層衰減的很快。求和抵消不了指數衰減(?)。bp傳不回去
比較大的隨機數:產生震盪,所有的層都幾近飽和,所以梯度也會為0
xavier初始化(啟用函式是tanh),每個數除以根號下N ,求方差,後面還會有平方項
用relu的話/根號下2n

batch normalization

訓練過程

  • double check that the loss is reasonable
  • learning rate 選擇要使loss減小
  • accurate 是如何算出來的以及loss是如何算出來的???
  • 1e-3—1e-5之間學習率經驗值

random search vs. grid search

  • 大量的依賴於經驗
  • update and values的比值約為0.01經驗值

掌握它的思路是發現新問題的一個重要因素

滿足自私的唯一的辦法就是利他