關於rnn神經網路的loss函式的一些思考

2022-09-15 02:21:11 字數 1037 閱讀 2778

--- 

做了這麼長時間的基於深度學習的nlp,愈發可以感受到bayesian的意思,語言模型裡面一切皆是分布,問題答案都是分布,乙個問題模擬出來的是乙個答案的分布;

我覺得我做的最好的乙個聊天模型,就是先將問題表示成乙個100維的高斯分布,然後計算各個答案跟這個分布的契合概率,當然這個模型肯定不能放出來,但是這種思想可以延伸出去,也希望有興趣的朋友跟我****,[email protected].

---0: 原則上,loss函式都應該選convex函式,convex函式的定義就是函式上方得點是乙個convex集合

1:  之前使用的0-1的資料**正負樣本,loss函式選用的是cross entropy loss,

實際上這裡的0-1 cross entropy和seq2seq的softmax cross entropy都是使用的log函式算的loss,

但是最近看到有人說,在seq2seq裡面使用mse, mean square error比softmax cross entropy要好很多,

遂作下圖,可以觀察比較一下各個不同的loss函式;

下面是對於分類裡面的三種常見的loss的比較,函式形式是

x: predicted - true value的絕對值

我的感覺是,類別非常多,或者越不能準確**某一類的值的時候,不要用log loss

2: 對於剛剛做的問答匹配採用正樣本和負樣本之間的cosine差值的loss;

loss = max(0, 0.2 - cosine(question, true answer) + cosine(question, negative answer)) 

之所以有效,可能是為了防止模型過多關注那些涇渭分明的case,而不去關注那些true answer 和 negative answer很模糊的case;

RNN 迴圈神經網路or遞迴神經網路?

我 內心os 有嗎,我感覺我看到的都是迴圈神經網路啊?我 這個應該就是翻譯的問題吧 回去以後我查了一下,發現我錯了,迴圈神經網路和遞迴神經網路還是有點區別的。很明顯,它倆名字就是不一樣的,迴圈神經網路是recurrent neural network,遞迴神經網路是recursive neural ...

神經網路基礎 迴圈神經網路RNN

在處理序列問題 如語言識別等 上,使用迴圈神經網路 recurrent neural networks,rnn 是很自然的方式 所謂迴圈神經網路,其實就是把上一時刻的資訊作為當前時刻輸入的一部分,從而實現資訊的傳遞 本文將先介紹基礎版rnn,並說明基礎版的問題,然後介紹改進版的迴圈神經網路lstm ...

遞迴神經網路RNN

import tensorflow as tf from tensorflow.examples.tutorials.mnist import input data 載入資料 mnist input data.read data sets mnist data one hot true 輸入是28 ...