用三张图理解深度学习的工作原理
寫在前面
開局一張圖,你的清楚的認識到人工智能、機器學習、深度學習這些概念的關系,了解了之后,我們在進行接下來的討論。
深度學習的要素
為了給出深度學習的定義并搞清楚深度學習與其他機器學習方法的區別,我們首先需要知道機器學習算法在做什么。我們有個大致的認識,給定包含預期結果的示例,機器學習將會發現執行一項數據處理任務的規則。因此,我們需要以下三個要素來進行機器學習。
- 輸入數據點。例如,你的任務是語音識別,那么這些數據點可能是記錄人們說話的聲音文件。如果你的任務是為圖像添加標簽,那么這些數據點可能是圖像。
- 預期輸出的示例。對于語音識別任務來說,這些示例可能是人們根據聲音文件整理生成 的文本。對于圖像標記任務來說,預期輸出可能是“狗”“貓”之類的標簽。
- 衡量算法效果好壞的方法。這一衡量方法是為了計算算法的當前輸出與預期輸出的差距。 衡量結果是一種反饋信號,用于調節算法的工作方式。這個調節步驟就是我們所說的學習。
機器學習模型將輸入數據變換為有意義的輸出,這是一個從已知的輸入和輸出示例中進行 “學習”的過程。因此,機器學習和深度學習的核心問題在于有意義地變換數據,換句話說,在于學習輸入數據的有用表示(representation)——這種表示可以讓數據更接近預期輸出。
深度學習是啥樣?
深度學習是機器學習的一個分支領域:它是從數據中學習表示的一種新方法,強調從連續的層(layer)中進行學習,這些層對應于越來越有意義的表示。“深度學習”中的“深度”指 的并不是利用這種方法所獲取的更深層次的理解,而是指一系列連續的表示層。數據模型中包含多少層,這被稱為模型的深度(depth)。這一領域的其他名稱包括分層表示學習(layered representations learning)和層級表示學習(hierarchical representations learning)。
現代深度學習通常包含數十個甚至上百個連續的表示層,這些表示層全都是從訓練數據中自動學習的。與此相反,其他機器學習方法的重點往往是僅僅學習一兩層的數據表示,因此有時也被稱為淺層學習(shallow learning)。看下面這張圖,對深度學習有一個形象化的認識。
用三張圖理解深度學習的工作原理
現在你已經知道,機器學習是將輸入(比如圖像)映射到目標(比如標簽“貓”),這一過程是通過觀察許多輸入和目標的示例來完成的。你還知道,深度神經網絡通過一系列簡單的數據變換(層)來實現這種輸入到目標的映射,而這些數據變換都是通過觀察示例學習到的。下面來具體看一下這種學習過程是如何發生的。 神經網絡中每層對輸入數據所做的具體操作保存在該層的權重(weight)中,其本質是一 串數字。用術語來說,每層實現的變換由其權重來參數化。權重有時也被稱為該層的參數(parameter)。在這種語境下,學習的意思是為神經網絡的所有層找到一組權重值,使得該網絡能夠將每個示例輸入與其目標正確地一一對應。但重點來了:一個深度神經網絡可能包含數千萬個參數。找到所有參數的正確取值可能是一項非常艱巨的任務,特別是考慮到修改某個參數值將會影響其他所有參數的行為。下面是圖例的直觀描述。
想要控制一件事物,首先需要能夠觀察它。想要控制神經網絡的輸出,就需要能夠衡量該輸出與預期值之間的距離。這是神經網絡損失函數(loss function)的任務,該函數也叫目標函數(objective function)。損失函數的輸入是網絡預測值與真實目標值(即你希望網絡輸出的結果),然后計算一個距離值,衡量該網絡在這個示例上的效果好壞。下面是圖例的直觀描述。
深度學習的基本技巧是利用這個距離值作為反饋信號來對權重值進行微調,以降低當前示 例對應的損失值。這種調節由優化器(optimizer)來完成,它實現了所謂的反向傳播(backpropagation)算法,這是深度學習的核心算法。下面是圖例的直觀描述。
一開始對神經網絡的權重隨機賦值,因此網絡只是實現了一系列隨機變換。其輸出結果自然也和理想值相去甚遠,相應地,損失值也很高。但隨著網絡處理的示例越來越多,權重值也 在向正確的方向逐步微調,損失值也逐漸降低。這就是訓練循環(training loop),將這種循環重復足夠多的次數(通常對數千個示例進行數十次迭代),得到的權重值可以使損失函數最小。具有最小損失的網絡,其輸出值與目標值盡可能地接近,這就是訓練好的網絡。再次強調,這是一個簡單的機制,一旦具有足夠大的規模,將會產生魔法般的效果。
總結
以上是生活随笔為你收集整理的用三张图理解深度学习的工作原理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 重学java基础第五课:博客的重要性
- 下一篇: 图解深度学习-三种梯度下降法可视化(BG