999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

淺談如何從程序開發的角度入門機器學習

2016-05-17 11:18:19廣州中醫藥大學醫學信息工程學院羅曉牧
電子世界 2016年8期
關鍵詞:機器學習

廣州中醫藥大學醫學信息工程學院 羅曉牧

?

淺談如何從程序開發的角度入門機器學習

廣州中醫藥大學醫學信息工程學院 羅曉牧

【摘要】機器學習是最近十分熱門的研究領域。本文討論了如何從程序開發的角度入門機器學習,包括設計系統流程、使用最新的工具、針對性的練習、記錄成果等。采用自上而下的學習方法,十分適合大學本科學生、程序員的自學,有效的解決端到端的問題,激發學習熱情,循序漸進的全面掌握機器學習領域。

【關鍵詞】機器學習;程序開發;系統流程

機器學習最近十分火熱,尤其在Alphago 與李世石的圍棋人機大戰之后[1],更掀起了一股機器學習的熱潮。如何更好的學習這一領域的知識,是不少同學的疑惑。機器學習算法的傳統學習路徑是從統計學、概率論、線性代數、微積分等多種數學知識開始的。但作為計算機專業的學生、專業程序員、機器學習愛好者,這種自下而上的方法停留在算法層面,沒有考慮到項目的開發和交付;同時,書本上的知識通常過于數學化,公式化,理論化,令人感到枯燥。雖然網上也已經有不少視頻公開課,如Coursera [2]上面的機器學習公開課,但是內容與教科書、博客差不多,沒有將相關的知識融會貫通到一起。有沒有更適合初學者的方法呢?在本文中,將探討如何學習這一領域。

1 傳統的機器學習途徑

打開任意一本與機器學習相關的書籍,一般都會從問題的定義開始,然后到概念和算法的數學描述,復雜性不斷增加。概念的定義與數學描述是十分清晰和簡潔的,然而要對它們充分的掌握,則需要相關的數學背景去理解[3]。這也是為什么機器學習課程通常在研究生階段才開設的原因。因為要教會某一特定科目的前提是需要足夠的先修課程。例如,通常需要對以下科目具有良好的基礎:統計、概率、線性代數、多元統計學,微積分等等。這種自下而上并且以算法為導向的學習方法,在機器學習領域相當主流。不少的網絡論壇上,對于“如何開始機器學習”的問題,通常也是會得到類似的答案[4]。各種在線課程和公開課,也都是模仿學校的方法去進行教學。如果你已經有相當的學術背景,或已經具有碩士或博士學位,這種方法是不錯的選擇。然而,對于一般的程序開發者,這樣的方法并不可取。這會讓腳踏實地的軟件工程師覺得應該重回學校,獲得一個碩士或博士學位,然后才有資格去“做”機器學習。

這種自下而上的學習方法是錯誤的。為什么呢?假設你是一個年輕的軟件開發人員,已經學會了某種編程語言,并開發出一些單機版的軟件。當你告訴你的朋友和家人,想以每天編程作為職業,那么他們通常會告訴你,你需要在計算機科學方面取得一個學位,才有可以得到一份程序員的工作。然后,你就開始注冊和修讀計算機學位。幾個學期之后,你已經接觸到越來越多復雜的代數、微積分和離散數學。但你正在使用過時的編程語言,對編程和開發軟件的熱情也慢慢發生動搖了。

看到問題所在了嗎?如果一個程序開發者想“做”機器學習,他真的需要花幾年時間和數萬元去獲得數學知識和更高的學位嗎?答案當然不是,還有一個更好的方法。

2 更好的入門方法

我們不能僅僅將模式翻轉為自上而下,卻使用相同的教學材料。正如計算機科學的課程從來沒有把軟件開發和軟件交付等實際問題涵蓋到課程內容當中,機器學習課程和教科書也遠遠不夠,它們一般都停留在算法層面上。你需要一個自上而下的方法來學習機器學習。一種專注于實際效果的方法是:使用最新和最好的工具和平臺,處理實際的端到端的機器學習問題,這才是正確的途徑[5]。這種方法主要包括三個方面:設計系統流程、選擇最新的工具、針對性的練習。

