- 細說PyTorch深度學習:理論、算法、模型與編程實現
- 凌峰 丁麒文編著
- 2592字
- 2024-12-28 11:35:06
1.1 人工智能和深度學習
深度學習是人工智能的一個重要分支,尤其是近十多年來隨著計算機算力的提升,深度學習技術重塑了人工智能。本節從人工智能入手,帶領讀者熟悉深度學習的基礎知識。
1.1.1 人工智能
人工智能是一個十分寬泛的概念,現代研究通常認為人工智能是計算機學科的一個分支,是研究、開發用于模擬、延伸和擴展人的智能的理論、方法、技術及應用系統的一門新的技術科學。
1956年,約翰·麥卡錫在美國達特茅斯學院主持召開了一場人工智能夏季研討會,創建了人工智能這一科學領域,并掀起了科技界的一場革命,從此人工智能技術逐漸改變了整個世界的科技發展。
人工智能是一門極富挑戰性的科學,從事這項工作的人必須懂得計算機知識、心理學和哲學。人工智能是內容十分廣泛的科學,它由不同的領域組成,如機器學習、計算機視覺等,總的來說,人工智能研究的一個主要目標是使機器能夠勝任一些通常需要人類智能才能完成的復雜工作。但不同的時代、不同的人對這種復雜工作的理解是不同的。在當代,人工智能的研究應用已經深入百姓的吃、穿、住、行等日常生活中,實際應用包括指紋識別、人臉識別、虹膜識別、掌紋識別、專家系統、自動規劃、智能搜索、博弈、自動程序設計、智能控制、機器人學、語言和圖像理解、遺傳編程等。具體的,例如滴滴打車、百度搜索、有道翻譯、搜狗輸入法、天貓商城、京東商城、掌上生活、火車票人臉識別系統、核酸檢測系統等,其中都涉及大量人工智能技術的應用。
當今沒有統一的原理或范式指導人工智能研究,在許多問題上研究者都存在爭論,其中幾個長久以來仍沒有結論的問題是:是否應從心理或神經方面模擬人工智能,或者像鳥類生物學對于航空工程一樣,人類生物學與人工智能研究是沒有關系的,智能行為能否用簡單的原則(如邏輯或優化)來描述,還是必須解決大量完全無關的問題等,這些問題還都沒有明確的答案。這些都需要在后續繼續進行研究,但是所有的這一切都不妨礙人工智能技術取得巨大成功。
1.1.2 深度學習
深度學習由淺層學習發展而來。實際上,在20世紀50年代,就已經有淺層學習的相關研究,代表性工作主要是羅森布拉特(F. Rosenblatt)基于神經感知科學提出的計算機神經網絡,即感知器,在隨后的10年中,淺層學習的神經網絡曾經風靡一時,特別是馬文·明斯基提出了著名的XOR問題和感知器線性不可分的問題。但隨后進入了一段時間的冷卻期。
1986年誕生了用于訓練多層神經網絡的真正意義上的反向傳播算法,這是現在的深度學習中仍然在使用的訓練算法,奠定了神經網絡走向完善和應用的基礎。
1989年,LeCun設計出了第一個真正意義上的卷積神經網絡,用于手寫數字的識別,該算法在當時的美國銀行系統得到了成功應用,需要重點說明的是,這是現在被廣泛使用的深度卷積神經網絡的鼻祖。
在1986-1993年,神經網絡的理論得到了極大的豐富和完善,但當時很多因素限制了它的大規模使用,例如工業發展水平、計算機網絡水平、計算機硬件水平等。
到了20世紀90年代,可以說進入了機器學習百花齊放的年代。在1995年誕生了兩種經典的算法:支持向量機(Support Vector Machine,SVM)和AdaBoost(自適應增強),此后它們縱橫江湖數十載,神經網絡則黯然失色,主要由于神經網絡算法計算復雜度、梯度消失以及爆炸問題,在當時計算機網絡和硬件計算水平有限的大環境下限制了神經網絡算法的使用。
支持向量機算法代表了核(Kernel)技術的勝利,這是一種思想,通過隱式地將輸入向量映射到高維空間中,使得原本非線性的問題得到很好的處理,因此在當時得到了廣泛的應用,在當今若問題規模不大時支持向量機算法仍然具有廣泛的應用領域。而AdaBoost算法則代表了集成學習算法的勝利,通過將一些簡單的弱分類器集成起來使用,能夠達到驚人的精度,該思想現在仍被使用。
當今語音領域炙手可熱的LSTM(Long Short-Term Memory,長短期記憶網絡)在2000年就出現了,這讓很多讀者感到驚訝。LSTM在很長一段時間內一直默默無聞,直到2013年后與深度循環神經網絡(Deep-Recurrent Neural Network,Deep-RNN)整合,才在語音識別上取得成功。
由于計算機的運算能力有限,多層網絡訓練困難,通常都是只有一層隱含層的淺層模型,雖然各種各樣的淺層機器學習模型相繼被提出,在理論分析和應用方面都產生了較大的影響,但是理論分析的難度和訓練方法需要很多經驗和技巧,隨著最近鄰(K-Nearest Neighbor,KNN)等算法的相繼提出,淺層模型在模型理解、準確率、模型訓練等方面被超越,機器學習的發展幾乎處于停滯狀態。
雖然真正意義上的人工神經網絡誕生于20世紀80年代,反向傳播算法(BP算法)、卷積神經網絡(Convolutional Neural Networks,CNN)、LSTM等早就被提出,但遺憾的是神經網絡在過去很長一段時間內并沒有得到大規模的成功應用,在與SVM等機器學習算法的較量中處于下風。原因主要有:算法本身的問題,如梯度消失問題,導致深層網絡難以訓練;訓練樣本數的限制;計算能力的限制。直到2006年,隨著計算機硬件技術的飛速發展,算力不再受限,移動網絡技術飛速發展,世界互聯,產生了巨量的數據,情況才慢慢改觀。
神經網絡研究領域領軍者Hinton在2006年提出了神經網絡深度學習(Deep Learning)算法,被眾多學習者奉為該領域的經典著作,使神經網絡的能力大大提高,向支持向量機算法發出挑戰。2006年,機器學習領域的泰斗Hinton和他的學生Salakhutdinov在頂尖學術刊物《科學》(Science)上發表了一篇文章,開啟了深度學習在學術界和工業界的浪潮,微軟、IBM等工業巨頭投入了大量資源開展研究,MIT等科研機構更是成果層出不窮。
Hinton的學生Yann LeCun的LeNets深度學習網絡可以被廣泛應用在全球的ATM機和銀行之中。同時,Yann LeCun和吳恩達等認為卷積神經網絡允許人工神經網絡進行快速訓練,因為它所占用的內存非常小,無須在圖像上的每一個位置上都單獨存儲濾鏡,因此非常適合構建可擴展的深度網絡,因此卷積神經網絡非常適合識別模型。這些人都是機器學習領域全球的領導者。
目前,新的深度學習算法面臨的主要問題更加復雜,深度學習的應用領域從廣度向深度發展,這對模型訓練和應用都提出了更高的要求。隨著人工智能的發展,馮·諾依曼式的有限狀態機的理論基礎越來越難以應對目前神經網絡中層數的要求,這些都對深度學習新的算法的發展和應用提出了挑戰。
深度學習的發展并不是一帆風順的,經歷了螺旋式上升的過程,機遇與困難并存。凝聚國內外大量的研究學者的成果才有了今天人工智能的空前繁榮,是量變到質變的過程,也是內因和外因的共同結果,符合客觀事物發展規律。目前處于一個美好的時代,是深度學習的波峰時期。
深度學習技術通過具體的深度學習框架來實現,下一節簡要介紹目前一些常見的深度學習框架。
- Google Apps Script for Beginners
- 程序員面試筆試寶典(第3版)
- Modular Programming with Python
- Ceph Cookbook
- Android Development with Kotlin
- Getting Started with PowerShell
- Programming ArcGIS 10.1 with Python Cookbook
- Oracle 12c中文版數據庫管理、應用與開發實踐教程 (清華電腦學堂)
- PHP 編程從入門到實踐
- 微信小程序入門指南
- Mastering Akka
- Learning iOS Security
- Python大規模機器學習
- ASP.NET本質論
- Instant AppFog