-
當(dāng)前位置:首頁 > 創(chuàng)意學(xué)院 > 技術(shù) > 專題列表 > 正文
神經(jīng)網(wǎng)絡(luò)二分類問題(神經(jīng)網(wǎng)絡(luò)二分類問題數(shù)據(jù)的分類)
大家好!今天讓創(chuàng)意嶺的小編來大家介紹下關(guān)于神經(jīng)網(wǎng)絡(luò)二分類問題的問題,以下是小編對此問題的歸納整理,讓我們一起來看看吧。
開始之前先推薦一個非常厲害的Ai人工智能工具,一鍵生成原創(chuàng)文章、方案、文案、工作計劃、工作報告、論文、代碼、作文、做題和對話答疑等等
只需要輸入關(guān)鍵詞,就能返回你想要的內(nèi)容,越精準(zhǔn),寫出的就越詳細(xì),有微信小程序端、在線網(wǎng)頁版、PC客戶端
官網(wǎng):https://ai.de1919.com。
創(chuàng)意嶺作為行業(yè)內(nèi)優(yōu)秀的企業(yè),服務(wù)客戶遍布全球各地,如需了解SEO相關(guān)業(yè)務(wù)請撥打電話175-8598-2043,或添加微信:1454722008
本文目錄:
一、請問二類問題分類用神神經(jīng)網(wǎng)絡(luò)還是SVM算法好,有十二維的數(shù)據(jù),不能線性分類。
SVM好。BP的容易陷入局部最小解,SVM不存在這個問題。數(shù)據(jù)維數(shù)不是問題,關(guān)鍵是數(shù)據(jù)的多少。
二、我用邏輯回歸寫的模型處理圖像二分類問題正確率只有50%這正常嗎。。。怎么改進?
像素作為數(shù)據(jù)不適合做線性分類問題
在神經(jīng)網(wǎng)絡(luò)沒大范圍使用前,圖像要么單獨提取特征,要么就svm升緯,直接做分類肯定不行
三、神經(jīng)網(wǎng)絡(luò)的分類
人類大腦的思維分為抽象(邏輯)思維、形象(直觀)思維和靈感(頓悟)思維三種基本方式。
邏輯性的思維是指根據(jù)邏輯規(guī)則進行推理的過程;它先將信息化成概念,并用符號表示,然后,根據(jù)符號運算按串行模式進行邏輯推理;這一過程可以寫成串行的指令,讓計算機執(zhí)行。然而,直觀性的思維是將分布式存儲的信息綜合起來,結(jié)果是忽然間產(chǎn)生想法或解決問題的辦法。這種思維方式的根本之點在于以下兩點:1.信息是通過神經(jīng)元上的興奮模式分布儲在網(wǎng)絡(luò)上;2.信息處理是通過神經(jīng)元之間同時相互作用的動態(tài)過程來完成的。
人工神經(jīng)網(wǎng)絡(luò)就是模擬人思維的第二種方式。這是一個非線性動力學(xué)系統(tǒng),其特色在于信息的分布式存儲和并行協(xié)同處理。雖然單個神經(jīng)元的結(jié)構(gòu)極其簡單,功能有限,但大量神經(jīng)元構(gòu)成的網(wǎng)絡(luò)系統(tǒng)所能實現(xiàn)的行為卻是極其豐富多彩的。
四、神經(jīng)網(wǎng)絡(luò):損失函數(shù)詳解
http://blog.csdn.net/google19890102/article/details/50522945
交叉熵代價函數(shù)(Cross-entropy cost function)是用來衡量人工神經(jīng)網(wǎng)絡(luò)(ANN)的預(yù)測值與實際值的一種方式。與二次代價函數(shù)相比,它能更有效地促進ANN的訓(xùn)練。在介紹交叉熵代價函數(shù)之前,本文先簡要介紹二次代價函數(shù),以及其存在的不足。
1. 二次代價函數(shù)的不足
ANN的設(shè)計目的之一是為了使機器可以像人一樣學(xué)習(xí)知識。人在學(xué)習(xí)分析新事物時,當(dāng)發(fā)現(xiàn)自己犯的錯誤越大時,改正的力度就越大。比如投籃:當(dāng)運動員發(fā)現(xiàn)自己的投籃方向離正確方向越遠(yuǎn),那么他調(diào)整的投籃角度就應(yīng)該越大,籃球就更容易投進籃筐。同理, 我們希望:ANN在訓(xùn)練時,如果預(yù)測值與實際值的誤差越大,那么在 反向傳播訓(xùn)練 的過程中,各種參數(shù)調(diào)整的幅度就要更大,從而使訓(xùn)練更快收斂。 然而,如果使用二次代價函數(shù)訓(xùn)練ANN,看到的實際效果是,如果誤差越大,參數(shù)調(diào)整的幅度可能更小,訓(xùn)練更緩慢。
以一個神經(jīng)元的二類分類訓(xùn)練為例,進行兩次實驗(ANN常用的激活函數(shù)為sigmoid函數(shù),該實驗也采用該函數(shù)):輸入一個相同的樣本數(shù)據(jù)x=1.0(該樣本對應(yīng)的實際分類y=0);兩次實驗各自隨機初始化參數(shù),從而在各自的第一次前向傳播后得到不同的輸出值,形成不同的代價(誤差):
實驗1:第一次輸出值為0.82
實驗2:第一次輸出值為0.98
在實驗1中,隨機初始化參數(shù),使得第一次輸出值為0.82(該樣本對應(yīng)的實際值為0);經(jīng)過300次迭代訓(xùn)練后,輸出值由0.82降到0.09,逼近實際值。而在實驗2中,第一次輸出值為0.98,同樣經(jīng)過300迭代訓(xùn)練,輸出值只降到了0.20。
從兩次實驗的代價曲線中可以看出: 實驗1的代價隨著訓(xùn)練次數(shù)增加而快速降低,但實驗2的代價在一開始下降得非常緩慢;直觀上看,初始的誤差越大,收斂得越緩慢 。
其實,誤差大導(dǎo)致訓(xùn)練緩慢的原因在于使用了二次代價函數(shù)。二次代價函數(shù)的公式如下:
其中,C表示代價,x表示樣本,y表示實際值,a表示輸出值,n表示樣本的總數(shù)。為簡單起見,同樣一個樣本為例進行說明,此時二次代價函數(shù)為:
目前訓(xùn)練ANN最有效的 算法 是 反向傳播算法 。簡而言之,訓(xùn)練ANN就是通過反向傳播代價,以減少代價為導(dǎo)向,調(diào)整參數(shù)。參數(shù)主要有:神經(jīng)元之間的連接權(quán)重w,以及每個神經(jīng)元本身的偏置b。調(diào)參的方式是采用梯度下降算法(Gradient
descent),沿著梯度方向調(diào)整參數(shù)大小。w和b的梯度推導(dǎo)如下:
其中,z表示神經(jīng)元的輸入,
表示激活函數(shù)。從以上公式可以看出,w和b的梯度跟激活函數(shù)的梯度成正比,激活函數(shù)的梯度越大,w和b的大小調(diào)整得越快,訓(xùn)練收斂得就越快。而神經(jīng)網(wǎng)絡(luò)常用的激活函數(shù)為sigmoid函數(shù),該函數(shù)的曲線如下所示:
如圖所示, 實驗2的初始輸出值(0.98)對應(yīng)的梯度明顯小于實驗1的輸出值(0.82),因此實驗2的參數(shù)梯度下降得比實驗1慢。這就是初始的代價(誤差)越大,導(dǎo)致訓(xùn)練越慢的原因。 與我們的期望不符,即:不能像人一樣,錯誤越大,改正的幅度越大,從而學(xué)習(xí)得越快。
可能有人會說,那就選擇一個梯度不變化或變化不明顯的激活函數(shù)不就解決問題了嗎?圖樣圖森破,那樣雖然簡單粗暴地解決了這個問題,但可能會引起其他更多更麻煩的問題。而且,類似sigmoid這樣的函數(shù)(比如tanh函數(shù))有很多優(yōu)點,非常適合用來做激活函數(shù),具體請自行g(shù)oogle之。
2. 交叉熵代價函數(shù)
換個思路,我們不換激活函數(shù),而是換掉二次代價函數(shù),改用交叉熵代價函數(shù):
其中,x表示樣本,n表示樣本的總數(shù)。那么,重新計算參數(shù)w的梯度:
其中(具體證明見附錄):
因此,w的梯度公式中原來的
被消掉了;另外,該梯度公式中的
表示輸出值與實際值之間的誤差。所以,當(dāng)誤差越大,梯度就越大,參數(shù)w調(diào)整得越快,訓(xùn)練速度也就越快。同理可得,b的梯度為:
實際情況證明,交叉熵代價函數(shù)帶來的訓(xùn)練效果往往比二次代價函數(shù)要好。
3. 交叉熵代價函數(shù)是如何產(chǎn)生的?
以偏置b的梯度計算為例,推導(dǎo)出交叉熵代價函數(shù):
在第1小節(jié)中,由二次代價函數(shù)推導(dǎo)出來的b的梯度公式為:
為了消掉該公式中的
,我們想找到一個代價函數(shù)使得:
即:
對兩側(cè)求積分,可得:
而這就是前面介紹的交叉熵代價函數(shù)。
附錄:
sigmoid函數(shù)為:
可證:
更系統(tǒng)的回答:
在之前的內(nèi)容中,我們用的損失函數(shù)都是平方差函數(shù),即
C=12(a−y)2
其中y是我們期望的輸出,a為神經(jīng)元的實際輸出(a=σ(Wx+b)。也就是說,當(dāng)神經(jīng)元的實際輸出與我們的期望輸出差距越大,代價就越高。想法非常的好,然而在實際應(yīng)用中,我們知道參數(shù)的修正是與∂C∂W和∂C∂b成正比的,而根據(jù)
∂C∂W=(a−y)σ′(a)xT∂C∂b=(a−y)σ′(a)
我們發(fā)現(xiàn)其中都有σ′(a)這一項。因為sigmoid函數(shù)的性質(zhì),導(dǎo)致σ′(z)在z取大部分值時會造成飽和現(xiàn)象,從而使得參數(shù)的更新速度非常慢,甚至?xí)斐呻x期望值越遠(yuǎn),更新越慢的現(xiàn)象。那么怎么克服這個問題呢?我們想到了交叉熵函數(shù)。我們知道,熵的計算公式是
H(y)=−∑iyilog(yi)
而在實際操作中,我們并不知道y的分布,只能對y的分布做一個估計,也就是算得的a值, 這樣我們就能夠得到用a來表示y的交叉熵
H(y,a)=−∑iyilog(ai)
如果有多個樣本,則整個樣本的平均交叉熵為
H(y,a)=−1n∑n∑iyi,nlog(ai,n)
其中n表示樣本編號,i表示類別編。 如果用于logistic分類,則上式可以簡化成
H(y,a)=−1n∑nylog(a)+(1−y)log(1−a)
與平方損失函數(shù)相比,交叉熵函數(shù)有個非常好的特質(zhì),
H′=1n∑(an−yn)=1n∑(σ(zn)−yn)
可以看到其中沒有了σ′這一項,這樣一來也就不會受到飽和性的影響了。當(dāng)誤差大的時候,權(quán)重更新就快,當(dāng)誤差小的時候,權(quán)重的更新就慢。這是一個很好的性質(zhì)。
3.總結(jié)
當(dāng)我們用sigmoid函數(shù)作為神經(jīng)元的激活函數(shù)時,最好使用交叉熵代價函數(shù)來替代方差代價函數(shù),以避免訓(xùn)練過程太慢。
不過,你也許會問,為什么是交叉熵函數(shù)?導(dǎo)數(shù)中不帶σ′(z)項的函數(shù)有無數(shù)種,怎么就想到用交叉熵函數(shù)?這自然是有來頭的,更深入的討論就不寫了,少年請自行了解。
另外,交叉熵函數(shù)的形式是−[ylna+(1−y)ln(1−a)]而不是
−[alny+(1−a)ln(1−y)],為什么?因為當(dāng)期望輸出的y=0時,lny沒有意義;當(dāng)期望y=1時,ln(1-y)沒有意義。而因為a是sigmoid函數(shù)的實際輸出,永遠(yuǎn)不會等于0或1,只會無限接近于0或者1,因此不存在這個問題。
4.還要說說:log-likelihood cost
對數(shù)似然函數(shù)也常用來作為softmax回歸的代價函數(shù),在上面的討論中,我們最后一層(也就是輸出)是通過sigmoid函數(shù),因此采用了交叉熵代價函數(shù)。而 深度學(xué)習(xí) 中更普遍的做法是將softmax作為最后一層,此時常用的是代價函數(shù)是log-likelihood cost。
In fact, it’s useful to think of a softmax output layer with
log-likelihood cost as being quite similar to a sigmoid output layer
with cross-entropy cost。
其實這兩者是一致的,logistic回歸用的就是sigmoid函數(shù),softmax回歸是logistic回歸的多類別推廣。log-likelihood代價函數(shù)在二類別時就可以化簡為交叉熵代價函數(shù)的形式。
補充一個困擾我很久的問題:
https://mp.weixin.qq.com/s?__biz=MzI1NTE4NTUwOQ==&mid=502840969&idx=1&sn=05b8d27dccf6efc3f85f47a74669e1c9#rd
總結(jié):
softmax 損失函數(shù),適合單標(biāo)簽多分類問題
歐式損失函數(shù)(就是均方誤差),適合實數(shù)值回歸問題
sigmod 交叉熵,適合多標(biāo)簽分類問題,這里上面說是主要用在二分類,暫時理解為多標(biāo)簽二分類問題。
contrastive loss,適合深度測度學(xué)習(xí),就是siamese網(wǎng)絡(luò)的相似度學(xué)習(xí)。
以上就是關(guān)于神經(jīng)網(wǎng)絡(luò)二分類問題相關(guān)問題的回答。希望能幫到你,如有更多相關(guān)問題,您也可以聯(lián)系我們的客服進行咨詢,客服也會為您講解更多精彩的知識和內(nèi)容。
推薦閱讀:
神經(jīng)網(wǎng)絡(luò)分類器原理(神經(jīng)網(wǎng)絡(luò)分類器原理圖解)
神經(jīng)網(wǎng)絡(luò)寫論文難嗎(神經(jīng)網(wǎng)絡(luò)論文題目)
全國神經(jīng)科醫(yī)院排行榜(全國神經(jīng)科醫(yī)院排行榜最新)
別墅庭院景觀設(shè)計的背景(別墅庭院景觀設(shè)計的背景介紹)