2016年11月14日 星期一

Udacity Machine Learning Nanodegree(優達學院 機械學習微學位)

前幾天將Udacicty的Nanodegree最後的project交出並通過了。在這裡記錄一些感想供有緣看到的人們參考。

Udacity的課程是以專案為單位輔以理論課程,會不斷依學員回饋而更新,因此上過之後回頭常會看到些自己挖出資訊理解的內容被列入課程中,可說一面欣慰一面無語。

Udacity 提供的專案皆屬於機械學習中經典的入門題目,但是reviewer在回應時往往會提出一些新穎的工具以供學員自我學習。我會建議將每則Review的重點記錄下來,因爲專案通過不代表沒有改進的機會,而不斷學習在將來實作上也是非常必要的。

在學習過程中,論壇上的同學可以提供針對課程內容的疑問提出協助,比如對特定題目的解釋與理解。

做專案時最有幫助的是StackOverflow,甚至是知乎等中文論壇,會有一些介於學術與實作之間的回應。諸如什麼情況下使用Breadth-first search與Depth-first search這種等級,到XGBoost的使用經驗討論,各種不同技術層面的討論都有,StackOverflow使用者也相當熱衷於提供相關討論內容以及參考資料,雖然不是學術討論也是種對於效力的輔助。

Slack channel上,往往會看到特定數名同學熱衷地討論,而大部分人可能多選擇潛水。但這裡可以看到工作機會以及其他學員搜集到的內容及業界資訊,做為進修的方向也相當有幫助。

以一個剛完成學程的畢業生角度,我會建議先拿個幾門Udacity免費的課程,瞭解它上課的方式,確定適合自己之後再決定是否要報名。報名前當然要瞭解結業的條件與課綱,有什麼問題要問的立刻先問。通常會有一週的試用期,我就是用一週將第一個專案完成,瞭解自己不足之處後,先暫停課程補足進度後才開始正式課程。中途也可以暫停學程,雖然會無法進入課堂繼續上課,但是在邊工作邊上課的學員可能多少會需要一些時間彈性去完成工作上的十五。 但,不暫停而將收費做為叮囑自己進度的方式也是不錯的方法。

開始課程後,不需要一一將所有影片給看完,如果遇到有信心的內容可以少花些時間。但我建議至少將quiz 與 mini project給練習一下,稍微複習一下自己認為熟悉的內容。直接進入project也是可行的,事實上完成專案需要相當全面的知識,但是並不算太難,前半的專案照表操課要通過不成難題。我自己練習的部分多著重在寫碼的技術面,久了多少會後悔自己以前花太少時間學寫碼。Reviewer的回應需要好好讀,多半可以指出自己沒意識到的缺點。

真正最有趣也最耗時的是最後的Capstone Project。需要自己訂下題目,做出符合標準的分析,並要提出足夠深度的討論。訂題目這部分我得到的建議之一是:不必要做出革命性的題目,但要有自己獨特的見解。如果缺乏足夠的技術作出想要的成果就要自己去學,要還是真的不行,在討論中要能指出將來可以精進的方向。

原本Capstone Project的範圍更加彈性,但在我上課途中Udacity考量reviewer的專業領域不能涵蓋過於遼闊的應用範圍,因此建議學員將內容定在幾個特定領域,同時增加了選修的專案- Capstone Proposal,供學員先與reviewer討論可行的方向。這不斷改進的教學方式讓我頗為滿意,但因爲我當時已經開始最後的專案了,也與我無關了-這點倒是有些矛盾的感受。

我所做的專題是以美國高等教育機構該年投資與花費模式去預測表現(以完成學位,學程,得到獎項的人次爲例)https://github.com/jamway/MLND_CP_Education_Spending_Pattern
所做出來的model還有98%的準確度真的是令我有些意外。但這專案尚有後著-改以各機構前幾年內的花費金額為預測變項,並將如UC系列及UT系列等分開討論。

而已畢業的現在,有許多kaggle上的賽事讓我也想參一腳看看高手的技術,同時也有許多可做為練習項目的專案,可以做為精進的基石。
https://www.analyticsvidhya.com/blog/2016/10/17-ultimate-data-science-projects-to-boost-your-knowledge-and-skills/

沒有留言:

張貼留言