Machine Learning學習日記— Coursera篇(Week 6.2 ... - Medium

文章推薦指數: 80 %
投票人數:10人

大綱. Diagnosing Bias vs. Variance; Regularization and Bias/Variance; Learning Curves; Deciding What to Do Next Revisited ... GetunlimitedaccessOpeninappHomeNotificationsListsStoriesWriteMachineLearning學習日記—Coursera篇(Week6.2):DiagnosingBiasvs.Variance,RegularizationandBias/Variance,LearningCurves,DecidingWhattoDoNextRevisitedBiasvs.Variance回目錄:Coursera章節上一篇:EvaluatingaLearningAlgorithm下一篇:BuildingaSpamClassifier大綱DiagnosingBiasvs.VarianceRegularizationandBias/VarianceLearningCurvesDecidingWhattoDoNextRevisited1.DiagnosingBiasvs.Variance首先要了解的就是所謂Bias跟Variance所代表的問題是什麼:Bias即所謂的Underfitting,因為參數過少連Trainingset都會有頗大的預測誤差Variance即所謂的Overfitting,因為參數過多導致過度符合Trainingset的資料特性,使得其無法預測較為普遍的資料集那麼今天如果我們想要畫出一張圖形來秀出error值跟參數間的關係呢?從圖中可以看到當參數增加時,會使得用來訓練的Trainingset的預測落差漸漸趨近於0,但是用來表示cross-validation的線條,會因為參數增加造成的overfitting的問題,使得其預測誤差在某個臨界點後便開始急遽的上升從下圖中可以很清楚地看出,當參數很少時(Bias),cv(crossvalidation)地預測落差會跟trainingset的預測落差都是差不多的,都很大,即Underfitting而當參數非常多時(Variance),cv的預測落差會很大,而trainingset的預測落差卻剛好相反:非常小,即Overfittingpolynomial:多項式的隨堂練習misclassification:錯誤歸類/similarly:相似的Ans:2.RegularizationandBias/Variance而為了解決Overfitting的問題,在先前的文章中有提到可以使用Regularization的方法來處理,但是這還存在一個問題:我們的λ要用多大呢?假設我們要使用Regularization來解決Linearregression不同的λ將可能造成不同的問題:若是λ很大的話,將會使得所有的參數都變得很小而沒什麼影響力,這會造成Underfitting的問題;若是λ很小的則就像是λ根本沒加進去一樣,仍然沒解決Overfitting的問題因此我們會採用上一篇文章提到的:Trainingset,CrossValidationset跟Testset的概念,也就是我們藉由代入不同的λ來訓練模型,再將crossvalidation的資料丟入這些不同λ的模型得出不同的誤差值,最後再從中得到最好的λ、模型(最小的誤差值)(say):這邊是然而這邊有一點必須特別注意:J_train(θ),J_cv(θ),J_test(θ)都是跟之前一樣沒有將regularization項目涵括進來的這是因為若是我們把regularization加進來的話,就不會得到我們真正想要知道的預測誤差,那些regularization的項目不過只是用來協助我們找到最適當θ值的工具而已那些regularization的項目雖然不會在我們繪圖中出現,但實際上其在實際訓練資料集(Trainingset)中,是有實際在運行的你可以想像為:你不會把彩排時候發生的狀況一律搬到舞台上演出最後若是將λ與J_train,J_cv做一個比較的圖表:當λ由小變大時,J_train便會不斷的上升(如果把regularization項目考慮進來的話,J_train會呈現一個變大後變小再變大的曲線),而J_cv則會因為隨著接近正確的λ值而變小,再隨著遠離正確的λ值而變大。

當λ極大時,會有著Underfitting的現象,即bias;當λ極小時,等於沒有,則不會改善原本Overfitting的現象,即variance隨堂練習regularized:正規化的/plot:繪出Ans:3.LearningCurves我們可以從學習曲線中來得知一些極為有用的線索,那麼什麼是學習曲線呢?學習曲線為一個觀察隨著訓練樣本數(m)不斷增加,J_train跟J_cv的變化圖形(這邊樣本數增加指的是J_train,J_cv會維持原樣):假設在預測模型是一個已經調整到非常不錯的狀態,那麼我們可以看到隨著樣本數增加,J_train也會緩緩地上升,而J_cv會因為參數漸漸地精準起來而隨之下降如果模型有著Underfitting(bias)的問題時呢?我們可以發現J_train初期會大幅上升,到一定程度後就趨於緩慢,而J_cv則會在下降到一定程度後便幾乎不再下降,而兩者趨同Underfitting的模型有幾個特點:J_train與J_cv近似、都是在一個很高的誤差而我們也可推測出,就算訓練樣本數不斷增加,對於J_cv的改善也是極其的有限,因此,對於bias問題來說,增加訓練樣本數並不是一個合理的選擇那麼如果模型有著Overfitting(variance)的問題時呢?islikelytohelp:有可能有幫助的J_train會持續的緩慢上升,而J_cv會持續地緩慢下降。

Overfitting模型的特點是:J_cv的誤差將明顯大於J_train我們可以推測出,當訓練樣本數持續增加後,將會漸漸改善J_cv的預測準度,因此對於variance問題來說,增加樣本數是一個可行的解決辦法你可能會問:那為什麼bias就不是呢?你可以想像:bias就像是一個不求長進的模型(也因此不會有進步的可能),相反地,variance是一個自我要求極高的模型,當這個模型吹毛求疵的算出了幾乎全部的預測後,那麼代表它離完美的預測也不遠了4.DecidingWhattoDoNextRevisited回到一開始的問題:當今天我們的模型發生令人無法接受的誤差時,我們有哪些解決辦法呢?additional:額外的Andrew將要解決的問題歸類為Highvariance與Highbias等兩種問題。

若要解決Highvariance,也就是Overfitting:更多的訓練樣本、少一點feature、加大λ都是可行的辦法而若是要解決Highbias,即Underfitting:更多的feature、增加多項式、降低λ都是可行的辦法回到NeuralNetwork上面,當network的結構越為簡單時,代表其越有著Underfitting的問題;而當network的結構越為複雜時,代表其除了運算成本很高外,還可能有著Overfitting的問題,也因此可以適時導入Regularization來解決prone:傾向/Computationally:計算地/address:解決隨堂練習complex:複雜的/sufferingfrom:遭到...Ans:MorefromPandora123FollowLovepodcastsoraudiobooks?Learnonthegowithournewapp.TryKnowableAboutHelpTermsPrivacyGettheMediumappGetstartedPandora123439FollowersFollowMorefromMediumMs.IbrahimArtificialintelligenceinhealthcare-wherewearetodayandwhattomorrowholdsCHARANPOOJARYArtificialIntelligenceInFoodIndustryAndAccommodationAdofosaminMLearning.aiNoMoreHeavyTrafficwithNoTrafficSureshThodetyHowtoDetectDebrisinFoodUsingDeepLearning?HelpStatusWritersBlogCareersPrivacyTermsAboutKnowable



請為這篇文章評分?