回覆列表
  • 1 # 一凡論道

    資訊的識別方式是合目的性的,

    我們的目標資訊只有一個,但是你卻要排除大量非目標資訊的干擾,因為資訊環境是無序的,不確定的,這就是所謂的熵。那麼我們在一堆雜亂的資訊中找到目標資訊,怎麼辦?我們只能預估,可能需要多少多少步才能找到它,這是一個機率分佈問題?

    如果我們準確的知道這一堆雜亂的資訊主要有哪幾類,那就好辦了,我們可以馬上就用機率的方式預估到我們找到目標資訊的機率。

    但是,現在是我們連這一堆資訊裡面包含的資訊的類別比例都不甚清楚?

    那麼怎麼辦?我們只能再加一層假設,這個假設就是,我們假定這堆資訊分佈比例可能是多少多少,那麼價差熵其實就是你預估的這個模型與實際分佈的模型比例之間的差距。如果上天有眼,你預估的這個比例模型完全相同,那麼你這個交叉熵數值最小。如果差距太大,那麼交叉熵數值就很大,那麼你要找到目標資訊的步驟量就很多,可能性變小

  • 2 # 迷失在耶路撒冷

    首先,有一種直觀的、思考熵的方式。

    咱們先來玩個遊戲。

    遊戲1:

    我將從一袋硬幣中取出一枚硬幣,袋子中的硬幣為:藍色、紅色、綠色,橙色各一枚。你的任務是用最少的問題猜出拿出來的硬幣是什麼顏色。

    下圖是最棒的策略之一:

    每一枚硬幣都有1 / 4被選中的機率,在問了兩個問題後猜到了答案,所以猜硬幣遊戲預期的問題數是2。

    遊戲2:

    現在,我將從一袋硬幣中取出一枚硬幣,這袋硬幣中有1 / 2的機率是藍色的,1 / 4是紅色的,1 / 8是綠色的,1 / 8是橙色的。那麼,你的最佳策略看起來應該像這樣:

    在這裡,它是藍色的機率有1 / 2,這需要問一個問題才能猜得出來。有1 / 4的機率是紅色的,這需要兩個問題才能猜出來。按照這個邏輯,在猜硬幣遊戲中,預計的提問數量是12×112×1個問題(藍色)+ 14×214×2個問題(紅色)+ 18×318×3個問題(綠色)+ 18×318×3個問題(橙色)= 1.75。

    遊戲3:

    現在我們用一個極端例子來做一下對比說明,我從一袋全是藍色硬幣的口袋中拿出一枚硬幣。很顯然,根本不用提任何問題就能知道我所拿的硬幣的顏色。又或者……我們可以寫下log21 = 0。請注意,只有當你知道口袋裡全是藍色硬幣的時候,所提問題數才會是0。

    有趣的是,由此我們可以發現一個規律:正確猜出硬幣p機率所需要的問題數是log21plog21。例如,當p = 1 / 4時,log24 = 2log24 = 2個問題。所以總的來說,這個遊戲的預期數量的問題是∑ipi×log21pi∑ipi×log21pi,這就是熵的表示式。由此可以看出,在這個遊戲的最佳策略下,猜出顏色的問題數量是預料之中的。設定越不確定(遊戲1 >遊戲2 >遊戲3),其熵值越高。

    現在,我們再來看交叉熵。

    如果我們仍然使用第1個遊戲的策略,來玩第2個遊戲的話:

    由此可見,硬幣有1/8的機率是橙色的,這個答案需要2個問題才能猜中。有1 / 2的機率是藍色的,不過仍然需要提2個問題才行。所以,平均需要1/8×2+1/8×2+1/4×2+1/2×2=21/8×2+1/8×2+1/4×2+1/2×2=2 個問題。因此,使用遊戲1的策略來玩遊戲2並不是個好主意,2就是在該設定中使用這種策略的交叉熵。

    因此,給定策略的交叉熵只是根據該策略下所預期的問題數量來猜測顏色。對於給定的設定來說,策略越好,交叉熵就越低。而最小的交叉熵意味著最優策略,也就是上文中定義的熵。這就是在機器學習的分類問題上,人們試圖將交叉熵最小化的原因。

    交叉熵是∑ipi×log21pi ^∑ipi×log21pi ^,其中pi為正確機率(例如,硬幣顏色是橙色和綠色的機率有1/8,是紅色的機率有1/4,是藍色的機率有1/2),而pi^是錯誤的假定機率(例如,使用策略1,我們假設硬幣出現每一種顏色的機率是p = 1/4)。在對數方程式中,到底是p 還是 pi^很容易發生混淆。所以你可以這樣來記:log是用來計算策略下的問題數量的,所以在log下面的是預測機率p ^ 。

    所以,在決策樹中,如果你的樹並不是以最好的方式構建的,那麼基本上你所假設的結果的機率分佈就會是錯誤的,而交叉熵值也會偏高。

    交叉熵不光適用於決策樹,它適用於所有分類問題。在二分類問題中,標籤y是1的可能性是你預測的y, y^;y=0的可能性是1−y^。所以,我們可以以一種巧妙的方法將可能性最大化: y^y(1−y^)(1−y)y^y(1−y^)(1−y)。當y是1時,第二項為1,最大可能性為y^;當y是0時,第一項為1,可能性最大值為(1−y ^)。記住,僅適用於y值為0或1的情況。

    現在, log(y^y)log(y^y) is ylogy^ylogy^,和log(1−y^)(1−y)log(1−y^)(1−y),是(1−y)log(1−y^)。該對數最大值相當於最小化−ylogy^−(1−y)log(1−y^)−ylogy^−(1−y)log(1−y^),而這只是交叉熵的表示式。這就是交叉熵被稱為損失函式的原因。交叉熵最小化等價於似然函式最大化。例如,在我的分類中有三個資料點,它們的標籤是1,1,0,而我的預測值y是0.8,0.9,0.3。平均交叉熵是:

    −13(1log0.8+1log0.9+(1–0)log(1–0.3))=−13(log0.8+log0.9+log0.7).−13(1log0.8+1log0.9+(1–0)log(1–0.3))=−13(log0.8+log0.9+log0.7).

    如果我的預測值是1,1,0,那麼交叉熵就是0。(從技術上來說,對數是0的定義並不清晰,不過我們可以忽略它)。使用硬幣遊戲類比,每一個對樣本y的預測都是按遊戲3那樣設定的單獨的硬幣猜謎遊戲。第一個樣本y = 1,就像是從一個只包含了y = 1的袋子中取出一枚硬幣,因為當y=1時,這樣的機率是100%。現在,如果你的演算法夠完美,你也知道袋子裡到底是什麼。那麼p^=1。第二個和第三個例子同理可證。因此,對於一個完美的演算法來說,交叉熵是0。

  • 中秋節和大豐收的關聯?
  • 婆婆家在外地,大家過年帶寶寶回婆婆家嗎?