机器学习温和指南
機(jī)器學(xué)習(xí)溫和指南
發(fā)表于2015-09-11 15:00| 253次閱讀| 來源MonkeyLearn| 1 條評論| 作者Raúl Garreta
機(jī)器學(xué)習(xí)深度學(xué)習(xí)SVM神經(jīng)網(wǎng)絡(luò) width="22" height="16" src="http://hits.sinajs.cn/A1/weiboshare.html?url=http%3A%2F%2Fwww.csdn.net%2Farticle%2F2015-09-08%2F2825647&type=3&count=&appkey=&title=%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0%E4%B8%8ENLP%E4%B8%93%E5%AE%B6%E3%80%81MonkeyLearn%E8%81%94%E5%90%88%E5%88%9B%E5%A7%8B%E4%BA%BA%26CEO%20Ra%C3%BAl%20Garreta%E9%9D%A2%E5%90%91%E5%88%9D%E5%AD%A6%E8%80%85%E5%A4%A7%E4%BD%93%E6%A6%82%E6%8B%AC%E4%BD%BF%E7%94%A8%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0%E8%BF%87%E7%A8%8B%E4%B8%AD%E7%9A%84%E9%87%8D%E8%A6%81%E6%A6%82%E5%BF%B5%EF%BC%8C%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E5%92%8C%E6%8C%91%E6%88%98%EF%BC%8C%E6%97%A8%E5%9C%A8%E8%AE%A9%E8%AF%BB%E8%80%85%E8%83%BD%E5%A4%9F%E7%BB%A7%E7%BB%AD%E6%8E%A2%E5%AF%BB%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0%E7%9F%A5%E8%AF%86%E3%80%82&pic=&ralateUid=&language=zh_cn&rnd=1442052710439" frameborder="0" scrolling="no" allowtransparency="true">摘要:機(jī)器學(xué)習(xí)與NLP專家、MonkeyLearn聯(lián)合創(chuàng)始人&CEO Raúl Garreta面向初學(xué)者大體概括使用機(jī)器學(xué)習(xí)過程中的重要概念,應(yīng)用程序和挑戰(zhàn),旨在讓讀者能夠繼續(xù)探尋機(jī)器學(xué)習(xí)知識。【編者按】機(jī)器學(xué)習(xí)是如今人工智能領(lǐng)域中進(jìn)展最大的方面,更多的初學(xué)者開始進(jìn)入了這個領(lǐng)域。在這篇文章中,機(jī)器學(xué)習(xí)與NLP專家、MonkeyLearn聯(lián)合創(chuàng)始人&CEO?Raúl Garreta面向初學(xué)者大體概括使用機(jī)器學(xué)習(xí)過程中的重要概念,應(yīng)用程序和挑戰(zhàn),旨在讓讀者能夠繼續(xù)探尋機(jī)器學(xué)習(xí)知識。
機(jī)器學(xué)習(xí)是人工智能的一個分支,它通過構(gòu)建算法讓計算機(jī)學(xué)習(xí),并且在數(shù)據(jù)集上使用這些算法來完成任務(wù),而不需要進(jìn)行明確編碼。
明白了嗎?我們可以讓機(jī)器去學(xué)習(xí)如何做事情!當(dāng)我第一次聽到它的時候,讓我非常興奮。那意味著我們可以對計算機(jī)進(jìn)行編碼,讓它們自己去學(xué)習(xí)東西!
學(xué)習(xí)的能力是智能最重要的一個方面。將這種能力運(yùn)用到機(jī)器上,應(yīng)該是向讓計算機(jī)更智能邁出了一大步。事實(shí)上,機(jī)器學(xué)習(xí)是如今人工智能領(lǐng)域中進(jìn)展最大的方面;現(xiàn)在它是個時髦的話題,并且使用機(jī)器學(xué)習(xí)也非常可能造就出更智能機(jī)器。
這篇文章將會向初學(xué)者簡要介紹機(jī)器學(xué)習(xí)。我將大體概括使用機(jī)器學(xué)習(xí)過程中的重要概念,應(yīng)用程序和挑戰(zhàn)。給出機(jī)器學(xué)習(xí)正式的詳盡的說明不是本文的宗旨,而是向讀者介紹一些初步概念,讓讀者能夠繼續(xù)探尋機(jī)器學(xué)習(xí)知識。
機(jī)器學(xué)習(xí)真面目
好了,并不是所有事物都和聽說的那樣美好,機(jī)器學(xué)習(xí)也有它的局限之處。我們不能構(gòu)建類似于《星際迷航》中的Data或者《2001太空漫游》中的Hal 9000這樣的智能機(jī)器。但是,我們擁有足夠的現(xiàn)實(shí)世界的應(yīng)用程序,機(jī)器學(xué)習(xí)在此神奇般的起著作用。下面是一些實(shí)用機(jī)器學(xué)習(xí)應(yīng)用中最常見的分類:
圖像處理
圖像處理的問題基本上都需要分析圖像獲取數(shù)據(jù)或是做一些轉(zhuǎn)換。下面是一些例子:
文本分析
文本分析是我們從文本文件,比如推特,郵件,聊天記錄,文檔等中提取或分類信息。下面是一些流行的例子:
數(shù)據(jù)挖掘
數(shù)據(jù)挖掘是用來從數(shù)據(jù)中發(fā)現(xiàn)某些模式或者做出預(yù)測。這個定義有點(diǎn)普通,不過你可以理解成從海量數(shù)據(jù)庫表中挖掘有用的信息。每一行都可以是我們的訓(xùn)練實(shí)例,每一列都可以作為一個特征。我們可能會感興趣用表中剩下的列來預(yù)測一條新的列,或者發(fā)現(xiàn)某種模式來對行進(jìn)行分組。比如:
視頻游戲與機(jī)器人
視頻游戲和機(jī)器人是機(jī)器學(xué)習(xí)得到應(yīng)用的一個巨大領(lǐng)域。一般來說我們有一個Agent(游戲角色或機(jī)器人),它必須根據(jù)環(huán)境(視頻游戲中的虛擬環(huán)境或者對于機(jī)器人來說的真實(shí)環(huán)境)來行動。機(jī)器學(xué)習(xí)可以使這個Agent執(zhí)行任務(wù),比如移動到某個環(huán)境中而同時避開障礙或者敵人。在這些情形下一個最受歡迎的機(jī)器學(xué)習(xí)技術(shù)是強(qiáng)化學(xué)習(xí),Agent通過學(xué)習(xí)環(huán)境的強(qiáng)化系數(shù)(如果Agent碰到了障礙物強(qiáng)化系數(shù)則為負(fù),如果達(dá)到目標(biāo)則為正)來執(zhí)行任務(wù)。
好了,我現(xiàn)在知道什么是機(jī)器學(xué)習(xí)了,但是它是如何工作的呢?
大約10年前我讀過的第一批關(guān)于機(jī)器學(xué)習(xí)書籍中有一本是Tom Mitchell寫的《機(jī)器學(xué)習(xí)》。這本書是1997年寫的,但是書中的總體概念在今天仍然有用。
在那本書中,我喜歡書中對機(jī)器學(xué)習(xí)的正式定義,如下:
對于某類任務(wù)T和性能度量P,如果一個計算機(jī)程序在T上以P衡量的性能隨著經(jīng)驗(yàn)E而自我完善,那么我們稱這個計算機(jī)程序在從經(jīng)驗(yàn)E學(xué)習(xí)。
比如,人工游戲玩家要學(xué)會下國際象棋(任務(wù)T),可以通過查看以前國際象棋比賽或與導(dǎo)師對弈(經(jīng)驗(yàn)E)來學(xué)習(xí)。它的性能P可以用它與人類玩家對弈獲勝的比例來度量。
讓我們用更多例子來闡述:
案例1:向系統(tǒng)中輸入一張圖片,系統(tǒng)需要判別圖片中是否有巴拉克·奧巴馬的臉(一般來說是類似于Facebook的圖像自動標(biāo)記)。
案例2:向系統(tǒng)中輸入一條推文,系統(tǒng)判別這條推文是否帶有積極或消極情感。
案例3:向系統(tǒng)中輸入某人的一些信息,系統(tǒng)計算出此人償還信用卡貸款的概率。
在案例1中,系統(tǒng)任務(wù)是檢測巴拉克·奧巴馬的臉何時在圖像中出現(xiàn)。可以將他出現(xiàn)在哪些照片或不出現(xiàn)在哪些照片中的信息作為經(jīng)驗(yàn)。系統(tǒng)的性能可以用系統(tǒng)正確識別出奧巴馬臉的次數(shù)比例來度量。
在案例2中,系統(tǒng)任務(wù)是對一條推文進(jìn)行情感分析。系統(tǒng)的經(jīng)驗(yàn)可以是一組推文和與它們相對應(yīng)的情緒。系統(tǒng)的性能可以由系統(tǒng)對新推文情感分析正確的比例來度量。
在案例3中,系統(tǒng)任務(wù)是進(jìn)行信用評分。系統(tǒng)可以將一系列用戶資料和相對應(yīng)的信用評分作為經(jīng)驗(yàn)。可以用平方誤差(預(yù)測和預(yù)期得分之間的差異)作為性能度量。
為了讓算法學(xué)習(xí)將輸入轉(zhuǎn)換成期望的輸出,你必須提供訓(xùn)練實(shí)例或者訓(xùn)練樣例,也就是Mitchell所定義的經(jīng)驗(yàn)E。一組訓(xùn)練集是一系列實(shí)例的集合,它們將作為樣例,機(jī)器學(xué)習(xí)算法從這些樣例中學(xué)習(xí)并且完成預(yù)期任務(wù)。很好理解,不是嗎?這就像你給小孩示范如何扔球一樣,你扔幾次球來教他如何做,然后通過觀看那些樣例,他開始學(xué)會自己扔球了。
每一個訓(xùn)練實(shí)例通常表示為一組固定的屬性或特征。特征是用來表示每一個實(shí)例的方式。例如,在案例1中,一張圖片可以由每個像素的灰度級別來表示。在案例2中,推文可以用推文中出現(xiàn)的字詞來表示。在案例3中,信用記錄可以用此人的年齡、薪水、職業(yè)等來表示。
計算和選擇合理的特征來表示一個實(shí)例是使用機(jī)器學(xué)習(xí)的過程中最重要的任務(wù)之一,在本文稍后部分我們將討論這點(diǎn)。
機(jī)器學(xué)習(xí)算法的種類
在本節(jié)中我們將討論兩大類機(jī)器學(xué)習(xí)算法:監(jiān)督式學(xué)習(xí)和非監(jiān)督式學(xué)習(xí)算法。這兩類算法的主要區(qū)別在于我們提供給算法的訓(xùn)練樣例,算法使用樣例的方式以及它們解決問題的類別。
監(jiān)督式學(xué)習(xí)
在監(jiān)督式學(xué)習(xí)中,機(jī)器學(xué)習(xí)算法可以看作是將特定輸入轉(zhuǎn)換成期望輸出的過程。
機(jī)器學(xué)習(xí)需要學(xué)會如何將所有可能輸入轉(zhuǎn)換成正確/期望輸出,所以每個訓(xùn)練樣例都有特定的輸入和期望輸出。
在人工國際象棋手的案例中,輸入可以是特定的棋盤狀態(tài),輸出則可能是在這一狀態(tài)下最好的下棋方式。
根據(jù)輸出的不同,我們又可以把監(jiān)督式學(xué)習(xí)分為兩小類:
分類
當(dāng)輸出值屬于離散和有限集合,那么這就是一個分類問題。案例2可以看作是一個分類問題,輸出是一個有限集合:積極,消極或者中立,我們的訓(xùn)練樣例是這樣的:
回歸
當(dāng)輸出是連續(xù)的數(shù)值,比如,概率,那么這就是一個回歸問題。案例3就是一個回歸問題,因?yàn)榻Y(jié)果是介于0到1的數(shù)字,它代表一個人償還債務(wù)的概率。在這個案例下,我們的訓(xùn)練樣例是這樣的:
監(jiān)督式學(xué)習(xí)是機(jī)器學(xué)習(xí)算法中最受歡迎的一類。使用這種方法的缺陷是,對于每一個訓(xùn)練樣例,我們都需要提供與之對應(yīng)的正確輸出,在大多情況下,這會耗費(fèi)大量人力物力財力。比如,在情感分析案例中,如果我們需要10000條訓(xùn)練案例(推文),我們需要對每一條推文都標(biāo)記上正確的情感(積極,消極或者中立)。這將需要一組人來閱讀并標(biāo)記每一條推文(非常耗時又無聊的工作)。這通常是機(jī)器學(xué)習(xí)算法最常見的瓶頸:收集正確標(biāo)記的訓(xùn)練數(shù)據(jù)。
非監(jiān)督式學(xué)習(xí)
第二類機(jī)器學(xué)習(xí)算法叫做非監(jiān)督式學(xué)習(xí)。在這種情況下,訓(xùn)練數(shù)據(jù)只需要輸入到算法中即可,不需要有與之對應(yīng)的期望輸出。典型的用例就是發(fā)現(xiàn)訓(xùn)練樣例之間隱藏的結(jié)構(gòu)或者關(guān)系。典型的案例就是聚類算法,我們學(xué)習(xí)找到相似實(shí)例或者一組實(shí)例(集群)。比如我們有一條新聞,我們希望推薦一條相似的新聞。一些聚類算法比如K-means從輸入數(shù)據(jù)中來學(xué)習(xí)。
機(jī)器學(xué)習(xí)算法
好了,現(xiàn)在來講講數(shù)學(xué)和邏輯知識了。為了將輸入轉(zhuǎn)換成期望輸出,我們可以使用不同的模型。機(jī)器學(xué)習(xí)并不是唯一的算法,你可能聽說過支持向量機(jī),樸素貝葉斯,決策樹或者深度學(xué)習(xí)。那些是不同的機(jī)器學(xué)習(xí)算法,它們都可以解決同樣的問題:學(xué)習(xí)將輸入轉(zhuǎn)換成正確的輸出。
那些不同的機(jī)器學(xué)習(xí)算法使用不同的范式或技術(shù)來執(zhí)行學(xué)習(xí)過程,并將它們所學(xué)知識表示出來。
在我們講解每一個算法之前,我們要了解,最常見的原則是,機(jī)器學(xué)習(xí)算法試圖達(dá)到一般化。也就是說,它們試圖用最簡單的理論來解釋事物,這被稱為奧卡姆剃刀原則。所有機(jī)器學(xué)習(xí)算法,不管它所使用的范式如何,都將嘗試創(chuàng)建最簡單的假設(shè)(做出最少假設(shè)的那個)來說明大部分的訓(xùn)練實(shí)例。
有很多機(jī)器學(xué)習(xí)算法,不過我們來簡要介紹下三種流行的算法:
支持向量機(jī):該模型試圖構(gòu)建一個超平面高維空間集,它試圖通過計算與最近實(shí)例最大距離來區(qū)分不同類的實(shí)例。這個概念直觀簡單,但是該模型有時候也會非常復(fù)雜和強(qiáng)大。事實(shí)上,對于某些領(lǐng)域支持向量機(jī)是你目前可以使用的最好的機(jī)器算法之一。
概率模型:這類模型通常通過對問題進(jìn)行概率分布建模來預(yù)測正確的響應(yīng)。這類算法中最流行的可能要屬樸素貝葉斯分類器了,它使用貝葉斯定理和特征之間獨(dú)立性假設(shè)來構(gòu)建分類器。這個模型的優(yōu)勢之一是即簡單又強(qiáng)大,而且不僅會返回預(yù)測值還會返回預(yù)測值的確定度,這是非常有用的。
深度學(xué)習(xí):是基于大名鼎鼎的人工神經(jīng)網(wǎng)絡(luò)模型的機(jī)器學(xué)習(xí)的新領(lǐng)域。神經(jīng)網(wǎng)絡(luò)有著聯(lián)結(jié)的操作方式,它們試圖模仿(以非常簡單的方式)大腦的工作方式。基本上,它們由一組相互關(guān)聯(lián)的神經(jīng)元(處理的基本單位)組成,這些神經(jīng)元被組織成許多層。簡單來說,深度學(xué)習(xí)使用更深的層構(gòu)建了新的結(jié)構(gòu),通過高層次抽象改進(jìn)了算法,不僅改進(jìn)了學(xué)習(xí)方式,而且構(gòu)建了自動表示最重要特征的結(jié)構(gòu)。
機(jī)器學(xué)習(xí)中的重要方面
機(jī)器學(xué)習(xí)聽起來是個美妙的概念,它確實(shí)如此,但是機(jī)器學(xué)習(xí)中有一些過程并不是那么自動完成的。事實(shí)上,在設(shè)計解決方案時,很多時候需要人工操作。然而,這是得到優(yōu)良結(jié)果至關(guān)重要的一環(huán)。其中一些方面有:
我該使用哪類機(jī)器學(xué)習(xí)算法?
監(jiān)督式還是非監(jiān)督式?
你有標(biāo)記的數(shù)據(jù)嗎?也就是輸入和對應(yīng)的輸出。如果有,那么你可以使用監(jiān)督式學(xué)習(xí)算法。如果沒有,那么使用非監(jiān)督式算法可以解決問題。
分類,回歸還是聚類?
這主要取決于你想要解決什么樣的問題。如果你想標(biāo)記數(shù)據(jù)(用離散的選項(xiàng)來標(biāo)記),分類可能是正確的選擇。相反,如果你想選擇一個數(shù)字,比如說分?jǐn)?shù),回歸則是你最佳的選擇。或者你想在電子商務(wù)網(wǎng)站上針對用戶目前瀏覽信息來推薦相似產(chǎn)品,那么聚類則是你最好的選擇。
深度學(xué)習(xí),SVM,樸素貝葉斯,決策樹···哪個最好?
我的答案是:沒有最好的。顯然,深度學(xué)習(xí)和支持向量機(jī)已經(jīng)證明,在不同應(yīng)用中它們是最強(qiáng)大和最靈活的算法。但考慮到根據(jù)不同特定應(yīng)用,一些機(jī)器學(xué)習(xí)算法可能比其他算法更好。分析它們各自的優(yōu)勢并且使用它們!
特征工程
特征工程是我們提取、選擇用來表示訓(xùn)練樣例和實(shí)例的最重要的特征供機(jī)器學(xué)習(xí)算法處理的過程。這個過程是機(jī)器學(xué)習(xí)(有時沒有給予足夠的贊譽(yù)和重視)中最重要的方面。
請注意:如果你不向算法提供有質(zhì)量保證的特征,結(jié)果會是糟糕的,即使你使用了此情形下最好的機(jī)器學(xué)習(xí)算法。這就像是你在黑暗中努力學(xué)習(xí)如何用肉眼閱讀,不管你有多聰明你都不能做到。
特征提取
為了向機(jī)器學(xué)習(xí)算法輸入數(shù)據(jù),你通常需要將原始數(shù)據(jù)轉(zhuǎn)換成算法能夠“理解”的東西。這個過程被稱作特征提取。通常我們將原始數(shù)據(jù)轉(zhuǎn)換成特征向量。
在案例1中,我們?nèi)绾蜗驒C(jī)器學(xué)習(xí)算法輸入一張圖像呢?
一個直接的方式就是將圖像轉(zhuǎn)換成向量,每一個成分是圖像中每一個像素的灰度值。所以每一個成分或者特征,都可以用0到255的值表示,0表示黑色,255表示白色,1到254是不同程度的灰色。
這種方式可能可行,但是如果我們提供更高層次的特征可能會工作得更好:
- 圖像包含人臉嗎?
- 膚色是什么?
- 眼睛是什么顏色的?
- 臉上有毛發(fā)嗎?
- …
這些是更高層次特征,它們向算法提供了更多的知識而不只是每個像素的灰度值(它們的計算可以用其他機(jī)器學(xué)習(xí)算法來完成)。通過提供更高層次特征我們就在“幫”機(jī)器學(xué)習(xí)算法得到更好的學(xué)習(xí)信息來判斷我的或者其他某個人的臉是否出現(xiàn)在一張圖像中。
如果我們實(shí)施更好的特征提取:
- 我們算法能夠?qū)W習(xí)并得到預(yù)期結(jié)果的可能性會更高。
- 我們可能不需要那么多訓(xùn)練樣例。
- 這樣一來,我們可以顯著減少訓(xùn)練模型所需的時間。
特征選擇
有些時候(并不是大多情況下),我們選擇向算法輸入的特征可能并沒多大用處。比如,當(dāng)對一條推文進(jìn)行情感標(biāo)記的時候,我們可能將推文的長度,推文發(fā)表的時間等作為特征,這些特征可能有用也可能沒有用,而且有自動的方法來識別它們是否有用。直觀地,特征選擇算法通過技術(shù)手段對每條特征打分,然后根據(jù)它們的分值返回最重要的那些特征。
另一個需要記住的要點(diǎn)是:避免使用海量特征集。有些人可能嘗試添加所有可能的特征到模型中讓算法來學(xué)習(xí)。但這不是個好主意,當(dāng)我們添加更多的特征來代表實(shí)例時,空間的維度就增加了,使得矩陣更加稀疏。直觀地,因?yàn)槲覀兊玫礁嗟奶卣?#xff0c;我們必須有非常多的實(shí)例在表示每個特征的組合。這就是所謂的維度災(zāi)難,隨著模型復(fù)雜度的增長,訓(xùn)練樣例的數(shù)目需要以指數(shù)形式隨著增長,相信我,這將是棘手的問題。
訓(xùn)練樣例
你必須向機(jī)器學(xué)習(xí)算法輸入訓(xùn)練樣例。取決于你想要解決的問題,我們將會使用到幾百,幾千,幾百萬甚至上億的訓(xùn)練樣例。而且,保持樣例的質(zhì)量也至關(guān)重要,如果你向算法中輸入了錯誤的樣例,得到良好結(jié)果的可能性會降低。
收集大量的優(yōu)質(zhì)數(shù)據(jù)來訓(xùn)練機(jī)器學(xué)習(xí)算法通常是一項(xiàng)耗費(fèi)人力物力的工作。除非你已經(jīng)有標(biāo)記好的數(shù)據(jù),否則你需要自己手動或者雇傭他人來標(biāo)記數(shù)據(jù)。一些眾包平臺的工具嘗試解決這樣的問題,你可以在這里找到一些工具來完成任務(wù)。或者通過使用自己的機(jī)器學(xué)習(xí)模型生成的輔助程序也可以將標(biāo)記操作變得更高效。
訓(xùn)練樣本的一般規(guī)則是:你收集了越是優(yōu)質(zhì)的訓(xùn)練數(shù)據(jù),你可能就可能得到更好的訓(xùn)練結(jié)果。
測試樣本和性能指標(biāo)
在我們訓(xùn)練完一個機(jī)器學(xué)習(xí)模型之后,我們需要測試它的性能。這是非常重要的,否則你不知道你的模型是否學(xué)會了東西!
這個概念非常簡單,我們使用一個測試集,一個不包含在訓(xùn)練集中的實(shí)例集合。基本上,我們將輸入每個測試樣本到模型中,然后觀察它是否會得出預(yù)期結(jié)果。在監(jiān)督式學(xué)習(xí)分類的情形中,我們只需要輸入每條測試數(shù)據(jù),然后檢查模型輸出是否與預(yù)期一樣。如果我們的模型正確得出了95%的測試樣本的結(jié)果,我們說這個模型的準(zhǔn)確率是95%。
需要牢記的是,訓(xùn)練和測試數(shù)據(jù)集不能重合,這是測試模型泛化能力和預(yù)測能力的唯一途徑。你可能在你的訓(xùn)練數(shù)據(jù)上能夠得到較高的準(zhǔn)確率,但如果在單獨(dú)的測試集上則得到較差的準(zhǔn)確率。這就是過擬合,也就是算法對訓(xùn)練樣本過度擬合導(dǎo)致糟糕的預(yù)測能力。通常避免過擬合的方法是使用較少特征的,更簡單的模型,簡化模型,并使用更大更具代表性的訓(xùn)練集。
準(zhǔn)確率是最基本的指標(biāo),同時你也應(yīng)該關(guān)注其他的指標(biāo),比如精準(zhǔn)度和召回率,這將會告訴你算法的在每一個分類上(當(dāng)使用監(jiān)督式學(xué)習(xí)分類時)的性能如何。混淆矩陣是觀察分類算法在哪里出現(xiàn)混淆預(yù)測的好工具。
對于回歸和聚類問題,有其他的指標(biāo)來度量算法的性能。
性能
在實(shí)際應(yīng)用中,如果你要實(shí)施解決方案,你必須建立一個強(qiáng)大和高性能的解決方案。在機(jī)器學(xué)習(xí)應(yīng)用中,這會是一個復(fù)雜的任務(wù)。首先,你需要選擇機(jī)器學(xué)習(xí)框架,這不是項(xiàng)容易的工作,因?yàn)椴⒉皇撬械木幊陶Z言都有相關(guān)的強(qiáng)大工具。Python和Scikit-learn是構(gòu)建強(qiáng)大機(jī)器學(xué)習(xí)框架可以使用的編程語言的良好例子。
選擇好框架之后,就要考慮性能問題了。取決于數(shù)據(jù)量,復(fù)雜度和設(shè)計的算法,運(yùn)行訓(xùn)練算法可能會耗費(fèi)大量的計算時間和內(nèi)存。你可能需要運(yùn)行多個訓(xùn)練算法直到得到優(yōu)良的結(jié)果。而且,通常你可能會用新實(shí)例來重新訓(xùn)練模型來提高準(zhǔn)確率。
為了在使用時訓(xùn)練大量模型并快速的到結(jié)果,我們通常使用較大內(nèi)存和多核處理器的機(jī)器來并行訓(xùn)練模型。
這些大多是實(shí)際問題,如果你想部署機(jī)器學(xué)習(xí)解決方案到實(shí)際應(yīng)用中,考慮這些問題是非常重要的。
結(jié)束語
就是這樣,我簡要概述了什么是機(jī)器學(xué)習(xí)。還有許多實(shí)際應(yīng)用以及機(jī)器學(xué)習(xí)算法和概念本文沒有涉及,我們將這留給讀者自行研究。
機(jī)器學(xué)習(xí)是很強(qiáng)大的,但訓(xùn)練它也是艱難的,這篇文章中所說的訓(xùn)練模型時可能出現(xiàn)的困難只是冰山一角。
通常具有計算機(jī)科學(xué)特別是機(jī)器學(xué)習(xí)的背景是取得優(yōu)良結(jié)果所必須的。一個人可能會在步入正軌前因?yàn)橹T多困難而失望。
這就是我們創(chuàng)建MonkeyLearn的原因,使用于文本分析的機(jī)器學(xué)習(xí)技術(shù)大眾化。避免重新發(fā)明輪子,讓每一個軟件開發(fā)人員或企業(yè)家迅速獲得實(shí)用的結(jié)果。以下是我們主要的工作方面,抽象所有這些問題的最終用戶,從機(jī)器學(xué)習(xí)復(fù)雜度到實(shí)際擴(kuò)展性來排序,得到即插即用的機(jī)器學(xué)習(xí)。
總結(jié)
- 上一篇: 华为,15万大军孤独行走在世界上
- 下一篇: 美国进入“非结构化”数据分析新时代