99999久久久久久亚洲,欧美人与禽猛交狂配,高清日韩av在线影院,一个人在线高清免费观看,啦啦啦在线视频免费观看www

熱線電話:13121318867

登錄
首頁大數(shù)據(jù)時代如何簡單通俗的理解交叉熵損失函數(shù)?
如何簡單通俗的理解交叉熵損失函數(shù)?
2020-07-24
收藏

前面小編給大家簡單介紹過損失函數(shù),今天給大家繼續(xù)分享交叉熵損失函數(shù),直接來看干貨吧。

一、交叉熵損失函數(shù)概念

交叉熵損失函數(shù)CrossEntropy Loss,是分類問題中經(jīng)常使用的一種損失函數(shù)。公式為:

接下來了解一下交叉熵:交叉熵Cross Entropy,是Shannon信息論中一個重要概念,主要用于度量兩個概率分布間的差異性信息。在信息論中,交叉熵是表示兩個概率分布p,q,其中p表示真實分布,q表示非真實分布,在相同的一組事件中,其中,用非真實分布q來表示某個事件發(fā)生所需要的平均比特數(shù)。

交叉熵的計算方式如下:

交叉熵可在機器學習中作為損失函數(shù),p代表真實標記的分布,q則代表訓練后的模型的預測標記分布,交叉熵損失函數(shù)可以衡量p與q的相似性。交叉熵作為損失函數(shù)還有一個好處是:使用sigmoid函數(shù)在梯度下降時,可以避免均方誤差損失函數(shù)學習速率下降的問題,這是因為學習速率是能夠被輸出的誤差所控制的。

二、交叉熵損失函原理

一般我們學習交叉熵損失函數(shù)是在二元分類情況下,就比如邏輯回歸「Logistic Regression」、神經(jīng)網(wǎng)絡「Neural Network」等,其真實樣本的標簽為 [0.1],分別表示負類和正類。模型的最后通常會經(jīng)過一個 Sigmoid 函數(shù),輸出一個概率值,這個概率值反映了預測為正類的可能性:概率越大,可能性越大。

其中s是模型上一層的輸出,sigmoid函數(shù)有這樣的特點:s = 0 時,g(s) = 0.5; s >> 0 時,g ≈ 1.s << 0 時,g ≈ 0.顯然,g(s) 將前一級的線性輸出映射到[0. 1]之間的數(shù)值概率上,這里g(s)就是交叉熵公式中的模型預測輸出。

預測輸出也就是, Sigmoid 函數(shù)的輸出,表示當前樣本標簽為 1 的概率:

y^=P(y=1|x)

那么,當前樣本標簽為 0 的概率就可以表示為:

1?y^=P(y=0|x)

從極大似然性的角度考慮,將上面兩種情況進行整合:

也就是:

當真實樣本標簽 y = 0 時,上面式子第一項就為 1.概率等式轉化為:

P(y=0|x)=1?y^

當真實樣本標簽 y = 1 時,上面式子第二項就為 1.概率等式轉化為:

P(y=1|x)=y^

這兩種情況下的概率表達式跟原來的完全相同,只是將兩種情況進行了整合。

接下來我們重點看一下整合之后的概率表達式,概率 P(y|x) 越大越好。因為 log 運算并不會影響函數(shù)本身的單調性,所以 將log 函數(shù)引入P(y|x)。于是就有:

log P(y|x)=log(y^y?(1?y^)1?y)=ylog y^+(1?y)log(1?y^)

log P(y|x) 越大越好,反過來說也就是,只需要 log P(y|x) 的負值 -log P(y|x) 越小就可以了。引入損失函數(shù),而且使得 Loss = -log P(y|x)即可。那么就能得到損失函數(shù)為:

如果是計算N個樣本的總損失函數(shù)的情況,則只需要將N個Loss疊加起來

三、交叉熵損失函數(shù)的優(yōu)缺點分析

1.使用邏輯函數(shù)得到概率,并結合交叉熵當損失函數(shù)時,當模型效果差的時,學習速度較快,模型效果好時,學習速度會變慢。

