第 章 什麼是深度學習 筆記

2021-09-27 13:51:15 字數 3991 閱讀 6499

在經典的程式設計(即符號主義人工智慧的正規化)中,人們輸入的是規則(即程式)和需要根據這些規則進行處理的資料,系統輸出的是答案

(見圖 1-2)。

利用機器學習,人們輸入的是資料和從這些資料中預期得到的答案,系統輸出的是

規則。這些規則隨後可應用於新的資料,並使計算機自主生成答案。

因此,機器學習和深度學習的核心問題在於有意義地變換資料,

換句話說,在於學習輸入資料的有用表示(representation)——這種表示可以讓資料更接近預期輸出。

所有機器學習演算法都包括自動尋找這樣一種變換:

這種變換可以根據任務將資料轉化為更加有用的表示。

這些操作可能是前面提到的座標變換,也可能是線性投影(可能會破壞資訊)、平移、非線性操作(比如「選擇所有 x>0 的點」),等等。機器學習演算法在尋找這些變換時通常沒有什麼創造性,而僅僅是遍歷一組預先定義好的操作,這組操作叫作假設空間(hypothesis space)。

深度學習不是大腦模型。

深度學習是從資料中學習表示的一種數學框架.

神經網路中每層對輸入資料所做的具體操作儲存在該層的權重(weight)中,

其本質是一串數字。

用術語來說,每層實現的變換由其權重來引數化(parameterize,見圖 1-7)。權重有時也被稱為該層的引數(parameter)。在這種語境下,學習的意思是為神經網路的所有層找到一組權重值,使得該網路能夠將每個示例輸入與其目標正確地一一對應。但重點來了:

乙個深度神經網路可能包含數千萬個引數。找到所有引數的正確取值可能是一項非常艱鉅的任務,特別是

考慮到修改某個引數值將會影響其他所有引數的行為。

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

深度學習的基本技巧是利用這個距離值作為反饋訊號來對權重值進行微調,以降低當前示

例對應的損失值(見圖 1-9)。這種調節由優化器(optimizer)來完成,它實現了所謂的反向

傳播(backpropagation)演算法,這是深度學習的核心演算法。下一章中會詳細地解釋反向傳播的工

作原理。

雖然一些改變世界的應用(比如自動駕駛汽車)已經觸手可及,但更多的應用可能在長時間內仍然難以實現,比如可信的對話系統、達到人類水平的跨任意語言的機器翻譯、達到人類水平的自然語言理解。

我們尤其不應該把達到人類水平的通用智慧型(human-level general intelligence)的討論太當回事。

在短期內期望過高的風險是,一旦技術上沒有實現,那麼研究投資將會停止,而這會導致在很長一段時間內進展緩慢.

不要相信短期的炒作,但一定要相信長期的願景。

深度學習不一定總是解決問題的正確工具:

有時沒有足夠的資料,深度學習不適用;

有時用其他演算法可以更好地解決問題。

logreg是一種分類演算法,而不是回歸演算法。

svm 的目標是通過在屬於兩個不同類別的兩組資料點之間找到良好決策邊界(decision boundary,見圖 1-10)來解決分類問題。決策邊界可以看作一條直線或乙個平面,將訓練資料劃分為兩塊空間,分別對應於兩個類別。對於新資料點的分類,你只需判斷它位於決策邊界的哪一側。

svm 通過兩步來尋找決策邊界。

(1) 將資料對映到乙個新的高維表示,這時決策邊界可以用乙個超平面來表示(如果資料像圖 1-10 那樣是二維的,那麼超平面就是一條直線)。

(2) 盡量讓超平面與每個類別最近的資料點之間的距離最大化,從而計算出良好決策邊界(分割超平面),這一步叫作間隔最大化(maximizing the margin)。這樣決策邊界可以很好地推廣到訓練資料集之外的新樣本。

但是,svm 很難擴充套件到大型資料集,並且在影象分類等感知問題上的效果也不好。svm是一種比較淺層的方法,因此要想將其應用於感知問題,首先需要手動提取出有用的表示(這叫作特徵工程),這一步驟很難,而且不穩定。

深度卷積神經網路(convnet)已成為所有計算機視覺任務的首選演算法。更一般地說,它在所有感知任務上都有效。

在 2015 年和 2016 年的主要計算機視覺會議上,幾乎所有演講都與 convnet 有關。與此同時,深度學習也在許多其他型別的問題上得到應用,比如自然語言處理。

