隨著技術(shù)的迅速發(fā)展,深度學(xué)習(xí)已經(jīng)從一個(gè)邊緣領(lǐng)域轉(zhuǎn)變?yōu)楝F(xiàn)代技術(shù)革命的核心。在這個(gè)浪潮中,圖像識(shí)別顯得尤為重要,它已經(jīng)滲透到我們?nèi)粘I畹姆椒矫婷鎻暮?jiǎn)單的面部解鎖手機(jī)到高級(jí)的醫(yī)療圖像分析,再到自動(dòng)駕駛汽車(chē)的視覺(jué)系統(tǒng)。
決定寫(xiě)這本書(shū)時(shí),筆者首先考慮到了這個(gè)領(lǐng)域的巨大潛力和廣闊的應(yīng)用前景,但更重要的是,筆者意識(shí)到當(dāng)前市場(chǎng)上的大部分教材太過(guò)專業(yè)化,難以被初學(xué)者所接受; 或者內(nèi)容過(guò)于淺顯,無(wú)法滿足專業(yè)人員的需求,因此,筆者希望本書(shū)能夠填補(bǔ)這個(gè)空白,為所有對(duì)圖像識(shí)別感興趣的讀者提供一個(gè)全面而深入的指南。
本書(shū)既包含了基礎(chǔ)知識(shí),為初學(xué)者鋪設(shè)堅(jiān)實(shí)的基礎(chǔ),也涵蓋了高級(jí)主題,供有經(jīng)驗(yàn)的研究者或從業(yè)者探索。本書(shū)將從圖像識(shí)別的歷史和發(fā)展趨勢(shì)開(kāi)始,然后逐步深入每個(gè)主題,確保讀者可以從中得到真正有價(jià)值的知識(shí)。
隨著深度學(xué)習(xí)技術(shù)的進(jìn)步,圖像識(shí)別的門(mén)檻正在逐漸降低,但這也意味著,為了在這個(gè)領(lǐng)域脫穎而出,需要更深入的知識(shí)和更強(qiáng)大的技能。筆者希望本書(shū)能夠成為讀者學(xué)習(xí)和進(jìn)步的伴侶,幫助讀者走在這條充滿機(jī)遇和挑戰(zhàn)的道路上。
本書(shū)主要內(nèi)容
第1章: 概述人工智能在視覺(jué)領(lǐng)域的現(xiàn)狀、挑戰(zhàn)和展望。
第2章: 指導(dǎo)讀者進(jìn)行深度學(xué)習(xí)的環(huán)境配置。
第3章: 介紹編程語(yǔ)言Python和深度學(xué)習(xí)框架PyTorch的基礎(chǔ)知識(shí)。
第4章: 深入探討卷積神經(jīng)網(wǎng)絡(luò)及其在圖像識(shí)別中的應(yīng)用。
第5章: 呈現(xiàn)了一系列卷積算法的里程碑模型,并探討它們?yōu)楹纬蔀橐曈X(jué)任務(wù)的基準(zhǔn)模型。
第6章: 關(guān)注輕量級(jí)的卷積神經(jīng)網(wǎng)絡(luò)模型,以及這些模型在工業(yè)部署中所具有的重要價(jià)值。
第7章: 深入探索起源于NLP領(lǐng)域的Transformer模型在圖像識(shí)別中的應(yīng)用,以及其如何挑戰(zhàn)了卷積在計(jì)算機(jī)視覺(jué)領(lǐng)域的主導(dǎo)地位。
第8章: Transformer與卷積算法的碰撞引起了CV領(lǐng)域?qū)<覍?duì)算法的重新思考。他們發(fā)現(xiàn)基于原始神經(jīng)網(wǎng)絡(luò)模型(MLP)同樣可以達(dá)到不錯(cuò)的圖像識(shí)別效果。本章就介紹了這些基于原始神經(jīng)網(wǎng)絡(luò)算法的圖像識(shí)別模型,并對(duì)之前的算法進(jìn)行對(duì)比和評(píng)價(jià)。
閱讀建議
初學(xué)者可以從第1章開(kāi)始,逐步建立對(duì)圖像識(shí)別和深度學(xué)習(xí)的基礎(chǔ)理解,然后按章節(jié)的推進(jìn)順序逐漸深入。特別是第2章和第3章,為讀者提供了實(shí)際操作的起點(diǎn),介紹了如何配置深度學(xué)習(xí)環(huán)境及編程基礎(chǔ)。
對(duì)于已經(jīng)對(duì)深度學(xué)習(xí)編程有一定了解的讀者可跳過(guò)前3章,第4章和第5章將講解更深入的知識(shí),讓讀者對(duì)卷積神經(jīng)網(wǎng)絡(luò)有更全面的了解,而第6~8章則探討了圖像識(shí)別領(lǐng)域的最新進(jìn)展和趨勢(shì),對(duì)于那些希望進(jìn)一步研究或在實(shí)際工作中應(yīng)用這些技術(shù)的專業(yè)人士來(lái)講,這些章節(jié)尤為重要。
總之,無(wú)論是新手還是有經(jīng)驗(yàn)的研究者都可按照自己的節(jié)奏和興趣選擇章節(jié)進(jìn)行閱讀。全書(shū)各章都有詳盡的參考資料和實(shí)踐建議,以確保讀者能夠充分利用這本書(shū)的內(nèi)容。
資源下載提示
素材(源碼)等資源: 掃描封底的文泉云盤(pán)防盜碼,再掃描目錄上方的二維碼下載。
致謝
感謝所有支持我、鼓勵(lì)我和為這本書(shū)提供寶貴建議的人。沒(méi)有你們,這本書(shū)將不會(huì)成為現(xiàn)實(shí)。
感謝佟天旭、徐梓源、劉慕晴、李永昊對(duì)本書(shū)內(nèi)容的整理、校對(duì)和修改。
感謝吳駿文、孫衍哲、馬程遠(yuǎn)、劉子瑞對(duì)本書(shū)格式的編輯和整理。
感謝我的家人,尤其是我的妻子,在我寫(xiě)作過(guò)程中承擔(dān)了生活中的瑣事,使我可以全身心地投入寫(xiě)作。
由于時(shí)間倉(cāng)促,書(shū)中難免存在不妥之處,請(qǐng)讀者見(jiàn)諒,并提寶貴意見(jiàn)。
于浩文
2023年8月
本書(shū)源碼
附贈(zèng)資源
第1章人工智能介紹
1.1什么是人工智能
1.2人工智能的3次浪潮
1.2.1人工智能的第1次浪潮
1.2.2人工智能的第2次浪潮
1.2.3人工智能的第3次浪潮
1.3人工智能發(fā)展的三要素
1.3.1人工智能發(fā)展的基石: 數(shù)據(jù)
1.3.2人工智能發(fā)展的動(dòng)力: 算法
1.3.3人工智能發(fā)展的手段: 算力
1.4人工智能的美好愿景
1.4.1烏鴉與鸚鵡的啟示
1.4.2人工智能到底有多智能
第2章深度學(xué)習(xí)環(huán)境配置
2.1專業(yè)名稱和配置方案介紹
2.1.1專業(yè)名稱介紹
2.1.2Windows配置PyTorch深度學(xué)習(xí)環(huán)境初級(jí)方案
2.1.3Windows配置PyTorch深度學(xué)習(xí)環(huán)境進(jìn)階方案
2.2Anaconda配置Python和PyTorch
2.2.1Anaconda簡(jiǎn)介
2.2.2Windows系統(tǒng)安裝Anaconda
2.2.3Linux系統(tǒng)安裝Anaconda
2.2.4Anaconda的快速入門(mén)
2.2.5Anaconda配置PyTorch深度學(xué)習(xí)環(huán)境
2.3配置VS Code和Jupyter的Python環(huán)境
2.3.1VS Code下載與安裝
2.3.2VS Code配置Python環(huán)境
2.3.3Jupyter Notebook中配置Python環(huán)境
2.4配置Windows 11和Linux雙系統(tǒng)
2.4.1Windows 11配置WSL 2的詳細(xì)步驟
2.4.2Windows 11配置WSL 2的常見(jiàn)錯(cuò)誤
2.4.3VS Code遠(yuǎn)程連接WSL 2
2.5配置Docker深度學(xué)習(xí)開(kāi)發(fā)環(huán)境
2.5.1Docker安裝的先決條件
2.5.2安裝Docker Desktop
2.5.3拉取Docker鏡像
2.5.4快速入門(mén)Docker終端的使用
2.5.5VS Code使用Docker的快速入門(mén)
第3章編程語(yǔ)言快速入門(mén)
3.1Python的起源、歷史和應(yīng)用場(chǎng)景
3.1.1Python的起源
3.1.2Python的歷史
3.1.3Python的應(yīng)用場(chǎng)景
3.2Python的基礎(chǔ)知識(shí)
3.2.1注釋
3.2.2六大數(shù)據(jù)類型
3.3Python的判斷與循環(huán)語(yǔ)句
3.3.1比較運(yùn)算符和關(guān)系運(yùn)算符
3.3.2判斷語(yǔ)句
3.3.3循環(huán)語(yǔ)句
3.4Python中的函數(shù)
3.4.1函數(shù)的定義
3.4.2函數(shù)中的變量
3.4.3高級(jí)函數(shù)用法
3.4.4Python中的文件操作函數(shù)
3.5Python中的面向?qū)ο缶幊?/p>
3.5.1面向?qū)ο缶幊?VS 面向過(guò)程編程
3.5.2類與對(duì)象
3.5.3魔法方法
3.5.4類屬性和類方法
3.5.5繼承
3.5.6多態(tài)
3.5.7模塊的介紹和制作
3.5.8Python中的包和庫(kù)
3.5.9Python的pip命令
3.6PyTorch的基礎(chǔ)知識(shí)
3.6.1PyTorch的基本數(shù)據(jù)類型
3.6.2張量的索引、切片與維度變換
3.6.3張量的拼接、拆分與統(tǒng)計(jì)
第4章卷積神經(jīng)網(wǎng)絡(luò)理論基礎(chǔ)
4.1全連接神經(jīng)網(wǎng)絡(luò)
4.1.1線性模型
4.1.2回歸與分類
4.1.3感知機(jī)模型
4.1.4激活函數(shù)
4.1.5維度詛咒
4.1.6過(guò)擬合與欠擬合
4.1.7正則
4.1.8數(shù)據(jù)增強(qiáng)
4.1.9數(shù)值不穩(wěn)定性
4.2基于梯度下降的優(yōu)化算法
4.2.1優(yōu)化算法的數(shù)學(xué)基礎(chǔ)
4.2.2優(yōu)化器
4.3卷積神經(jīng)網(wǎng)絡(luò)
4.3.1卷積神經(jīng)網(wǎng)絡(luò)的計(jì)算
4.3.2卷積的設(shè)計(jì)思想
4.3.3卷積對(duì)圖像的特征提取過(guò)程
4.3.4卷積模型實(shí)現(xiàn)圖像識(shí)別
4.3.5卷積神經(jīng)網(wǎng)絡(luò)的層級(jí)結(jié)構(gòu)和感受野
4.3.6第1個(gè)卷積神經(jīng)網(wǎng)絡(luò)模型: LeNet
第5章那些年我們追過(guò)的ImageNet圖像識(shí)別大賽
5.1ImageNet
5.1.1什么是ImageNet
5.1.2ImageNet數(shù)據(jù)集
5.1.3ImageNet圖像分類大賽
5.2AlexNet: 拉開(kāi)深度學(xué)習(xí)序幕
5.2.1AlexNet理論
5.2.2AlexNet代碼
5.2.3AlexNet模型小結(jié)
5.3ZFNet: 開(kāi)創(chuàng)卷積模型的可解釋性
5.3.1ZFNet簡(jiǎn)介
5.3.2對(duì)卷積計(jì)算結(jié)果的可視化
5.3.3網(wǎng)絡(luò)中對(duì)不同特征的學(xué)習(xí)速度
5.3.4圖片平移、縮放、旋轉(zhuǎn)對(duì)CNN的影響
5.3.5ZFNet的改進(jìn)點(diǎn)
5.3.6遮擋對(duì)卷積模型的影響
5.3.7ZFNet的調(diào)參實(shí)驗(yàn)
5.3.8ZFNet的模型代碼實(shí)現(xiàn)
5.3.9ZFNet模型小結(jié)
5.4VGGNet: 探索深度的力量
5.4.1VGGNet模型總覽
5.4.2網(wǎng)絡(luò)貢獻(xiàn)總結(jié)
5.4.3VGGNet的模型代碼實(shí)現(xiàn)
5.4.4VGGNet模型小結(jié)
5.5GoogLeNet: 探索寬度的力量
5.5.1GoogLeNet V1
5.5.2GoogLeNet V2
5.5.3GoogLeNet V3
5.5.4GoogLeNet V4
5.5.5GoogLeNet V5
5.6ResNet: 神來(lái)之路
5.6.1深度學(xué)習(xí)網(wǎng)絡(luò)退化問(wèn)題
5.6.2殘差連接
5.6.3ResNet模型的網(wǎng)絡(luò)結(jié)構(gòu)
5.6.4殘差的調(diào)參
5.6.5殘差連接的淵源
5.6.6殘差連接有效性的解釋
5.6.7ResNet的變體
5.6.8ResNeXt
5.7DenseNet: 特征復(fù)用
5.7.1模型設(shè)計(jì)動(dòng)機(jī)
5.7.2DenseNet模型結(jié)構(gòu)
5.7.3DenseNet模型比較
5.8SENet: 通道維度的注意力機(jī)制
5.8.1SENet模型總覽
5.8.2SE模塊
5.8.3SENet效果
5.8.4SENet模型小結(jié)
第6章易于應(yīng)用部署的輕量卷積模型
6.1MobileNet V1: 為移動(dòng)端量身打造的輕量級(jí)模型
6.1.1模型設(shè)計(jì)動(dòng)機(jī)
6.1.2深度可分離卷積
6.1.3MBConv模塊
6.1.4MobileNet V1模型結(jié)構(gòu)
6.1.5MobileNet V1模型小結(jié)
6.2MobileNet V2: 翻轉(zhuǎn)殘差與線性瓶頸的效率變革
6.2.1逆殘差結(jié)構(gòu)
6.2.2線性瓶頸結(jié)構(gòu)
6.2.3MobileNet V2模型結(jié)構(gòu)
6.2.4MobileNet V2模型小結(jié)
6.3MobileNet V3: 結(jié)合自動(dòng)搜索的移動(dòng)端網(wǎng)絡(luò)標(biāo)桿
6.3.1優(yōu)化網(wǎng)絡(luò)深層結(jié)構(gòu)
6.3.2hswish激活函數(shù)
6.3.3SENet
6.3.4MobileNet V3模型結(jié)構(gòu)
6.3.5MobileNet V3模型小結(jié)
6.4ShuffleNet V1: 重新洗牌的高效卷積網(wǎng)絡(luò)
6.4.1組卷積
6.4.2通道打散操作
6.4.3ShuffleNet模塊
6.4.4ShuffleNet V1模型結(jié)構(gòu)
6.4.5ShuffleNet V1模型小結(jié)
6.5ShuffleNet V2: 輕量級(jí)設(shè)計(jì)的網(wǎng)絡(luò)優(yōu)化版
6.5.1ShuffleNet V2模型設(shè)計(jì)動(dòng)機(jī)
6.5.2輕量級(jí)網(wǎng)絡(luò)設(shè)計(jì)的5個(gè)經(jīng)驗(yàn)總結(jié)
6.5.3ShuffleNet V2模型結(jié)構(gòu)
6.5.4ShuffleNet V2模型小結(jié)
6.6EfficientNet V1: 縮放模型的全新視角
6.6.1EfficientNet V1模型設(shè)計(jì)動(dòng)機(jī)
6.6.2深度學(xué)習(xí)模型的3種縮放方法
6.6.3EfficientNet V1模型的縮放比率
6.6.4EfficientNet V1模型結(jié)構(gòu)
6.6.5EfficientNet V1模型小結(jié)
6.7EfficientNet V2: 融合速度與精度的高效網(wǎng)絡(luò)
6.7.1EfficientNet V2模型設(shè)計(jì)動(dòng)機(jī)
6.7.2EfficientNet模型的問(wèn)題
6.7.3EfficientNet V2模型的改進(jìn)
6.7.4EfficientNet V2模型小結(jié)
6.8RepVGG: 以簡(jiǎn)化網(wǎng)絡(luò)結(jié)構(gòu)為核心的下一代模型
6.8.1RepVGG模型設(shè)計(jì)動(dòng)機(jī)
6.8.2RepVGG模型結(jié)構(gòu)
6.8.3RepVGG重參數(shù)化
6.8.4RepVGG模型小結(jié)
第7章Transformer的強(qiáng)勢(shì)入侵
7.1Transformer模型
7.1.1Transformer算法解讀
7.1.2自注意力層
7.1.3多頭自注意力層
7.1.4編碼器結(jié)構(gòu)
7.1.5解碼器結(jié)構(gòu)
7.1.6線性頂層和Softmax層
7.1.7輸入數(shù)據(jù)的向量化
7.1.8Transformer模型小結(jié)
7.2Vision Transformer模型: 從NLP到CU的Transformer算法變革
7.2.1ViT框架
7.2.2圖片數(shù)據(jù)的向量化
7.2.3ViT的Transformer編碼器
7.2.4MLP Head模塊
7.2.5ViT模型縮放
7.2.6混合ViT模型
7.2.7ViT模型小結(jié)
7.3Swin Transformer模型: 窗口化的Transformer
7.3.1Swin Transformer網(wǎng)絡(luò)整體框架
7.3.2Patch Merging詳解
7.3.3WMSA詳解
7.3.4SWMSA詳解
7.3.5相對(duì)位置偏置詳解
7.3.6Swin Transformer模型詳細(xì)配置參數(shù)
7.3.7Swin Transformer模型討論與總結(jié)
7.4VAN視覺(jué)注意力網(wǎng)絡(luò): 基于卷積實(shí)現(xiàn)的注意力機(jī)制
7.4.1相關(guān)工作
7.4.2大核注意力機(jī)制
7.4.3視覺(jué)注意力網(wǎng)絡(luò)
7.4.4VAN模型小結(jié)
7.5ConvNeXt模型: 披著Transformer的CNN
7.5.1模型和訓(xùn)練策略選擇
7.5.2Macro Design
7.5.3模仿ResNeXt模型
7.5.4Inverted Bottleneck反向瓶頸結(jié)構(gòu)
7.5.5Large Kernel Sizes
7.5.6Micro Design
7.5.7ConvNeXt模型縮放
7.5.8ConvNeXt模型小結(jié)
第8章多層感知機(jī)的重新思考
8.1MLPMixer模型: 多層感知機(jī)的神奇魔法
8.1.1Perpatch全連接層
8.1.2MixerLayer代替自注意力機(jī)制
8.1.3MLPMixer模型結(jié)構(gòu)
8.1.4MLPMixer代碼實(shí)現(xiàn)
8.1.5MLPMixer模型小結(jié)
8.2ASMLP模型: 注意力驅(qū)動(dòng)下的多層感知機(jī)升級(jí)
8.2.1ASMLP模型
8.2.2ASMLP模型結(jié)構(gòu)
8.2.3ASMLP代碼實(shí)現(xiàn)
8.2.4ASMLP模型小結(jié)
8.3ConvMixer模型: 卷積與多層感知機(jī)的相互借鑒
8.3.1圖像編碼成向量
8.3.2ConvMixer模型
8.3.3ConvMixer網(wǎng)絡(luò)結(jié)構(gòu)
8.3.4ConvMixer代碼實(shí)現(xiàn)
8.3.5ConvMixer模型小結(jié)
8.4MetaFormer模型: 萬(wàn)法歸一,構(gòu)建Transformer模板
8.4.1MetaFormer模型
8.4.2MetaFormer模型結(jié)構(gòu)
8.4.3MetaFormer代碼實(shí)現(xiàn)
8.4.4MetaFormer模型小結(jié)