0
我一直在使用張量流來訓練深度NN語音模型的語音識別一段時間。我使用的損失函數是交叉熵,並且NN模型性能非常好。現在我想將損失函數改爲更復雜的名爲MMI(最大互信息)的函數,這也是語音識別領域中使用的經典標準。我在這裏放置了一個paper,它描述了這種損失函數,以防你有興趣。無論如何反推衍生物的自定義損失函數的衍生物是由我自己計算
當使用這種特殊的損失函數時,損失函數的導數w.r.t.輸出層的激活可以通過隱馬爾可夫模型場景中定義的一些特殊算法來計算。這意味着我可以計算損失函數w.r.t的導數。通過我自己激活輸出層而不是隻寫出損失函數並讓Tensorflow自動計算衍生產品。
但是基於我的糟糕經歷,我不知道如何反推我自己計算的衍生產品。有沒有辦法做到這一點,而無需觸摸Tensorflow C++源代碼?
感謝您的回答。計算損失函數的導數w.r.t.激活輸出層是在Tensorflow之外計算的,我傾向於使用佔位符來接收這些值。而且你說我必須建立業務鏈,這是否意味着我必須自己計算未解決的衍生工具?如果NN模型太複雜以至於難以弄清鏈式操作,例如LSTM + CNN。 – lijianhackthon
使用佔位符也可以很好地工作。 – jean
我不明白你的評論的結尾,你可以使用tensorflow backprop來完成你的工作或者自己完成工作。如果你想混合使用這兩種,你可以使用'tf.gradients()'這會給你所需的中間體。 – jean