所有能找到反函式的目標函式,一定能夠將原目標函式的自變數提出來,重新構造目標函式以減小做梯度下降的計算量:以邏輯迴歸利用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越小,迭代步數越多,減少的計算量就越多。 -
總結
所有能找到反函式的目標函式,一定能夠將原目標函式的自變數提出來,重新構造目標函式以減小做梯度下降的計算量。這裡有兩個關鍵的前提:一是用反函式提取出的自變數不要漏掉任何一個自變數分量;二是與每個資料點對應的每個標籤資訊也要取相同的反函式;滿足這兩個條件後,原目標函式與化簡後的新目標函式就是等價的。
相關文章
- 邏輯迴歸:損失函式與梯度下降邏輯迴歸函式梯度
- 指標函式 和 函式指標指標函式
- 【不在混淆的C】指標函式、函式指標、回撥函式指標函式
- 如何使用函式指標呼叫類中的函式和普通函式函式指標
- 函式指標&回撥函式Callback函式指標
- Hive函式(內建函式+自定義標準函式UDF)Hive函式
- typedef void (*Fun) (void) 的理解——函式指標——typedef函式指標函式指標
- 函式指標函式指標
- C++中函式指標與函式物件C++函式指標物件
- 函式指標的重要用途——回撥函式函式指標
- [C++] 成員函式指標和函式指標C++函式指標
- 高階函式與標籤函式,解構賦值與物件字面量的簡化學習函式賦值物件
- 函式外與函式內的變數函式變數
- Rust中的函式指標Rust函式指標
- cpp:"函式指標"的方法函式指標
- 外層函式的變數直接被巢狀函式引用計算函式變數巢狀
- C語言函式指標與回撥用函式C語言函式指標
- 類的建構函式和解構函式函式
- 建構函式與解構函式函式
- lr中常用函式以str開頭函式函式
- 為複合函式和反函式做好準備函式
- C++ 返回函式指標的函式C++函式指標
- 建構函式與普通函式的區別函式
- 預設建構函式、引數化建構函式、複製建構函式、解構函式函式
- 為什麼沿著梯度的反向函式值減少的最多梯度函式
- 巨集_變數_函式_指標_標頭檔案變數函式指標
- 關於建構函式與解構函式的分享函式
- Python中以函式為作用域Python函式
- C++(函式指標)C++函式指標
- 函式指標基礎函式指標
- 關於函式指標函式指標
- c++ 函式指標C++函式指標
- perl 裡邊的 函式指標函式指標
- SQL Server最佳化標量函式改寫內聯表值函式SQLServer函式
- MySQL函式大全(字串函式,數學函式,日期函式,系統級函式,聚合函式)MySql函式字串
- 邏輯迴歸 損失函式邏輯迴歸函式
- C語言函式指標與回撥函式使用方法C語言函式指標
- 基於函式計算的 BFF 架構函式架構