深度學習基礎知識介紹

2021-08-18 17:31:48 字數 3264 閱讀 4366

這是一篇medium上獲得近2萬讚的深度學習入門指南,用**為你詳解深度學習中的各個基礎概念。

在我們的日常生活中,幾乎隨處可見ai和機器學習這些術語。但,絕大多數人並不明白什麼是ai。

理解深度學習如何工作的第一步是掌握下列重要術語之間的區別。

1、人工智慧(ai)v.s.機器學習(ml)

人工智慧是對人類智慧型在計算機上的複製。

機器學習,指的是機器使用大量資料集而非硬編碼規則來進行學習的能力。

在整個人工智慧發展史上,幾乎一直隨同人工神經網路研究的進展而起起伏伏。近期引發人工智慧新一輪熱潮的深度學習,其名稱中的「深度」某種意義上就是指人工神經網路的層數,深度學習本質上是基於多層人工神經網路的機器學習演算法。 ml允許計算機通過自身來學習。這種學習方法得益於現代計算機的強大效能,效能保證了計算機能夠輕鬆處理樣本數巨大的資料集。

2、監督學習 v.s. 非監督學習

監督學習:

從標記的訓練資料來推斷乙個功能的機器學習任務。訓練資料報括一套訓練示例。在監督學習中,每個例項都是由乙個輸入物件(通常為向量)和乙個期望的輸出值(也稱為監督訊號)組成。

當你利用監督學習來訓練ai時,你提供給它乙份輸入,並告訴它預期的輸出。

比如:**天氣的ai便是監督學習的典型案例之一。它通過學習過往資料來**未來天氣,其訓練資料擁有輸入(氣壓、濕度、風速)和輸出(溫度)。

非監督學習:

根據類別未知(沒有被標記)的訓練樣本/資料來進行學習,以解決模式識別中的各種問題。

無監督學習裡典型例子是聚類。聚類的目的在於把相似的東西聚在一起,而我們並不關心這一類是什麼。因此,乙個聚類演算法通常只需要知道如何計算相似度就可以開始工作了。

具體來說,電商**上的行為**ai就屬於非監督學習。它在輸入資料上建立它自己的分類。它將會告訴你哪一種使用者最可能購買差異化的商品。

現在我們再來了解什麼是深度學習,以及它是如何運作的。

深度學習的概念由hinton等人於2023年提出。

它是機器學習中一種基於對資料進行表徵學習的方法。在給予它一組輸入後,它使我們能夠訓練ai來**結果。其動機在於建立、模擬人腦進行分析學習的神經網路,它模仿人腦的機制來解釋資料,例如影象、聲音和文字。

我們將通過建立乙個假設的機票**預估系統來闡述深度學習是如何運作的。我們將應用監督學習方法來訓練它。

我們想要該機票**預估系統基於下列輸入來進行**(為了簡潔,我們除去了返程機票):

接下來我們將視角轉向ai的「大腦」內部。

人工神經網路(artificial neural networks,簡稱anns),也簡稱為神經網路(nns)或稱作連線模型(connection model),它是一種模仿動物神經網路行為特徵,進行分布式並行資訊處理的演算法數學模型。

這些神經元又被分為三種層次:

輸入層接收輸入資料。在本案例中,在輸入層中有4個神經元:起飛機場,到達機場,起飛日期以及航空公司。輸入層將輸入傳遞給第乙個隱藏層。

隱藏層針對我們的輸入進行數**算。建立神經網路的一大難點便是決定隱藏層的層數,以及每層中神經元的個數。

深度學習中的「深度」所指的是擁有多於一層的隱藏層。

輸出層返回的是輸出資料。在本案例中,輸出層返回的是****。

那麼它到底是如何來運算****的呢?這便是我們將要揭曉的深度學習的奇妙之處了。

每兩個神經元之間的連線,都對應著乙個權重。該權重決定了輸入值的重要程度。初始的權重會被隨機設定。