它已經在大量應用中完全取代了 svm 與決策樹。舉個例子,歐洲核子研究中心(cern)多年來一直使用基於決策樹的方法來分析來自大型強子對撞機(lhc)atlas 探測器的粒子資料,但 cern 最終轉向基於 keras 的深度神經網路,因為它的效能更好,而且在大型資料集上易於訓練。

先前的機器學習技術(淺層學習)僅包含將輸入資料變換到一兩個連續的表示空間,通常使用簡單的變換,比如高維非線性投影(svm)或決策樹。但這些技術通常無法得到複雜問題所需要的精確表示。因此,人們必須竭盡全力讓初始輸入資料更適合用這些方法處理,也必須手動為資料設計好的表示層。這叫作特徵工程。與此相反,深度學習完全將這個步驟自動化:

利用深度學習,你可以一次性學習所有特徵,而無須自己手動設計。這極大地簡化了機器學習工作流程,通常將複雜的多階段流程替換為乙個簡單的、端到端的深度學習模型。

你可能會問,如果問題的關鍵在於有多個連續表示層,那麼能否重複應用淺層方法,以實現和深度學習類似的效果?

在實踐中,如果連續應用淺層學習方法,其收益會隨著層數增加迅速降低,因為三層模型中最優的第一表示層並不是單層或雙層模型中最優的第一表示層。

深度學習的變革性在於,模型可以在同一時間共同學習所有表示層,而不是依次連續學習(這被稱為貪婪學習)。

通過共同的特徵學習,一旦模型修改某個內部特徵,所有依賴於該特徵的其他特徵都會相應地自動調節適應,無須人為干預。一切都由單一反饋訊號來監督:模型中的每一處變化都是為了最終目標服務。

這種方法比貪婪地疊加淺層模型更加強大,因為它可以通過將複雜、抽象的表示拆解為很多個中間空間(層)來學習這些表示,每個中間空間僅僅是前乙個空間的簡單變換。

深度學習從資料中進行學習時有兩個基本特徵:

第一,通過漸進的、逐層的方式形成越來越複雜的表示;

第二,對中間這些漸進的表示共同進行學習,每一層的變化都需要同時考慮上下兩層的需要。

總之,這兩個特徵使得深度學習比先前的機器學習方法更加成功。

kaggle 上主要有兩大方法:梯度提公升機和深度學習。

具體而言,梯度提公升機用於處理結構化資料的問題,而深度學習則用於影象分類等感知問題。

要想在如今的應用機器學習中取得成功,你應該熟悉這兩種技術:

梯度提公升機,用於淺層學習問題;

深度學習,用於感知問題。

長短期記憶(lstm,long short-term memory)演算法是深度學習處理時間序列的基礎,它在 1997 年就被開發出來了,而且此後幾乎沒有發生變化。

最後,在 2014 年、2015 年和 2016 年,人們發現了更先進的有助於梯度傳播的方法,比如批標準化、殘差連線和深度可分離卷積。

除了硬體和資料之外,直到 20 世紀前十年的末期,我們仍沒有可靠的方法來訓練非常深的神經網路。因此,神經網路仍然很淺,僅使用一兩個表示層,無法超越更為精確的淺層方法,比如 svm 和隨機森林。關鍵問題在於通過多層疊加的梯度傳播。隨著層數的增加,用於訓練神經網路的反饋訊號會逐漸消失。

第1章 什麼是深度學習

努力將通過由人類完成的智力任務 機器學習系統是訓練出來的。需要三個要素來進行機器學習 機器學習和深度學習的核心問題在於有意義地變換資料,換句話說,在於學習輸入資料的有用表示 這種表示可以讓資料更接近預期輸出。機器學習中的學習指的是,尋找更好資料表示的自動搜尋過程。機器學習 在預先定義好的可能性空間中...

深度學習筆記(一)什麼是深度學習

從簡單的經驗中獲取知識,不需要人類去設計 規範知識,因為層次化的簡單概念可以讓計算機去學習,從而形成複雜的概念,如果用一張圖來表示就是一層一層,所以叫深度學習。ibm深藍 1997年 知識基礎 knowledge base 用公式來表述現實世界,現在還沒有成功案例。機器學習 machine lear...

什麼是深度學習?

讓我們先從深度學習的定義入手,然後順便理一下深度學習 機器學習以及ai之間的一些聯絡 深度學習是指多層的人工神經網路 和訓練它的方法。一層神經網路 會把大量矩陣數字作為輸入,通過非線性啟用方法取權重,再產生另乙個資料 三者聯絡如下 機器學習 抵達ai目標的一條路徑 深度學習是機器學習 研究中的乙個新...