深度学习基础知识介绍
- 背景知識
- 深度學(xué)習(xí)又是如何運(yùn)作的呢?
- 神經(jīng)網(wǎng)絡(luò)
- 訓(xùn)練神經(jīng)網(wǎng)絡(luò)
- 如何減小損失函數(shù)呢?
- 小結(jié)
這是一篇Medium上獲得近2萬贊的深度學(xué)習(xí)入門指南,用圖文為你詳解深度學(xué)習(xí)中的各個(gè)基礎(chǔ)概念。
在我們的日常生活中,幾乎隨處可見AI和機(jī)器學(xué)習(xí)這些術(shù)語。但,絕大多數(shù)人并不明白什么是AI。
背景知識
理解深度學(xué)習(xí)如何工作的第一步是掌握下列重要術(shù)語之間的區(qū)別。
1、人工智能(AI)v.s.機(jī)器學(xué)習(xí)(ML)
人工智能是對人類智能在計(jì)算機(jī)上的復(fù)制。
機(jī)器學(xué)習(xí),指的是機(jī)器使用大量數(shù)據(jù)集而非硬編碼規(guī)則來進(jìn)行學(xué)習(xí)的能力。
在整個(gè)人工智能發(fā)展史上,幾乎一直隨同人工神經(jīng)網(wǎng)絡(luò)研究的進(jìn)展而起起伏伏。近期引發(fā)人工智能新一輪熱潮的深度學(xué)習(xí),其名稱中的“深度”某種意義上就是指人工神經(jīng)網(wǎng)絡(luò)的層數(shù),深度學(xué)習(xí)本質(zhì)上是基于多層人工神經(jīng)網(wǎng)絡(luò)的機(jī)器學(xué)習(xí)算法。 ML允許計(jì)算機(jī)通過自身來學(xué)習(xí)。這種學(xué)習(xí)方法得益于現(xiàn)代計(jì)算機(jī)的強(qiáng)大性能,性能保證了計(jì)算機(jī)能夠輕松處理樣本數(shù)巨大的數(shù)據(jù)集。
2、監(jiān)督學(xué)習(xí) v.s. 非監(jiān)督學(xué)習(xí)
監(jiān)督學(xué)習(xí):
從標(biāo)記的訓(xùn)練數(shù)據(jù)來推斷一個(gè)功能的機(jī)器學(xué)習(xí)任務(wù)。訓(xùn)練數(shù)據(jù)包括一套訓(xùn)練示例。在監(jiān)督學(xué)習(xí)中,每個(gè)實(shí)例都是由一個(gè)輸入對象(通常為矢量)和一個(gè)期望的輸出值(也稱為監(jiān)督信號)組成。
當(dāng)你利用監(jiān)督學(xué)習(xí)來訓(xùn)練AI時(shí),你提供給它一份輸入,并告訴它預(yù)期的輸出。
比如:預(yù)測天氣的AI便是監(jiān)督學(xué)習(xí)的典型案例之一。它通過學(xué)習(xí)過往數(shù)據(jù)來預(yù)測未來天氣,其訓(xùn)練數(shù)據(jù)擁有輸入(氣壓、濕度、風(fēng)速)和輸出(溫度)。
非監(jiān)督學(xué)習(xí):
根據(jù)類別未知(沒有被標(biāo)記)的訓(xùn)練樣本/數(shù)據(jù)來進(jìn)行學(xué)習(xí),以解決模式識別中的各種問題。
無監(jiān)督學(xué)習(xí)里典型例子是聚類。聚類的目的在于把相似的東西聚在一起,而我們并不關(guān)心這一類是什么。因此,一個(gè)聚類算法通常只需要知道如何計(jì)算相似度就可以開始工作了。
具體來說,電商網(wǎng)站上的行為預(yù)測AI就屬于非監(jiān)督學(xué)習(xí)。它在輸入數(shù)據(jù)上創(chuàng)建它自己的分類。它將會告訴你哪一種用戶最可能購買差異化的商品。
深度學(xué)習(xí)又是如何運(yùn)作的呢?
現(xiàn)在我們再來了解什么是深度學(xué)習(xí),以及它是如何運(yùn)作的。
深度學(xué)習(xí)的概念由Hinton等人于2006年提出。
它是機(jī)器學(xué)習(xí)中一種基于對數(shù)據(jù)進(jìn)行表征學(xué)習(xí)的方法。在給予它一組輸入后,它使我們能夠訓(xùn)練AI來預(yù)測結(jié)果。其動機(jī)在于建立、模擬人腦進(jìn)行分析學(xué)習(xí)的神經(jīng)網(wǎng)絡(luò),它模仿人腦的機(jī)制來解釋數(shù)據(jù),例如圖像、聲音和文本。
我們將通過建立一個(gè)假設(shè)的機(jī)票價(jià)格預(yù)估系統(tǒng)來闡述深度學(xué)習(xí)是如何運(yùn)作的。我們將應(yīng)用監(jiān)督學(xué)習(xí)方法來訓(xùn)練它。
我們想要該機(jī)票價(jià)格預(yù)估系統(tǒng)基于下列輸入來進(jìn)行預(yù)測(為了簡潔,我們除去了返程機(jī)票):
- 起飛機(jī)場
- 到達(dá)機(jī)場
- 起飛日期
- 航空公司
神經(jīng)網(wǎng)絡(luò)
接下來我們將視角轉(zhuǎn)向AI的“大腦”內(nèi)部。
人工神經(jīng)網(wǎng)絡(luò)(Artificial Neural Networks,簡稱ANNs),也簡稱為神經(jīng)網(wǎng)絡(luò)(NNs)或稱作連接模型(Connection Model),它是一種模仿動物神經(jīng)網(wǎng)絡(luò)行為特征,進(jìn)行分布式并行信息處理的算法數(shù)學(xué)模型。
Image credit: CS231n
這些神經(jīng)元又被分為三種層次:
- 輸入層
- 隱藏層
- 輸出層
輸入層接收輸入數(shù)據(jù)。在本案例中,在輸入層中有4個(gè)神經(jīng)元:起飛機(jī)場,到達(dá)機(jī)場,起飛日期以及航空公司。輸入層將輸入傳遞給第一個(gè)隱藏層。
隱藏層針對我們的輸入進(jìn)行數(shù)學(xué)運(yùn)算。創(chuàng)建神經(jīng)網(wǎng)絡(luò)的一大難點(diǎn)便是決定隱藏層的層數(shù),以及每層中神經(jīng)元的個(gè)數(shù)。
深度學(xué)習(xí)中的“深度”所指的是擁有多于一層的隱藏層。
輸出層返回的是輸出數(shù)據(jù)。在本案例中,輸出層返回的是價(jià)格預(yù)測。
那么它到底是如何來運(yùn)算價(jià)格預(yù)測的呢?這便是我們將要揭曉的深度學(xué)習(xí)的奇妙之處了。
每兩個(gè)神經(jīng)元之間的連接,都對應(yīng)著一個(gè)權(quán)重。該權(quán)重決定了輸入值的重要程度。初始的權(quán)重會被隨機(jī)設(shè)定。
當(dāng)預(yù)測機(jī)票價(jià)格時(shí),起飛日期是決定價(jià)格的最重要的因素之一。因此,與起飛日期這個(gè)神經(jīng)元相連的連接將會有更高的權(quán)重。
每個(gè)神經(jīng)元都有一個(gè)激活函數(shù)。若沒有數(shù)學(xué)推導(dǎo),這些函數(shù)十分晦澀難懂。
簡而言之,激活函數(shù)的作用之一便是將神經(jīng)元的結(jié)果“標(biāo)準(zhǔn)化”。
一旦一組輸入數(shù)據(jù)通過了神經(jīng)網(wǎng)絡(luò)的所有層,神經(jīng)網(wǎng)絡(luò)將會通過輸出層返回輸出數(shù)據(jù)。
一點(diǎn)也不復(fù)雜,是吧?
訓(xùn)練神經(jīng)網(wǎng)絡(luò)
訓(xùn)練AI是深度學(xué)習(xí)中最難的部分了。這又是為什么呢?
- 你需要一個(gè)龐大的數(shù)據(jù)集
- 你還需要強(qiáng)大的算力
對于我們的機(jī)票價(jià)格預(yù)估系統(tǒng),我們需要得到過往的票價(jià)數(shù)據(jù)。由于起始機(jī)場和起飛時(shí)間擁有大量可能的組合,所以我們需要的是一個(gè)非常龐大的票價(jià)列表。
為了訓(xùn)練機(jī)票價(jià)格預(yù)估系統(tǒng)的AI,我們需要將數(shù)據(jù)集的數(shù)據(jù)給予該系統(tǒng),然后將它輸出的結(jié)果與數(shù)據(jù)集的輸出進(jìn)行比對。因?yàn)榇藭r(shí)AI仍然沒有受過訓(xùn)練,所以它的輸出將會是錯(cuò)誤的。
一旦我們遍歷完了整個(gè)數(shù)據(jù)集,我們便能創(chuàng)造出一個(gè)函數(shù),該函數(shù)告訴我們AI的輸出和真實(shí)輸出到底相差多少。這個(gè)函數(shù)我們稱為損失函數(shù)。
在理想情況下,我們希望我們的損失函數(shù)為0,該理想情況指的是AI的輸出和數(shù)據(jù)集的輸出相等之時(shí)。
如何減小損失函數(shù)呢?
改變神經(jīng)元之間的權(quán)重。我們可以隨機(jī)地改變這些權(quán)重直到損失函數(shù)足夠小,但是這種方法并不夠高效。
取而代之地,我們應(yīng)用一種叫做梯度下降的技巧。
梯度下降是一種幫助我們找到函數(shù)最小值的技巧。在本案例中,我們尋找損失函數(shù)的最小值。
在每次數(shù)據(jù)集迭代之后,該方法以小增量的方式改變權(quán)重。通過計(jì)算損失函數(shù)在一組確定的權(quán)重集合上的導(dǎo)數(shù)(梯度),我們便能夠知悉最小值在哪個(gè)方向。
為了最小化損失函數(shù),你需要多次迭代數(shù)據(jù)集。這便是需要高算力的原因了。利用梯度下降更新權(quán)重的過程是自動進(jìn)行的。這便是深度學(xué)習(xí)的魔力所在!
一旦我們訓(xùn)練好機(jī)票價(jià)格預(yù)估的AI之后,我們便能夠用它來預(yù)測未來的價(jià)格了。
小結(jié)
總結(jié)
以上是生活随笔為你收集整理的深度学习基础知识介绍的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 深度学习与计算机视觉(四)反向传播及其直
- 下一篇: 一、深度学习背景与人工神经网络