Tensorflow2.1基礎知識---複雜度、學習率、激活函數、損失函數

複雜度

  1. 空間複雜度(用層數和待優化的參數個數表示)
    1. 層數 = 隱藏層的層數+1個輸出層(輸入層不算)
    2. 總參數 = 總w + 總b
  2. 時間複雜度:
    乘加運算次數

學習率

學習率是一個超參數,根據經驗來設定,學習速率調得太低,訓練速度會很慢,學習速率調的過高,每次迭代波動會很大,再反向傳播的過程中會更新權值w
在這裏插入圖片描述

指數衰減學習率:可以先用較大的學習率,快速得到較優解,然後逐步減小學習率,使模型再訓練後期穩定。
指數衰減學習率 = 初始學習率 * (學習率衰減率^(當前輪數/多少輪衰減一次))

激活函數

  1. 激活函數的定義:
    激活函數(Activation Function),就是在人工神經網絡的神經元上運行的函數,負責將神經元的輸入映射到輸出端

  2. 爲什麼要有激活函數
    如果不用激活函數,每一層輸出都是上層輸入的線性函數,無論神經網絡有多少層,輸出都是輸入的線性組合,這種情況就是最原始的感知機。
    如果使用激活函數,激活函數給神經元引入了非線性因素,使得神經網絡可以逼近人任何非線性函數,這樣神經網絡可以用到多種非線性的模型中。

  3. 常用的激活函數

    1. Sigmoid函數
      在這裏插入圖片描述
      在這裏插入圖片描述
      特點:

      1. 容易造成梯度消失
      2. 輸出非0均值,收斂慢
      3. 冪運算複雜,訓練時間長
    2. Tanh函數
      在這裏插入圖片描述
      在這裏插入圖片描述
      特點:

      1. 輸出均值是0
      2. 易造成梯度損失
      3. 冪運算複雜,訓練時間長
    3. Relu函數
      在這裏插入圖片描述
      在這裏插入圖片描述
      優點:

      1. 解決了梯度消失問題(在正區間)
      2. 只需判斷輸入是否大於0,計算速度快
      3. 收斂速度遠快於sigmoid和tanh

      缺點:

      1. 輸出非0均值,收斂慢
      2. Dead RelU問題:某些神經元可能永遠不會被激活,導致相應的參數永遠不能被更新(不會被激活的原因:在負區間,輸入特徵爲0,在進行反向傳播的時候,梯度一直爲0,不會進行參數的更新)
    4. Leaky Relu函數
      在這裏插入圖片描述
      在這裏插入圖片描述
      理論上講,leaky Relu函數解決了輸入特徵爲負區間的問題,但是在實際操作中,多用Relu函數

  4. 總結:(對於初學者)

    1. 首選relu激活函數
    2. 學習率設置較小值
    3. 輸入特徵標準化,即讓輸入特徵滿足以0爲均值,1爲標準差的正態分佈
      初始參數中心化,即讓隨機生成的參數滿足以0爲均值,2\sqrt \frac{2}{當前層輸入特徵數}爲標準差的正態分佈

損失函數

損失函數表示的是預測值y與標準答案y_的差距,損失函數可以定量判斷w、b的優劣,當損失函數輸出最小時,參數w、b會出現最優值

常用的損失函數:

  1. 均方誤差mse
    在這裏插入圖片描述
    loss_mse = tf.reduce_mean(tf.square(y - y_))

  2. 自定義損失函數(根據實際情況進行自定義,相當於自己建立模型)
    如預測商品銷量,預測多了,損失成本;預測少了,損失利潤。若利潤不等於成本,則mse產生的loss無法利益最大化
    自定義損失函數
    在這裏插入圖片描述
    loss_zdy = tf.reduce_sum(tf.where(tf.greater(y,y_),COST (y - y_),PROFIT(y_-y)))

  3. 交叉熵損失函數CE(Cross Entropy):表徵兩個概率分佈之間的距離
    在這裏插入圖片描述
    Tf.losses.categorical_crossentory(y_,y)
    例子:已知答案y_=(1,0) 預測y1=(0.6,0.4) y2=(0.8,0.2) 哪個更接近標準答案?

    在這裏插入圖片描述

     softmax與交叉熵結合
     	輸出先過sofimax函數,再計算y與y_的交叉熵損失函數
     tf.nn.softmax_cross_entropy_with_logits(y_,y)
    

下面的是筆者的微信公衆號,歡迎關注,會持續更新c++、python、tensorflow、機器學習、深度學習等系列文章
                  在這裏插入圖片描述

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