這是一篇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...