前言
? ? ? ? ?伴隨著AlphaGo打敗人類的圍棋冠軍柯潔的熱點話題充蓝,人工智能在2017年掀起的浪潮如洪水猛獸般襲來君躺,并成為一個不容忽視的存在犹撒。在廣大的在校學生中,有著這樣一批同學颓屑,他們學著和機器學習人工智能領域相關度較小的專業(yè)斤寂,然而面臨這樣一個碩大的風口時,不甘心以一個旁觀的吃瓜群眾身份存在揪惦。
? ? ? ? ?本人作為流體力學專業(yè)的在校博士生遍搞,在科研以外的零碎時間學習入門機器學習領域已有一年半的時間。最近周圍也有很多同學向我問起轉(zhuǎn)行機器學習數(shù)據(jù)挖掘領域的可行性丹擎。我在此以半個門外漢的身份尾抑,霧里探花地介紹一些對于轉(zhuǎn)行人工智能領域的見解及建議,希望能夠?qū)ξ磥碛兄居谖磥韽氖聰?shù)據(jù)科學及人工智能領域工作的小伙伴有所啟發(fā)蒂培。
學習過程
? ? ? ? 轉(zhuǎn)行本身是痛苦的過程再愈,需要付出大量額外的精力摸索一條陌生的道路,如果在短期內(nèi)無法收獲足夠的成就感护戳,足以打擊到學習的意志力并懷疑轉(zhuǎn)行道路的可靠性翎冲。從小我們?nèi)腴T某個學科都會首先從理論開始學習,然而寄希望于能夠系統(tǒng)學習完機器學習理論再參與到實踐會是一條非常痛苦的過程媳荒,啃完機器學習經(jīng)典著作PRML可能就需要花費一年甚至更長的時間抗悍,學習的熱情也會在紛繁復雜的公式推導中消磨殆盡。慶幸的是钳枕,前人已經(jīng)鋪墊出了一條直達實踐應用的捷徑缴渊。大量的機器學習及深度學習框架囊括了所用常用的算法并通常提供友好的調(diào)用格式,初學者可以在無需了解算法細節(jié)的基礎上鱼炒,用不到100行的代碼輕松解決經(jīng)典的機器學習問題衔沼,諸如手寫字母識別,垃圾郵件的分類等昔瞧。在搭建完成解決問題的整體框架后指蚁,再通過閱讀書籍及參考文獻進一步了解算法的實現(xiàn)細節(jié),并進一步改進代碼優(yōu)化算法表現(xiàn)自晰。這樣實踐結(jié)合理論快速迭代反饋的方法凝化,通常能夠激發(fā)出學習的積極性并在較短的時間內(nèi)提升業(yè)務水平。
? ? ? ? ?在取得階段性學習成果后酬荞,可能經(jīng)典的機器學習數(shù)據(jù)集已經(jīng)無法滿足自己的認知需求搓劫,此時參加大數(shù)據(jù)競賽無疑是檢驗學習成效,并在短期內(nèi)對于某個特定業(yè)務場景有所深入了解快捷渠道混巧。天池大賽的參賽時間一般為兩個月左右糟把,時間上的限制大幅壓縮了算法嘗試及改進的空間,需要盡可能在有限的時間內(nèi)最大程度上優(yōu)化解決方案牲剃。當然實際問題的解決難度會遠大于經(jīng)典數(shù)據(jù)集遣疯,參賽選手在面臨多種調(diào)整方案時,需要對于各個改進方向所能獲得的潛在收益有合理的預估凿傅,并在時間精力有限的情況下嘗試抓住問題的主要矛盾缠犀,拋開細枝末節(jié)。天池及Kaggle平臺的論壇及討論群會有其他參賽選手精辟見解甚至完整的解決方案聪舒,了解別人的思路很大程度上也能擴寬視野辨液。
轉(zhuǎn)行難度
? ? ? ? 人工智能領域開源社區(qū)發(fā)展完善,集成化程度高箱残。就深度學習領域來說滔迈,Google在2015年末開源了Tensorflow,并在短短一年內(nèi)快速成為GitHub上最受歡迎的開源框架止吁。微軟開源了CNTK,亞馬遜近期宣布使用的MXNet, Facebook負責維護的Torch和Caffe燎悍。每一個深度學習框架都有豐富的用戶使用文檔及示例代碼敬惦,及論壇社區(qū)負責答疑。學習并使用的機器學習算法正在變得異常簡單友好谈山,對于初學者來說只需要在范例代碼的基礎上做簡單的修改俄删,無需知道代碼底層實現(xiàn)方式,學習門檻遠比若干年前低很多并且學習效率有了大幅提升奏路。開源框架的使用畴椰,使得機器學習的過程正在變得像搭建樂高積木一樣簡單高效,每個功能的積木都以完整提供鸽粉,使用者所搭建的學習模型無非是就是幾組樂高積木排列組合斜脂。
? ? ? ? 轉(zhuǎn)行存在的潛在擔憂是,與科班學生在知識儲備方面差距是否會在入職后被放大触机,兩者之間的差距在多長時間內(nèi)得到填補秽褒。人工智能發(fā)展勢頭迅猛,潮流更迭非惩担快销斟,無論是數(shù)據(jù)量還是新性網(wǎng)絡結(jié)構方法都如以雨后春筍般快速涌現(xiàn)。近兩年比較熱門模型比如深度增強學習DQN,生成式對抗網(wǎng)絡GANs等椒舵。人工智能的潮流的更迭速度非常迅速蚂踊,即使是現(xiàn)有非常流行的方法,也難免在不久的未來失寵甚至被更新的潮流替代笔宿。當然犁钟,舊方法的逐漸淘汰并伴隨技術更迭對于初學者來說無疑是莫大的福音,這意味在人工智能領域泼橘,初學者與老司機在面臨新技術變革時都處于同一起跑線上涝动,都同樣需要與時俱進更新自己的知識儲備來適應時代變化。兩者在時間維度上的差距遠比想象的要小很多炬灭,入行1年的新手與從業(yè)5年的老司機之間的有效知識儲備差異醋粟,可能只有2年甚至更短。當然快速的行業(yè)技術更迭速度對于從業(yè)者而言即使機遇也是挑戰(zhàn)重归,需要從業(yè)者有著良好的接收新事物的能力及較高的學習熱情米愿。我會選擇定期看Youtube的學習視頻以及技術類公眾號推送的文章,拓寬思路并緊跟技術前沿發(fā)展趨勢鼻吮,避免安于現(xiàn)狀并逐漸成為井底之蛙育苟。
資料推薦
? ? ? ? 機器學習類的優(yōu)秀的學習素材非常多,初學者強力推薦吳恩達在Coursera上的機器學習課程椎木,零基礎入門深入淺出违柏,課程作業(yè)做完手里就有一套基本的機器學習算法集了博烂,完成課程頓時信心滿滿。對于機器學習新手來說漱竖,了解如下幾個python庫的基本功能禽篱,并親自上手練習熟悉代碼的書寫,對于參加機器學習的實踐闲孤,及參加大數(shù)據(jù)比賽會有事半功倍的效果:
pandas:參加數(shù)據(jù)科學競賽必備利器谆级,實現(xiàn)快速完成特征抽取與樣本清洗
scikit-learn:包含機器學習中烤礁,分類讼积,回歸,聚類脚仔,數(shù)據(jù)降維勤众,模型選擇和數(shù)據(jù)預處理中各種常用的算法。操作簡單鲤脏,是高效的數(shù)據(jù)挖掘和數(shù)據(jù)分析工具们颜。
xgboost:GBDT的高效實現(xiàn),天池和kaggle競賽獲獎選手使用頻率最高的算法猎醇,沒有之一窥突。
theano:允許使用者有效地定義、優(yōu)化和評估涉及多維數(shù)組的數(shù)學表達式硫嘶。特點為高效符號化操作阻问,詳細的深度學習實例代碼。
tensorflow:深度學習必備沦疾,GitHub上最火的深度學習框架称近。
以及我個人比較喜歡的機器學習類入門與進階書籍:
《利用Python進行數(shù)據(jù)分析》:Python數(shù)據(jù)操作的入門書籍,介紹數(shù)據(jù)的清理哮塞、轉(zhuǎn)換刨秆、合并、聚合方式的實現(xiàn)忆畅,適合當做工具書使用衡未。
《Python機器學習及實踐》:以Kaggle賽題為背景,不涉及大量數(shù)學模型與復雜編程知識家凯,了解主流的機器學習方法的Python實現(xiàn)眠屎,快速上手參加機器學習競賽。
《機器學習實戰(zhàn)》:理論結(jié)合實際肆饶,完成算法的底層實現(xiàn)改衩。
《集體智慧編程》:使用真切的互聯(lián)網(wǎng)領域代表性案例,用非常直觀的方式展示人工智能和機器學習經(jīng)典的算法的解決方案驯镊。
《Pattern Recognition and Machine Learning》:機器學習界的圣經(jīng)葫督,包涵大量理論知識和數(shù)學推導竭鞍,步驟詳細,有助于了解Machine Learning方法背后的本質(zhì)和思想橄镜,值得細讀品味偎快。
總結(jié)
? ? ? ? 如果說馬云的阿里巴巴和淘寶網(wǎng),是一個讓中小企業(yè)成功的平臺洽胶,那么阿里云天池大數(shù)據(jù)就是幫助廣大人工智能愛好者學習和成功的平臺晒夹。對于未來有志于未來從事人工智能領域工作的小伙伴,比賽不僅僅是收獲知識的渠道姊氓,好的比賽成績也是offer的敲門磚丐怯。希望天池能夠在未來能夠持續(xù)推出更多有意思的賽題,吸引更多的同學成為大數(shù)據(jù)愛好者翔横,將人工智能用到各行各業(yè)促進社會的進步读跷。