官术网_书友最值得收藏!

1.1 為何選擇機器學習

在“智能”應用的早期,許多系統(tǒng)使用人為制訂的“if”和“else”決策規(guī)則來處理數(shù)據(jù),或根據(jù)用戶輸入的內(nèi)容進行調(diào)整。想象有一個垃圾郵件過濾器,其任務是酌情將收到的某些郵件移動到垃圾郵件文件夾。你可以創(chuàng)建一個關鍵詞黑名單,所有包含這些關鍵詞的郵件都會被標記為垃圾郵件。這是用專家設計的規(guī)則體系來設計“智能”應用的一個示例。人為制訂的決策規(guī)則對某些應用來說是可行的,特別是人們對其模型處理過程非常熟悉的應用。但是,人為制訂決策規(guī)則主要有兩個缺點。

· 做決策所需要的邏輯只適用于單一領域和單項任務。任務哪怕稍有變化,都可能需要重寫整個系統(tǒng)。

· 想要制訂規(guī)則,需要對人類專家的決策過程有很深刻的理解。

這種人為制訂規(guī)則的方法并不適用的一個例子就是圖像中的人臉檢測。如今,每臺智能手機都能夠檢測到圖像中的人臉。但直到2001年,人臉檢測問題才得到解決。其主要問題在于,計算機“感知”像素(像素組成了計算機中的圖像)的方式與人類感知面部的方式有非常大的不同。正是由于這種表征差異,人類想要制訂出一套好的規(guī)則來描述數(shù)字圖像中的人臉構成,基本上是不可能的。

但有了機器學習算法,僅向程序輸入海量人臉圖像,就足以讓算法確定識別人臉需要哪些特征。

1.1.1 機器學習能夠解決的問題

最成功的機器學習算法是能夠?qū)Q策過程自動化的那些算法,這些決策過程是從已知示例中泛化得出的。在這種叫作監(jiān)督學習(supervised learning)的方法中,用戶將成對的輸入和預期輸出提供給算法,算法會找到一種方法,根據(jù)給定輸入給出預期輸出。尤其是在沒有人類幫助的情況下,給定前所未見的輸入,算法也能夠給出相應的輸出。回到前面垃圾郵件分類的例子,利用機器學習算法,用戶為算法提供大量電子郵件(作為輸入),以及這些郵件是否為垃圾郵件的信息(作為預期輸出)。給定一封新郵件,算法就能夠預測它是否為垃圾郵件。

從輸入/輸出對中進行學習的機器學習算法叫作監(jiān)督學習算法(supervised learning algorithm),因為每個用于算法學習的樣例都對應一個預期輸出,好像有一個“老師”在監(jiān)督著算法。雖然創(chuàng)建一個包含輸入和輸出的數(shù)據(jù)集往往費時又費力,但監(jiān)督學習算法很好理解,其性能也易于測量。如果你的應用可以表示成一個監(jiān)督學習問題,并且你能夠創(chuàng)建包含預期輸出的數(shù)據(jù)集,那么機器學習很可能可以解決你的問題。

監(jiān)督機器學習任務的示例如下。

識別信封上手寫的郵政編碼

這里的輸入是掃描的手寫數(shù)字,預期輸出是郵政編碼中的實際數(shù)字。想要創(chuàng)建用于構建機器學習模型的數(shù)據(jù)集,你需要收集許多信封。然后你可以自己閱讀郵政編碼,將數(shù)字保存為預期輸出。

基于醫(yī)學影像判斷腫瘤是否為良性

這里的輸入是影像,輸出是腫瘤是否為良性。想要創(chuàng)建用于構建模型的數(shù)據(jù)集,你需要一個醫(yī)學影像數(shù)據(jù)庫。你還需要咨詢專家的意見,因此醫(yī)生需要查看所有影像,然后判斷哪些腫瘤是良性的,哪些不是良性的。除了影像內(nèi)容之外,甚至可能還需要做額外的診斷來判斷影像中的腫瘤是否為癌變。

檢測信用卡交易中的詐騙行為

這里的輸入是信用卡交易記錄,輸出是該交易記錄是否可能為詐騙。假設你是信用卡的發(fā)行單位,收集數(shù)據(jù)集意味著需要保存所有的交易,并記錄用戶是否上報過任何詐騙交易。在這些例子中需要注意一個有趣的現(xiàn)象,就是雖然輸入和輸出看起來相當簡單,但三個例子中的數(shù)據(jù)收集過程卻大不相同。閱讀信封雖然很辛苦,卻非常簡單,也不用花多少錢。與之相反,獲取醫(yī)學影像和診斷不僅需要昂貴的設備,還需要稀有又昂貴的專家知識,更不要說倫理問題和隱私問題了。在檢測信用卡詐騙的例子中,收集數(shù)據(jù)要容易得多。你的顧客會上報詐騙行為,從而為你提供預期輸出。要獲取所有欺詐行為和非欺詐行為的輸入/輸出對,你只需等待即可。

本書會講到的另一類算法是無監(jiān)督學習算法(unsupervised learning algorithm)。在無監(jiān)督學習中,只有輸入數(shù)據(jù)是已知的,沒有為算法提供輸出數(shù)據(jù)。雖然這種算法有許多成功的應用,但理解和評估這些算法往往更加困難。

