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...