人工智能應用基礎 課件全套 任務1-13 走進人工智能-使用EasyDL實現(xiàn)芯片劃痕質(zhì)檢_第1頁
人工智能應用基礎 課件全套 任務1-13 走進人工智能-使用EasyDL實現(xiàn)芯片劃痕質(zhì)檢_第2頁
人工智能應用基礎 課件全套 任務1-13 走進人工智能-使用EasyDL實現(xiàn)芯片劃痕質(zhì)檢_第3頁
人工智能應用基礎 課件全套 任務1-13 走進人工智能-使用EasyDL實現(xiàn)芯片劃痕質(zhì)檢_第4頁
人工智能應用基礎 課件全套 任務1-13 走進人工智能-使用EasyDL實現(xiàn)芯片劃痕質(zhì)檢_第5頁
已閱讀5頁,還剩219頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

任務1走進人工智能01020304人工智能與深度學習人工智能深度學習步驟人工智能深度學習框架單擊此處添加標題05API操作平臺人工智能的應用任務1走進人工智能一、人工智能與深度學習1、人工智能概述人工智能(ArtificialIntelligence)簡稱AI。人工智能是計算機科學的一個分支,它企圖了解智能的本質(zhì),并生產(chǎn)出一種新的能以人類智能相似的方式做出反應的智能機器,是研究、開發(fā)用于模擬、延伸和擴展人的智能的理論、方法、技術(shù)及應用系統(tǒng)的一門新的技術(shù)科學。人工智能是一個廣泛的研究領域,包括許多理論,方法和技術(shù),主要包含以下領域。一、人工智能與深度學習2、人工智能分類人工智能作為新一輪產(chǎn)業(yè)變革的核心驅(qū)動力,在不斷催生新技術(shù)、新產(chǎn)品的同時,對傳統(tǒng)行業(yè)也進行了賦能,人工智能是一個很大的概念,種類比較多,根據(jù)水平高低,分為以下三類。弱人工智能弱人工智能是一種擅長單方面的人工智能,能夠單獨完成某個特定的任務。強人工智能強人工智能是指和人類能夠?qū)崿F(xiàn)的功能類似。超人工智能超人工智能是比喻在所有領域(科學創(chuàng)新、社交技能等)都比人類大腦聰明的智能。一、人工智能與深度學習3、深度學習概述深度學習是人工智能和機器學習的一種,簡稱DL,是一種通過模仿人類獲得某種類型知識的方式,也是利用深度神經(jīng)網(wǎng)絡來解決特征表達的一種學習過程,在使用深度學習過程中,深度學習是數(shù)據(jù)科學的一項重要元素,主要包括統(tǒng)計和模型預測。除此之外,深度學習也可以被視為這一種自動化預測分析工具,通過對機器學習中的算法進行調(diào)用,從而優(yōu)化模型和預測模型,實現(xiàn)自動化預測分析。深度學習就是一種建立在模擬人腦進行分析的神經(jīng)網(wǎng)絡,從而對大腦的數(shù)據(jù)進行解釋分析,比如圖像、聲音、文本等,在這個過程中用到的深度神經(jīng)網(wǎng)絡并不是一個全新的概念,而是一個包含多個隱含層的神經(jīng)網(wǎng)絡結(jié)構(gòu),層次中的每個算法都對其輸入應用進行非線性變換,并使得學習的知識來創(chuàng)建統(tǒng)計模型作為輸出。二、人工智能深度學習步驟深度學習的使用步驟主要分為三步:第一步:建立模型,通過建立模型,決定選擇什么樣的網(wǎng)絡結(jié)構(gòu),網(wǎng)絡結(jié)構(gòu)中包含多少層和每層包含多少個神經(jīng)元。第二步:優(yōu)化模型,并對模型進行評估,主要通過一些常用的損失函數(shù)優(yōu)化模型。第三步:選擇最優(yōu)函數(shù),通過調(diào)整學習參數(shù),調(diào)整學習率,使用梯度下降或者反向傳播算法來選擇最優(yōu)函數(shù)。321二、人工智能深度學習步驟1、建立模型(1)神經(jīng)元在深度學習中,主要通過神經(jīng)網(wǎng)絡來建立模型,常用的有卷積神經(jīng)網(wǎng)絡、循環(huán)神經(jīng)網(wǎng)絡等,這些神經(jīng)網(wǎng)絡都是由很多單元連接而成,這些單元稱為神經(jīng)元。二、人工智能深度學習步驟1、建立模型(1)圖中是一個簡單的線性回歸函數(shù),每個輸入都乘以對應的權(quán)重,將結(jié)果進行求和,之后和與偏重帶入激活函數(shù),從而得到想要的結(jié)果。二、人工智能深度學習步驟1、建立模型(2)前饋神經(jīng)網(wǎng)絡前饋神經(jīng)網(wǎng)絡是一種最簡單的神經(jīng)網(wǎng)絡,每個神經(jīng)元分層排列,每個神經(jīng)元和前一層的神經(jīng)元相連,值在網(wǎng)絡中傳遞的方向是由前向后進行傳播,換句話說是由輸入層傳向輸出層。二、人工智能深度學習步驟1、建立模型(2)如圖所示,包含三層,網(wǎng)絡輸入層,隱藏層和輸出層,在網(wǎng)絡的輸入層中,Layer的大小與真實輸入大小相匹配,隱藏層位于輸入層和輸出層中間,一個神經(jīng)網(wǎng)絡模型包含多個隱藏層,輸出層是網(wǎng)絡的最后一層,神經(jīng)元計算產(chǎn)生的結(jié)果直接輸出,作為模型的輸出。二、人工智能深度學習步驟2、優(yōu)化模型(1)激活函數(shù)為了增強網(wǎng)絡的表達能力,需要使用激活函數(shù)將線性函數(shù)轉(zhuǎn)換成非線性函數(shù)。在深度學習模型中,常用的激活函數(shù)有sigmoid、tanh、relu和softplus。激活函數(shù)具體描述如表所示。二、人工智能深度學習步驟2、優(yōu)化模型(2)損失函數(shù)損失函數(shù)(lossfunction)是機器學習中評估神經(jīng)網(wǎng)絡模型效果的一種重要指標,它是評估模型輸出值與目標值的差異,損失函數(shù)越小,表明模型的魯棒性就越好。對于模型的評估,一般使用損失函數(shù)反映模型的好壞,在損失函數(shù)中,使用最多的是交叉熵損失函數(shù)(Crossentropy),該函數(shù)主要用于神經(jīng)網(wǎng)絡分類問題,交叉熵會計算每個類別的概率,經(jīng)常與激活函數(shù)sigmoid一起出現(xiàn),通過交叉熵對y及y的導數(shù)損失進行計算,之后通過調(diào)整參數(shù),使得交叉熵越小越好。二、人工智能深度學習步驟3、選擇最優(yōu)函數(shù)在網(wǎng)絡模型中,選擇最優(yōu)函數(shù)有兩種方式。1梯度下降2反向傳播算法二、人工智能深度學習步驟3、選擇最優(yōu)函數(shù)(1)梯度下降法網(wǎng)絡模型中,進行參數(shù)學習過程中,當隱藏層過多,網(wǎng)絡參數(shù)個數(shù)過大時,是無法枚舉出所有可能取值,這時就需要尋找模型參數(shù),使得損失值達到最小,這時就需要使用梯度下降法進行模型參數(shù)的尋找。如圖所示為語音識別模型,在這個里面共8層,每層有1000個神經(jīng)元,那權(quán)重參數(shù)就是一個非常龐大的數(shù)據(jù)。二、人工智能深度學習步驟3、選擇最優(yōu)函數(shù)(1)梯度下降法的具體流程是包含權(quán)重和偏差的參數(shù)集合,隨機找個初始值,計算一下每個參數(shù)對應的偏微分,得到的一個偏微分的集合就是梯度,有了這些偏微分,從而更新梯度得到新的參數(shù),這樣不斷反復進行,就能得到一組參數(shù)使得損失函數(shù)的值最小。二、人工智能深度學習步驟3、選擇最優(yōu)函數(shù)(2)反向傳播算法在神經(jīng)網(wǎng)絡訓練中,可以使用反向傳播算法將計算得到的損失向前傳遞,用來計算各個神經(jīng)元連接的權(quán)重對損失的影響大小。反向傳播算法,簡稱BP算法,是簡歷在梯度下降法的基礎上,用于多層神經(jīng)元網(wǎng)絡的一種學習算法,主要使用激活傳播和權(quán)重更新兩個環(huán)節(jié)達到反復循環(huán)迭代的效果,從而達到網(wǎng)絡對輸入的響應達到預定的目標范圍為止。在深度學習中,可以使用深度學習框架來計算損失值,常用的框架有TensorFlow,PyTorch,Theano等。三、人工智能深度學習框架常見的深度學習框架有PaddlePaddle、TensorFlow、Caffe、Theano、Keras、PyTorch、MXNet等。這些深度學習框架被應用于計算機視覺、語音識別、自然語言處理與生物信息學等領域,并獲取了極好的效果。深度學習框架在使用過程中,具有兩點優(yōu)勢,分別為易用性和高效性。易用性,主要體現(xiàn)在屏蔽底層的機器學習算法,用戶只需要關注模型的結(jié)構(gòu),同時簡化了計算過程,降低了深度學習的門檻。高效性:深度學習都具有高效性,可以將代碼運行在CPU或者GPU上。三、人工智能深度學習框架1PaddlePaddle2TensorFlow3Caffe4Keras四、人工智能的應用1、計算機視覺處理(1)人臉識別人臉識別在消費支付、安防、娛樂、交通出行等場所有重要作用。人臉識別技術(shù)支持1:N匹配,支持多角度識別,不受發(fā)型、妝容、眼鏡的影響,因此即使人改變發(fā)型,或者換副眼鏡,居民都不需要擔心無法進門,也無需重新去物業(yè)登記。四、人工智能的應用1、計算機視覺處理(2)光學字符識別光學字符識別(OpticalCharacterRecognition,OCR)就是通過掃描等光學輸入方式將各種票據(jù)、報刊、書籍、文稿及其他印刷品的文字轉(zhuǎn)化為圖像信息,再利用文字識別技術(shù)將圖像信息轉(zhuǎn)化為可以使用的文本的計算機輸入技術(shù)。目前光學字符識別有著更加廣闊的應用前景,例如證件識別、銀行卡識別、通用文字字符識別等。四、人工智能的應用2、語音識別目前語音識別被廣泛應用,社交聊天發(fā)送實時語音,轉(zhuǎn)換為文字,讓溝通交流更加準確快捷。3、自然語言處理深度學習在自然語言處理中的應用越來越廣泛,從底層的分詞、語言模型、句法分析等到高層的對話管理、知識問答、聊天、機器翻譯等方面幾乎全部都有深度學習模型的身影,并且取得了不錯的效果。四、人工智能的應用4、自動駕駛自動駕駛的人工智能包含了感知、決策和控制等流程和模塊。感知是指通過攝像頭、激光雷達等傳感器的輸入,進而解析出周圍環(huán)境的信息。五、AIStudio操作平臺1、百度AIStudioAIStudio是百度AI推出的一站式開發(fā)平臺,包含AI教程、代碼環(huán)境、算法算力、數(shù)據(jù)集,同時提供了免費的在線云計算的一體化編程平臺,AIStudio的網(wǎng)址鏈接為/aistudio/index?ref=pinpai。五、AIStudio操作平臺2、華為云ModelArts華為云是一個綜合的云平臺,在平臺中包含云服務器、相關的解決方案、云市場等相關的內(nèi)容,同時包含ModelArts(面向開發(fā)者的一站式AI平臺)。/product/modelarts.html?utm_source=3.&utm_medium=organic&utm_adplace=kapian。五、AIStudio操作平臺3、騰訊云TI平臺騰訊云TI平臺主要用于深度學習,幫用戶實現(xiàn)數(shù)據(jù)獲取、數(shù)據(jù)處理、算法構(gòu)建、模型訓練、模型評估、模型部署等一站式服務。六、任務實施1、任務背景服務器在線訓練環(huán)境和硬件配備,對于新手來說還是比較麻煩,即使使用Docker也還是對使用者有一定的門檻要求,為此百度免費開放了Web在線開發(fā)平臺AI-Studio供新手來使用。本任務通過創(chuàng)建百度賬號并進入項目編輯頁來體驗百度AI-studio平臺。六、任務實施2、實驗思路感謝觀看任務2初識PaddlePaddle任務2初識PaddlePaddle01020304PaddlePaddle簡介PaddlePaddle行業(yè)應用PaddlePaddle環(huán)境搭建高層API一、PaddlePaddle簡介PaddlePaddle也稱飛槳,是百度研發(fā)的一款技術(shù)領先、功能完備的產(chǎn)業(yè)級深度學習開源開放平臺,包含深度學習核心框架、基礎模型庫、端到端開發(fā)套件、工具組件和服務平臺等五部分。二、PaddlePaddle行業(yè)應用1、百度內(nèi)部行業(yè)應用飛槳PaddlePaddle已在百度多項主要產(chǎn)品和服務之中發(fā)揮著巨大的作用。二、PaddlePaddle行業(yè)應用2、高爾夫球場的遙感檢測PaddlePaddle使用卷積神經(jīng)網(wǎng)絡模型對高爾夫球場用地進行檢測,對發(fā)現(xiàn)新增高爾夫球場、核查清理整治效果具有重要意義。二、PaddlePaddle行業(yè)應用3、AI識蟲飛槳與北京林業(yè)大學合作的“AI識蟲”,能夠遠程檢測病蟲害,效率提升50倍,準確率超過90%,使用飛槳的步驟為:數(shù)據(jù)采集→基礎模型蠹蟲圖片訓練識蟲模型→利用工具集將模型翻譯轉(zhuǎn)換→部署到PaddlePi-K210芯片板卡→識蟲設備集成。二、PaddlePaddle行業(yè)應用4、其他應用應用飛槳研發(fā)的智能零件質(zhì)檢機,單個零件的檢測速度只需25ms,檢測效率大幅提升,企業(yè)成本降低15%以上。飛槳與南方電網(wǎng)廣東能源技術(shù)公司聯(lián)合研發(fā)的電網(wǎng)智能巡檢解決方案,設備狀態(tài)讀取準確性高達99.01%,電網(wǎng)設備人工巡檢工作量降低90%。事實上,隨著飛槳賦能行業(yè)進程的加快,小到智能桃子分揀機、零件質(zhì)檢,大到城市規(guī)劃、病蟲害檢測、無人駕駛、預防性醫(yī)療保健等眾多行業(yè)中實現(xiàn)落地應用。三、PaddlePaddle環(huán)境搭建1、pip安裝在使用pip安裝飛槳過程之前,需要在電腦上安裝Python軟件與pip工具,之后運行下面命令進行安裝。python-mpipinstallpaddlepaddle==2.2.2在使用pipinstallpaddlepaddle安裝過程會比較慢,一般推薦使用清華鏡像或百度鏡像源進行安裝。命令如下:python-mpipinstallpaddlepaddle==2.2.2-ihttps://mirror./simple或python-mpipinstallpaddlepaddle==2.2.2-ihttps://mirror./simplepython-mpipinstallpaddlepaddle==2.2.2-i/pypi/simple三、PaddlePaddle環(huán)境搭建2、conda安裝使用conda安裝之前,需要在電腦中安裝好Anaconda或者miniconda,在進入需要安裝飛槳的環(huán)境后,使用conda安裝飛槳命令如下:python-mpipinstallpaddlepaddle==2.2.2condainstallpaddlepaddle==2.2.2--channel/anaconda/cloud/Paddle/三、PaddlePaddle環(huán)境搭建3、Docker安裝在使用Docker方式安裝飛槳時,需要在自己電腦上安裝Docker,以LINUX系統(tǒng)安裝為例,安裝好Docker后,在終端中輸入以下命令拉取CPU版本的飛槳官方鏡像。dockerpull/paddlepaddle/paddle:2.2.2CPU版的PaddlePaddle,且鏡像中預裝好了jupyter,拉取命令如下:用鏡像構(gòu)建并進入Docker容器,命令如下:dockerpull/paddlepaddle/paddle:2.2.2-jupyterdockerrun--namepaddle-it-v$PWD:/paddle/paddlepaddle/paddle:2.2.2/bin/bash三、PaddlePaddle環(huán)境搭建3、Docker安裝如果需要下載GPU版本,需要查看GPU版本支持的CUDA,并需要預先安裝CUDA和nvidia-docker,以CUDA11.2為例,拉取預安裝PaddlePaddle的鏡像命令如下:nvidia-dockerpull/paddlepaddle/paddle:2.2.2-gpu-cuda11.2-cudnn8用鏡像構(gòu)建并進入Docker容器,命令如下:nvidia-dockerrun--namepaddle-it-v$PWD:/paddle/paddlepaddle/paddle:2.2.2-gpu-cuda11.2-cudnn8/bin/bash三、PaddlePaddle環(huán)境搭建4、驗證飛槳是否安裝成功飛槳通過三種方式中的一種安裝之后,進入Python編輯器,可以通過以下命令檢測飛槳是否安裝成功。importpaddlepaddle.utils.run_check()運行命令,出現(xiàn)如圖所示的結(jié)果,則說明飛槳在本地安裝成功。四、高層API飛槳在不斷提升過程中,推出了全新的高層API,主要適用于2.0及以上版本,使用全新的API,能夠快讀的構(gòu)建深度學習項目和快速完成算法的迭代。飛槳高層API具有以下特點:易學易用:高層API是對普通動態(tài)圖API的進一步封裝和優(yōu)化,同時保持與普通API的兼容性,高層API使用更加易學易用,同樣的實現(xiàn)使用高層API可以節(jié)省大量的代碼。低代碼開發(fā):使用飛槳高層API的一個明顯特點是編程代碼量大大縮減。動靜轉(zhuǎn)換:高層API支持動靜轉(zhuǎn)換,只需要改一行代碼即可實現(xiàn)將動態(tài)圖代碼在靜態(tài)圖模式下訓練,既方便使用動態(tài)圖調(diào)試模型,又提升了模型訓練效率。321四、高層API在功能增強與使用方式上,高層API有以下升級:模型訓練方式升級:高層API中封裝了Model類,繼承了Model類的神經(jīng)網(wǎng)絡可以僅用幾行代碼完成模型的訓練。新增圖像處理模塊transform:飛槳新增了圖像預處理模塊,其中包含數(shù)十種數(shù)據(jù)處理函數(shù),基本涵蓋了常用的數(shù)據(jù)處理、數(shù)據(jù)增強方法。。提供常用的神經(jīng)網(wǎng)絡模型可供調(diào)用:高層API中集成了計算機視覺領域和自然語言處理領域常用模型,包括但不限于mobilenet、resnet、yolov3、cyclegan、bert、transformer、seq2seq等等。321五、任務實施乘坐出租車的時候,知道每次乘坐出租車的公里數(shù),也知道每次下車的時候支付給出租車司機的總費用。但是并不知道乘車的起步價,以及每公里行駛費用是多少。希望讓機器從這些數(shù)據(jù)當中學習出來計算總費用的規(guī)則。1、任務背景五、任務實施2、實驗思路感謝觀看任務3PaddlePaddle基礎知識任務3PaddlePaddle基礎知識010203張量動態(tài)圖模型開發(fā)一、張量PaddlePaddle與Python中的科學計算庫(Numpy)類似,提供大量的計算操作,在計算過程中用到的常量稱為張量(Tensor),PaddlePaddle支持動態(tài)圖和靜態(tài)圖,張量是數(shù)據(jù)流圖中節(jié)點之間相互流通數(shù)據(jù)的表現(xiàn)形式,比如一維數(shù)組、二維數(shù)組等都可以理解為張量,表示相關操作的輸出。一、張量PaddlePaddle在深度學習方面擁有強大的計算能力,可以創(chuàng)建多種不同形式的張量,在提供的API中,常用的函數(shù)有randn、arange和To_tensor等,具體如下所示。(1)randnrandn函數(shù)返回符合標準正態(tài)分布的隨機張量,形狀為shape,數(shù)據(jù)類型為dtype,語法格式為:paddle.randn(shape,

