- 深度學習:從基礎到實踐(全2冊)
- (美)安德魯·格拉斯納
- 2832字
- 2022-12-20 18:34:07
1.1 為什么這一章出現在這里
本章旨在幫助你熟悉機器學習的重要理念和基本術語。
機器學習(machine learning)這一術語涉及越來越多的技術,這些技術都有一個共同目標,那就是從數據中發現有意義的信息。
其中,“數據”是指任何可以被記錄和測量的東西。它可以是原始數據(如連續幾天的股票價格、不同行星的質量、小城集市里人們的身高),也可以是聲音(如某人的手機錄音)、圖(如鮮花或貓的照片)、單詞(如報紙文章或小說的文本),抑或是我們想要研究的其他任何東西。
“有意義的信息”是指我們可以從數據中提取到的任何信息,在某種程度上,這些信息對我們而言是有用的。我們可以判斷哪些信息是有意義的,然后設計一個算法,從數據中找到盡可能多的這樣的信息。
“機器學習”一詞涵蓋了廣泛范圍內的各種算法和技術,雖然明確定義這個詞的精準含義是好的,但由于它對于不同的人來說有不同的用途,因此我們最好把它理解成一個涵蓋了越來越多的各種算法和原理的統稱,這些算法和原理的目的是對海量訓練數據進行分析,并從中提取含義。
近來,有人創造了深度學習(deep learning),用來指代那些使用特殊分層計算結構的機器學習方法(這些分層依次堆疊),這樣就形成了一個像堆疊的煎餅一樣的“深度”結構。由于“深度學習”指的是所創建的系統的本質,而不是任何特定算法,因此它實際上指的是一種特定的機器學習方式或方法。近幾年,人們通過該方法取得了大量研究成果。
現在,讓我們來看一下使用機器學習從數據中提取含義的幾個典型應用。
1.1.1 從數據中提取含義
郵局每天都需要根據手寫的郵政編碼整理大量的信件和包裹,目前他們已經開始借助計算機讀取這些編碼并自動分揀郵件,如圖1.1a所示。
銀行需要處理大量的手寫支票:查看總金額欄內手寫的數字金額(如25.10美元)與大寫金額欄內的金額是否一致(如貳拾伍美元拾美分),以判斷支票是否有效。計算機可以同時讀取數字金額和大寫金額,并確認兩者是否相匹配,如圖1.1b所示。
社交媒體網站想要通過照片識別出他們的用戶,這意味著不僅要檢測給定照片中是否有人臉,還要識別人臉的位置,然后將每張臉與之前看到的人臉進行匹配,由于燈光、角度、表情、衣著和許多其他特質都與先前的照片存在差異,并且同一個人的每一張照片都是獨一無二的,因此人臉識別的難度加大了。而社交媒體網站想要的是為任何一個人拍攝一張照片后就可以識別出他的身份,如圖1.1c所示。

