深度學習中一些常用函式的偏導數

2022-07-30 02:33:09 字數 1529 閱讀 8192

1.mul(哈達瑪積:對應相乘)

設:

則根據偏導數的定義得:

同理可得:

2.matmul(矩陣乘)

矩陣乘的偏導與元素的順序是相關的.

設:那麼:

根據矩陣相容的原理:

可見矩陣的偏導數是另乙個矩陣的轉置,但是在用鏈式法則的時候需要保持和原來一直的順序,意思是原來矩陣乘的元素在前面時,應用鏈式法則的時候還在前面,在後面時應用鏈式法則的時候,相對位置也在後面.

3.softmax

softmax with crossentropyloss的導數很簡單,結果就是y』-y. 相比很多人都知道,網上也有很多的證明. 但是softmax的導數有時候也要單獨使用,在tf原始碼中的tensorflow/cc/gradient/nn_grad.cc檔案下,softmaxgrad函式中有段注釋,意思是softmax的導數計算結果是:dl/dx = (dl/dy - sum(dl/dy * y)) * y.

其中l=f(y),代表loss. y和x都是矩陣,維數都是[batch,class].但是檔案中只有注釋沒有證明,在此記錄下推導過程.

推導:

假設y的列數是3,其第k行元素為:

則有:推導過softmax log-likelihood損失函式的朋友,應該很容易得到:

於是可以求出:

帶入並化簡得(以第乙個元素為例):

同理可得第二個和第三個元素為:

寫成向量形式為:

其中*代表hadmard product. 這是對每一行的求導結果. 寫成矩陣形式得到:

上式即是注釋當中的結果.

js as中一些常用的函式

string arr.slice start,length start 0時,從最後乙個往前找,此時不需要length var arr 0 1,2 3,4 5,6 7,8 9 arr.slice 0 6 0,1,2,3,4,5 arr.slice 3 7,8,9 var obj var arr ar...

tensorflow中一些常用函式記錄

簡單函式不給用例 函式原型 def moments x,axes,shift none,pylint disable unused argument name none,keep dims false 例子img tf.variable tf.random normal 2,3,4 keep dim...

String類中一些常用的函式

1 charat index 通過他的索引來獲取元素 test public void test1 string a dfjkdjfd134 for int i 0 i2 indexof string s 返回當前字串的索引,字串索引的位置從0開始 indexof string s,int star...