dtype=None,

name=None)(2)arangearange函數(shù)返回以步長step均勻分隔給定數(shù)值區(qū)間[start,end)的1-DTensor,數(shù)據(jù)類型為dtype,語法格式為:paddle.arange(start=0,

end=None,

step=1,

dtype=None,

name=None)一、張量(3)To_tensorTo_tensor函數(shù)將PIL.Image或numpy.ndarray轉(zhuǎn)換成paddle.Tensor。將形狀為(HxWxC)的輸入數(shù)據(jù)PIL.Image或numpy.ndarray轉(zhuǎn)換為(CxHxW)。如果想保持形狀不變,可以將參數(shù)data_format設置為'HWC'。語法格式為:paddle.vision.transforms.to_tensor(pic,

data_format='CHW')二、動態(tài)圖PaddlePaddle從2.0版本開始默認開啟動態(tài)圖開發(fā)模式,使用動態(tài)圖開發(fā)模式,每次執(zhí)行一個運算,立刻能夠得到結(jié)果。在使用動態(tài)圖過程中,除了引入paddle庫還需要引入numpy庫。示例代碼如下所示。importpaddleimportpaddle.nn.functionalasFimportnumpyasnp二、動態(tài)圖在使用動態(tài)圖過程中,有以下優(yōu)勢:a=paddle.randn([4,2])b=paddle.arange(1,3,dtype='float32')print(a)print(b)A動態(tài)圖模式下,可以直接運行飛槳提用的randn或者arange等函數(shù),會立刻返回結(jié)果,不需要創(chuàng)建一個計算圖,再對給定的數(shù)據(jù)進行運算,示例代碼如下所示。動態(tài)圖模式下,可以使用Python的條件判斷和循環(huán),用來執(zhí)行神經(jīng)網(wǎng)絡的計算,示例代碼如下所示。二、動態(tài)圖a=paddle.to_tensor(np.array([1,2,3]))b=paddle.to_tensor(np.array([4,5,6]))foriinrange(10):r=paddle.rand([1,])ifr>0.5:c=paddle.pow(a,i)+bprint("{}+>{}".format(i,c.numpy()))else:c=paddle.pow(a,i)-bprint("{}->{}".format(i,c.numpy()))B使用動態(tài)圖,可以根據(jù)控制流選擇不同的分支網(wǎng)絡同時方便構(gòu)建權(quán)重共享網(wǎng)絡,示例代碼如下所示。二、動態(tài)圖inputs=paddle.rand((256,64))linear=paddle.nn.Linear(64,8,bias_attr=False)loss_fn=paddle.nn.MSELoss()optimizer=paddle.optimizer.Adam(0.01,parameters=linear.parameters())foriinrange(10):hidden=linear(inputs)#weightfrominputtohiddenissharedwiththelinearmappingfromhiddento#outputoutputs=paddle.matmul(hidden,linear.weight,transpose_y=True)loss=loss_fn(outputs,inputs)loss.backward()print("step:{},loss:{}".format(i,loss.numpy()))optimizer.step()optimizer.clear_grad()C三、模型開發(fā)1、數(shù)據(jù)處理(1)數(shù)據(jù)收集內(nèi)置數(shù)據(jù)集在訓練模型的過程中,第一步就是對數(shù)據(jù)進行收集,PaddlePaddle框架將常用的數(shù)據(jù)集封裝到了API中,在使用過程中,可以直接調(diào)用API進行查看,存放數(shù)據(jù)集的主要目錄為paddle.vision.datasets與paddle.text。三、模型開發(fā)內(nèi)置數(shù)據(jù)集查看PaddlePaddle中包含的數(shù)據(jù)集,示例代碼如下所示。importpaddleprint('視覺相關數(shù)據(jù)集:',paddle.vision.datasets.__all__)print('自然語言相關數(shù)據(jù)集:',paddle.text.__all__)在調(diào)用內(nèi)部提供的數(shù)據(jù)集時,可用mode來表示訓練集與測試集,數(shù)據(jù)集接口會自動從遠端下載數(shù)據(jù)集到本機緩存目錄~/.cache/paddle/dataset。示例代碼如下所示。frompaddle.vision.transformsimportToTensor#訓練數(shù)據(jù)集用ToTensor將數(shù)據(jù)格式轉(zhuǎn)為Tensortrain_dataset=paddle.vision.datasets.MNIST(mode='train',transform=ToTensor())#驗證數(shù)據(jù)集val_dataset=paddle.vision.datasets.MNIST(mode='test',transform=ToTensor())三、模型開發(fā)自定義數(shù)據(jù)集在實際應用過程中,發(fā)現(xiàn)內(nèi)置的數(shù)據(jù)集并不能滿足要求,需要自己根據(jù)已有的相關數(shù)據(jù)來定義數(shù)據(jù)集,示例代碼如下所示。importpaddlefrompaddle.ioimportDatasetBATCH_SIZE=64BATCH_NUM=20IMAGE_SIZE=(28,28)CLASS_NUM=10classMyDataset(Dataset):三、模型開發(fā)自定義數(shù)據(jù)集在實際應用過程中,發(fā)現(xiàn)內(nèi)置的數(shù)據(jù)集并不能滿足要求,需要自己根據(jù)已有的相關數(shù)據(jù)來定義數(shù)據(jù)集,示例代碼如下所示。"""步驟一:繼承paddle.io.Dataset類"""def__init__(self,num_samples):"""步驟二:實現(xiàn)構(gòu)造函數(shù),定義數(shù)據(jù)集大小"""super(MyDataset,self).__init__()self.num_samples=num_samplesdef__getitem__(self,index):三、模型開發(fā)"""步驟一:繼承paddle.io.Dataset類"""def__init__(self,num_samples):"""步驟二:實現(xiàn)構(gòu)造函數(shù),定義數(shù)據(jù)集大小"""super(MyDataset,self).__init__()self.num_samples=num_samplesdef__getitem__(self,index):"""步驟三:實現(xiàn)__getitem__方法,定義指定index時如何獲取數(shù)據(jù),并返回單條數(shù)據(jù)(訓練數(shù)據(jù),對應的標簽)"""data=paddle.uniform(IMAGE_SIZE,dtype='float32')label=paddle.randint(0,CLASS_NUM-1,dtype='int64')returndata,labeldef__len__(self):三、模型開發(fā)"""步驟四:實現(xiàn)__len__方法,返回數(shù)據(jù)集總數(shù)目"""returnself.num_samples#測試定義的數(shù)據(jù)集custom_dataset=MyDataset(BATCH_SIZE*BATCH_NUM)print('=============customdataset=============')fordata,labelincustom_dataset:print(data.shape,label.shape)break三、模型開發(fā)(2)數(shù)據(jù)加載在PaddlePaddle中,對數(shù)據(jù)加載需要調(diào)用paddle.io.DataLoader函數(shù),示例代碼如下所示。在代碼中定義一個數(shù)據(jù)迭代器train_loader,用于加載訓練數(shù)據(jù)。通過batch_size=64設置數(shù)據(jù)集的批大小為64,通過shuffle=True,在取數(shù)據(jù)前會打亂數(shù)據(jù)。train_loader=paddle.io.DataLoader(custom_dataset,batch_size=BATCH_SIZE,shuffle=True)#如果要加載內(nèi)置數(shù)據(jù)集,將custom_dataset換為train_dataset即可forbatch_id,datainenumerate(train_loader()):x_data=data[0]y_data=data[1]print(x_data.shape)print(y_data.shape)break三、模型開發(fā)(3)數(shù)據(jù)預處理獲取數(shù)據(jù)后,如果不對數(shù)據(jù)進行處理的話,會出現(xiàn)擬合的問題,在PaddlePaddle中,提供了數(shù)據(jù)增強API(定義在領域目錄的transforms下),對訓練數(shù)據(jù)做增強,使數(shù)據(jù)進行處理得到不同的圖像,從而泛化數(shù)據(jù)集?;诳蚣軆?nèi)置數(shù)據(jù)集針對PaddlePaddle框架中的內(nèi)置數(shù)據(jù)集,可以使用paddle.vision.transforms下的方法,常用方法如圖所示。三、模型開發(fā)三、模型開發(fā)示例:對內(nèi)置數(shù)據(jù)集MNIST數(shù)據(jù)集隨機調(diào)整亮度、對比度、飽和度和改變圖片大小,示例代碼如下所示。frompaddle.vision.transformsimportCompose,Resize,ColorJitter#定義想要使用的數(shù)據(jù)增強方式,包括隨機調(diào)整亮度、對比度和飽和度,改變圖片大小transform=Compose([ColorJitter(),Resize(size=32)])#通過transform參數(shù)傳遞定義好的數(shù)據(jù)增強方法即可完成對自帶數(shù)據(jù)集的增強train_dataset=paddle.vision.datasets.MNIST(mode='train',transform=transform)三、模型開發(fā)自定義數(shù)據(jù)集importpaddlefrompaddle.ioimportDatasetfrompaddle.vision.transformsimportCompose,ResizeBATCH_SIZE=64BATCH_NUM=20IMAGE_SIZE=(28,28)CLASS_NUM=10classMyDataset(Dataset):def__init__(self,num_samples):super(MyDataset,self).__init__()self.num_samples=num_samples#在`__init__`中定義數(shù)據(jù)增強方法,此處為調(diào)整圖像大小self.transform=Compose([Resize(size=32)])三、模型開發(fā)def__getitem__(self,index):data=paddle.uniform(IMAGE_SIZE,dtype='float32')#在`__getitem__`中對數(shù)據(jù)集使用數(shù)據(jù)增強方法data=self.transform(data.numpy())label=paddle.randint(0,CLASS_NUM-1,dtype='int64')returndata,labeldef__len__(self):returnself.num_samples#測試定義的數(shù)據(jù)集custom_dataset=MyDataset(BATCH_SIZE*BATCH_NUM)print('=============customdataset=============')fordata,labelincustom_dataset:print(data.shape,label.shape)break三、模型開發(fā)2、模型組網(wǎng)(1)內(nèi)置模型在PaddlePaddle框架中內(nèi)置了計算機視覺領域的常用模型,在進行計算機視覺任務實現(xiàn)過程中,可以通過調(diào)用內(nèi)置的模型,這些內(nèi)置模型存儲在paddle.vision.models目錄下,可以通過以下命令查看內(nèi)置的網(wǎng)絡模型。print('飛槳框架內(nèi)置模型:',paddle.vision.models.__all__)如果想調(diào)用飛槳框架內(nèi)置模型中的LeNet模型,示例代碼如下所示。lenet=paddle.vision.models.LeNet()三、模型開發(fā)2、模型組網(wǎng)可以使用paddle.summary()方法查看模型的每一層輸入輸出,示例代碼如下所示。paddle.summary(lenet,