2.1設計系統流程

一旦學會了使用某種工具和算法,很多同學可能馬上會認為解決某一問題相當容易,并認為這個問題已經“解決”了。然而,這是遠遠不夠的。怎么確定問題已經解決了呢?怎么確定結果是好的呢?怎么確定這些結果在實際的數據集上是可靠的呢?在解決機器學習問題上,需要一個系統化的流程。這類似于一個軟件工程項目,一個好的系統流程才可以得到一個高質量的,可重復性的結果。系統流程包括以下幾個方面:問題的定義、數據準備、檢查算法、改進結果,如圖1所示。

圖1 系統流程

2.2使用最新的工具

機器學習工具和庫總在不斷更新中,但是無論在任何時候都應該選擇使用最新最適合的工具,而不是過時的算法或庫文件,這樣才可能自動化處理系統流程中的大部分環節,并得到可靠的高質量結果。可以通過咨詢有經驗的人,他們正在使用的最新工具,然后自己根據實際情況做出選擇。針對不同類型的工作,可以使用不同的平臺和工具。例如:

1) 一次性的預測模型:對于“通過去年的銷售數據預測今年的銷售數據”等簡單任務,可以使用Weka 平臺[6]。因為通過Weka可以加載一個CSV文件,設計一個實驗并馬上得到最佳的模型,而無需寫任何一行代碼。

2) 嵌入式的預測模型:在現有的軟件工程項目中增加預測功能模塊,可以選擇Python [7]中的scikit-learn庫[8],因為那樣就可以在開發模型和部署項目時使用相同的語言。Ipython[9]是一種向更大的團隊展示工作流程和預測結果的方式。

3) 深入研究的模型:對于需要深入理解并不斷優化的預測模型,可以選擇R平臺[10]以及Caret擴展包[11],因為那樣就可以快速并自動地嘗試很多最新的模型,并使用整個R平臺實現更精準的特征選擇以及算法優化實驗。

事實上,這三種工具將根據具體的實際問題混合使用,需要不斷學習并充分利用它們;但同時眼觀六路、耳聽八方,當更新更好的工具可以出現時,馬上使用最新的工具,并將它們嵌入到你的系統流程中。

2.3針對性的練習

通過大量的練習可以有效的學習軟件開發,同樣的方法也適用于機器學習。在每個項目中練習的環節越多,對機器學習則掌握得越好(最理想的是端到端的實際問題)。選擇練習的數據集應該是真實的而不是人為的。現在已經有成百上千的公開數據集可以免費獲取,并且數據集的復雜性不斷增加:

1) 建議從規模較小的可以裝進內存的數據集開始,如UCI機器學習庫 [12]。它們是公開的并且相對干凈的數據集,可以作為建立系統流程和學習新工具的一個良好開端。

2) 在此基礎上,可以研究規模更大一點的卻仍然可以裝進內存的數據集,比如來自Kaggle [13] 和KDD cup [14] 的比賽數據集。它們本身含有一定的噪聲,需要更靈活的處理并使用不同的技巧。

2.4記錄成果

為每一個機器學習項目建立和維護一個半正式的工作成果:將所學所做詳細記錄下來,生成一個單獨的文件夾,以便在日后的項目中參考并再次使用。這類似于軟件開發者為每一個項目保留一個文件夾,用于日后參考和代碼重用。這種做法將大大加速機器學習的進程。保留所有的腳本、代碼以及生成的圖片很重要,但更重要的是寫下學習的感悟和發現,把它們想象為代碼的注釋。一個單獨的記錄文件可以是一個簡單的PPT或文本文件形式,更加詳細的記錄文件可以是會議中的演講稿或者是生成視頻上傳到Youku中 [15]。