2.采用了類間競爭機制,比較擅長于學習類間的信息,但是只關心對于正確標簽預測概率的準確性,而忽略了其他非正確標簽的差異,從而導致學習到的特征比較散。

以上就是小編今天跟大家分享的關于交叉熵損失函數(shù)概念和原理的相關介紹,希望對于大家有所幫助。


相信讀完上文,你對算法已經(jīng)有了全面認識。若想進一步探索機器學習的前沿知識,強烈推薦機器學習半監(jiān)督學習課程。

學習入口:https://edu.cda.cn/goods/show/3826?targetId=6730&preview=0
涵蓋核心算法,結合多領域實戰(zhàn)案例,還會持續(xù)更新,無論是新手入門還是高手進階都很合適。趕緊點擊鏈接開啟學習吧!

數(shù)據(jù)分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數(shù)據(jù)分析師考試動態(tài)
數(shù)據(jù)分析師資訊
更多

OK
客服在線
立即咨詢
客服在線
立即咨詢
') } function initGt() { var handler = function (captchaObj) { captchaObj.appendTo('#captcha'); captchaObj.onReady(function () { $("#wait").hide(); }).onSuccess(function(){ $('.getcheckcode').removeClass('dis'); $('.getcheckcode').trigger('click'); }); window.captchaObj = captchaObj; }; $('#captcha').show(); $.ajax({ url: "/login/gtstart?t=" + (new Date()).getTime(), // 加隨機數(shù)防止緩存 type: "get", dataType: "json", success: function (data) { $('#text').hide(); $('#wait').show(); // 調用 initGeetest 進行初始化 // 參數(shù)1:配置參數(shù) // 參數(shù)2:回調,回調的第一個參數(shù)驗證碼對象,之后可以使用它調用相應的接口 initGeetest({ // 以下 4 個配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺檢測極驗服務器是否宕機 new_captcha: data.new_captcha, // 用于宕機時表示是新驗證碼的宕機 product: "float", // 產(chǎn)品形式,包括:float,popup width: "280px", https: true // 更多配置參數(shù)說明請參見:http://docs.geetest.com/install/client/web-front/ }, handler); } }); } function codeCutdown() { if(_wait == 0){ //倒計時完成 $(".getcheckcode").removeClass('dis').html("重新獲取"); }else{ $(".getcheckcode").addClass('dis').html("重新獲取("+_wait+"s)"); _wait--; setTimeout(function () { codeCutdown(); },1000); } } function inputValidate(ele,telInput) { var oInput = ele; var inputVal = oInput.val(); var oType = ele.attr('data-type'); var oEtag = $('#etag').val(); var oErr = oInput.closest('.form_box').next('.err_txt'); var empTxt = '請輸入'+oInput.attr('placeholder')+'!'; var errTxt = '請輸入正確的'+oInput.attr('placeholder')+'!'; var pattern; if(inputVal==""){ if(!telInput){ errFun(oErr,empTxt); } return false; }else { switch (oType){ case 'login_mobile': pattern = /^1[3456789]\d{9}$/; if(inputVal.length==11) { $.ajax({ url: '/login/checkmobile', type: "post", dataType: "json", data: { mobile: inputVal, etag: oEtag, page_ur: window.location.href, page_referer: document.referrer }, success: function (data) { } }); } break; case 'login_yzm': pattern = /^\d{6}$/; break; } if(oType=='login_mobile'){ } if(!!validateFun(pattern,inputVal)){ errFun(oErr,'') if(telInput){ $('.getcheckcode').removeClass('dis'); } }else { if(!telInput) { errFun(oErr, errTxt); }else { $('.getcheckcode').addClass('dis'); } return false; } } return true; } function errFun(obj,msg) { obj.html(msg); if(msg==''){ $('.login_submit').removeClass('dis'); }else { $('.login_submit').addClass('dis'); } } function validateFun(pat,val) { return pat.test(val); }