(a) (b) (c)
圖1.1 從數據集中提取含義。(a)從信封中獲取郵政編碼;(b讀取支票上的數字和字母;(c)從照片中識別人臉
數字助手的供應商會聆聽人們對其小工具的反饋,以便智能地做出回應。來自麥克風的信號是一系列數字,這些數字用于描述聲音撞擊麥克風膜時造成的壓力,供應商想要分析它們,以便理解產生它們的聲音,理解這些聲音所屬的詞語以及詞語所屬的句子,最終得到這些句子的含義,如圖1.2a所示。
科學家從無人機、高能物理實驗和深空觀測中獲得大量數據后,往往需要從這些洪流般的數據中挑選出幾個項目實例。這些實例與所有其他的項目都相似,但略有不同。即使不乏許多訓練有素的專家,但要人工查看所有數據也是一項不可能完成的任務,所以最好能夠通過計算機使這個過程自動化。通過計算機實現數據的徹底梳理,不遺漏任何一個細節,如圖1.2b所示。
自然資源保護主義者會隨著時間的推移來追蹤物種的數量,觀察它們的表現,如果物種數量長期下降,那么他們可能就會采取行動進行干預。如果物種數量穩定或有所增長,那么他們可能保持觀望。預測一系列值的下一個值也是我們可以訓練計算機去做的事情,圖1.2c(改編自[Towers15])記錄了加拿大西海岸北部虎鯨種群每年的數量,以及對于這些數量的預測值。

(a) (b) (c)
圖1.2 從數據中提取含義。(a)用聲音記錄,之后轉化為文字,最后輸出完整的話語;(b)粒子加速器輸出的痕跡大多是相似的,需要在其中發現一個不尋常的事件;(c)預測加拿大西海岸北部的虎鯨數量
這6個例子展示了為許多人所熟悉的機器學習的應用,其實機器學習還有很多其他應用。由于機器學習算法能夠快速提取有意義的信息,因此它的應用領域也在不斷擴展。
在這里,共同的地方是所涉及的大量工作以及它的詳細細節。我們可能有數百萬條數據需要研究,并從每條數據中提取有用含義。人類會感到疲倦、無聊和心煩意亂,但是計算機可以一直穩定又可靠地完成工作。
1.1.2 專家系統
一種發現隱藏在數據中的含義的早期流行方法涉及專家系統(expert system)的構建。這個想法的本質是:在研究了解人類專家知道什么、做什么以及怎樣做后,將這些行為自動化,從本質上說,我們要制造一個能夠模仿人類專家的計算機系統。
這通常意味著構建一個基于規則的系統(rule-based system),在這個系統中,我們會為計算機制訂大量的規則,使其能夠模仿人類專家。例如,如果試圖識別郵政編碼中的手寫數字7,我們就可以設計一套這樣的規則:7的形狀是在圖的頂部有一條近乎水平的線,然后有一條近乎對角線的斜線從水平線的右端點延伸到左下角,如圖1.3所示。

(b)
圖1.3 設計一套識別手寫數字7的規則
(a)我們想識別的一個典型的7;(b)組成7的3條規則,如果有一個形狀滿足這3條規則,那么它被歸為7
對每一個數字,我們都有相似的規則,通常情況下這些規則都可以實現要求,直至遇到圖1.4所示的數字。

圖1.4 這個7也是一個7的有效寫法,但是它不會被圖1.3的規則識別,因為多了一條線
我們之前沒有考慮到有人會在7的中間加一橫,所以現在需要為這種特殊情況添加另一條規則。
手動調整規則來更好地理解數據的過程有時稱為特征工程(feature engineering)。這個術語也用于描述使用計算機為我們尋找這些特征的過程,參見本章“參考資料”中的 [VanderPlas16]。
這個術語描述了我們的愿景,也就是想要構造(或設計)人類專家完成工作所需的全部特征(或品質)。總的來說,這是一項非常艱難的工作。正如所看到的那樣,我們很容易忽略一個甚至多個規則,想象一下(以下場景有多困難),你試圖找到一套規則去總結“放射科醫生如何判斷X射線圖像上的斑點是否是良性的”,或者“空中交通管制員如何處理繁忙的空中交通”,抑或“一個人如何在極端天氣條件下安全駕駛汽車”。
誠然,基于規則的專家系統能夠勝任一些工作,但是人工設定一個正確的規則集以及確保專家系統在各種各樣的數據面前都能正確工作是非常困難的,而這個問題也似乎已經注定了其無法作為一種通用解決方法。對于一個復雜的過程,要清晰地表達其每一個步驟已經是極其困難的了,而在有些情況下,我們還需要考慮人類判斷時基于經驗和預感所做的決定,那么,除非是最簡單的情況,否則這幾乎是不可能完成的事情。
機器學習系統的美妙之處在于(在概念層面上):它們可以自動地學習數據集的相關特征。我們不需要告訴算法如何識別2或7,因為系統自己就能夠去總結理解,但要做到這一點,系統通常需要大量的數據,即超大的數據量。
這也是機器學習在過去幾年大受歡迎并得到廣泛應用的一個重要原因,互聯網提供的大量原始數據可以讓機器學習這一工具從大量數據中提取出更多信息。企業能夠利用與每個客戶的每次交互來積累更多的數據,然后將這些數據作為機器學習算法的輸入,利用它們為客戶提供更多的信息。