怎样教一台计算机区分猫和狗?一文零基础入坑机器学习
導(dǎo)讀:機器學習是一個快速發(fā)展的研究領(lǐng)域,主要關(guān)注設(shè)計和分析能讓計算機學習的算法。作為一門新興學科,盡管有待發(fā)掘的知識比已經(jīng)掌握的知識要多得多,但當前的機器學習方法已經(jīng)被用于教計算機執(zhí)行各種各樣有用的任務(wù)。這包括:
?
-
圖像中目標的自動檢測(駕駛員輔助和自動駕駛汽車的關(guān)鍵組成部分)
-
語音識別(提升語音命令技術(shù))
-
醫(yī)學領(lǐng)域中的知識發(fā)現(xiàn)(用于增進我們對復(fù)雜疾病的理解)
-
預(yù)測分析(用于銷售和經(jīng)濟預(yù)測)
?
為了能讓讀者從整體上了解機器學習的原理,我們首先討論一個微型機器學習問題:教計算機如何區(qū)分貓和狗的照片。通過該例子,我們采用非形式化的方式描述解決機器學習問題的一般過程。
?
作者:杰瑞米·瓦特,雷薩·博哈尼,阿格洛斯·K.卡薩格羅斯
如需轉(zhuǎn)載請聯(lián)系大數(shù)據(jù)(ID:hzdashuju)
?
?
01 教計算機區(qū)分貓和狗
?
在教孩子區(qū)分“貓”和“狗”時,幾乎所有父母都不會告訴孩子某種形式的科學定義(例如,狗屬于哺乳動物這個大類中犬科的一員,而貓屬于相同大類中貓科的一員),反倒是會給孩子看一些貓和狗的圖片,同時告訴他們哪些是貓哪些是狗,直到他們完全掌握這兩個概念為止。
?
我們怎么知道孩子何時學會區(qū)分貓和狗了呢?直覺上,應(yīng)該是當他們遇到新的貓和狗(或圖片)并能夠逐一正確辨識的時候。像人類一樣,計算機也可以采用類似的方式學習如何執(zhí)行這類任務(wù)。在機器學習領(lǐng)域,這種以教計算機區(qū)分不同類別事物為目標的任務(wù)被稱為分類。
?
1. 收集數(shù)據(jù)
?
像人類一樣,計算機也必須經(jīng)過從實例中學習的訓練來識別兩種動物的不同之處,這些實例稱為數(shù)據(jù)的訓練集。圖1-1展示了這樣的訓練集,其中包含不同的貓和狗的圖片。直觀而言,更大和更多樣化的訓練集可使計算機(或人)更好地完成學習任務(wù),這是因為更廣泛的例子可以賦予學習者更多的經(jīng)驗。
?
▲圖1-1 包含六只貓(左圖)和六條狗(右圖)的訓練集,這個數(shù)據(jù)集用來訓練區(qū)分貓和狗圖片的機器學習模型
?
2. 設(shè)計特征
?
考慮一下你自己是如何區(qū)分貓和狗的圖片的。為了將二者分開,你會關(guān)注什么?你可能會用顏色、大小、耳朵或鼻子的形狀,以及(或者)這些特征的組合來區(qū)分它們。
?
換句話說,你不會只是簡單地將圖片當成許多小像素塊的集合,而是會從這些圖中找出細節(jié)或者特征來確定你看到的是什么。對于計算機而言也是如此。為了成功地訓練計算機完成此項任務(wù)(或者任何更一般的機器學習任務(wù)),我們需要給它提供設(shè)計合理的特征,或者更理想情況下,讓它自己找到這樣的特征。
?
因為設(shè)計高質(zhì)量的特征非常依賴于應(yīng)用,所以這通常不是一個簡單的任務(wù)。比如,像 “腿的數(shù)量”這樣的特征對于區(qū)分貓和狗是沒有用的(因為它們都有4條腿!),但是這一特征對于辨別貓和蛇非常有用。
?
此外,從訓練集中提取特征也非常具有挑戰(zhàn)性。例如,如果一些訓練圖像非常模糊,或者是從看不到動物的頭的角度拍攝出來的,那么我們設(shè)計的特征或許就無法正確地提取出來。
?
為了簡化我們討論的問題,假設(shè)可以很容易地從訓練集的圖片中提取以下兩個特征:
?
-
鼻子的大小,相對于頭的大小(從小到大);
-
耳朵的形狀(從圓到尖)。
?
從圖1-1所示的訓練圖片中可以看出,所有的貓都有小鼻子和尖耳朵,2而所有的狗都有大鼻子和圓耳朵。值得注意的是,每一幅圖片中當前選擇的特征都可以只由兩個數(shù)字表示:一個數(shù)字表示相對的鼻子大小,另外一個數(shù)字表示耳朵尖或圓的程度。
?
因此,訓練集中的圖片都可以在二維特征空間中表示出來,其中“鼻子大小”特征和“耳朵形狀”特征分別由圖1-2中的水平坐標和垂直坐標表示。因為我們設(shè)計的特征能很好地區(qū)分訓練集中的貓和狗,所以貓圖片的特征表示都集中在空間的一部分,而狗圖片的特征表示則聚集在另一部分。
?
▲圖1-2 訓練集的特征空間表示,其中水平和垂直坐標分別表示“鼻子大小”特征和“耳朵形狀”特征,訓練集中的貓和狗分別處于特征空間的不同位置,這說明特征選得很合適
?
3. 訓練模型
?
現(xiàn)在我們有了訓練數(shù)據(jù)集合適的特征表示,那么教計算機區(qū)分貓和狗的最后一步就可歸為一個簡單的幾何問題:讓計算機在我們精心設(shè)計的特征空間中找到能夠區(qū)分貓和狗的一條直線或者一個線性模型[1]。
?
直線(在二維空間中)有斜率和截距兩個參數(shù),這意味著要為這兩個參數(shù)找到正確的值。直線的參數(shù)必須根據(jù)訓練數(shù)據(jù)(的特征表示)來確定。確定參數(shù)的過程依賴于一組名為數(shù)值優(yōu)化的工具,此過程被稱作模型的訓練。
?
圖1-3展示了一個已訓練好的線性模型,它將特征空間分成貓和狗兩個區(qū)域。一旦確定了這條線,計算機會將出現(xiàn)在它之上的特征表示(左上區(qū)域)判斷為貓,將出現(xiàn)在它之下的特征表示(右下區(qū)域)判斷為狗。
?
▲圖1-3 一個已訓練好的線性模型完美地將訓練集中的兩類動物區(qū)分開來:如果將來任何新圖片的特征表示落入這條線之上(左上區(qū)域),該圖片就會被歸類為貓;如果落入這條線之下(右下區(qū)域),該圖片就會被歸類為狗
?
4. 測試模型
?
為了測試我們的學習器性能,我們給計算機提供一些以前沒有見過的貓和狗的圖片(一般稱為數(shù)據(jù)的測試集),然后看看它對每幅圖片中動物的識別能力。基于當前問題,我們在圖1-4中展示了由三幅新的貓和狗的圖片組成的測試集。
?
▲圖1-4 貓和狗圖片的測試集,注意,其中的一條狗,也就是右上方的波士頓,有小鼻子和尖耳朵,根據(jù)我們選擇的特征表示,計算機會認為這是一只貓
?
為了測試,需要從新圖片中提取我們設(shè)計的特征(鼻子大小和耳朵形狀),并簡單檢查一下它們落入特征空間中直線的哪一側(cè)。在這個例子中,如圖1-5所示,測試集中所有貓的圖片以及兩張狗的圖片都被正確識別出來了。
?
▲圖1-5 用我們已訓練好的線性模型來識別測試圖片(的特征表示),注意,由于波士頓像訓練集中的貓一樣擁有尖耳朵和小鼻子,因此它被誤分類成一只貓
?
這只狗(波士頓)的誤分類完全是因為我們選擇的特征,而這些特征是根據(jù)圖1-1中的訓練集設(shè)計的。這只狗的特征是小鼻子和尖耳朵,恰好和訓練集中的貓相匹配,所以被誤分類。
?
因此,雖然剛開始鼻子大小和耳朵形狀的組合確實能區(qū)分貓和狗,但是由于訓練集太小且不夠多樣化,我們發(fā)現(xiàn)基于訓練集選擇出來的特征是不能完全有效的。
?
為了提升學習器性能,我們必須從頭開始。
?
-
首先,應(yīng)該收集更多的數(shù)據(jù),組成一個龐大且多樣的訓練集。
-
其次,需要考慮設(shè)計更具有辨識性的特征(比如,眼睛的顏色、尾巴的形狀等)來進一步幫助我們區(qū)分貓和狗。
-
最后,還要用設(shè)計的特征訓練一個新的模型,并用同樣的方式來測試,看它與原來的模型相比是否有所改進。
?
?
02 經(jīng)典機器學習問題的流程
?
現(xiàn)在我們簡要回顧一下前面描述的過程,通過該過程,我們建立了一個訓練模型,用于完成區(qū)分貓和狗的微型任務(wù)。同樣的過程基本上可用于完成所有的機器學習任務(wù),因此很值得我們花一些時間來回顧解決典型機器學習問題所采取的步驟。
?
為了突出這些步驟的重要性,我們在下面將其列舉出來。
?
我們把這些步驟稱為解決機器學習問題的一般流程,圖1-6簡潔地概括了該流程。
?
▲圖1-6 貓和狗分類問題的學習流程,相同的一般化流程基本上可用于所有的機器學習問題
?
-
定義問題:我們想教計算機做什么任務(wù)?
-
收集數(shù)據(jù):為訓練集和測試集收集數(shù)據(jù)。數(shù)據(jù)越大、越多樣越好。
-
設(shè)計特征:什么樣的特征最能描述數(shù)據(jù)?
-
訓練模型:用數(shù)值優(yōu)化技術(shù)在訓練集上調(diào)整恰當模型的參數(shù)。
-
測試模型:評估訓練模型在測試數(shù)據(jù)上的性能。如果評估結(jié)果不佳,則重新考慮所使用的特征,并盡可能收集更多的數(shù)據(jù)。
?
注釋:
?
[1]雖然通常情況下我們可以找到一條曲線或者非線性模型來區(qū)分數(shù)據(jù),但是在實際應(yīng)用中,如果特征設(shè)計合理,那么線性模型是最常見的選擇。
?
關(guān)于作者:杰瑞米·瓦特(Jeremy Watt),獲得美國西北大學計算機科學與電氣工程專業(yè)博士學位,研究興趣是機器學習、計算機視覺和數(shù)值優(yōu)化。
雷薩·博哈尼(Reza Borhani),獲得美國西北大學計算機科學與電氣工程專業(yè)博士學位,研究興趣是面向機器學習和計算機視覺問題的算法設(shè)計與分析。
阿格洛斯·K.卡薩格羅斯(Aggelos K. Katsaggelos),美國西北大學計算機科學與電氣工程系教授,Joseph Cummings名譽教授,圖像與視頻處理實驗室的負責人。
本文摘編自《機器學習精講:基礎(chǔ)、算法及應(yīng)用》,經(jīng)出版方授權(quán)發(fā)布。
?
延伸閱讀《機器學習精講:基礎(chǔ)、算法及應(yīng)用》
點擊上圖了解及購買
轉(zhuǎn)載請聯(lián)系微信:togo-maruko
?
推薦語:本書為了解機器學習提供了一種獨特的途徑。書中包含了新穎、直觀而又嚴謹?shù)幕靖拍蠲枋?#xff0c;它們是研究課題、制造產(chǎn)品、修補漏洞以及實踐不可或缺的部分。
?
?
據(jù)統(tǒng)計,99%的大咖都完成了這個神操作
▼
?
?
更多精彩
?
在公眾號后臺對話框輸入以下關(guān)鍵詞
查看更多優(yōu)質(zhì)內(nèi)容!
?
PPT?|?報告?|?讀書?|?書單
大數(shù)據(jù)?|?揭秘?|?人工智能?|?AI
Python?|?機器學習?|?深度學習?|?神經(jīng)網(wǎng)絡(luò)
可視化?|?區(qū)塊鏈?|?干貨?|?數(shù)學
?
猜你想看
?
-
猿宵節(jié)正確打開方式:你要的大數(shù)據(jù)、機器學習、神經(jīng)網(wǎng)絡(luò)…已配齊
-
故宮首開夜場門票秒空官網(wǎng)崩潰:7本書讓網(wǎng)站挺住
-
《流浪地球》導(dǎo)演郭帆竟然“特別絕望”?
-
7本書告訴你,為什么拯救“流浪地球”的是人類,不是AI?
?
?
Q:?你還想教計算機做什么?
歡迎留言與大家分享
覺得不錯,請把這篇文章分享給你的朋友
轉(zhuǎn)載 / 投稿請聯(lián)系:baiyu@hzbook.com
更多精彩,請在后臺點擊“歷史文章”查看
點擊閱讀原文,了解更多
新人創(chuàng)作打卡挑戰(zhàn)賽發(fā)博客就能抽獎!定制產(chǎn)品紅包拿不停!總結(jié)
以上是生活随笔為你收集整理的怎样教一台计算机区分猫和狗?一文零基础入坑机器学习的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 刚刚!阿里云宣布2021要“做厚中台”!
- 下一篇: 数据又多又散,“孤岛困境”怎样破局?