深度学习入门之PyTorch学习笔记:深度学习介绍
生活随笔
收集整理的這篇文章主要介紹了
深度学习入门之PyTorch学习笔记:深度学习介绍
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
深度學(xué)習(xí)入門之PyTorch學(xué)習(xí)筆記:深度學(xué)習(xí)介紹
- 緒論
- 1 深度學(xué)習(xí)介紹
- 1.1 人工智能
- 1.2 數(shù)據(jù)挖掘、機(jī)器學(xué)習(xí)、深度學(xué)習(xí)
- 1.2.1 數(shù)據(jù)挖掘
- 1.2.2 機(jī)器學(xué)習(xí)
- 1.2.3 深度學(xué)習(xí)
- 第一代神經(jīng)網(wǎng)絡(luò)(1958-1969)
- 第二代神經(jīng)網(wǎng)絡(luò)(1986-1998)
- 第三代神經(jīng)網(wǎng)絡(luò)深度學(xué)習(xí)(2006年至今)
- 1.3 學(xué)習(xí)建議
- 1.3.1 線性代數(shù)
- 1.3.2 機(jī)器學(xué)習(xí)基礎(chǔ)
- 1.3.3 深度學(xué)習(xí)
- 參考資料
緒論
- 深度學(xué)習(xí)如今已經(jīng)稱為科技領(lǐng)域最炙手可熱的技術(shù),幫助你入門深度學(xué)習(xí)。
- 本文從機(jī)器學(xué)習(xí)與深度學(xué)習(xí)的基礎(chǔ)理論入手,從零開始學(xué)習(xí)PyTorch以及如何使用PyTorch搭建模型。
- 學(xué)習(xí)機(jī)器學(xué)習(xí)中的線性回歸、Logistic回歸、深度學(xué)習(xí)的優(yōu)化方法、多層全連接神經(jīng)網(wǎng)絡(luò)、卷積神經(jīng)網(wǎng)絡(luò)、循環(huán)神經(jīng)網(wǎng)絡(luò)、以及生成對抗網(wǎng)絡(luò),最后通過實戰(zhàn)了解深度學(xué)習(xí)前沿的研究成果。
- 將理論與代碼結(jié)合,幫助更好的入門機(jī)器學(xué)習(xí)。
1 深度學(xué)習(xí)介紹
1.1 人工智能
- 人工智能(Artificial Intelligence),也稱機(jī)器智能,是指由人工制造出來的系統(tǒng)所表現(xiàn)的智能。所謂智能,即可以觀察周圍環(huán)境并據(jù)此做出行動以達(dá)到目的。
- 人工智能的概念很寬泛,根據(jù)人工智能的實力將它分為3類。
(1)弱人工智能(Artificial Narrow Intelligence,ANI)
若人工智能是擅長于單個方面的人工智能。比如戰(zhàn)勝世界冠軍的人工智能AlphaGo只會下圍棋,不會分別貓和狗,現(xiàn)在實現(xiàn)的幾乎都是弱人工智能。
(2)強(qiáng)人工智能(Artificial General Intelligence,AGI)
這是類似人類級別的人工智能。強(qiáng)人工智能是指在各方面都能和人類比肩的人工智能,人類能干的腦力活,它都可以干。智能是一種寬泛的心理能力,能夠進(jìn)行思考、計劃、解決問題、抽象思維、理解復(fù)雜理念、快速學(xué)習(xí)和從經(jīng)驗中學(xué)習(xí)等操作。
(3)超人工智能
在幾乎所有領(lǐng)域都比最聰明的人類強(qiáng),包括科學(xué)創(chuàng)新、通識和社交技能。超人工智能可以是各方面都比人類強(qiáng)一點,也可以是各方面都比人類強(qiáng)萬億倍。
1.2 數(shù)據(jù)挖掘、機(jī)器學(xué)習(xí)、深度學(xué)習(xí)
數(shù)據(jù)挖掘作為一個學(xué)術(shù)領(lǐng)域,橫跨多個學(xué)科,涵蓋但不限于統(tǒng)計學(xué)、數(shù)學(xué)、機(jī)器學(xué)習(xí)和數(shù)據(jù)庫,此外還運(yùn)用在各類專業(yè)領(lǐng)域,比如油田、電力、海洋生物、歷史文本、圖像、電子通信等。
1.2.1 數(shù)據(jù)挖掘
- 數(shù)據(jù)挖掘(Knowledge Discovery in DataBase)就是在大型的數(shù)據(jù)庫中發(fā)現(xiàn)有用的信息,并加以分析的過程。
- 一個數(shù)據(jù)的處理過就是從輸入數(shù)據(jù)開始,對數(shù)據(jù)進(jìn)行預(yù)處理,包括特征選擇、規(guī)范化、降低維數(shù)、數(shù)據(jù)提升等,然后進(jìn)行數(shù)據(jù)的分析和挖掘,再經(jīng)過處理,如模式識別、可視化等,最后形成可用信息的全過程。
- 數(shù)據(jù)挖掘只是一種概念,從數(shù)據(jù)中挖掘到有意義的信息,從大量的數(shù)據(jù)中尋找數(shù)據(jù)之間的特性。
1.2.2 機(jī)器學(xué)習(xí)
- 機(jī)器學(xué)習(xí)是實現(xiàn)人工智能的一種途徑,和數(shù)據(jù)挖掘有一定的相似性,是一門多領(lǐng)域交叉學(xué)科,涉及概率論、統(tǒng)計學(xué)、逼近論、凸分析、計算復(fù)雜性等多門學(xué)科。
- 對比于數(shù)據(jù)挖掘從大數(shù)據(jù)之間找相互特性而言,機(jī)器學(xué)習(xí)更加注重算法的設(shè)計,讓計算機(jī)能自動從數(shù)據(jù)中學(xué)習(xí)規(guī)律,并利用規(guī)律對未知數(shù)據(jù)進(jìn)行預(yù)測。
- 機(jī)器學(xué)習(xí)可以分為以下五大類。
(1)監(jiān)督學(xué)習(xí)
從給定的訓(xùn)練集中學(xué)習(xí)出一個函數(shù),當(dāng)新的數(shù)據(jù)到來時,可以根據(jù)這個函數(shù)預(yù)測結(jié)果。監(jiān)督學(xué)習(xí)的訓(xùn)練集要求是輸入和輸出,也可以說是特征和目標(biāo)。訓(xùn)練集中的目標(biāo)是由人標(biāo)注的,常見的監(jiān)督學(xué)習(xí)算法包括回歸和分類。
(2)無監(jiān)督學(xué)習(xí)
無監(jiān)督學(xué)習(xí)和監(jiān)督學(xué)習(xí)相比,訓(xùn)練集沒有人為標(biāo)注的結(jié)果,常見的無監(jiān)督學(xué)習(xí)有聚類等。
(3)半監(jiān)督學(xué)習(xí)
介于監(jiān)督學(xué)習(xí)與無監(jiān)督學(xué)習(xí)之間的方法。
(4)遷移學(xué)習(xí)
將已經(jīng)訓(xùn)練好的模型參數(shù),遷移到新的模型來幫助新模型訓(xùn)練數(shù)據(jù)集。
(5)增強(qiáng)學(xué)習(xí)
通過觀察周圍環(huán)境來學(xué)習(xí)。每個動作都會對環(huán)境有所了解,學(xué)習(xí)對象根據(jù)觀察到的周圍的環(huán)境的反饋來做出判斷。 - 傳統(tǒng)的機(jī)器學(xué)習(xí)算法有以下幾種:線性回歸模型、logistics回歸模型、K-鄰近算法、決策樹、隨機(jī)森林、支持向量機(jī)、人工神經(jīng)網(wǎng)絡(luò)、EM算法、概率圖模型。
1.2.3 深度學(xué)習(xí)
- 深度學(xué)習(xí)的最初級版本是人工神經(jīng)網(wǎng)絡(luò),是機(jī)器學(xué)習(xí)的一個分支,試圖模擬人腦,通過更復(fù)雜的結(jié)構(gòu)自動提取數(shù)據(jù)特征。
- 在深度學(xué)習(xí)發(fā)展起來之前,機(jī)器學(xué)習(xí)無法解決圖像識別、語音識別、自然語言處理等問題。正因為大數(shù)據(jù)的興起和高性能GPU的出現(xiàn),促進(jìn)了深度學(xué)習(xí)的發(fā)展。
- 深度學(xué)習(xí)從發(fā)展到崛起經(jīng)歷了兩個低谷,將深度學(xué)習(xí)的歷史分為了三個階段。
第一代神經(jīng)網(wǎng)絡(luò)(1958-1969)
- 最早的神經(jīng)網(wǎng)絡(luò)思想起源于1943年的MCP人工神經(jīng)元模型,當(dāng)時人們希望能夠用計算機(jī)來模擬人的神經(jīng)元的反應(yīng)過程,該模型將神經(jīng)元簡化為三個過程:輸入信號線性加權(quán),求和,非線性激活(閾值法)。
- 第一次將MCP用于機(jī)器學(xué)習(xí)(分類)的當(dāng)屬1958年Rosenblatt發(fā)明的感知器(perceptron)算法。該算法使用MCP模型對輸入的數(shù)據(jù)進(jìn)行二分類,且能夠使用梯度下降法從訓(xùn)練樣本中自動學(xué)習(xí)更新權(quán)重值。
- 1969年,美國數(shù)學(xué)家及人工智能先驅(qū)Minsky證明了感知器本質(zhì)上是一種線性模型,只能處理線性分類問題,連最簡單的XOR(異或)問題都無法正確分類。
第二代神經(jīng)網(wǎng)絡(luò)(1986-1998)
- 第一次打破非線性詛咒的是現(xiàn)代深度學(xué)習(xí)大牛Hinton,他在1986年發(fā)明了適用于多層感知器(MLP)的BP算法,并采用Sigmoid進(jìn)行非線性映射,有效解決了非線性分類和學(xué)習(xí)的問題,引發(fā)了神經(jīng)網(wǎng)絡(luò)的第二個熱潮。
- 1989年,RobertHecht證明了MLP的萬能逼近定理,即對于任何閉區(qū)間的一個連續(xù)函數(shù)f,都可以用含有一個隱藏層的BP神經(jīng)網(wǎng)絡(luò)逼近。
- 1989年,LeCun發(fā)明了卷積神經(jīng)網(wǎng)絡(luò)-LeNet,并將其用于數(shù)字識別,取得了較好的成績。
- 1991年,BP算法被指出存在梯度消失的問題,即在誤差梯度后向傳遞的過程中,后層梯度以乘性方式疊加到前層,由于Sigmodid函數(shù)的飽和特性,后層梯度本來就小,誤差梯度傳到前層時幾乎為0,因此無法對前層進(jìn)行有效的學(xué)習(xí)。
- 統(tǒng)計學(xué)習(xí)方法的春天(1986年-2006年)
- 1986年,決策樹方法被提出來,很快ID3、ID4、CART等改進(jìn)的決策樹方法相繼出現(xiàn),也是符號學(xué)習(xí)方法的代表。
第三代神經(jīng)網(wǎng)絡(luò)深度學(xué)習(xí)(2006年至今)
- 該階段又分為兩個時期:快速發(fā)展期(2006年-2012年)和爆發(fā)期(2012年至今)
- 2006年,深度學(xué)習(xí)元年。Hinton提出了深層網(wǎng)絡(luò)訓(xùn)練中梯度消失問題的解決方案:無監(jiān)督預(yù)訓(xùn)練對權(quán)值進(jìn)行初始化+有監(jiān)督訓(xùn)練微調(diào),其主要思想是:先通過自學(xué)習(xí)的方法學(xué)習(xí)到訓(xùn)練數(shù)據(jù)的結(jié)構(gòu)(自動編碼器),然后在該結(jié)構(gòu)上進(jìn)行有監(jiān)督訓(xùn)練微調(diào)。
- 2011年,ReLU激活函數(shù)被提出,該激活函數(shù)能有效抑制梯度消失的問題。
- 2012年,Hinton課題組為了證明深度學(xué)習(xí)的潛力,首次參加ImageNet圖像識別比賽,通過構(gòu)建CNN網(wǎng)絡(luò)AlexNet一舉奪得冠軍,并且碾壓了第二名SVM方法的分類性能。
- 2015年,Hinton、LeCun、Bengio論證了局部極值問題對于深度學(xué)習(xí)的影響,得到的結(jié)果是Loss的局部極值問題對于深層網(wǎng)絡(luò)的影響可以忽略,該論斷消除了籠罩在神經(jīng)網(wǎng)絡(luò)上局部極值問題的陰霾。
深度學(xué)習(xí)結(jié)構(gòu)
- 隨著神經(jīng)網(wǎng)絡(luò)的發(fā)展,目前比較流行的網(wǎng)絡(luò)結(jié)構(gòu)分別有:深度神經(jīng)網(wǎng)絡(luò)(DNN)、卷積神經(jīng)網(wǎng)絡(luò)(CNN)、循環(huán)遞歸神經(jīng)網(wǎng)絡(luò)(RNN)、生成對抗網(wǎng)絡(luò)(RAN)
1.3 學(xué)習(xí)建議
- 網(wǎng)上有各種各樣的學(xué)習(xí)經(jīng)驗分享,有的人注重 理論知識的積累,看了很多書,但動手實踐經(jīng)驗為0;有一些人熱衷于代碼實現(xiàn),每天學(xué)習(xí)別人已經(jīng)寫好的代碼。
- 深度學(xué)習(xí)是理論和工程相結(jié)合的領(lǐng)域,不僅僅需要寫代碼的能力強(qiáng),也需要有理論知識能夠看懂論文,實現(xiàn)論文提出的新想法,所以學(xué)習(xí)路線應(yīng)該是理論與代碼相結(jié)合,平衡兩邊的學(xué)習(xí)任務(wù),不能出現(xiàn)只管一邊而不學(xué)另外一邊的情況,因為只有理論與代碼兼顧,才不至于一旦學(xué)習(xí)深入,就會發(fā)現(xiàn)自己有很多知識漏洞。
1.3.1 線性代數(shù)
- 線性代數(shù)相當(dāng)于深度學(xué)習(xí)的基石,深度學(xué)習(xí)里面有大量的矩陣運(yùn)算,而且線性代數(shù)的一些矩陣分解的思想也被借鑒到了機(jī)器學(xué)習(xí)中,所以必須熟練掌握線性代數(shù)。
- 《線性代數(shù)應(yīng)該這樣學(xué)》(Linear Algebra Done Right)
- MIT的線性代數(shù)公開課
- Coding The Matrix
1.3.2 機(jī)器學(xué)習(xí)基礎(chǔ)
- 雖然深度學(xué)習(xí)現(xiàn)在很火,但是也需要掌握其根本,即機(jī)器學(xué)習(xí),這才是本質(zhì)與核心。
- Coursera上Andrew Ng的機(jī)器學(xué)習(xí)入門課程。
- 林軒田的機(jī)器學(xué)習(xí)基石和機(jī)器學(xué)習(xí)技法
- Udacity的機(jī)器學(xué)習(xí)納米單位
- 《機(jī)器學(xué)習(xí)》周志華
- 《統(tǒng)計學(xué)習(xí)方法》李航
- Pattern Recognition and Machine Learning
1.3.3 深度學(xué)習(xí)
- 深度學(xué)習(xí)是最近幾年最為活躍的研究領(lǐng)域,爆發(fā)了很多革命性的突破,很多前沿的學(xué)習(xí)資源。
- Udacity的兩個深度學(xué)習(xí)課程
- Coursera的Neural Network for Machine Learning
- Stanford:cs231n
- Stanford:cs224n
參考資料
總結(jié)
以上是生活随笔為你收集整理的深度学习入门之PyTorch学习笔记:深度学习介绍的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 深度学习入门之PyTorch学习笔记
- 下一篇: 深度学习入门之PyTorch学习笔记:深