亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

我應該使用 softmax 還是 tf.nn.sigmoid_cross_entropy

我應該使用 softmax 還是 tf.nn.sigmoid_cross_entropy

素胚勾勒不出你 2022-10-25 14:50:27
我正在閱讀有關 NN 的內容,并且還想同時生成我的第一個 NN(以補充我的閱讀內容)。我有一個這樣的數據集:DNA_seq  Sample1Name  Sample1Name  ConcOfDNAInSample  DNASeqFoundInProcessCatAGGAG     cat_0     cat_1    0.1   found_in_0  AGGAG     cat_1     cat_2    0.4   found_in_3ACCCC     cat_1     cat_7    0.1   found_in_2AGAGAGA   cat_2     cat_10   1.9   found_in_1ADAS      cat_332   cat_103  8.9   found_in_1列:DNASeq -> 一串 DNA 序列(即“序列”)Sample1Name -> 分類值,解釋 DNASeq 所在溶液的化學性質。Sample2Name -> 分類值,解釋 DNASeq 所在溶液的化學性質。ConcOfDNAInSample -> Sample2SName 中 DNA 濃度的定量值。DNASeqFoundInProcessCat -> 這是我要預測的標簽。它是一個具有四個類別(found_in_0 -> found_in_3)的分類值。這是我對每個 DNASeq 進行三個測試以查看我是否操縱原始解決方案(即 found_in_0)的輸出,DNASeq 是否仍然存在。我的問題:對于一組看不見的序列,我希望輸出標簽集是“found_in_1”、“found_in_2”、“found_in_3”的多類概率。即,如果上面的示例是我的測試集的輸出,那么我的輸出理想情況下應該是這樣的:DNA_seq  Sample1Name  Sample1Name  ConcOfDNAInSample  DNASeqFoundInProcessCatAGGAG     cat_0     cat_1    0.1   (0.9,0.5,0.1)  AGGAG     cat_1     cat_2    0.4   (0.8,0.7,0.3)ACCCC     cat_1     cat_7    0.1   (0.2,0.5,0.3)AGAGAGA   cat_2     cat_10   1.9   (0.7,0.2,0.9)ADAS      cat_332   cat_103  8.9   (0.6,0.8,0.7)有一些注意事項:有可能因為我正在做的過程,一些序列不能在原始解決方案中(found_in_0),但是因為 DNA 位可以粘在一起,它們隨后可以在其他類中(found_in_1、found_in_2、found_in_3 )我只對found_in_1、found_in_2 和found_in_3 類的輸出感興趣(即我想要最后的三類概率,而不是found_in_0 的四類概率)。我能夠從 DNA 序列中生成其他特征,這只是一個例子。從我的數據可以看出,我的數據集是不平衡的,found_in_3中的數據量明顯低于其他(我的完整訓練數據大約80000行;但是其中只有大約10000行是found_in_3;其他的都是found_in_0、found_in_1 或 found_in_2)。我要解決的是算法,特別是針對一個特定點。我的想法是:1.讀入數據。df = pd.read_csv('data')2.將數據集拆分為訓練和測試import sklearnfrom sklearn.model_selection import train_test_splitX_train,X_test,Y_train,Y_test = train_test_split(X,y,test_size=0.2,random_state=42)3.了解數據集(即我在上面第 4 點中看到的代表性不足的地方)。我有一系列的功能......所以假設我有一個標準化的數據集,即上表。所以我知道我想為我的數據復制一組類似的步驟,并且我正在嘗試解決如何做到這一點,我無法理解的是我是否必須使用 tf.nn.sigmoid_cross_entropy_with_logits 來解決這個問題(因為每個輸入都可以屬于移動而不是一個標簽,即可以存在于found_in_1、found_in_2和found_in_3中,這可以產生每個類的概率輸出?)或者我可以只使用這樣的softmax函數嗎?
查看完整描述

3 回答

?
幕布斯6054654

TA貢獻1876條經驗 獲得超7個贊

如果每個輸入可以屬于多個標簽/類,則需要使用tf.nn.sigmoid_cross_entropy_with_logits. 如果您sigmoid在模型輸出上使用,您將獲得標簽3的概率。您可以在此處3閱讀更多詳細信息。



查看完整回答
反對 回復 2022-10-25
?
慕蓋茨4494581

TA貢獻1850條經驗 獲得超11個贊

softmax和之間有根本的區別sigmoid_cross_entropy_with_logits。第一個應用softmax函數。本質上,您提供輸入的非標準化分數(logits)并輸出可以解釋為概率的標準化值。

另一方面,sigmoid_cross_entropy_with_logits首先會得到一個 sigmoid,然后labales以數值穩定的方式計算交叉熵(反對 ,它的第一個參數?。?。

更詳細的解釋可以在這里找到,例如。我猜你追求的是softmax.


查看完整回答
反對 回復 2022-10-25
?
藍山帝景

TA貢獻1843條經驗 獲得超7個贊

經驗法則:假設您有多個類/標簽,每個樣本是否恰好屬于一個類(只有一個標簽)?

是的:多類。使用 softmax 進行激活,使用 [sparse] 分類交叉熵進行損失。

,對象可以同時屬于多個類:多標簽。使用 sigmoid 進行激活,使用二元交叉熵進行損失。

根據描述,我不確定您的情況是什么情況。


查看完整回答
反對 回復 2022-10-25
  • 3 回答
  • 0 關注
  • 151 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號