深蓝学院的深度学习理论与实践课程:第四章
1、模型與風險
在模型評價時會有理想情況和現實情況(現實情況分為兩種)
在學習過程中最重要的是損失函數:
還有其他損失函數。
損失函數是用來量化模型預測和真實標簽之間的差異。比如說我們模型預測出來是,而我們真實數據是,實際上損失函數就是來衡量他們之間的一個差異。
2、偏差與方差
偏差(Bias):是指一個模型在不同訓練集上的平均性能和最優模型的差異,可以用來衡量一個模型的擬合能力。(偏差表示離你最優的模型離得是否遠)
一般偏差越小,模型和最優模型之間的差距就越小,即模型的擬合能力越強。
方差:是指一個模型在不同訓練集上的差異,可以用來衡量一個模型是否容易過擬合。
方差越大代表模型對不同數據集的分布學習的越好(過擬合),導致不同數據集訓練出來的模型與模型的平均期望的差距越大。(所以一般是偏差小,方差也比較小這種是比較好的)
3、評價指標
怎么對模型進行一些評價?
3.1訓練集的劃分:
一般將數據集劃分為訓練集(train)、驗證集(validation)、測試集(test)。
第一種:是將整個的數據集D全部當做是訓練集,然后用這個訓練集訓練模型,用訓練集驗證模型。(最后選擇訓練集最小的誤差模型)
第一種造成的影響:可能在整個的訓練集上我們的模型訓練的比較好,那就容易造成過擬合,因為我們沒有在這種未知的數據集上來去測試我們模型的他的泛化能力,所以說當來了一些未知的數據,那么整個模型的表現 就比較差,容易造成過擬合。
第二種:是將數據集D隨機的分為訓練集和測試集,訓練集訓練模型,測試集驗證模型。(有的模型比如說用3層的在訓練集上可能表現的效果比較好,他在測試集上可能表現的比較差;假如我用一個兩層的網絡,他在訓練集上可能沒有3層網絡表現的好,但是他在測試集上卻表現的比較好;這里測試集所扮演的角色就是來驗證沒出現的這種情況下我的模型對這種未出現的數據他的一個預測能力,所以這種比第一種方法要好一些。)
第三種:是將數據集D分為訓練集,驗證集,測試集,訓練集訓練模型,驗證集驗證模型,根據情況不斷的調整模型,使得調整出來的模型在驗證集上他的效果是最好,然后我再用我這個訓練集和驗證集共同訓練出一個最終的模型,最后用測試集評估最終的模型(因為你整個的數據劃分,這個測試集是在你整個模型訓練當中是沒有出現過的,所以這樣的話最終的評估相當于是在你真實的情況下對模型進行了一個評估)。
目前第三種方法是最好的評估方法,相當于對數據集進行了最好的劃分。
一般是采用交叉驗證的方式,將原始數據集平均分為K組不重復的子集,每次選擇K-1組子集作為訓練集,剩下一組子集作為驗證集(這種方法在機器學習當中用的比較多)。(這種相當于我經過K次實驗得到了K個模型,將K個模型在各自驗證集上的錯誤率的平均作為分類器的評價)
我們最后去衡量整個模型的能力是在測試集上給定一些方法,使用的方法或者說是指標如下:
針對于多分類情況是說明,類別C
在介紹指標前必須先了解“混淆矩陣”:
混淆矩陣
True Positive(真正例,TP):將正類預測為正類數(意思就是實際上他是類別C,那我預測的也是類別C)
True Negative(真負例,TN):將負類預測為負類數(意思就是實際上他的類別不是C,我預測出來的也不是C)
False Positive(假正例,FP):將負類預測為正類數誤報 (Type I error)(意思就是實際上我的類別不是C,但是我預測出來是C)
False Negative(假負例,FN):將正類預測為負類數→漏報 (Type II error)(意思就是實際上我真實的類別是C,但是我預測出來不是C)
(1)準確率(Accuracy)
準確率是我們最常見的評價指標,而且很容易理解,就是被分對的樣本數除以所有的樣本數,通常來說,正確率越高,分類器越好。
準確率確實是一個很好很直觀的評價指標,但是有時候準確率高并不能代表一個算法就好。比如某個地區某天地震的預測,假設我們有一堆的特征作為地震分類的屬性,類別只有兩個:0:不發生地震、1:發生地震。一個不加思考的分類器,對每一個測試用例都將類別劃分為0,那那么它就可能達到99%的準確率,但真的地震來臨時,這個分類器毫無察覺,這個分類帶來的損失是巨大的。為什么99%的準確率的分類器卻不是我們想要的,因為這里數據分布不均衡,類別1的數據太少,完全錯分類別1依然可以達到很高的準確率卻忽視了我們關注的東西。再舉個例子說明下。在正負樣本不平衡的情況下,準確率這個評價指標有很大的缺陷。比如在互聯網廣告里面,點擊的數量是很少的,一般只有千分之幾,如果用acc,即使全部預測成負類(不點擊)acc也有 99% 以上,沒有意義。因此,單純靠準確率來評價一個算法模型是遠遠不夠科學全面的。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??(式子中的表示是否等于,相等就為真是1,;不等就為0)計算的是我當前的預測結果準不準(就是和實際的這樣一個結果是不是相等)
真實樣本的標簽是,預測結果是,預測對的就是圖中紅色框的,所以說整個的準確率就是60%。
用混淆矩陣表達的公式就是:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
(2)錯誤率(Error rate)
錯誤率公式就是:(1減去準確率)。錯誤率則與準確率相反,描述被分類器錯分的比例,error rate = (FP+FN)/(TP+TN+FP+FN),對某一個實例來說,分對與分錯是互斥事件,所以accuracy =1 - error rate。
用混淆矩陣表達的公式就是:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
準確率和錯誤率是在所有類別上整體的性能平均,由于數據類別的分布的不平衡性,例如正負比例為9:1(類似與上邊的發生地震和不發生地震,很顯然發生地震的數量微乎其微),那么模型只需要將所有樣本全部分類為正例,也能獲得90%的準確率。(所以整個的準確率對于這種類別分布不平衡是比較敏感的)。如果我們希望對每個類別都能進行這種性能的評估,就需要計算精確率和召回率。
(3)精確率(Precision)/查準率/精度
精確率也叫精度或叫查準率,(類別C的精確率是所有預測為C的樣本中,預測正確的比例)
- 所謂查準率就是:所有預測為正的樣本里,真實正樣本所占比重。(自己買西瓜的話希望甜瓜的Precision高一點(我們買到的是預測為1(甜瓜)的樣本,希望有限的買瓜次數下甜瓜更多)。)
(4)召回率(Recall)/查全率
- 所謂查全率就是:所有真實的正樣本里,預測為正的樣本所占比重。(醫學模型判斷癌癥病人我們希望Recall高一點(無病診斷為有病去治療總比漏掉癌癥病人好(所有真實患病的人里,檢測出患病)))
(5)F值(F Measure)
F值是一個綜合指標,是將精確率和召回率同時進行計算,計算的是一個調和的平均。用參數β來作為代表,到底是精確率占得更重要還是召回率占的更多一些。一般使用的是(相當于是β等于1)
F值是一個綜合指標,為精確率和召回率的調和平均:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
(6)宏平均和微平均
為了計算分類算法在所有類別上的總體精確率、召回率和值,經常使用兩種平均方法,分別稱為宏平均和微平均。(之前討論的精確率、召回率和值是在類別C上,而實際上他是從1到C的整個的C個分類)
代入計算(此處的N即是C)
宏平均是多個分類F1值相加,而微平均是多個F1分子分母分別相加。
(7)微平均
還有其他的一些評價指標:
對TPR(真正例率) 與 FPR(反正例率)的理解:TPR和FPR分別描述了在正負樣本里(正樣本=TP+FN,負樣本=FP+TN),TP和FP樣本所占的比例。
真正例率 TPR = TP / (TP + FN)表示,預測為正例且真實情況為正例的,占所有真實情況中正例的比率。
假正例率 FPR = FP / (TN + FP)表示的,實際值是負例數據,預測錯誤的百分比。
參考鏈接:https://blog.csdn.net/liuweiyuxiang/article/details/81259492
其他評價指標
計算速度:分類器訓練和預測需要的時間;
魯棒性:處理缺失值和異常值的能力;
可擴展性:處理大數據集的能力;
可解釋性:分類器的預測標準的可理解性,像決策樹產生的規則就是很容易理解的,而神經網絡的一堆參數就不好理解,我們只好把它看成一個黑盒子。
參考資料:https://zhuanlan.zhihu.com/p/78182116
4、網絡優化
鞍點:在某一個維度上他是全局最小點,在另一個維度上他又是全局最大的點。(他就想馬鞍一樣,我們pigu所坐的那個點,他在前后是最小點,但是左右上是最大點)(因為此點的導數是處處為0的,所以在優化的時候就陷入了鞍點就不能再繼續優化了,實際上 你如果向左或者向右再稍微走一小步,就能繼續進行優化)
梯度下降算法見鏈接:https://blog.csdn.net/m0_37957160/article/details/113625507
網絡優化從三個方面:1、批量大小;2、學習率;3、梯度估計
2、學習率調整
2.1學習率衰減
逆時衰減相當于我在某t次,相當于加上一個分母,這樣等于乘上一個比較小的數。
指數衰減因為你要乘的數是一定要小于1的,所以小于1的t次方是逐漸衰減的。
自然指數衰減
余弦衰減因為在0到1之間,再乘以π相當于0到達倒π,cos0=1,cosπ=0,所以他是一個1到0之間的cos函數,再加上1相當于2到0,再乘以相當于還是從1到0,所以還是衰減的。
2.2學習率的預熱
?
總結
以上是生活随笔為你收集整理的深蓝学院的深度学习理论与实践课程:第四章的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 卷积神经网络CNN---权值共享
- 下一篇: 机器学习中的聚类算法(1):k-mean