將每一個項目保存到公共的版本控制庫(如GitHub)中 [16],這樣其他的初學者可以借鑒你的項目并拓展你的工作。將你項目的鏈接放在博客、微博、微信、Linkedln或其他任何地方,通過網絡平臺展示你不斷提升的技術和能力。GitHub中的項目文件正是公司在招聘過程中,在簡歷上真正關心的技能和已經取得的成果。

3 專為軟件開發者提供的方法

使用上面所說的方法,可以作為軟件開發者學習機器學習的開始,并能不斷取得進步。開始使用這個方法,通常可能會產生一些疑慮,然而這些疑慮是不必要的,例如:

1) 不需要去寫代碼: 與web開發類似,學習機器學習不需要寫大量的代碼。例如像Weka這樣的工具,可以在不需要任何編程的前提下,使得設計機器學習算法和建立預測模型的過程變得十分簡單。編寫代碼可以讓你掌握更多的不同工具,但這不是必須的。

2) 你不需要精通數學:如同軟件開發者一樣,不需要懂得計算復雜度或者O(n)再去編寫代碼。同理,可以在沒有統計、概率論、線性代數的背景下解決端到端的機器學習問題。需要強調的是,我們的方法沒有從理論開始學習,并不意味著忽視理論。當需要研究理論的時候,可以從開發中分離出來深入研究。事實上,因為解決機器學習問題是令人著迷的過程,理論的學習是在不知不覺中的。為了追求更好的結果和更精確的預測,你將使用任何可以找到的資源,提取其中的精華并運用到你的問題上。以軟件開發的流程來學習機器學習,對初學者來說這個方法則是相當有意義的。

3) 不需要一個更高的學位:機器學習方面的知識都是公開的,可以今天馬上進行自學,并不需要通過大量的時間和金錢去獲得一個學位再開始。開始解決機器學習問題并完成了一個小型的項目后,再去考慮獲得學位的事情。到那時候,你將對整個領域和自己感興趣的部分有更深入的理解。

4) 不需要一個大數據集:機器學習算法在小數據集上設計和理解更佳。數據足夠小則可以全部加載到內存中,并使用普通的臺式計算機進行處理。大數據并不等于機器學習。

5) 不需要一臺超級計算機:雖然某些最先進的算法,如深度學習確實需要非常強悍的多核GPU資源,但同時它們也是可以解決小問題的算法,使用你的臺式計算機CPU就可以了。你可以馬上開始機器學習算法,不必等到擁有一臺超級的計算機才開始。在決定去買一臺超級計算機或者租用昂貴的EC2 [17] 之前,最好花時間用于理解這些算法如何用于更小但更加容易理解的數據集之上,從中獲得最大的收益。

6) 不需要大量的時間:如前所述,處理機器學習問題會讓人上癮。如果在機器學習競賽中被超越了,你會很樂意犧牲一個月晚上看電視的時間將算法的準確度提高幾個百分點。其實,如果一開始就有一個清晰的系統流程和最新的工具,你就可以在一兩天之內處理一個從端到端的問題。將問題分解為多個小問題,然后一個一個的解決。

綜上所述,通過正確的流程和方法,可以在最大程度上激發初學者的學習熱情,迅速入門并不斷提高。無論對于程序開發者還是自學的大學生,通過這種自上而下的系統流程可以全面的掌握機器學習算法,并隨時運用最新的算法,有效的解決端到端的實際問題。

參考文獻

[1]新浪科技,"http://tech.sina.com.cn/d/AlphaGo/."

[2]Coursera.https://www.coursera.org/learn/machine-learning.

[3]周志華,機器學習.清華大學出版社,2016.

[4]A.Smola,"https://www.quora.com/session/Alex-Smola-1/1."

[5]J.Brownlee,"http://machinelearningmastery.com/machinelearning-for-programmers/."

[6]WEKA.http://www.cs.waikato.ac.nz/ml/index.html.

[7]Python,"https://www.python.org/."

[8]Scikit-Learn,"http://scikit-learn.org/."

[9]IPython,"https://ipython.org/."

[10]R語言,"https://cran.r-project.org/."

[11]Caret,"http://topepo.github.io/caret/index.html."