當**機票**時,起飛日期是決定**的最重要的因素之一。因此,與起飛日期這個神經元相連的連線將會有更高的權重。

每個神經元都有乙個啟用函式。若沒有數學推導,這些函式十分晦澀難懂。

簡而言之,啟用函式的作用之一便是將神經元的結果「標準化」。

一旦一組輸入資料通過了神經網路的所有層,神經網路將會通過輸出層返回輸出資料。

一點也不複雜,是吧?

訓練ai是深度學習中最難的部分了。這又是為什麼呢?

對於我們的機票**預估系統,我們需要得到過往的票價資料。由於起始機場和起飛時間擁有大量可能的組合,所以我們需要的是乙個非常龐大的票價列表。

為了訓練機票**預估系統的ai,我們需要將資料集的資料給予該系統,然後將它輸出的結果與資料集的輸出進行比對。因為此時ai仍然沒有受過訓練,所以它的輸出將會是錯誤的。

一旦我們遍歷完了整個資料集,我們便能創造出乙個函式,該函式告訴我們ai的輸出和真實輸出到底相差多少。這個函式我們稱為損失函式。

在理想情況下,我們希望我們的損失函式為0,該理想情況指的是ai的輸出和資料集的輸出相等之時。

改變神經元之間的權重。我們可以隨機地改變這些權重直到損失函式足夠小,但是這種方法並不夠高效。

取而代之地,我們應用一種叫做梯度下降的技巧。

梯度下降是一種幫助我們找到函式最小值的技巧。在本案例中,我們尋找損失函式的最小值。

在每次資料集迭代之後,該方法以小增量的方式改變權重。通過計算損失函式在一組確定的權重集合上的導數(梯度),我們便能夠知悉最小值在哪個方向。

為了最小化損失函式,你需要多次迭代資料集。這便是需要高算力的原因了。利用梯度下降更新權重的過程是自動進行的。這便是深度學習的魔力所在!

一旦我們訓練好機票**預估的ai之後,我們便能夠用它來**未來的**了。

深度學習應用神經網路來模仿動物智慧型。

神經網路中有三個層次的神經元:輸入層、隱藏層以及輸出層。

神經元之間的連線對應乙個權重,該權重決定了各輸入資料的重要程度。

神經元中應用乙個啟用函式來「標準化」神經元輸出的資料。

你需要乙個龐大的資料集來訓練神經網路。

在資料集上迭代並與輸出結果相比較,我們將會得到乙個損失函式,損失函式能告訴我們ai生成的結果和真實結果相差多少。

在每次資料集的迭代之後,都會利用梯度下降方法調整神經元之間的權重,以減小損失函式。

深度學習 深度學習基礎知識 Adagrad

adagrad是一種基於梯度的優化演算法 它將學習速率與引數相適應,對不同的變數提供不同的學習率 它增加了罕見但資訊豐富的特徵的影響 因此,它非常適合處理稀疏資料。在基本的梯度下降法優化中,有個乙個常見問題是,要優化的變數對於目標函式的依賴是各不相同的。對於某些變數,已經優化到了極小值附近,但是有的...

深度學習基礎知識整理

卷積神經網路相關知識 池化層 作用是在語義上把相似的特徵合併起來。卷積神經網路的應用 檢測 分割 物體識別以及影象的各個領域。這些應用都是使用了大量的有標籤的資料。比如交通訊號識別,生物資訊分割,面部探測,文字 行人以及自然圖形中的人的身體部分的探測。今年,卷積神經網路的乙個重大成功應用是人臉識別。...

深度學習基礎知識框架

作為剛入門的新手來說,cs231n提供了乙個特別好的深度學習框架,本人也在學習這門課程,我以2018年課程計畫為藍本,把知識拆成小的部分,打算有時間乙個乙個的弄懂 課目主題 知識點備註 lecture 1 課程概述 course introduction 計算機視覺概述 computer visio...