(64,

1,

28,

28))運行代碼,會發(fā)現(xiàn)顯示出lenet模型的結(jié)構(gòu)和輸入輸出,以及l(fā)enet模型中包含的數(shù)據(jù),如圖所示。三、模型開發(fā)(2)使用Sequential構(gòu)建模型的語法格式如下所示。classpaddle.nn.Sequential(*layers)使用Sequential構(gòu)建模型示例代碼如下所示。importpaddle#Sequential形式組網(wǎng)mnist=paddle.nn.Sequential(#構(gòu)造一個Flatten類的可調(diào)用對象paddle.nn.Flatten(),#定義一個線性變換層,輸入值為28*28=784,輸出層為512。paddle.nn.Linear(784,512),#使用ReLU激活函數(shù)paddle.nn.ReLU(),#正則化數(shù)據(jù),設置丟棄代理為0.2paddle.nn.Dropout(0.2),paddle.nn.Linear(512,10))三、模型開發(fā)(3)在forward中使用聲明的Layer變量進行前向計算。示例代碼如下所示。#Layer類繼承方式組網(wǎng)classMnist(paddle.nn.Layer):def__init__(self):super(Mnist,self).__init__()self.flatten=paddle.nn.Flatten()self.linear_1=paddle.nn.Linear(784,512)self.linear_2=paddle.nn.Linear(512,10)self.relu=paddle.nn.ReLU()self.dropout=paddle.nn.Dropout(0.2)defforward(self,inputs):y=self.flatten(inputs)y=self.linear_1(y)y=self.relu(y)y=self.dropout(y)y=self.linear_2(y)returnymnist_2=Mnist()三、模型開發(fā)3、模型訓練第一步:通過Sequential方法對模型進行組網(wǎng),通過paddle.Model對模型進行封裝。#定義網(wǎng)絡結(jié)構(gòu)(采用Sequential組網(wǎng)方式)mnist=paddle.nn.Sequential(paddle.nn.Flatten(1,-1),paddle.nn.Linear(784,512),paddle.nn.ReLU(),paddle.nn.Dropout(0.2),paddle.nn.Linear(512,10))model=paddle.Model(mnist)三、模型開發(fā)3、模型訓練第二步:在使用Model.fit進行模型訓練時,需要通過Model.prepare()接口提前配置模型優(yōu)化器、Loss計算方法和精度計算方法等。#為模型訓練做準備,設置優(yōu)化器,損失函數(shù)和精度計算方式model.prepare(paddle.optimizer.Adam(parameters=model.parameters()),paddle.nn.CrossEntropyLoss(),paddle.metric.Accuracy())三、模型開發(fā)3、模型訓練第三步:做好準備工作后,調(diào)用fit()來啟動訓練過程,fit中主要包含訓練數(shù)據(jù)集、訓練輪次和單次訓練數(shù)據(jù)批次大小。#啟動模型訓練,指定訓練數(shù)據(jù)集,設置訓練輪次,設置每次數(shù)據(jù)集計算的批次大小,設置日志格式model.fit(train_dataset,epochs=5,batch_size=64,verbose=1)三、模型開發(fā)3、模型訓練第四步:訓練好的模型進行評估可以使用evaluate()。#用evaluate在測試集上對模型進行驗證eval_result=model.evaluate(test_dataset,verbose=1)第五步:使用model.predict()對訓練好的模型進行預測驗證,驗證過程中只需要使用訓練好的模型對預測測試數(shù)據(jù)進行計算即可。#用predict在測試集上對模型進行測試test_result=model.predict(test_dataset)四、任務實施采用uci-housing數(shù)據(jù)集,這是經(jīng)典線性回歸的數(shù)據(jù)集。數(shù)據(jù)集共7084條數(shù)據(jù),可以拆分成506行,每行14列。前13列用來描述房屋的各種信息,最后一列為該類房屋價格中位數(shù)。前13列用來描述房屋的各種信息。1、任務背景四、任務實施2、實驗思路感謝觀看任務4線性回歸—預測程序員月薪任務4線性回歸—預測程序員月薪010203機器學習線性回歸sklearn庫一、機器學習1、什么是機器學習機器學習是實現(xiàn)人工智能的一種途徑,它是讓計算機通過一定的算法去分析數(shù)據(jù)中存在的規(guī)律,不斷提升對新數(shù)據(jù)預測性能的過程。換一種說法機器學習是研究計算機如何模擬或?qū)崿F(xiàn)人類的學習行為。我們可以將這種關系以模型權(quán)重的方式存儲下來,進而使用模型對未知結(jié)果的學生進行預測。這里的權(quán)重表示專業(yè)課和選修課對結(jié)果的影響程度是不同的。1分類算法2回歸算法3聚類算法一、機器學習2、機器學習算法分類二、線性回歸如圖所示,橫軸表示房屋面積,縱軸表示房價,圖中散點是部分抽樣的數(shù)據(jù)。那么從散點分布上來看,自變量房屋面積與房價之間存在著一定的線性關系,y=ax+b。直線與x軸夾角的正切就是斜率a,直線與y軸的交點也就是截距b。我們把上面一元函數(shù)中的參數(shù)代號變換一下,即把a變成w,那么函數(shù)形式就變成了y=wx+b,這就成了機器學習中一元線性回歸模型的表述,這里的w就稱為權(quán)重,b稱為偏置。三、sklearn庫sklearn是針Python編程語言的免費機器學習庫,廣泛地用于實際生產(chǎn)工作中,使用sklearn進行機器學習,能有效地降低學習門檻。sklearn是一款開源的Python機器學習庫,它基于NumPy和SciPy,提供了大量用于數(shù)據(jù)挖掘和分析的工具,以及支持多種算法的一系列接口。在派Lab實訓環(huán)境中已經(jīng)內(nèi)置了sklearn庫,如果想要使用sklearn中的某些方法,我們首先要導入sklearn庫。#導入sklearn包,并將其命名為skimportsklearnassk#查看sklearn包是否導入成功sk三、sklearn庫如果顯示以下結(jié)果,則表示導入成功。<module'sklearn'from'/opt/conda/lib/python3.9/site-packages/sklearn/__init__.py'>四、任務實施回歸問題就是預測自變量與因變量之間的關系,是機器學習中常見的基本問題。本任務將通過構(gòu)建線性回歸模型實現(xiàn)對程序員月薪的自動預測,從而學習機器學習中的線性回歸算法的基本原理以及熟練掌握線性回歸算法的應用流程。預測程序員月薪使用的數(shù)據(jù)集包含1800名程序員的樣本數(shù)據(jù),其中包含程序員的性別、年齡、工齡(入職月數(shù))、月薪。1、任務背景四、任務實施2、實驗思路感謝觀看任務5

