用三張圖理解深度學習的工作原理

用三張圖理解深度學習的工作原理

豆瓣評分 10.0 的經典書籍

● Keras之父、Google人工智能研究員François Chollet執筆,深度學習領域力作

● 通俗易懂,幫助讀者建立關於機器學習和深度學習核心思想的直覺

● 16開全綵印刷

下文節選自《Python深度學習》, 已獲人郵圖靈授權許可, [遇見數學] 特此表示感謝!

1.1.5 用三張圖理解深度學習的工作原理

現在你已經知道,機器學習是將輸入(比如圖像)映射到目標(比如標籤“貓”),這一過程是通過觀察許多輸入和目標的示例來完成的。你還知道,深度神經網絡通過一系列簡單的數據變換(層)來實現這種輸入到目標的映射,而這些數據變換都是通過觀察示例學習到的。下面來具體看一下這種學習過程是如何發生的。

用三張圖理解深度學習的工作原理

神經網絡中每層對輸入數據所做的具體操作保存在該層的權重(weight)中,其本質是一串數字。用術語來說,每層實現的變換由其權重來參數化(parameterize,見圖 1-7)。權重有時也被稱為該層的參數(parameter)。在這種語境下,學習的意思是為神經網絡的所有層找到一組權重值,使得該網絡能夠將每個示例輸入與其目標正確地一一對應。但重點來了:一個深度神經網絡可能包含數千萬個參數。找到所有參數的正確取值可能是一項非常艱鉅的任務,特別是考慮到修改某個參數值將會影響其他所有參數的行為。

用三張圖理解深度學習的工作原理

圖 1-7 神經網絡是由其權重來參數化

想要控制一件事物,首先需要能夠觀察它。想要控制神經網絡的輸出,就需要能夠衡量該輸出與預期值之間的距離。這是神經網絡損失函數(loss function)的任務,該函數也叫目標函數(objective function)。損失函數的輸入是網絡預測值與真實目標值(即你希望網絡輸出的結果),然後計算一個距離值,衡量該網絡在這個示例上的效果好壞(見圖 1-8)。

用三張圖理解深度學習的工作原理

圖 1-8 損失函數用來衡量網絡輸出結果的質量

深度學習的基本技巧是利用這個距離值作為反饋信號來對權重值進行微調,以降低當前示例對應的損失值(見圖 1-9)。這種調節由優化器(optimizer)來完成,它實現了所謂的反向傳播(backpropagation)算法,這是深度學習的核心算法。下一章中會詳細地解釋反向傳播的工作原理。

用三張圖理解深度學習的工作原理

圖 1-9 將損失值作為反饋信號來調節權重

一開始對神經網絡的權重隨機賦值,因此網絡只是實現了一系列隨機變換。其輸出結果自然也和理想值相去甚遠,相應地,損失值也很高。但隨著網絡處理的示例越來越多,權重值也在向正確的方向逐步微調,損失值也逐漸降低。這就是訓練循環(training loop),將這種循環重複足夠多的次數(通常對數千個示例進行數十次迭代),得到的權重值可以使損失函數最小。具有最小損失的網絡,其輸出值與目標值儘可能地接近,這就是訓練好的網絡。再次強調,這是一個簡單的機制,一旦具有足夠大的規模,將會產生魔法般的效果。

雖然深度學習是機器學習一個相當有年頭的分支領域,但在 21 世紀前十年才崛起。在隨後的幾年裡,它在實踐中取得了革命性進展,在視覺和聽覺等感知問題上取得了令人矚目的成果,而這些問題所涉及的技術,在人類看來是非常自然、非常直觀的,但長期以來卻一直是機器難以解決的。

1.1.6 深度學習已經取得的進展

特別要強調的是,深度學習已經取得了以下突破,它們都是機器學習歷史上非常困難的領域:

  • 接近人類水平的圖像分類
  • 接近人類水平的語音識別
  • 接近人類水平的手寫文字轉錄
  • 更好的機器翻譯
  • 更好的文本到語音轉換
  • 數字助理,比如谷歌即時(Google Now)和亞馬遜 Alexa
  • 接近人類水平的自動駕駛
  • 更好的廣告定向投放,Google、百度、必應都在使用
  • 更好的網絡搜索結果
  • 能夠回答用自然語言提出的問題
  • 在圍棋上戰勝人類

我們仍然在探索深度學習能力的邊界。我們已經開始將其應用於機器感知和自然語言理解之外的各種問題,比如形式推理。如果能夠成功的話,這可能預示著深度學習將能夠協助人類進行科學研究、軟件開發等活動。

相關推薦

推薦中...