機器學習中經常遇到這幾個概念,用大白話解釋一下:
一、歸一化
把幾個數量級不同的資料,放在一起比較(或者畫在乙個數軸上),比如:一條河的長度幾千甚至上萬km,與乙個人的高度1.7m,放在一起,人的高度幾乎可以被忽略,所以為了方便比較,縮小他們的差距,但又能看出二者的大小關係,可以找乙個方法進行轉換。
另外,在多分類**時,比如:一張圖,要**它是貓,或是狗,或是人,或是其它什麼,每個分類都有乙個**的概率,比如是貓的概率是0.7,狗的概率是0.1,人的概率是0.2... , 概率通常是0到1之間的數字,如果我們算出的結果,不在這個範圍,比如:700,10,2 ,甚至負數,這樣就需要找個方法,將其轉換成0-1之間的概率小數,而且通常為了滿足統計分布,這些概率的和,應該是1。
最常用的處理方法,就是softmax,原理如上圖(網上淘來的)。
類似的softmax(1)=0.12,softmax(-3)=0,這個方法在數學上沒毛病,但是在實際運用中,如果目標值x很大,比如10000,那e的10000次方,很可能超出程式語言的表示範圍,所以通常做softmax前,要對資料做一下預處理(比如:對於分類**,最簡單的辦法,所有訓練集整體按比例縮小)
二、資訊熵
熱力學中的熱熵是表示分子狀態混亂程度的物理量,而且還有乙個所謂『熵增原理』,即:宇宙中的熵總是增加的,換句話說,分子狀態總是從有序變成無序,熱量總是從高溫部分向低溫部分傳遞。 夏農借用了這個概念,用資訊熵來描述信源的不確定度。
簡單點說,乙個資訊源越不確定,裡面蘊含的資訊量越大。舉個例子:吳京《戰狼2》大獲成功後,說要續拍《戰狼3》,但是沒說誰當女主角,於是就有各種猜測,各種可能性,即:資訊量很大。但是沒過多久,吳京宣布女主角確定後,大家就不用再猜測女主角了,資訊量相比就沒這麼大了。
這個例子中,每種猜測的可能性其實就是概率,而資訊量如何衡量,可以用下面的公式來量化計算,算出來的值即資訊熵:
這裡p為概率,最後算出來的結果通常以bit為單位。
舉例:拿計算機領域最常現的編碼問題來說,如果有a、b、c、d這四個字元組成的內容,每個字元出現的概率都是1/4,即概率分布為,設計乙個最短的編碼方案來表示一組資料,套用剛才的公式:
即:2個bit,其實不用算也能想明白,如果第1位0表示a,1表示b;第2位0表示c,1表示d,2位編碼搞定。
如果概率變了,比如a、b、c、d出現的概率是,即:每次a、b必然出現,c、d出現機會各佔一半,這樣只要1位就可以了。1表示c,0表示d,因為ab必然出現,不用表示都知道肯定要附加上ab,套用公式算出來的結果也是如此。
三、交叉熵
假設x是正確的概率分布,而y是我們**出來的概率分布,這個公式算出來的結果,表示y與正確答案x之間的錯誤程度(即:y錯得有多離譜),結果值越小,表示y越準確,與x越接近。
比如:x的概率分布為:,現在我們通過機器學習,**出來二組值:
y1的概率分布為
y2的概率分布為
從直覺上看,y2分布中,前2項都100%**對了,而y1只有第1項100%對,所以y2感覺更準確,看看公式算下來,是不是符合直覺:
對比結果,h(x,y1)算出來的值為9/4,而h(x,y2)的值略小於9/4,根據剛才的解釋,交叉熵越小,表示這二個分布越接近,所以機器學習中,經常拿交叉熵來做為損失函式(loss function)。
歸一化 softmax 資訊熵 交叉熵
機器學習中經常遇到這幾個概念,用大白話解釋一下 一 歸一化 把幾個數量級不同的資料,放在一起比較 或者畫在乙個數軸上 比如 一條河的長度幾千甚至上萬km,與乙個人的高度1.7m,放在一起,人的高度幾乎可以被忽略,所以為了方便比較,縮小他們的差距,但又能看出二者的大小關係,可以找乙個方法進行轉換。另外...
歸一化 softmax 資訊熵 交叉熵
機器學習中經常遇到這幾個概念,用大白話解釋一下 一 歸一化 把幾個數量級不同的資料,放在一起比較 或者畫在乙個數軸上 比如 一條河的長度幾千甚至上萬km,與乙個人的高度1.7m,放在一起,人的高度幾乎可以被忽略,所以為了方便比較,縮小他們的差距,但又能看出二者的大小關係,可以找乙個方法進行轉換。另外...
softmax和交叉熵
softmax用於多分類過程中,往往加在神經網路的他將多個神經元的輸出,對映到 0,1 區間內,看成概率來解,這些值的累和為1,在選取輸出節點的時候選取概率最大的節點作為我們的 目標,從而進行多分類。softmax 相關求導 當對分類的loss進行改進時,我們通過梯度下降,每次優化乙個step大小的...