卷積神經(jīng)網(wǎng)絡—貓狗分類任務5

卷積神經(jīng)網(wǎng)絡—貓狗分類0102機器學習分類卷積神經(jīng)網(wǎng)絡概述一、機器學習分類1、監(jiān)督學習監(jiān)督學習是指已知樣本的結(jié)果(比如考試答案,生產(chǎn)結(jié)果等),使其達到所要求性能或結(jié)果的過程,主要任務是通過標記的訓練數(shù)據(jù)來推斷一個其中對應的功能,其訓練數(shù)據(jù)包括類別信息(數(shù)據(jù)標簽和特征),如圖所示有一個樣本唐老鴨和根據(jù)它的特征定義的模型,從而得出結(jié)果是它屬于鴨子類。線性回歸屬于監(jiān)督學習。一、機器學習分類2、非監(jiān)督學習非監(jiān)督學習也稱為無監(jiān)督學習,其樣本中只含有特征,不包含標簽信息,因此在訓練時并不知道分類的結(jié)果是否正確。如圖所示,有一群小動物沒有任何標簽,讓機器自己學習來對小動物進行歸類,把有相似特征的歸屬于一類,把五個小動物分為了兩組一組有鴨子的特征,另一組包含的是其他動物。一、機器學習分類2、非監(jiān)督學習當有新數(shù)據(jù)(另一個鴨子)來的時候會把預測模型拿出來比對,對他進行歸類。如圖所示,它屬于鴨子類。二、卷積神經(jīng)網(wǎng)絡概述CNN可以應用在場景分類,圖像分類,現(xiàn)在還可以應用到自然語言處理(NLP)方面的很多問題,比如句子分類等。下面如圖是一個簡單的CNN結(jié)構(gòu),這個網(wǎng)絡結(jié)構(gòu)是用于一個四類分類的問題,分別是狗、貓、船和鳥,圖中的輸入圖片是屬于船一類。二、卷積神經(jīng)網(wǎng)絡概述1、輸入層輸入層負責神經(jīng)網(wǎng)絡的數(shù)據(jù)輸入,例如在處理圖像時,輸入層代表圖片的像素矩陣。在卷積神經(jīng)網(wǎng)絡中用三維張量類型表示(Length,Width,Channel),Length和Width代表圖像大小尺寸,Channel代表圖像的色彩通道,例如黑白圖像的深度為1,彩色圖像(RGB色彩模式)的深度為3。二、卷積神經(jīng)網(wǎng)絡概述2、卷積層卷積層也被稱為過濾器或者內(nèi)核,在卷積層中通過一塊塊卷積核(ConventionalKernel)在原始圖像上平移來提取特征,卷積層中每個節(jié)點的輸入是上一層的一小塊數(shù)據(jù),卷積層將神經(jīng)網(wǎng)絡中每一塊數(shù)據(jù)進行深入分析,提取特征,得到特征映射。通常卷積層處理過的節(jié)點矩陣會變深。二、卷積神經(jīng)網(wǎng)絡概述2、卷積層不同的卷積核可以處理不同問題,如圖所示,使用卷積操作實現(xiàn)辣椒邊緣檢測。在卷積層提取數(shù)據(jù)特征進行的操作叫作卷積運算,如圖所示,卷積運算對兩個輸入張量(輸入和卷積核)進行卷積,并輸出一個代表來自每個輸入的信息的張量。二、卷積神經(jīng)網(wǎng)絡概述3、激勵層激勵層使用激活函數(shù)為神經(jīng)網(wǎng)絡引入非線性,非線性意味著輸入和輸出的關系是一條曲線,能夠刻畫輸入中更為復雜的變化。在搭建CNN時主要使用tf.nn.relu(修正線性單元)。評價某個激活函數(shù)是否有用時,主要考慮以下兩個因素:函數(shù)是單調(diào)的,這樣輸出便會隨著輸入的增長而增長,使利用梯度下降法尋找局部極值點成為可能。函數(shù)是可微分的,保證該函數(shù)定義域內(nèi)的任意一點上導數(shù)都存在,使梯度下降法能夠正常使用來自這類激活函數(shù)的輸出。12二、卷積神經(jīng)網(wǎng)絡概述4、池化層使用池化層既可以加快計算速度也有防止過擬合問題的作用。和卷積層類似,池化層前向傳播的過程也是通過移動一個類似過濾器的結(jié)構(gòu)完成的,池化層使用最大值計算的操作叫作最大池化層(max-pooling),使用平均值計算的操作叫作平均池化層(mean-pooling)。二、卷積神經(jīng)網(wǎng)絡概述4、池化層圖中有一個4×4的平面,使用2×2的過濾器且步長為2進行池化。使用最大池化操作過濾器篩選出每次中的最大數(shù)值,使用平均池化操作過濾器將所有數(shù)據(jù)累加求取平均值作為池化特征結(jié)果。最大池化通常使用2×2的卷積核,主要原因在于它是在單個通路上能夠?qū)嵤┑淖钚?shù)量的降采樣,若使用1×1的卷積核,則輸出與輸入相同。平均池化用于當整個卷積核都非常重要時,若需實現(xiàn)值的縮減,平均池化非常有效。二、卷積神經(jīng)網(wǎng)絡概述5、全連接層全連接層每一個神經(jīng)元都和上一層所有神經(jīng)元相連,主要通過激活函數(shù)實現(xiàn)預測分類,經(jīng)過多次卷積層和池化層的處理后,此時數(shù)據(jù)中的信息已經(jīng)抽象成了信息含量更高的特征,在卷積神經(jīng)網(wǎng)絡的最后通常由1到2個全連接層完成分類任務。三、任務實施貓狗分類使用CIFAR10數(shù)據(jù)集,CIFAR10數(shù)據(jù)集包含60,000張32x32的彩色圖片,10個類別,每個類包含6,000張。其中50,000張圖片作為訓練集,10000張作為驗證集。1、任務背景三、任務實施2、實驗思路感謝觀看任務6

LeNet之眼疾識別任務6

LeNet之眼疾識別01020304LeNet-5AlexNetVGGNetGoogleLeNet一、LeNet-5LeNet-5卷積神經(jīng)網(wǎng)絡利用卷積、參數(shù)共享、池化等操作提取特征,避免大量的計算成本,最后再使用全連接神經(jīng)網(wǎng)絡進行分類識別。LeNet-5共包含七層卷積網(wǎng)絡(不包含輸入層)組成,結(jié)構(gòu)如圖所示,輸入的原始圖像大小是32*32像素,卷積層使用C開頭,池化層使用S開頭,全連接使用F開頭。一、LeNet-5使用LeNet神經(jīng)網(wǎng)絡的工作流程如下所示:(1)卷積層(C1層),卷積核的大小為5*5,卷積核數(shù)量為6個,輸出結(jié)果大小為28*28,即(32-5+1)×(32-5+1)=28×28,由于同個卷積核每個神經(jīng)元均使用相同的參數(shù),因此參數(shù)個數(shù)為(5×5+1)×6=156,其中5×5為卷積核參數(shù),1為偏置參數(shù);每層的連接數(shù)為每個卷積核參數(shù)*特征圖,即(5×5+1)×6×28×28=122304個連接數(shù)。(2)S2層S2是一個池化層,主要作用是做池化或特征降維,池化單元為2*2,所以6個特征圖的大小經(jīng)池化后變?yōu)?4*14。與常見的池化不同,該模型中,池化單元之間沒有重疊,在池化區(qū)域內(nèi)進行聚合統(tǒng)計后得到新的特征值,相當于圖像大小減半,因此卷積后的28×28圖像經(jīng)2×2池化后就變?yōu)?4×14,而圖像的個數(shù)沒有改變。一、LeNet-5(3)C3層C3卷積層的計算方式和C1相同,得出C3層的特征圖大小為(14-5+1)×(14-5+1)=10×10,該層有16個卷積核,卷積模板大小為5*5。與C1的最大區(qū)別是,C3中每個特征圖中的元素會與S2層中若干個特征圖中處于相同位置的5x5的區(qū)域相連,C3與S2并不是全連接而是部分連接,有些是C3連接到S2三層、有些四層、甚至達到6層,連接規(guī)則如圖所示。一、LeNet-5(4)S4層層S4是與S2類似,池化單元大小為2*2,有16個特征圖,每個大小為5*5,輸出為16個5*5的特征圖。S4層有32個可訓練參數(shù)和2000個連接。(5)C5層該層有120個卷積核,每個卷積核的大小仍為5*5,有120個特征圖。由于S4層的大小為5×5,而該層的卷積核大小也是5×5,因此特征圖大小為(5-5+1)×(5-5+1)=1×1。這樣該層就剛好變成了全連接。注意:這里出現(xiàn)全連接純屬巧合。(6)F6全連接層F6就是一個簡單的全連接層,它由84個神經(jīng)元構(gòu)成。和傳統(tǒng)的全連接一樣每個神經(jīng)元將C5層中的特征圖的值乘上相應的權(quán)重并相加,再加上對應的偏置再經(jīng)過激活函數(shù)(tanh/sigmoid)。該層有84個特征圖,F(xiàn)6層共有84×(120+1)=10164個可訓練的參數(shù)。一、LeNet-5(6)說明:84個神經(jīng)元是源于輸出層的設計,對應于7*12個比特圖,其中-1表示白色,1表示黑色,這樣每個符號的比特圖的黑白色就對應于一個編碼。具體如圖所示。(7)OUTPUT層OUTPUT層也稱輸出層,是一個全連接層,共有10個節(jié)點,分別代表數(shù)字0~9,如果第i個節(jié)點的值為0,則表示網(wǎng)絡識別的結(jié)果是數(shù)字i。二、AlexNetAlexNet卷積神經(jīng)網(wǎng)絡自2012年誕生之后,帶來深度學習的大爆發(fā),使CNN成為在圖像識別分類的核心算法模型。AlexNet是在LeNet基礎上加深網(wǎng)絡的結(jié)構(gòu),在使用過程中有以下特點:有更深的網(wǎng)絡結(jié)構(gòu)。使用卷積層+卷積層+池化層來提取圖像的特征。使用Dropout抑制過擬合。使用Relu替換之前的sigmoid作為激活函數(shù)。能夠支持多GPU訓練。二、AlexNetAlexNet網(wǎng)絡結(jié)構(gòu)共有8層,前面5層是卷積層,后面3層是全連接層,采用兩個GPU進行訓練,結(jié)構(gòu)圖由上下兩部分組成,一個GPU運行圖上方的層,另一個運行圖下方的層,兩個GPU只在特定的層通信。例如第二、四、五層卷積層的核只和同一個GPU上的前一層的核特征圖相連,第三層卷積層和第二層所有的核特征圖相連接,全連接層中的神經(jīng)元和前一層中的所有神經(jīng)元相連接。三、VGGNet在VGGNet中全部使用3*3的卷積核和2*2的池化層,通過不斷加深網(wǎng)絡結(jié)構(gòu)來提升性能。在模型結(jié)構(gòu)中,深度從11層到19層不等,VGGNet把網(wǎng)絡分成5段,每段都把多個3*3的卷積網(wǎng)絡串聯(lián)在一起,每段卷積后面接一個最大池化層,最后是3個全連接層和1個激活層。三、VGGNet使用VGGNet模型結(jié)構(gòu)形象的展示圖片識別的過程如圖所示。可以看到包含卷積層、全連接層和輸出層。一般輸入的圖像為224*224。在使用過程中VGG的訓練過程比AlexNet收斂的快一些,主要是因為VGG使用的卷積核小,網(wǎng)絡結(jié)構(gòu)深,在特定的層中使用了預訓練得到的數(shù)據(jù)進行參數(shù)的初始化,同時引入1*1的卷積核,在不影響輸入輸出維度的情況下,引入非線性變換,增加網(wǎng)絡的表達能力,降低計算量。四、GoogleLeNetGoogleLeNet是一款網(wǎng)絡架構(gòu)簡潔神經(jīng)網(wǎng)絡,是一個有22層深度的網(wǎng)絡,在該模型中,提出了一種Inception結(jié)構(gòu)。Inception結(jié)構(gòu)是一個將多個卷積或者池化操作放在一起組成的網(wǎng)絡模塊,在設計神經(jīng)網(wǎng)絡時,以模塊為單元去組裝整個網(wǎng)絡結(jié)構(gòu),其目的是將稀疏矩陣聚類為較為密集的子矩陣來提高計算性能,從而增加神經(jīng)網(wǎng)絡的表現(xiàn)又能保證計算資源的有效性。四、GoogleLeNetInception是GoogleLeNet中核心組成單元,歷經(jīng)V1、V2、V3、V4等多個版本的發(fā)展,不斷趨于完善。其中:在V1中使用1*1的卷積核,采用多尺度卷積核。在V2中,采用BatchNormalization(批歸一化)在V3中,采用非對稱卷積降低運算量在V4中,結(jié)合了ResNet中的思想,發(fā)現(xiàn)ResidualConnections貌似只能加快網(wǎng)絡收斂速度,使更大的網(wǎng)絡規(guī)模提高了精度。五、任務實施如今近視已經(jīng)成為困擾人們健康的一項全球性負擔,在近視人群中,有超過35%的人患有重度近視。近視會拉長眼睛的光軸,也可能引起視網(wǎng)膜或者脈絡網(wǎng)膜的病變。隨著近視度數(shù)的不斷加深,高度近視有可能引發(fā)病理性病變,這將會導致以下幾種癥狀:視網(wǎng)膜或者脈絡網(wǎng)膜發(fā)生退化、視盤區(qū)域萎縮、漆裂樣紋損害、Fuchs斑等。因此,及早發(fā)現(xiàn)近視患者眼睛的病變并采取治療,顯得非常重要。1、任務背景五、任務實施2、實驗思路感謝觀看任務7RNN實現(xiàn)謠言監(jiān)測任務7RNN實現(xiàn)謠言監(jiān)測0102循環(huán)神經(jīng)網(wǎng)絡LSTM模型一、循環(huán)神經(jīng)網(wǎng)絡循環(huán)神經(jīng)網(wǎng)絡,簡稱RNN,是一種對時間序列顯示建模的神經(jīng)網(wǎng)絡,主要對文本語義和時序信息進行處理和預測,通常情況下與自然語言處理相互結(jié)合使用,循環(huán)神經(jīng)網(wǎng)絡包含輸入層、隱藏層和輸出層。一、循環(huán)神經(jīng)網(wǎng)絡以語言翻譯為例,若需要翻譯語句ABCD,此時循環(huán)神經(jīng)網(wǎng)絡的第一段每一個時刻的輸入就分別是A、B、C和D,用“_”作為待翻譯語句的結(jié)束符,在第一段中循環(huán)神經(jīng)網(wǎng)絡只有輸入沒有輸出,從結(jié)束符“_”開始,循環(huán)神經(jīng)網(wǎng)絡進入翻譯階段,此時每一個時刻的輸入是上一個時刻的輸出,最終得到的輸出XYZ就是語句ABCD翻譯的結(jié)果,翻譯輸出結(jié)束符“_”時表示翻譯結(jié)束。二、LSTM模型長短時記憶神經(jīng)網(wǎng)絡簡稱LSTM,是循環(huán)神經(jīng)網(wǎng)絡的一個變體,能夠有效地解決長期依賴問題/梯度消失問題。LSTM模型的關鍵是引入了一組記憶單元(MemoryUnits),允許網(wǎng)絡可以學習何時遺忘歷史信息,何時用新信息更新記憶單元。在時刻t時,記憶單元ct記錄了到當前時刻為止的所有歷史信息,并受三個“門”控制:輸入門it,遺忘門ft和輸出門ot。三個門的元素的值在[0,1]之間。其核心為記憶(細胞狀態(tài))和門機制。二、LSTM模型門(Gate)是一種可選地讓信息通過的方式。它由一個Sigmoid神經(jīng)網(wǎng)絡層和一個點乘法運算組成。Sigmoid神經(jīng)網(wǎng)絡層輸出0和1之間的數(shù)字,這個數(shù)字描述每個組件有多少信息可以通過,0表示不通過任何信息,1表示全部通過。遺忘門是決定從細胞狀態(tài)中丟棄什么信息,同時查看ht-1(前一個隱藏狀態(tài))和xt(當前輸入)并為狀態(tài)Ct-1(上一個狀態(tài))中的每個數(shù)字輸出0-1之間的數(shù)字,其中1表示完全保留,0表示徹底刪除。輸入門決定要在細胞狀態(tài)中存儲的信息,在輸入過程中首先經(jīng)過Sigmoid層,該層決定了將更新的值,之后tanh層創(chuàng)建候選向量,該向量會被加到細胞的狀態(tài)中,最終結(jié)合這兩個向量來創(chuàng)建更新值,輸出門決定要輸出的內(nèi)容,通過Sigmoid層決定輸出細胞狀態(tài)中的內(nèi)容,之后將細胞狀態(tài)通過tanh并乘以Sigmoid門的輸出。三、任務實施傳統(tǒng)的謠言檢測模型一般根據(jù)謠言的內(nèi)容、用戶屬性、傳播方式人工地構(gòu)造特征,而人工構(gòu)建特征存在考慮片面、浪費人力等現(xiàn)象。本次實踐使用基于循環(huán)神經(jīng)網(wǎng)絡(RNN)的謠言檢測模型,將文本中的謠言事件向量化,通過循環(huán)神經(jīng)網(wǎng)絡的學習訓練來挖掘表示文本深層的特征,避免了特征構(gòu)建的問題,并能發(fā)現(xiàn)那些不容易被人發(fā)現(xiàn)的特征,從而產(chǎn)生更好的效果。1、任務背景三、任務實施2、實驗思路感謝觀看任務8GRU電影評論情感分析任務8GRU電影評論情感分析0102自然語言處理詞向量Word2Vec一、自然語言處理1、自然語言處理概述自然語言處理簡稱NLP,是計算機科學和人工智能的一個重要領域和方向,主要目的是研究人與計算機之間的相互通訊的理論和方法,換句話說,計算機是通過用戶以自然語言數(shù)據(jù)作為輸入,在內(nèi)部通過定義的算法進行加工和處理,從而返回用戶所期望得到的結(jié)果。自然語言處理的任務主要包括兩大核心任務,即自然語言理解(NaturalLanguageUnderstanding,NLU)與自然語言生成(NaturalLanguageGeneration,NLG)。一、自然語言處理2、自然語言處理發(fā)展歷程自然語言處理的發(fā)展大致可以劃分為4個階段,即萌芽期、快速發(fā)展期、低谷發(fā)展期和復興融合期。(1)萌芽期一、自然語言處理2、自然語言處理發(fā)展歷程(2)快速發(fā)展期在1957-1970年期間自然語言處理的發(fā)展稱為自然語言處理的快速發(fā)展期,在這一時期,自然語言處理很快融入了人工智能領域的研究,大量的自然語言研究工作都聚焦從語言學角度,分析自然語言的詞法、句法等結(jié)構(gòu)信息,并通過總結(jié)這些結(jié)構(gòu)之間的規(guī)則,達到處理和使用自然語言的目的。(3)低谷發(fā)展期1971-1993年期間稱為自然語言處理的低谷發(fā)展期,由于計算機語料庫中的信息有限,自然語言處理的理論和技術(shù)處于一個低迷期,歐共體、美國、蘇聯(lián)等先后都有巨大的資金投入,卻沒有讓自然語言處理得到實質(zhì)性的創(chuàng)新與突破,此階段相對之前的發(fā)展稱為低谷發(fā)展期。一、自然語言處理2、自然語言處理發(fā)展歷程(4)復興融合期1994年至今稱為自然語言處理的復興融合期。在這一時期,自然語言處理領域具有兩個鮮明特征,分別是大規(guī)模性和真實可用性。大規(guī)模性意味著計算機對自然語言的處理有了更深的層次要求,對文本信息的輸入和處理不再是單一或片段語句;真實可用性強調(diào)計算機輸出的文本處理內(nèi)容在“豐富度”方面的要求,提高了計算機在自然語言處理結(jié)果中所包含信息的可利用程度,最終達到能夠?qū)ψ匀徽Z言文本進行自動檢索、自動提取重要信息并進行自動摘要的要求。一、自然語言處理3、自然語言處理應用(1)搜索引擎人們每天都在享受著搜索引擎帶來的便捷,當我們不小心寫了錯別字,搜索引擎會更正它們,仍然會找到需要的相關結(jié)果。一、自然語言處理3、自然語言處理應用(2)機器翻譯翻譯就是把一種語言文字的意義用另一種語言文字表達出來。那么機器翻譯,顧名思義,就是由機器來完成這樣的工作。百度翻譯等類似的應用來查找特定單詞或短語在英語或其他語言中的含義,這背后的技術(shù)就是機器翻譯。一、自然語言處理3、自然語言處理應用(3)個性化推薦系統(tǒng)推薦系統(tǒng)依賴于數(shù)據(jù)、算法、人機交互等環(huán)節(jié)的相互配合。自然語言處理利用大數(shù)據(jù)和歷史行為記錄,借助數(shù)據(jù)挖掘、信息檢索和計算統(tǒng)計學等技術(shù),能夠?qū)W習出用戶的興趣愛好,預測出用戶對特定物品的偏好,實現(xiàn)對用戶意圖的精準理解,同時對語言進行匹配計算,實現(xiàn)精準匹配。二、詞向量Word2Vec1、Word2Vec模型簡介Word2Vec(WordEmbedding)中文名稱為“詞向量”或“詞嵌套”,表示自然語言里單詞的一種方法,即把每個詞都表示為一個N維空間內(nèi)的點,即一個高維空間內(nèi)的向量。通過這種方法,實現(xiàn)把自然語言計算轉(zhuǎn)換為向量計算。二、詞向量Word2Vec1、Word2Vec模型簡介Word2Vec是一種可以從原始語料中學習字詞空間向量的預測模型,Word2Vec分為CBOW(ContinuousBag-of-Words)和Skip-Gram兩種模式,其中CBOW是用一個詞的上下文作為輸入來預測詞本身,Skip-Gram是用一個詞語作為輸入,來預測它的上下文詞。如圖8-6所示,左側(cè)為CBOW模型,右側(cè)為Skip-Gram模型。二、詞向量Word2Vec1、Word2Vec模型簡介在CBOW中,先在句子中選定一個中心詞,并把其他詞作為這個中心詞的上下文。在Skip-gram中,同樣先選定一個中心詞,并把其他詞作為這個中心詞的上下文。二、詞向量Word2Vec2、門控循環(huán)單元神經(jīng)網(wǎng)絡GRU模型如圖所示,GRU模型有兩個門,即“重置門r”和“更新門z”,“重置門”決定如何組合新輸入和之前的記憶,“重置門”越小說明忽略得越多,“更新門”決定留下多少之前的記憶,“更新門”的值越大說明前一時刻的狀態(tài)信息帶入越多。若將重置門都設為1,更新門都設為0,就得到普通的RNN模型。三、任務實施IMDB數(shù)據(jù)集是一個對電影評論標注為正向評論與負向評論的數(shù)據(jù)集,共有25000條文本數(shù)據(jù)作為訓練集,25000條文本數(shù)據(jù)作為測試集。該數(shù)據(jù)集的官方地址為:/~amaas/data/sentiment/1、任務背景三、任務實施2、實驗思路感謝觀看任務9

電影系統(tǒng)推薦任務9

電影系統(tǒng)推薦01020304推薦系統(tǒng)概述推薦系統(tǒng)本質(zhì)常用的推薦系統(tǒng)算法工業(yè)實踐中的推薦系統(tǒng)一、推薦系統(tǒng)概述推薦系統(tǒng)是根據(jù)用戶平時瀏覽的大量數(shù)據(jù)進行統(tǒng)計和分析,完善用戶的個性化建模,從而實現(xiàn)主動推薦給用戶能夠滿足他們需求的信息。推薦系統(tǒng)涉及多個領域,比如電子商務、電影視頻、社交網(wǎng)絡、位置服務等。一、推薦系統(tǒng)概述推薦系統(tǒng)的思想主要是利用用戶和物品的特征信息、用戶喜歡過的物品或用戶相似的其他用戶等信息,來發(fā)現(xiàn)和分析其對應的特征,最終實現(xiàn)推薦用戶喜歡的特征的物品或相似的物品,在這個過程中,具體的方式是知你所想、精準推送、物以類聚、人以群分。二、推薦系統(tǒng)本質(zhì)推薦系統(tǒng)的本質(zhì)是解決“5W”問題,“5W”主要包含who、what、why、when、where,比如當用戶在晚間上網(wǎng)閱讀軍事小說時,使用“5w”進行分析,在小說的底部向他推薦三國志游戲,并給出了推薦理由“紙上談兵不如親身實踐”。三、常用的推薦系統(tǒng)算法常用的推薦系統(tǒng)算法實有三種,分別是協(xié)同過濾推薦、基于內(nèi)容過濾推薦和組合推薦。其中:1、協(xié)同過濾推薦(CollaborativeFilteringRecommendation):該算法的核心是分析用戶的興趣和行為,利用共同行為習慣的群體有相似喜好的原則,推薦用戶感興趣的信息。協(xié)同過濾算法又可以簡單分為兩種:A基于用戶的協(xié)同過濾:根據(jù)用戶的歷史喜好分析出相似興趣的人,然后給用戶推薦其他人喜歡的物品。B基于物品的協(xié)同過濾:根據(jù)用戶的歷史喜好分析出相似物品,然后給用戶推薦同類物品。三、常用的推薦系統(tǒng)算法2、基于內(nèi)容過濾推薦(Content-basedFilteringRecommendation):基于內(nèi)容的過濾是信息檢索領域的重要研究內(nèi)容,是更為簡單直接的算法,該算法的核心是衡量出兩個物品的相似度?;谟脩舻膮f(xié)同過濾、基于物品的協(xié)同過濾與基于內(nèi)容過濾推薦的區(qū)別和聯(lián)系如圖所示。三、常用的推薦系統(tǒng)算法3、組合推薦(HybridRecommendation):以上算法各有優(yōu)缺點,比如基于內(nèi)容的過濾推薦是基于物品建模,在系統(tǒng)啟動初期往往有較好的推薦效果,但是沒有考慮用戶群體的關聯(lián)屬性;協(xié)同過濾推薦考慮了用戶群體喜好信息,可以推薦內(nèi)容上不相似的新物品,發(fā)現(xiàn)用戶潛在的興趣偏好,但是這依賴于足夠多且準確的用戶歷史信息。所以,實際應用中往往不只采用某一種推薦方法,而是通過一定的組合方法將多個算法混合在一起,以實現(xiàn)更好的推薦效果,比如加權(quán)混合、分層混合等。具體選擇哪種方式和應用場景有很大關系。四、工業(yè)實踐中的推薦系統(tǒng)(1)推薦來源:推薦來源會更加多樣化,除了使用深度學習模型的方式,還大量使用標簽匹配的個性化推薦方式。此外,推薦熱門的內(nèi)容,具有時效性的內(nèi)容和一定探索性的內(nèi)容,都非常關鍵。對于新聞類的內(nèi)容推薦,用戶不希望地球人都在談論的大事自己毫無所知,期望更快更全面的了解。如果用戶經(jīng)常使用的推薦產(chǎn)品總推薦“老三樣”,會使得用戶喪失“新鮮感”而流失。因此,除了推薦一些用戶喜歡的內(nèi)容之外,謹慎的推薦一些用戶沒表達過喜歡的內(nèi)容,可探索用戶更廣泛的興趣領域,以便有更多不重復的內(nèi)容可以向用戶推薦。四、工業(yè)實踐中的推薦系統(tǒng)(2)檢索系統(tǒng):將推薦系統(tǒng)構(gòu)建成“召回+排序”架構(gòu)的高性能檢索系統(tǒng),以更短的特征向量建倒排索引。在“召回+排序”的架構(gòu)下,通常會訓練出兩種不同長度的特征向量,使用較短的特征向量做召回系統(tǒng),從海量候選中篩選出幾十個可能候選。使用較短的向量做召回,性能高但不夠準確,然后使用較長的特征向量做幾十個候選的精細排序,因為待排序的候選很少,所以性能低一些也影響不大。(3)冷啟動問題:用戶行為數(shù)據(jù)的積累。這時,我們往往建立一套專家經(jīng)驗的規(guī)則系統(tǒng),比如一個在美妝行業(yè)工作的店小二對各類女性化妝品偏好是非常了解的。通過規(guī)則系統(tǒng)運行一段時間積累數(shù)據(jù)后,再逐漸轉(zhuǎn)向機器學習的系統(tǒng)。很多推薦系統(tǒng)也會主動向用戶收集一些信息,比如大家注冊一些資訊類APP時,經(jīng)常會要求選擇一些興趣標簽。四、工業(yè)實踐中的推薦系統(tǒng)(4)推薦系統(tǒng)的評估推薦系統(tǒng)的評估不僅是計算模型Loss所能代表的,是使用推薦系統(tǒng)用戶的綜合體驗。除了采用更多代表不同體驗的評估指標外(準確率、召回率、覆蓋率、多樣性等),還會從兩個方面收集數(shù)據(jù)做分析:行為日志:如用戶對推薦內(nèi)容的點擊率,閱讀市場,發(fā)表評論,甚至消費行為等。人工評估:選取不同的具有代表性的評估員,從興趣相關度、內(nèi)容質(zhì)量、多樣性、時效性等多個維度評估。如果評估員就是用戶,通常是以問卷調(diào)研的方式下發(fā)和收集。五、任務實施個性化推薦算法的數(shù)據(jù)大多是文本和圖像。比如網(wǎng)易云音樂推薦中,數(shù)據(jù)是音樂的名字、歌手、音樂類型等文本數(shù)據(jù);抖音視頻推薦中,數(shù)據(jù)是視頻或圖像數(shù)據(jù);也有可能同時使用圖像和文本數(shù)據(jù),比如YouTube的視頻推薦算法中,會同時考慮用戶信息和視頻類別、視頻內(nèi)容信息。1、任務背景五、任務實施2、實驗思路感謝觀看任務10目標檢測-火災煙霧檢測任務10目標檢測-火災煙霧檢測01020304目標檢測概述常用的開源數(shù)據(jù)集PaddleDetection用戶數(shù)據(jù)處理一、目標檢測概述1、什么是目標檢測目標檢測是計算機視覺中重要的一項任務,也叫目標提取,主要是找出圖像中所有感興趣的目標或者物體,以此來確定它們的類別和位置。目標檢測將目標的分割和識別合二為一,其準確性和實時性是整個系統(tǒng)的一項重要能力。在目標檢測過程中,每張圖像中物體的數(shù)量、大小和姿態(tài)都不盡相同,造成了非結(jié)構(gòu)化的輸出,這也是和圖像分類最主要的區(qū)別,同時檢測的物體時常會有遮擋階段,從而造成目標檢測的困難。比如要確定某張給定圖像中是否存在以下類別,比如人、車、狗和貓等實例過程中,需要根據(jù)圖像理解和計算機視覺為基礎,通過目標檢測的技術(shù)實現(xiàn)目標實例的確定,如果存在,就返回每個目標實例的空間位置和覆蓋范圍。一、目標檢測概述2、目標檢測應用場景(1)人臉檢測和識別人臉檢測是通過給定的一幅圖像,采用一定的技術(shù)和策略對其進行搜索從而確定圖像中是否包含人臉,如果包含人臉,則返回人臉的位置、大小和姿態(tài)。人臉識別是用攝像機或攝像頭采集含有人臉的圖像或視頻流,并自動在圖像中檢測和跟蹤人臉,進而對檢測到的人臉進行臉部識別的一系列相關技術(shù)。一、目標檢測概述2、目標檢測應用場景(2)行人檢測行人檢測主要應用在自動駕駛、視頻監(jiān)控和刑事偵查等地方,主要是根據(jù)行人檢測方法在特征表示、分類器設計和檢測等方面使用進行深入研究,行人檢測效果如圖所示。一、目標檢測概述2、目標檢測應用場景(3)文本檢測文本檢測是判斷圖片中是否包含文字,如果包含文字,則通過計算機對圖片中的文字進行定位和識別,主要分為文本定位和文本識別。一、目標檢測概述2、目標檢測應用場景文本檢測可以幫助視覺殘障人士閱讀路牌或者貨幣,在使用過程中,存在以下困難:圖像中可能會出現(xiàn)不同字體,顏色和不同語言的文本。圖像中可能會出現(xiàn)具有不同視角和方向的文本。具有大寬高比和高密集文本的文字導致文本檢測算法難以精確定位。

在街景圖像中,字

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論