[12]UCI數據庫,"https://archive.ics.uci.edu/ml/index.html."

[13]Kaggle,"https://www.kaggle.com/."

[14]KDD比賽,"http://www.kdnuggets.com/datasets/kddcup.html."

[15]Youku優酷,"http://www.youku.com/."

[16]GitHub,"https://github.com/."

[17]EC2,https://aws.amazon.com/cn/.

羅曉牧(1980-),男,廣東廣州人,講師,工科博士研究生畢業,研究方向:機器學習,無線傳感器網絡,生物信息獲取。

作者簡介:

基金項目:國家自然科學基金(編號:61301294)。

猜你喜歡
機器學習
基于詞典與機器學習的中文微博情感分析
基于網絡搜索數據的平遙旅游客流量預測分析
時代金融(2016年27期)2016-11-25 17:51:36
前綴字母為特征在維吾爾語文本情感分類中的研究
科教導刊(2016年26期)2016-11-15 20:19:33
下一代廣播電視網中“人工智能”的應用
活力(2016年8期)2016-11-12 17:30:08
基于支持向量機的金融數據分析研究
基于Spark的大數據計算模型
基于樸素貝葉斯算法的垃圾短信智能識別系統
基于圖的半監督學習方法綜述
機器學習理論在高中自主學習中的應用
極限學習機在圖像分割中的應用
主站蜘蛛池模板: 久久美女精品| 91久久精品日日躁夜夜躁欧美| 欧美亚洲欧美区| 国产成人综合亚洲网址| 伊人久热这里只有精品视频99| 欧美一区二区三区不卡免费| 国内自拍久第一页| A级全黄试看30分钟小视频| 久久国产精品麻豆系列| 99热最新在线| 国产精品主播| 2022精品国偷自产免费观看| 精品黑人一区二区三区| 亚洲av无码牛牛影视在线二区| 99免费视频观看| 婷五月综合| 多人乱p欧美在线观看| 国产精品30p| 欧美特黄一免在线观看| 成人a免费α片在线视频网站| 一本一道波多野结衣一区二区| 亚洲婷婷在线视频| 精品久久国产综合精麻豆| 国产成人av一区二区三区| 永久免费精品视频| 亚洲AV电影不卡在线观看| 免费看a级毛片| 国产成人一区二区| 亚洲狠狠婷婷综合久久久久| 少妇精品在线| 欧美成人a∨视频免费观看| 1769国产精品视频免费观看| 91精品人妻一区二区| 精品超清无码视频在线观看| 欧美另类一区| 欧美国产日韩一区二区三区精品影视| 精品国产自在在线在线观看| 精品国产免费观看| 国产精品无码制服丝袜| 激情综合网址| 欧美第九页| 国产精品熟女亚洲AV麻豆| 久久99国产精品成人欧美| 好久久免费视频高清| 在线观看亚洲人成网站| 欧美日韩综合网| 色噜噜综合网| 亚洲无码视频一区二区三区| 福利在线一区| 凹凸国产分类在线观看| 久久综合AV免费观看| 亚洲成人精品久久| 污视频日本| 国产在线98福利播放视频免费 | www亚洲天堂| 日本人又色又爽的视频| 日韩无码精品人妻| 国产屁屁影院| 巨熟乳波霸若妻中文观看免费| 永久免费无码日韩视频| 伊人久综合| 第九色区aⅴ天堂久久香| 午夜福利视频一区| 国产地址二永久伊甸园| 亚洲 成人国产| 看国产毛片| 亚洲最大在线观看| 国产女人在线| 在线看AV天堂| 久久亚洲天堂| 青青青国产视频手机| 国产18在线播放| 天天做天天爱夜夜爽毛片毛片| 一级片一区| 高清免费毛片| 国产真实乱子伦精品视手机观看| 黄色三级网站免费| 国产麻豆精品在线观看| 波多野结衣在线se| 国产丝袜91| 一级毛片免费观看不卡视频| 国产激情无码一区二区三区免费|