所有能找到反函式的目標函式,一定能夠將原目標函式的自變數提出來,重新構造目標函式以減小做梯度下降的計算量:以邏輯迴歸利用sigmoid與logit互為反函式,重新構造目標函式以減小梯度下降的計算量為例
-
概述
雖然絕大多數機器學習的最終目標函式很複雜,特別是神經網路的最終目標函式,無比複雜;但是單獨考察有些神經元或者神經元中某部分等屬於最終目標函式中一些小單元的目標函式時,可能是初等函式,如sigmoid、tanh等。如果這些初等函式存在反函式,就一定能將它們的自變數提取出來,重新構造這些小單元的目標函式,減少做梯度下降時的計算量。這是因為對因變數做梯度下降的計算量一定比對其自變數做梯度下降時的計算量大,因變數相當於對自變數取了一次複合函式,除了y=k·x這種因變數y和自變數x屬於同一計算複雜度的函式,就不必去找y的反函式了。 -
以邏輯迴歸做梯度下降時,利用sigmoid與logit互為反函式,將sigmoid的自變數提取出來,重新構造目標函式,以降低目標函式的複雜度,從而減小計算量為例。
2.1. 不化簡時,對原始目標函式(loss function)做梯度下降
下面這段特別重要:
從上文可以看到式①和式②還是比較複雜的,特別是將∑和Zj展開後,所以進行梯度下降時的計算量會比較大。那能不能通過簡化目標函式來減少計算量呢?由於σ(Zj)與Pj是一一對應來構造目標函式的,而Pj是常數,是Xji對應的標籤資訊,如果能找到σ(Zj)的反函式σ-1,那就能將Zj提取出來與σ-1(Pj)構造新的目標函式。因為Zj中仍包含全部自變數W,而σ-1(Pj)仍是常數,仍是Xji對應的標籤資訊,所以對原目標函式和新目標函式做梯度下降是等價的,訓練時包含的資訊是相同的。唯一的區別是新目標函式比原目標函式更簡單,所以它們的函式形態有所差別,所以如果呼叫區域性優化演算法來訓練,得到的最終W不同是可能的;如果呼叫全域性優化演算法來訓練,得到的最終W,依演算法不同應當差別很小。
2.2. 利用σ(Zj)的反函式logit,化簡原目標函式
對比式③和式①,式④和式②,可以看到化簡後目標函式的n+1維的jacobian向量比原目標函式jacobian向量的每一個分量均少一個partial(σ(Zj)) / partial(Zj),所以每一步梯度下降時計算量都會減少,自變數W維數越多,learning rate越小,迭代步數越多,減少的計算量就越多。 -
總結
所有能找到反函式的目標函式,一定能夠將原目標函式的自變數提出來,重新構造目標函式以減小做梯度下降的計算量。這裡有兩個關鍵的前提:一是用反函式提取出的自變數不要漏掉任何一個自變數分量;二是與每個資料點對應的每個標籤資訊也要取相同的反函式;滿足這兩個條件後,原目標函式與化簡後的新目標函式就是等價的。
相關文章
- 邏輯迴歸:損失函式與梯度下降邏輯迴歸函式梯度
- 解構函式的標量與向量?函式
- 指標函式 和 函式指標指標函式
- 宣告與函式、函式指標函式指標
- 理解神經網路中的目標函式神經網路函式
- Oracle 函式大全(字串函式,數學函式,日期函式,邏輯運算函式,其他函式)Oracle函式字串
- 【機器學習】【base】 之 目標函式 損失函式 優化演算法機器學習函式優化演算法
- 【不在混淆的C】指標函式、函式指標、回撥函式指標函式
- 函式名/函式地址/函式指標函式指標
- C/C++—— 寫一個函式,它的引數為指向函式的指標,返回型別也為指向函式的指標C++函式指標型別
- 如何使用函式指標呼叫類中的函式和普通函式函式指標
- 函式指標&回撥函式Callback函式指標
- 函式指標函式指標
- Hive函式(內建函式+自定義標準函式UDF)Hive函式
- C++中函式指標與函式物件C++函式指標物件
- 指向函式的指標函式指標
- [C++] 成員函式指標和函式指標C++函式指標
- 高階函式與標籤函式,解構賦值與物件字面量的簡化學習函式賦值物件
- 目標函式的經典優化演算法介紹函式優化演算法
- 函式指標呼叫函式指標
- 函式外與函式內的變數函式變數
- typedef void (*Fun) (void) 的理解——函式指標——typedef函式指標函式指標
- lr中常用函式以str開頭函式函式
- Rust中的函式指標Rust函式指標
- cpp:"函式指標"的方法函式指標
- C語言函式指標與回撥用函式C語言函式指標
- 外層函式的變數直接被巢狀函式引用計算函式變數巢狀
- C++中的函式指標和函式物件總結C++函式指標物件
- 為什麼沿著梯度的反向函式值減少的最多梯度函式
- 建構函式與解構函式函式
- 類的建構函式和解構函式函式
- 計算日期的函式函式
- 物件,函式作為一個函式的引數物件函式
- 函式指標使用c++類成員函式函式指標C++
- SQL server 表值函式 標量值函式 區別SQLServer函式
- 獲取javascript函式形參的數目JavaScript函式
- 一個自適應的函式指標函式指標
- 構造java函式(轉)Java函式