無監(jiān)督學習的示例如下。

確定一系列博客文章的主題

如果你有許多文本數(shù)據(jù),可能想對其進行匯總,并找到其中共同的主題。事先你可能并不知道都有哪些主題,或者可能有多少個主題。所以輸出是未知的。

將客戶分成具有相似偏好的群組

給定一組客戶記錄,你可能想要找出哪些客戶比較相似,并判斷能否根據(jù)相似偏好對這些客戶進行分組。對于一家購物網(wǎng)站來說,客戶分組可能是“父母”“書蟲”或“游戲玩家”。由于你事先并不知道可能有哪些分組,甚至不知道有多少組,所以并不知道輸出是什么。

檢測網(wǎng)站的異常訪問模式

想要識別網(wǎng)站的濫用或bug,找到異常的訪問模式往往是很有用的。每種異常訪問模式都互不相同,而且你可能沒有任何記錄在案的異常行為示例。在這個例子中你只是觀察流量,并不知道什么是正常訪問行為和異常訪問行為,所以這是一個無監(jiān)督學習問題。

無論是監(jiān)督學習任務還是無監(jiān)督學習任務,將輸入數(shù)據(jù)表征為計算機可以理解的形式都是十分重要的。通常來說,將數(shù)據(jù)想象成表格是很有用的。你想要處理的每一個數(shù)據(jù)點(每一封電子郵件、每一名客戶、每一次交易)對應表格中的一行,描述該數(shù)據(jù)點的每一項屬性(比如客戶年齡、交易金額或交易地點)對應表格中的一列。你可能會從年齡、性別、賬號創(chuàng)建時間、在你的購物網(wǎng)站上的購買頻率等方面來描述用戶。你可能會用每一個像素的灰度值來描述腫瘤圖像,也可能利用腫瘤的大小、形狀和顏色進行描述。

在機器學習中,這里的每個實體或每一行被稱為一個樣本(sample)或數(shù)據(jù)點,而每一列(用來描述這些實體的屬性)則被稱為特征(feature)。

本書后面會更詳細地介紹如何構建良好的數(shù)據(jù)表征,這被稱為特征提取(feature extraction)或特征工程(feature engineering)。但你應該記住,如果沒有數(shù)據(jù)信息的話,所有機器學習算法都無法做出預測。舉個例子,如果你只有病人的姓氏這一個特征,那么任何算法都無法預測其性別。這一信息并未包含在數(shù)據(jù)中。如果你添加另一個特征,里面包含病人的名字,那么你預測正確的可能性就會變大,因為通過一個人的名字往往可以判斷其性別。

1.1.2 熟悉任務和數(shù)據(jù)

在機器學習過程中,最重要的部分很可能是理解你正在處理的數(shù)據(jù),以及這些數(shù)據(jù)與你想要解決的任務之間的關系。隨機選擇一個算法并將你的數(shù)據(jù)輸入進去,這種做法是不會有什么用的。在開始構建模型之前,你需要理解數(shù)據(jù)集的內(nèi)容。每一種算法的輸入數(shù)據(jù)類型和最適合解決的問題都是不一樣的。在構建機器學習解決方案的過程中,你應該給出下列問題的答案,或者至少要將這些問題記在腦中。

· 我想要回答的問題是什么?已經(jīng)收集到的數(shù)據(jù)能夠回答這個問題嗎?

· 要將我的問題表示成機器學習問題,用哪種方法最好?

· 我收集的數(shù)據(jù)是否足夠表達我想要解決的問題?

· 我提取了數(shù)據(jù)的哪些特征?這些特征能否實現(xiàn)正確的預測?

· 如何衡量應用是否成功?

· 機器學習解決方案與我的研究或商業(yè)產(chǎn)品中的其他部分是如何相互影響的?

從更大的層面來看,機器學習算法和方法只是解決特定問題的過程中的一部分,一定要始終牢記整個項目的大局。許多人浪費大量時間構建復雜的機器學習解決方案,最終卻發(fā)現(xiàn)沒有解決正確的問題。

當深入研究機器學習的技術細節(jié)時(本書會講到這些細節(jié)),很容易忽視最終目標。我們雖然不會詳細討論上面列出的問題,但仍然鼓勵你記住自己在開始構建機器學習模型時做出的假設,無論是明確的還是隱含的假設。

主站蜘蛛池模板: 阳城县| 东丰县| 鹿邑县| 屏南县| 文登市| 舟山市| 阜城县| 拉萨市| 白朗县| 建宁县| 维西| 贡嘎县| 安溪县| 张家界市| 东港市| 忻城县| 玉田县| 巨野县| 扶绥县| 罗江县| 东乌珠穆沁旗| 抚宁县| 萝北县| 蚌埠市| 巴东县| 六枝特区| 呼图壁县| 元谋县| 周至县| 静海县| 板桥市| 延庆县| 商都县| 沭阳县| 新巴尔虎左旗| 茂名市| 独山县| 光山县| 龙井市| 龙南县| 清原|