鐵人賽第五天!這五天真的快掛了@@ 一邊忙著學校上課 一邊還要固定每天的學習時間,但是時間是人擠出來的,我相信這樣不間斷學習,30天過後我一定會學到很多,之後再來100 days challenge! 加油!
本文:
昨天停在random forest,先前情提要一下,random forests其實是一種ensemble的方法,ensemble的概念非常直覺,也就是集結所有weak learning models,讓他變成一個strong learning models,有點團結力量大的概念.
之前提到的Decision tree 就是一個weak learner,我們把tree變成forests,得到一個強力的機器學習,因此可以拿來預測.如果是分類的問題他可以將forests中所有tree的output進行投票選出可能性最高的.如果是迴歸問題,可以看最大值,平均值等等......
為了要提高泛化能力(generalization),我們可以從全部樣本中隨機抽取樣本,bagging.
一般來說單一的predictor 在小的data set中訓練得到的bias較大,但是使用bagging可以提升bias和varience.另外驗證泛化能力有一個非常好的方法,也就是validation set的概念,但是跟先從training data set 中切出一部份不同,是使用 out of bagged data來做.這跟k-fold validation有點相似.
因此我們是否會不斷增加forests中的trees?當然不會,我們會使用validation來預測,看看model的能力,進而做早期停止(early stopping),在forests中增加tree,整體model就變得越複雜,能力可能越強大,但也可能是overfitting data而已,如同神經網路一樣.
所以好的泛化應該達到low bias and low varience.
接著明天開始進入modern neural network, DNN,CNN,Relu的使用,dropout......等等概念都會被涵蓋在一個深層網路,也就是Deep learning.在其中運用到了前面提到的方法與一些更新的模型架構,直到現在仍日新月異的進展.
深度學習網路架構特色就是非常多層,也是被稱deep的原因,擁有非常多的參數可以調控,因此我們可以預期他學習能力強大.
待續...