簡體   English   中英

如何計算 sigmoid 神經網絡二元結果的交叉熵?

[英]How can I calculate cross-entropy on a sigmoid neural network binary outcome?

我目前正在從頭開始構建一個 NN,我們希望根據兩個輸入變量(X_1 和 X_2)來識別它們的 output 將是(0 或 1)。 我有 2 個隱藏層,所有神經元上都有 sigmoid 激活,但是在計算交叉熵時我卡住了。 假設在 output 層我有預測[0.50, 0.57]但是真正的 output 是 0,所以[1, 0] 如何計算此二進制 output 示例的交叉熵? 有沒有人有任何建議/提示?

這是一個 function,我編寫並使用它來計算給定預測列表和真實標簽列表的交叉熵。

from math import log
# calculate the cross-entropy of predictions and true labels
def cross_entropy(y, p):
    # y[i] is list of real labels
    # p[i] is the probability of predicting 1
    m = len(y)
    sum_vals = 0
    for i in range(m):
        # first term is for label=1, second term is for label=0
        sum_vals += float(y[i]) * log(p[i]) + (1 - float(y[i])) * log(1 - p[i])
    R = -1/m * sum_vals
    return R

這里標簽列表y中的值都是 0 或 1,來自網絡的概率預測在列表p中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM