




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
人工智能的概念介紹01任務(wù)機器學(xué)習的概念介紹02任務(wù)目錄深度學(xué)習的概念介紹03任務(wù)人工智能與機器學(xué)習、深度學(xué)習的關(guān)系04任務(wù)1人工智能的概念介紹1人工智能的概念介紹上世紀50年代,計算機科學(xué)家們就提出了“人工智能(ArtificialIntelligence,AI)”的概念,人工智能是一個廣泛的概念,人工智能的目的就是讓計算機能夠象人一樣思考。現(xiàn)在,人工智能已經(jīng)發(fā)展為一門廣泛的交叉和前沿科學(xué),涉及到計算機科學(xué)、心理學(xué)、哲學(xué)和語言學(xué)等學(xué)科,也廣泛的應(yīng)用到語音識別、圖像識別、自然語言處理等領(lǐng)域。人工智能是計算機科學(xué)的一個重要分支,是對人類認知思維的抽象和模擬,用機器實現(xiàn)人類智能,做人類可以做的事情。人工智能通常可分為弱人工智能和強人工智能兩個階段。目前處于弱人工智能階段,具備一定觀察和感知力的機器,能做到有限的理解和推理,還遠未到達能讓機器習得自適應(yīng)能力的強人工智能階段。伴隨著“人工智能”的崛起,出現(xiàn)了“機器學(xué)習”、“深度學(xué)習”等熱門領(lǐng)域。2機器學(xué)習的概念介紹2機器學(xué)習的概念介紹機器學(xué)習(MachineLearning,ML)是指用某些算法指導(dǎo)計算機利用已知數(shù)據(jù)得出適當?shù)哪P?,并利用此模型對新的情境給出判斷的過程。機器學(xué)習的思想是對人類生活中學(xué)習過程的一個模擬,而在這整個過程中,最關(guān)鍵的是數(shù)據(jù)。任何通過數(shù)據(jù)訓(xùn)練的學(xué)習算法的相關(guān)研究都屬于機器學(xué)習,包括一些成熟的經(jīng)典技術(shù),比如線性回歸(LinearRegression)、K均值(K-means)、決策樹(DecisionTrees)、隨機森林(Random)、主成分分析(PrincipalComponentAnalysis,PCA)、支持向量機(SupportVectorMachine,SVM)以及人工神經(jīng)網(wǎng)絡(luò)(ArtificialNeuralNetworks,ANN)。2機器學(xué)習的概念介紹機器學(xué)習包括以下類型的學(xué)習模式:(1) 監(jiān)督學(xué)習模式有監(jiān)督學(xué)習以訓(xùn)練集作為系統(tǒng)的輸入,其中每個樣本都有標注信息,我們稱標注信息為真實值(groundtruth)。模型的輸出值與真實值得差值用損失函數(shù)來衡量(loss),采用最小損失函數(shù)執(zhí)行訓(xùn)練過程。訓(xùn)練完成后,針對訓(xùn)練集(也稱為驗證集)中不相交的示例,測量模型的準確性。
監(jiān)督學(xué)習模式2機器學(xué)習的概念介紹(2) 無監(jiān)督學(xué)習模式無監(jiān)督學(xué)習中,訓(xùn)練樣本未按其所屬的系統(tǒng)進行標記。無監(jiān)督學(xué)習模型是識別無標簽數(shù)據(jù)結(jié)構(gòu)的模型。該系統(tǒng)尋找具有共同特征的數(shù)據(jù),并根據(jù)數(shù)據(jù)內(nèi)部知識特征對其進行聚類。這種學(xué)習算法適用于聚類問題。
無監(jiān)督學(xué)習模式3深度學(xué)習的概念介紹3深度學(xué)習的概念介紹深度學(xué)習(DeepLearning,DL)的概念源于對人工神經(jīng)網(wǎng)絡(luò)的研究。含多隱層的多層感知器就是一種深度學(xué)習結(jié)構(gòu)。深度學(xué)習通過組合低層特征形成更加抽象的高層表示屬性類別或特征,以發(fā)現(xiàn)數(shù)據(jù)的分布式特征表示。深度學(xué)習是機器學(xué)習研究中的一個新的領(lǐng)域,其動機在于建立、模擬人腦進行分析學(xué)習的神經(jīng)網(wǎng)絡(luò),它模仿人腦的機制來解釋數(shù)據(jù),例如圖像、聲音和文本。深度學(xué)習的精髓在于通過監(jiān)督學(xué)習或從標記的數(shù)據(jù)和算法中學(xué)習。深度學(xué)習中的每種算法都經(jīng)過相同的過程,深度學(xué)習過程的以下步驟:數(shù)據(jù)處理(數(shù)據(jù)預(yù)處理);模型設(shè)計(網(wǎng)絡(luò)結(jié)構(gòu)的設(shè)計);訓(xùn)練模型(優(yōu)化器,損失函數(shù)、計算資源);
保存并測試模型(保存并測試模型的性能,以備預(yù)測調(diào)用)4人工智能與機器學(xué)習、深度學(xué)習的關(guān)系4人工智能與機器學(xué)習、深度學(xué)習的關(guān)系嚴格意義上說,人工智能和機器學(xué)習沒有直接關(guān)系,只不過目前機器學(xué)習的方法被大量的應(yīng)用于解決人工智能的問題而已。目前機器學(xué)習是人工智能的一種實現(xiàn)方式,也是最重要的實現(xiàn)方式。早期的機器學(xué)習實際上是屬于統(tǒng)計學(xué),而二十世紀九十年代之前的經(jīng)典人工智能跟機器學(xué)習也沒有關(guān)系。所以今天的人工智能和機器學(xué)習有很大的重疊。深度學(xué)習是機器學(xué)習現(xiàn)在比較火的一個方向,其本身是神經(jīng)網(wǎng)絡(luò)算法的衍生,在圖像、語音等富媒體的分類和識別上取得了非常好的效果。4人工智能與機器學(xué)習、深度學(xué)習的關(guān)系如果把機器學(xué)習、深度學(xué)習當成人工智能的一個子學(xué)科來看,三者關(guān)系如下圖所示:
ThankYOU!目錄1數(shù)據(jù)量大01任務(wù)計算力提升02任務(wù)網(wǎng)絡(luò)規(guī)模大03任務(wù)1數(shù)據(jù)量大1數(shù)據(jù)量大早期的機器學(xué)習算法比較簡單,容易快速訓(xùn)練,需要的數(shù)據(jù)集規(guī)模也比較小,如1936年由英國統(tǒng)計學(xué)家RonaldFisher收集整理的鳶尾花卉數(shù)據(jù)集Iris共包含3個類別花卉,每個類別50個樣本。1998年由YannLeCun收集整理的MNIST手寫數(shù)字圖片數(shù)據(jù)集共包含0~9共10類數(shù)字,每個類別多達7000張圖片。1數(shù)據(jù)量大圖2數(shù)據(jù)集大小趨勢圖1
數(shù)據(jù)集樣本數(shù)趨勢2計算力提升2計算力提升計算能力的提升是第三次人工智能復(fù)興的一個重要因素;傳統(tǒng)的機器學(xué)習算法,對數(shù)據(jù)量和計算能力要求不高,通常在CPU上可訓(xùn)練完成;深度學(xué)習非常依賴并行加速計算設(shè)備,目前的大部分神經(jīng)網(wǎng)絡(luò)均使用NVIDIAGPU和GoogleTPU或其他神經(jīng)網(wǎng)絡(luò)并行加速芯片訓(xùn)練模型參數(shù);2012年基于2塊
GTX580GPU訓(xùn)練的AlexNet發(fā)布后,深度學(xué)習的真正潛力才得以發(fā)揮;圍棋程序AlphaGoZero在64塊GPU上從零開始訓(xùn)練了40天才得以超越所有的AlphaGo歷史版本;自動網(wǎng)絡(luò)結(jié)構(gòu)搜索算法使用了800塊GPU同時訓(xùn)練才能優(yōu)化出較好的網(wǎng)絡(luò)結(jié)構(gòu)。2計算力提升GPU(GraphicsProcessingUnit),圖形處理器,又稱顯示核心、視覺處理器、顯示芯片,是一種專門在個人電腦、工作站、游戲機和一些移動設(shè)備上做圖像和圖形相關(guān)運算工作的微處理器;TPU(TensorProcessingUnits),是由Google設(shè)計的定制機器學(xué)習芯片,用于成功執(zhí)行其常規(guī)機器學(xué)習工作負載,專為Google的深度學(xué)習框架TensorFlow而設(shè)計.
2計算力提升3網(wǎng)絡(luò)規(guī)模大3網(wǎng)絡(luò)規(guī)模大早期的感知機模型和多層神經(jīng)網(wǎng)絡(luò)層數(shù)只有1層或者2~4層,網(wǎng)絡(luò)參數(shù)量也在數(shù)萬左右;隨著深度學(xué)習的興起和計算能力的提升,AlexNet(8層),VGG16(16層),GoogLeNet(22層),ResNet50(50層),DenseNet121(121層)等模型相繼被提出;同時輸入圖片的大小也從28x28逐漸增大,變成224x224,299x299等,這些使得網(wǎng)絡(luò)的總參數(shù)量可達到千萬級別。3網(wǎng)絡(luò)規(guī)模大ThankYOU!目錄1深度學(xué)習的快速發(fā)展期01任務(wù)深度學(xué)習的爆發(fā)期02任務(wù)1深度學(xué)習的快速發(fā)展期1深度學(xué)習的快速發(fā)展期2006年,深度學(xué)習(DL)元年。是年,Hinton提出了深度置信網(wǎng)絡(luò)(DeepBeliefNet:DBN),在世界頂級學(xué)術(shù)期刊《Science》上提出觀點:(1)多層人工神經(jīng)網(wǎng)絡(luò)模型有很強的特征學(xué)習能力,深度學(xué)習模型學(xué)習得到的特征數(shù)據(jù)對原始數(shù)據(jù)有更本質(zhì)的代表性,這將大大便于分類和可視化問題;(2)對于深度神經(jīng)網(wǎng)絡(luò)很難訓(xùn)練達到最優(yōu)的問題,可以采用逐層訓(xùn)練方法解決。將上層訓(xùn)練好的結(jié)果作為下層訓(xùn)練過程中的初始化參數(shù)。1深度學(xué)習的快速發(fā)展期圖2DBN網(wǎng)絡(luò)架構(gòu)層疊的多個RBM網(wǎng)絡(luò)組成DBN結(jié)構(gòu),來提取需要處理對象的特征,然后再用分類器進行分類。1深度學(xué)習的快速發(fā)展期2011年,ReLU激活函數(shù)被提出,該激活函數(shù)能夠有效的抑制梯度消失問題;
圖3ReLU激活函數(shù)微軟首次將DL應(yīng)用在語音識別上,構(gòu)建了深度神經(jīng)網(wǎng)絡(luò)模型,將語音識別錯誤率降低了20%~30%,取得了重大突破。2深度學(xué)習的爆發(fā)期2深度學(xué)習的爆發(fā)期1998年LeCun大神提出卷積神經(jīng)網(wǎng)絡(luò)LeNet-5網(wǎng)絡(luò),用來解決手寫數(shù)字識別的問題。LeNet-5被譽為卷積神經(jīng)網(wǎng)絡(luò)的‘HelloWorld’圖4LeNet-5架構(gòu)圖2深度學(xué)習的爆發(fā)期2012年,Hinton團隊為了證明深度學(xué)習的潛力,參加首屆ImageNet圖像識別大賽,構(gòu)建名為AlexNet的CNN網(wǎng)絡(luò),獲得冠軍。圖5AlexNet架構(gòu)圖2深度學(xué)習的爆發(fā)期AlexNet的創(chuàng)新點;首次采用ReLU激活函數(shù),增加收斂速度;完全采用有監(jiān)督訓(xùn)練,DL方法開始向有監(jiān)督學(xué)習轉(zhuǎn)變;擴展了LeNet-5,引入Dropout減小過擬合;首次采用GPU加速訓(xùn)練。2深度學(xué)習的爆發(fā)期2013~2017,通過ImageNet圖像識別競賽,GPU硬件的不斷進步,涌現(xiàn)了性能更好的CNN模型, CNN 在其他計算機視覺任務(wù)中也開始應(yīng)用開來。2017年至今,深度學(xué)習算法不斷進步,在計算機視覺中的各個領(lǐng)域都有創(chuàng)新網(wǎng)絡(luò)的提出。ThankYOU!目錄計算機視覺01任務(wù)自然語言處理02任務(wù)強化學(xué)習03任務(wù)1計算機視覺1計算機視覺計算機視覺是深度學(xué)習應(yīng)用最為廣泛的一個領(lǐng)域,計算機視覺中包括:圖像識別(ImageClassification)目標檢測(ObjectDetection)語義分割(SemanticSegmentation)視頻理解(VideoUnderstanding)圖片生成(ImageGeneration)1計算機視覺圖像識別(ImageClassification)圖像識別(ImageClassification),也叫圖像分類,是一種常見的分類問題。計算機視覺中圖像分類算法常采用神經(jīng)網(wǎng)絡(luò)作為核心,算法的輸入為圖像數(shù)據(jù),輸出值為當前圖像樣本所屬類別的概率,通常選取輸出概率值最大的類別作為樣本的預(yù)測類別。1計算機視覺目標檢測(ObjectDetection)目標檢測(ObjectDetection),是指通過算法自動檢測出圖片中目標物體的類別及大致位置,然后用邊界框(BoundingBox)表示,并標出邊界框中物體的類別信息。1計算機視覺語義分割(SemanticSegmentation)語義分割(SemanticSegmentation)是通過算法自動分割并識別出圖片中的內(nèi)容,可以將語義分割理解為每個像素點的分類問題,分析每個像素點屬于物體的類別。1計算機視覺視頻理解(VideoUnderstanding)隨著深度學(xué)習在2D圖片的相關(guān)任務(wù)上取得較好的效果,具有時間維度信息的3D視頻理解任務(wù)受到越來越多的關(guān)注。常見的視頻理解任務(wù)有視頻分類,行為檢測,視頻主體抽取等1計算機視覺圖片生成(ImageGeneration)圖片生成(ImageGeneration),通過學(xué)習真實圖片的分布,并從學(xué)習到的分布中采樣而獲得逼真度較高的生成圖片。圖像風格遷移2自然語言處理2自然語言處理1、機器翻譯(MachineTranslation)過去的機器翻譯算法通常是基于統(tǒng)計機器翻譯模型,這也是2016年前Google翻譯系統(tǒng)采用的技術(shù)。2、2016年11月,Google基于Seq2Seq模型上線了Google神經(jīng)機器翻譯系統(tǒng)(GNMT),首次實現(xiàn)了源語言到目標語言的直譯技術(shù),在多項任務(wù)上實現(xiàn)50~90%的效果提升。3、常用的機器翻譯模型有Seq2Seq,BERT,GPT,GPT-2等,其中OpenAI提出的GPT-2模型參數(shù)量高達15億個,甚至發(fā)布之初以技術(shù)安全考慮為由拒絕開源GPT-2模型。機器翻譯(MachineTranslation)2自然語言處理1、聊天機器人(Chatbot)聊天機器人也是自然語言處理的一項主流任務(wù)。2、通過機器自動與人類對話,對于人類的簡單訴求提供滿意的自動回復(fù),提高客戶的服務(wù)效率和服務(wù)質(zhì)量。3、常應(yīng)用在咨詢系統(tǒng)、娛樂系統(tǒng)、智能家居等中。聊天機器人(Chatbot)3強化學(xué)習3強化學(xué)習強化學(xué)習(ReinforcementLearning,RL),又稱再勵學(xué)習、評價學(xué)習或增強學(xué)習,是機器學(xué)習的范式和方法論之一,用于描述和解決智能體(agent)在與環(huán)境的交互過程中通過學(xué)習策略以達成回報最大化或?qū)崿F(xiàn)特定目標的問題。強化學(xué)習技術(shù)常用語機器人(Robotics)和自動駕駛(AutonomousDriving)領(lǐng)域中。3強化學(xué)習機器人(Robotics)在真實環(huán)境中,機器人的控制也取得了一定的進展。如UCBerkeley在機器人的模仿學(xué)習(ImitationLearning)、少樣本學(xué)習(MetaLearning)、元學(xué)習(Few-shotLearning)等方向取得了不少進展。波士頓動力公司的機器人機器人(Robotics)3強化學(xué)習自動駕駛(AutonomousDriving)被認為是強化學(xué)習在短期內(nèi)能技術(shù)落地的一個應(yīng)用方向,很多公司投入大量資源在自動駕駛上,如百度、Uber、Google無人車等。百度Apollo自動駕駛汽車自動駕駛(AutonomousDriving)ThankYOU!目錄深度學(xué)習框架概念01任務(wù)主流的深度學(xué)習框架02任務(wù)TensorFlow基礎(chǔ)框架03任務(wù)1深度學(xué)習框架概念1深度學(xué)習框架概念深度學(xué)習框架是一種為了降低深度學(xué)習開發(fā)門檻而開發(fā)的深度學(xué)習工具,框架包含庫、數(shù)據(jù)集和預(yù)訓(xùn)練模型等資源。深度學(xué)習框架可以簡化模型的開發(fā)過程,復(fù)雜深度學(xué)習模型開發(fā)被大大簡化,成為AI開發(fā)者的必用利器。開發(fā)者不需要從復(fù)雜的神經(jīng)網(wǎng)絡(luò)開始編代碼,可以依據(jù)需要調(diào)用框架內(nèi)置的模型,也可以在已有模型的基礎(chǔ)上增加layer,選擇分類器。目前,TensorFlow和PyTorch框架為主力深度學(xué)習框架,其中TensorFlow市場需求最多,且部署能力強,在應(yīng)用部署中使用較多。PyTorch在學(xué)術(shù)界、學(xué)術(shù)論文中使用較多。2主流的深度學(xué)習框架介紹2深度學(xué)習框架介紹Theano
最早的深度學(xué)習框架之一,是一個基于Python語言、定位底層運算的計算庫,Theano同時支持GPU和CPU運算。缺點:Theano開發(fā)效率較低,模型編譯時間較長,同時開發(fā)人員轉(zhuǎn)投TensorFlow等原因,Theano目前已經(jīng)停止維護。2深度學(xué)習框架介紹Scikit-learn一個完整的面向機器學(xué)習算法的計算庫,內(nèi)嵌了常見的傳統(tǒng)機器學(xué)習算法支持,文檔和案例也較為豐富。
缺點:但是Scikit-learn并不是專門面向神經(jīng)網(wǎng)絡(luò)而設(shè)計的,不支持GPU加速,對神經(jīng)網(wǎng)絡(luò)相關(guān)層實現(xiàn)也較欠缺。2深度學(xué)習框架介紹Caffe由華人博士賈揚清在2013年開發(fā),主要面向使用卷積神經(jīng)網(wǎng)絡(luò)的應(yīng)用場合,并不適合其他類型的神經(jīng)網(wǎng)絡(luò)的應(yīng)用。Caffe的主要開發(fā)語言是C++,也提供Python語言等接口,支持GPU和CPU。開發(fā)時間早,知名度高,2017年Facebook推出了Caffe的升級版本Cafffe2,且Caffe2目前已經(jīng)融入到PyTorch庫中。2深度學(xué)習框架介紹Torch
是一個非常優(yōu)秀的科學(xué)計算庫,基于較冷門的編程語言Lua開發(fā)。Torch靈活性較高,容易實現(xiàn)自定義網(wǎng)絡(luò)層,這也是PyTorch繼承獲得的優(yōu)良基因。缺點:但是由于Lua語言使用人群較小,Torch一直未能獲得廣泛應(yīng)用。2深度學(xué)習框架介紹MXNET由華人博士陳天奇和李沐等人開發(fā),MXNET是亞馬遜公司的官方深度學(xué)習框架,采用了命令式編程和符號式編程混合方式,靈活性高,運行速度快,文檔和案例也較為豐富。PyTorch是Facebook基于原有的Torch框架推出的采用Python作為主要開發(fā)語言的深度學(xué)習框架。PyTorch借鑒了Chainer的設(shè)計風格,采用命令式編程,使得搭建網(wǎng)絡(luò)和調(diào)試網(wǎng)絡(luò)非常方便。盡管PyTorch在2017年才發(fā)布,但是由于精良緊湊的接口設(shè)計,PyTorch在學(xué)術(shù)界獲得了廣泛好評。在PyTorch1.0版本后,原來的PyTorch與Caffe2進行了合并,彌補了PyTorch在工業(yè)部署方面的不足。總的來說,PyTorch是一個非常優(yōu)秀的深度學(xué)習框架。2深度學(xué)習框架介紹Keras
一個基于Theano和TensorFlow等框架提供的底層運算而實現(xiàn)的高層框架,提供了大量方便快速訓(xùn)練,測試的高層接口,對于常見應(yīng)用來說,使用Keras開發(fā)效率非常高。缺點:但是由于沒有底層實現(xiàn),需要對底層框架進行抽象,運行效率不高,靈活性一般。TensorFlow由Google于2015年發(fā)布。由于TensorFlow接口設(shè)計頻繁變動,功能設(shè)計重復(fù)冗余,符號式編程開發(fā)和調(diào)試非常困難等問題,TensorFlow1.x版本一度被業(yè)界詬病。2019年,Google推出TensorFlow2正式版本,能夠避免TensorFlow1.x版本的諸多缺陷。3TensorFlow基礎(chǔ)框架3TensorFlow基礎(chǔ)框架系統(tǒng)框架Tensorflow系統(tǒng)框架分為三層,由上而下依次是應(yīng)用層、接口層和Tensorflow核心層。TensorFlow系統(tǒng)框架3TensorFlow基礎(chǔ)框架系統(tǒng)框架的六大特性深度靈活性(DeepFlexibility)真正的可移植性(TruePortability)連接研究與產(chǎn)品(ConnectResearchandProduction)自動微分(Auto-Differentiation)多語言選擇(LanguageOptions)最大化性能(MaximizePerformance)ThankYOU!目錄1Anaconda介紹01任務(wù)Anaconda安裝02任務(wù)1Anaconda介紹1Anaconda介紹Anaconda是專門為了方便使用Python進行數(shù)據(jù)科學(xué)研究而建立的一組軟件包,涵蓋了數(shù)據(jù)科學(xué)領(lǐng)域常見的Python庫;并且自帶了專門用來解決軟件環(huán)境依賴問題的conda包管理系統(tǒng)。主要是提供了包管理與環(huán)境管理的功能,可以很方便地解決多版本python并存、切換以及各種第三方包安裝問題;Anaconda利用命令conda來進行包和環(huán)境的管理,并且已經(jīng)默認安裝了Python和相關(guān)的配套工具。2Anaconda安裝1(1)進入Anaconda官網(wǎng):/,點擊Download,下載安裝包,安裝包較大,下載需要耐心等待。1(3)為了解決官網(wǎng)下載安裝包較慢的問題,可以選擇如下鏡像源:/anaconda/archive/,這里選擇適用于Windows系統(tǒng)較新的Anaconda版本:1(4)安裝包下載好后,點擊安裝包,出現(xiàn)如下頁面,依次點擊Next、IAgree;1(5)選擇JustMe,點擊Next;1(6)選擇安裝目錄,系統(tǒng)默認安裝在C盤,Anaconda軟件占用空間較大,可根據(jù)需要自定義安裝到空間較大的盤;1(7)AdvancedOptions中的兩個選項,勾選第一個,將Anaconda添加至環(huán)境變量;第二個是為系統(tǒng)選擇默認的Python版本,這個不選,點擊Install;等待安裝完成后點擊Next。1(8)最后的兩個選項可以選,也可以不選,最后點擊Finish完成安裝。1(9)在Windows10的搜索框中輸入anaconda,打開AnacondaPrompt命令提示符;1(10)輸入python–V查看Python版本,我們發(fā)現(xiàn)Python版本為默認的Python3.9,至此,Anaconda環(huán)境管理器安裝教程全部完成。ThankYOU!目錄1創(chuàng)建虛擬環(huán)境01任務(wù)安裝TensorFlow02任務(wù)Python第三方庫的安裝03任務(wù)1創(chuàng)建虛擬環(huán)境1創(chuàng)建虛擬環(huán)境Anaconda軟件安裝完成之后,使用軟件創(chuàng)建虛擬環(huán)境,創(chuàng)建虛擬環(huán)境的途徑有兩個:通過Anaconda軟件圖形界面創(chuàng)建;通過命令在AnacondaPrompt中創(chuàng)建。1創(chuàng)建虛擬環(huán)境(1)搜索框輸入anaconda命令,點擊Anaconda圖標打開軟件,點擊左下角Create;通過Anaconda軟件圖形界面創(chuàng)建:1創(chuàng)建虛擬環(huán)境(2)彈出創(chuàng)建新環(huán)境對話框;給新建的虛擬環(huán)境命名,這里將虛擬環(huán)境命名為tf,Python版本為3.6,點擊Create;1創(chuàng)建虛擬環(huán)境(3)稍等片刻,在Environments一欄,會多出一個名為tf的虛擬環(huán)境。1創(chuàng)建虛擬環(huán)境(4)打開AnacondaPrompt命令提示符,默認打開base(root)環(huán)境,在命令提示符中輸入activatetf命令,激活創(chuàng)建的tf環(huán)境,如圖所示,表示tf虛擬環(huán)境創(chuàng)建成功。1創(chuàng)建虛擬環(huán)境創(chuàng)建一個名為tensorflow,Python版本為3.8的虛擬環(huán)境,打開AnacondaPrompt,輸入如下命令:condacreate-ntensorflowpython=3.8使用前述方法可以查看虛擬環(huán)境信息和Python版本。通過命令在AnacondaPrompt中創(chuàng)建2安裝tensorflow2這里我們給創(chuàng)建虛擬環(huán)境tensorflow配置安裝包和深度學(xué)習框架,深度學(xué)習框架選擇CPU版的TensorFlow2.0。步驟如下:(1)打開AnacondaPrompt,輸入activatetensorflow命令激活虛擬環(huán)境tensorflow后,輸入如下命令安裝TensorFlow包:pip/conda
install
tensorflow
(2)如果下載太慢,可以選擇從清華鏡像源網(wǎng)站下載,命令如下:pip
install
-i/simple
tensorflow2(3)輸入安裝命令后,系統(tǒng)搜集到要安裝的包,輸入y,確認安裝;如圖所示:2(4)安裝完成后,可以輸入piplist命令查看虛擬環(huán)境中安裝的包列表,可以查看安裝的tensorflow包的版本信息,如圖所示:2(5)也可以輸入pipshowtensorflow命令查看tensorflow版本,如圖所示:2(6)接下來測試tensorflow是否安裝成功。輸入python,進入python命令行模式;然后輸入命令:import
tensorflow
如果沒有顯示任何報錯信息,則tensorflow安裝成功。如圖所示:3Python第三方庫的安裝3TensorFlow安裝完成之后,在開發(fā)具體的項目時,還需要安裝一些Python的第三方庫,這里以安裝Matplotlib、NumPy和Pandas為例,介紹第三方庫的安裝流程,按照此方法可以安裝其第三方包。3(1)MatplotlibMatplotlib是一個數(shù)據(jù)可視化工具,可以用來繪制各種圖表,例如折線圖、柱狀圖和三維圖。安裝命令如下:pipinstallmatplotlib3(2)NumpyNumpy是一個數(shù)學(xué)函數(shù)庫,支持矩陣運算和大量數(shù)學(xué)函數(shù)運算,Numpy的數(shù)據(jù)類型支持在Matplotlib、OpenCV等多種第三方庫上使用。安裝命令如下:pipinstallnumpy3(3)PandasPandas是數(shù)據(jù)分析及可視化工具,支持數(shù)據(jù)處理和數(shù)據(jù)的可視化,例如讀取Excel文件中的數(shù)據(jù),并對其進行統(tǒng)計、運算、分析或可視化。安裝命令如下:pipinstallpandas3與安裝TensorFlow一樣,如果安裝第三方庫時,下載速度比較慢,可以選擇從清華鏡像源網(wǎng)站下載,命令如下:pipinstall-i/simple庫名稱ThankYOU!目錄1Jupyternotebook介紹01任務(wù)Jupyternotebook添加虛擬環(huán)境02任務(wù)1Jupyternotebook介紹1Jupyternotebook介紹JupyterNotebook是基于網(wǎng)頁的用于交互計算的應(yīng)用程序。其可被應(yīng)用于全過程計算:開發(fā)、文檔編寫、運行代碼和展示結(jié)果。Anaconda已經(jīng)自動安裝了JupyterNotebook,我們只需要打開AnacondaPrompt,輸入jupyternotebook命令就可以打開頁面,本課程推薦使用JupyterNotebook執(zhí)行代碼,下面介紹JupyterNotebook中虛擬環(huán)境的配置。2Jupyternotebook添加虛擬環(huán)境2Jupyternotebook添加虛擬環(huán)境(1)創(chuàng)建虛擬環(huán)境并安裝第三方庫之后,需要把虛擬環(huán)境在jupyternotebook網(wǎng)頁中顯示出來:在激活的TensorFlow虛擬環(huán)境中安裝ipykernel,執(zhí)行命令:pipinstallipykernel將環(huán)境寫入notebook的kernel中,并以名稱tensorflow顯示出來,執(zhí)行以下命令:python-mipykernelinstall--nametensorflow2Jupyternotebook添加虛擬環(huán)境(2)啟動JupyterNotebook在Windows命令提示符或AnacondaPrompt中輸入jupyternotebook,打開jupyternotebook頁面。2Jupyternotebook添加虛擬環(huán)境(3)新建執(zhí)行文件單擊界面右上角的New下拉按鈕,選擇tensorflow虛擬環(huán)境(Anaconda中又稱為Kernel),如圖所示:2Jupyternotebook添加虛擬環(huán)境(4)打開界面后,可以在方框(cell)中輸入import命令導(dǎo)入前面安裝的tensorflow、matplotlib、numpy、pandas,然后點擊運行按鈕或“Shift+Enter”快捷鍵執(zhí)行代碼。代碼執(zhí)行完畢后,方框前面的中括號由空格變成數(shù)字,代表代碼執(zhí)行完畢。ThankYOU!目錄1TensorFlow概述01任務(wù)TensorFlow的優(yōu)點02任務(wù)TensorFlow的幾個基本概念03任務(wù)1初識TensorFlow1TensorFlow概述TensorFlow是Google開源的基于數(shù)據(jù)流圖的、面向于深度學(xué)習算法的科學(xué)計算庫,命名來源于本身的運行原理,Tensor(張量)表示N維數(shù)組,F(xiàn)low(流)表示基于數(shù)據(jù)流圖的計算。內(nèi)部數(shù)據(jù)保存在張量(Tensor)對象上,所有的運算操作(Operation,OP)基于張量對象進行。在深度學(xué)習領(lǐng)域應(yīng)用廣泛,如深度神經(jīng)網(wǎng)絡(luò)、卷積神經(jīng)網(wǎng)絡(luò)和遞歸神經(jīng)網(wǎng)絡(luò)已被應(yīng)用計算機視覺、語音識別、自然語言處理、音頻識別與生物信息學(xué)等領(lǐng)域并獲取了極好的效果。2TensorFlow的優(yōu)點2TensorFlow的優(yōu)點真正的可移植性
引入各種計算設(shè)備的支持包括CPU/GPU/TPU,以及能夠很好地運行在移動端,如安卓設(shè)備、ios、樹莓派等等多語言支持
Tensorflow有一個合理的c++使用界面,也有一個易用的python使用界面來構(gòu)建和執(zhí)行你的graphs,你可以直接寫python/c++程序高度的靈活性與效率
TensorFlow是一個采用數(shù)據(jù)流圖(dataflowgraphs),用于數(shù)值計算的開源軟件庫能夠靈活進行組裝圖,執(zhí)行圖。隨著開發(fā)的進展,Tensorflow的效率不斷在提高TensorFlow由谷歌提供支持,谷歌投入了大量精力開發(fā)TensorFlow,它希望TensorFlow成為機器學(xué)習研究人員和開發(fā)人員的通用語言3TensorFlow的幾個基本概念3TensorFlow的幾個基本概念計算圖(graphs):描述了計算過程,Tensorflow用圖來表示計算過程。張量(tensor):Tensorflow使用tensor表示數(shù)據(jù),每一個tensor是一個多維的數(shù)組。變量(variable):變量(Variable)是特殊的張量(Tensor),它的值可以是一個任何類型和形狀的張量,變量存儲的是持久張量,當訓(xùn)練模型時,用變量來存儲和更新參數(shù)。占位符:輸入變量的載體??梢岳斫鉃槎x函數(shù)時的參數(shù)。操作:圖中的節(jié)點為op,一個op獲得/輸入0個或者多個Tensor,執(zhí)行并計算,產(chǎn)生0個或多個Tensor。會話(session):
tensorflow的運行需要在會話里面運行。3TensorFlow的幾個基本概念(1)計算圖(graphs):圖是TensorFlow用于表達計算任務(wù)的一個核心概念,Tensorflow用圖來表示計算過程,graph被定義一些操作和張量的集合3TensorFlow的幾個基本概念(2)張量(tensor)TensorFlow中,張量是計算圖上的數(shù)據(jù)載體,用張量統(tǒng)一表示所有的數(shù)據(jù),張量在計算圖的節(jié)點之間傳遞;張量主要有三種類型:常量tf.constant()、變量tf.Variable()、占位符tf.palceholder()張量可以看做是n維的數(shù)組,數(shù)組的維數(shù)即為張量的階數(shù):階數(shù)學(xué)實例Python例子0純量(只有大小)s=4831向量(大小和方向)v=[1.1,2.2,3.3]2矩陣(數(shù)據(jù)表)m=[[1,2,3],[4,5,6],[7,8,9]]33階張量(數(shù)據(jù)立體)t=[[[2],[4],[6]],[[8],[10],[12]],[[14],[16],[18]]]nn階(多維數(shù)組)....
3TensorFlow的幾個基本概念(3)變量(variable)1、變量是計算圖中的一種有狀態(tài)節(jié)點,用于在多次執(zhí)行同一計算圖時存儲并更新指定參數(shù),對應(yīng)了機器學(xué)習或深度學(xué)習算法中的模型參數(shù);作為有狀態(tài)節(jié)點,其輸出由輸入、節(jié)點操作、節(jié)點內(nèi)部已保存的狀態(tài)值共同作用;2、創(chuàng)建變量的方法有三種:使用tf.Variable()函數(shù)直接定義使用TensorFlow內(nèi)置函數(shù)創(chuàng)建使用其他變量初始值來定義新變量3、調(diào)用語法:tf.Variable(dtype,shape=None,name=None)dtype:數(shù)據(jù)類型shape:數(shù)據(jù)維度name:張量名稱
3TensorFlow的幾個基本概念(4)占位符(placeholder)用于聲明一個張量的數(shù)據(jù)格式,告訴系統(tǒng)這里會有一個這種格式的張量,但是還沒有給定具體數(shù)值,具體的數(shù)值要在正式運行的時候填充。占位變量是一種TensorFlow用來解決讀取大量訓(xùn)練數(shù)據(jù)問題的機制,它允許你現(xiàn)在不用給它賦值,隨著訓(xùn)練的開始,再把訓(xùn)練數(shù)據(jù)傳送給訓(xùn)練網(wǎng)絡(luò)學(xué)習。調(diào)用語法:tf.placeholder(dtype,shape=None,name=None)dtype:數(shù)據(jù)類型shape:數(shù)據(jù)維度name:張量名稱
3TensorFlow的幾個基本概念(5)操作(operation):簡稱op,是TensorFlow圖中的節(jié)點,它的輸入和輸出都是Tensor。作用都是完成各種操作,包括算數(shù)操作、矩陣操作、神經(jīng)網(wǎng)絡(luò)構(gòu)建操作等。(6)會話(session):Tensorflow會話,在Tensorflow中是計算圖的具體執(zhí)行者,與圖進行實際的交互。ThankYOU!目錄1TensorFlow數(shù)學(xué)概念01任務(wù)矩陣的數(shù)學(xué)運算02任務(wù)TensorFlow數(shù)學(xué)運算03任務(wù)1TensorFlow數(shù)學(xué)概念1TensorFlow數(shù)學(xué)概念數(shù)學(xué)是任何機器學(xué)習算法的核心,使用TensorFlow創(chuàng)建應(yīng)用程序之前,了解一些TensorFlow中基本的數(shù)學(xué)概念是很必要的,理解數(shù)學(xué)核心概念,有助于定義機器學(xué)習算法的解決方案。TensorFlow中經(jīng)常出現(xiàn)的數(shù)學(xué)概念有:標量(scalar)
一個單獨的數(shù)向量(vector)
一列數(shù),即一維數(shù)組矩陣(matrix)
二維數(shù)組張量(tensor)
多維數(shù)組1TensorFlow數(shù)學(xué)概念(1)標量標量(scalar)
,也稱純量,是只有大小,沒有方向的量,標量也稱為0維張量。比如:一個常數(shù),只有數(shù)值大小,沒有方向。在物理學(xué)中,標量是在坐標變換的情況下,保持不變的物理量。1TensorFlow數(shù)學(xué)概念(2)向量向量(vector),也稱矢量,是既有大小,又有方向的量。向量是一列數(shù),即一維數(shù)組,向量也稱為一維張量。例如,在物理學(xué)中,速度就是一個向量,1TensorFlow數(shù)學(xué)概念(3)矩陣矩陣(matrix)是一個二維數(shù)組,數(shù)組元素以行和列的格式排列。矩陣的大小由行長度和列長度定義。矩陣也稱為二維張量。由m×n個數(shù)aij排成的m行n列的數(shù)表稱為m行n列的矩陣,簡稱m×n矩陣。記作:1TensorFlow數(shù)學(xué)概念(4)張量張量(tensor)
是多維數(shù)組,標量、矢量、矩陣都可以用張量表示,只是維度不同。2矩陣的數(shù)學(xué)運算2矩陣的數(shù)學(xué)運算矩陣的數(shù)學(xué)運算包括:矩陣加法、矩陣減法、矩陣乘法、矩陣轉(zhuǎn)置等運算。(1)矩陣加法兩個矩陣具有相同形狀的矩陣可以相加,相加表示將對應(yīng)位置的元素相加,生成的矩陣與原矩陣形狀相同。例如:2矩陣的數(shù)學(xué)運算(2)矩陣減法矩陣減法與矩陣加法操作類似例如:2矩陣的數(shù)學(xué)運算(3)矩陣乘法假設(shè)矩陣A(形狀mxn)與B(形狀pxq)相乘,必須n=q,即A的列數(shù)必須與B的行數(shù)相同,得到的結(jié)果是C(形狀mxq),其中元素的算法如下:2矩陣的數(shù)學(xué)運算(4)矩陣轉(zhuǎn)置矩陣轉(zhuǎn)置是指把一個矩陣的列轉(zhuǎn)置為行得到一個新矩陣,矩陣A的轉(zhuǎn)置可以表示為:3TensorFlow實現(xiàn)數(shù)學(xué)運算3TensorFlow實現(xiàn)數(shù)學(xué)運算TensorFlow中的數(shù)學(xué)運算包括加、減、乘、除、冪次方、對數(shù)、矩陣相乘等運算。(1)加減乘除法加、減、乘、除是最基本的數(shù)學(xué)運算,分別通過tf.add()、tf.subtract()、tf.multiply()、tf.divide()函數(shù)實現(xiàn),TensorFlow支持+、-、*、/運算符,一般推薦直接使用運算符來完成加、減、乘、除運算。整除、除法取余也是常見的運算之一,分別通過//和%運算符實現(xiàn)。示例:3TensorFlow實現(xiàn)數(shù)學(xué)運算(2)冪次方函數(shù)tf.pow(x,a)可以完成x的a次方運算,也可以使用x**a完成,示例:3TensorFlow實現(xiàn)數(shù)學(xué)運算(2)冪次方設(shè)置指數(shù)為1/a的形式,既可以實現(xiàn)x開a次方根的運算示例:3TensorFlow實現(xiàn)數(shù)學(xué)運算(2)冪次方對于一些常見的平方和平方根運算,可以使用tf.square()和tf.sqrt()實現(xiàn)示例:3TensorFlow實現(xiàn)數(shù)學(xué)運算(2)冪次方對于tf.sqrt(),為實現(xiàn)開二次根運算。這里開二次根的運算,相當于指數(shù)為0.5,是一個小數(shù),所以底數(shù)也應(yīng)該轉(zhuǎn)換為小數(shù)。示例:3TensorFlow實現(xiàn)數(shù)學(xué)運算(3)矩陣乘法運算通過tf.matmul(a,b)函數(shù)實現(xiàn)矩陣相乘。矩陣A和B能夠矩陣相乘的條件是,A的倒數(shù)第一個維度長度和B的倒數(shù)第二個維度長度必須相等。示例:ThankYOU!目錄1數(shù)值型01任務(wù)字符串型02任務(wù)布爾型03任務(wù)1數(shù)值型1數(shù)值型數(shù)值型數(shù)據(jù)是TensorFlow中最常見的數(shù)據(jù)類型,標量、向量、矩陣、張量等都屬于數(shù)值型。(1)標量標量的創(chuàng)建可以使用python語言創(chuàng)建,也可以使用TensorFlow框架創(chuàng)建,TensorFlow使用tf.constant()函數(shù)創(chuàng)建標量。示例:1數(shù)值型(2)向量向量是n個實數(shù)的有序集合,如[1,2.,3.3]是維度數(shù)為1,shape
=(3,)的向量,TensorFlow使用tf.constant()函數(shù)創(chuàng)建向量,示例:1數(shù)值型(3)矩陣矩陣是n行m列實數(shù)的有序集合。維度為2,shape為(n,m),TensorFlow使用tf.constant()函數(shù)創(chuàng)建矩陣,示例:1數(shù)值型(4)張量所有維度大于2的數(shù)組統(tǒng)稱為張量。張量的每個維度也做軸(Axis),一般維度代表了具體的含義,例如shape為(2,32,32,3)的張量一共有4維,如果表示圖片的數(shù)據(jù),2代表2張圖片,32代表了高、寬都是32,3代表了RGB共3個通道。TensorFlow使用tf.constant()函數(shù)創(chuàng)建張量,示例:2字符串型2字符串型除了豐富的數(shù)值類型外,TensorFlow還支持字符串(String)類型的數(shù)據(jù),TensorFlow通過tf.constant()函數(shù)傳入字符串對象即可創(chuàng)建字符串類型的張量,在tf.string模塊中,提供了許多處理字符串數(shù)據(jù)的函數(shù),如:大寫化upper(),小寫化lower(),拼接join(),長度length(),切分split():3布爾型2布爾型為了方便表達比較運算操作的結(jié)果,TensorFlow還支持布爾類型(bool)的張量。布爾類型的張量只需要傳入Python語言的布爾類型數(shù)據(jù),轉(zhuǎn)換成TensorFlow內(nèi)部布爾型即可:
ThankYOU!目錄1標量的應(yīng)用01任務(wù)向量的應(yīng)用02任務(wù)矩陣的應(yīng)用03任務(wù)多維張量的應(yīng)用04任務(wù)1標量的應(yīng)用1標量的應(yīng)用在TensorFlow中,每種維度下的張量都有典型的應(yīng)用,不同維度的張量都具有不同的物理意義和用途。標量最容易理解,它就是一個簡單的數(shù)字,維度數(shù)為0,shape
=()。標量的典型用途之一是誤差值的表示、各種測量指標的表示,比如準確度(Accuracy)、精度(Precision)和召回率(Recall)等。2向量的應(yīng)用2向量的應(yīng)用向量是一種常見的數(shù)據(jù)載體,如在全連接層和卷積神經(jīng)網(wǎng)絡(luò)層中,偏置張量??就使用向量來表示。如圖所示,每個全連接層的輸出節(jié)點都添加了一個偏置值,把所有輸出節(jié)點的偏置表示成向量形式:??=[??1,??2]??。3矩陣的應(yīng)用3矩陣的應(yīng)用矩陣也是非常常見的張量類型,比如全連接層的批量輸入??=[??,??????],其中??表示輸入樣本的個數(shù),即batchsize,??????表示輸入特征的長度。比如特征長度為4,一共包含2個樣本的輸入可以表示為矩陣:x=tf.random.normal([2,4])4多維張量的應(yīng)用4多維張量的應(yīng)用多維張量應(yīng)用最多的是四維張量,對于含有RGB3個通道的彩色圖片,每張圖片包含了h行w列像素點,每個點需要3個數(shù)值表示RGB通道的顏色強度,因此一張圖片的張量的shape可以表示為(h,w,3),故b張圖片的張量的shape可表示為[b,h,w,3]。ThankYOU!目錄1案例目標01任務(wù)環(huán)境配置02任務(wù)案例實施04任務(wù)案例分析02任務(wù)03任務(wù)1案例目標案例目標掌握tensorflow包的調(diào)用方法;掌握使用定義占位符和變量的方法;掌握計算圖的定義方法;掌握會話的創(chuàng)建方法;了解損失函數(shù)和優(yōu)化過程。12案例分析2案例分析案例分析:x、y是二維矩陣,x=[[1.0,3.0],[3.2,4]],y=[[6.0,3.0],[5.2,43.]],運算公式x*W+b=y,求W和b的最優(yōu)值。3環(huán)境配置3環(huán)境配置Windows10jupyternotebooktensorflow2.04案例實施4案例實施1、導(dǎo)入庫開發(fā)環(huán)境安裝的是TensorFlow2.0版本,為了與TensorFlow1.0兼容,需要輸入如下代碼導(dǎo)入tensorflow包:4案例實施2、定義占位符和變量先給輸入數(shù)據(jù)定義占位符,在訓(xùn)練優(yōu)化函數(shù)的過程中輸入數(shù)據(jù)4案例實施3、定義計算圖和損失函數(shù),使用梯度下降法優(yōu)化4案例實施4、啟動會話,并初始化全局變量,并為x,y設(shè)置固定的值4案例實施5、通過while循環(huán)進行迭代訓(xùn)練,并輸出最終求出的W和b的值ThankYOU!目錄1案例目標01任務(wù)環(huán)境配置02任務(wù)案例實施04任務(wù)案例分析02任務(wù)03任務(wù)1案例目標案例目標了解簡單的一元線性回歸的概念和思想方法;掌握深度學(xué)習框架TensorFlow創(chuàng)建項目的流程。熟悉繪圖軟件包matplotlib的使用。掌握隨機數(shù)據(jù)生成方法。12案例分析2案例分析本案例是簡單的一元線性回歸問題,線性回歸是回歸算法的一種,表達了監(jiān)督學(xué)習的過程。本案例是使用numpy隨機生成一些數(shù)據(jù),目標是找到一個與這些數(shù)據(jù)最吻合的線性函數(shù),并繪制出函數(shù)圖像。本案例使用TensorFlow框架構(gòu)造一個簡單的線性回歸模型,以熟悉TensorFlow框架的線性回歸模型構(gòu)建方法。本案例使用線性函數(shù)是y=wx+b的形式,使用numpy生成隨機數(shù)據(jù),并設(shè)置初始化參數(shù),使用梯度下降算法進行訓(xùn)練,得出最終的參數(shù)值。3環(huán)境配置3環(huán)境配置Windows10tensorflow=2.10.0matplotlib=3.6.1numpy=1.23.44案例實施4案例實施1、導(dǎo)入庫導(dǎo)入案例要用到的包,有tensorflow、numpy、matplotlib開發(fā)環(huán)境安裝的是TensorFlow2.0版本,導(dǎo)入tensorflow需要與TensorFlow1.0兼容。4案例實施2、生成隨機數(shù)據(jù)生成隨機數(shù)據(jù),并加入噪聲數(shù)據(jù),然后打印出散點圖:4案例實施3、定義占位符和變量4案例實施4、定義計算圖、損失函數(shù)、設(shè)置優(yōu)化器4案例實施5、通過while循環(huán)進行迭代訓(xùn)練,并輸出最終求出的W和b的值4案例實施5、繪制回歸曲線ThankYOU!目錄1Keras概述01任務(wù)Keras特點02任務(wù)1Keras概述1Keras概述前面我們介紹過深度學(xué)習的相關(guān)概念,深度學(xué)習是機器學(xué)習框架的主要子領(lǐng)域之一,其主要方法核心是人工神經(jīng)網(wǎng)絡(luò)。深度學(xué)習由Theano、TensorFlow、Caffe、MXNet等各種深度學(xué)習框架支持,而Keras是功能強大且易于使用的深度學(xué)習框架之一,Keras框架建立在TensorFlow等流行的深度學(xué)習框架的基礎(chǔ)上,旨在快速定義深度學(xué)習模型,使創(chuàng)建深度學(xué)習模型更為簡單。2Keras特點2Keras特點Keras提供了一種簡潔的方法來創(chuàng)建基于TensorFlow或Theano的深度學(xué)習模型,并運用了各種優(yōu)化技術(shù)使神經(jīng)網(wǎng)絡(luò)API調(diào)用變得輕松高效。Keras框架具有以下功能特點:(1)用戶友好Keras是專門為用戶而設(shè)計的API;把用戶體驗放在首要位置,提供統(tǒng)一且易懂的API,將常見用例所需的用戶操作簡單化;在用戶操作錯誤時提供清晰的說明和反饋。2Keras特點(2)模塊化網(wǎng)絡(luò)模型是由一系列獨立的、完全可配置的模塊組成的序列;在keras中,常見的模塊有神經(jīng)網(wǎng)絡(luò)層、損失函數(shù)、優(yōu)化器、初始化方法、激活函數(shù)、正則化方法等;根據(jù)所需的功能模塊,可以將這些模塊以盡可能少的限制組合在一起構(gòu)建新模型。2Keras特點(3)易擴展性使用keras創(chuàng)建的模型,可以增加或刪除模塊,以提升模型的性能,新的模塊是很容易添加的。由于能夠輕松地創(chuàng)建可以提高模型性能的新模塊,Keras更加適合高級學(xué)術(shù)研究。2Keras特點(4)基于Python實現(xiàn)Keras沒有特定格式的單獨配置文件,模塊是用Python代碼來定義的,這些代碼緊湊,易于調(diào)試,并且易于擴展。ThankYOU!目錄1Keras體系結(jié)構(gòu)介紹01任務(wù)Keras搭建模型的方法02任務(wù)1Keras體系結(jié)構(gòu)介紹1Keras體系結(jié)構(gòu)介紹Keras具有很強的創(chuàng)新性,而且非常易于學(xué)習,提供了一個完整的框架來支持從簡單的神經(jīng)網(wǎng)絡(luò)到復(fù)雜的神經(jīng)網(wǎng)絡(luò)模型等多種類型的神經(jīng)網(wǎng)絡(luò)的創(chuàng)建;Keras的體系結(jié)構(gòu)可以分為三個主要類別:模型、層和核心模塊;通過調(diào)用Keras模型、層和核心模塊,可以以簡單有效的方式構(gòu)建如CNN、RNN等神經(jīng)網(wǎng)絡(luò)。2Keras搭建模型方法2Keras搭建模型方法Keras提供了序列式(Sequential)、函數(shù)式(Functional)和子類(Subclassing)三種定義模型的API,這里我們重點對序列式模型和函數(shù)式模型進行介紹。(1)序列式模型序列式模型也稱為順序模型,順序模型基本上是Keras層的線性組成;順序模型簡單,并且能夠表示幾乎所有可用的神經(jīng)網(wǎng)絡(luò)。2Keras搭建模型方法序列式模型的構(gòu)建使用Sequential()函數(shù)構(gòu)造器來創(chuàng)建序列式模型,序列式模型有兩種寫法。以列表的形式為Sequential()函數(shù)填充參數(shù):2Keras搭建模型方法另一種寫法是使用add()函數(shù),將各網(wǎng)絡(luò)層添加到模型中:2Keras搭建模型方法(2)函數(shù)式模型Keras函數(shù)式模型API是用戶定義多輸出模型、非循環(huán)有向模型等復(fù)雜模型的有效途徑。下面通過使用函數(shù)式方法構(gòu)建一個全連接神經(jīng)網(wǎng)絡(luò)模型,幫助我們理解函數(shù)式模型創(chuàng)建方法。ThankYOU!目錄1Keras核心模塊介紹01任務(wù)Keras核心模塊02任務(wù)1Keras核心模塊介紹1Keras核心模塊介紹Keras提供了許多內(nèi)置的與神經(jīng)網(wǎng)絡(luò)相關(guān)的功能模塊,用戶可以方便地調(diào)用模塊創(chuàng)建Keras模型和Keras層,常用的核心模塊有激活函數(shù)、損失函數(shù)、優(yōu)化器和正則化器等。2Keras核心模塊2Keras核心模塊(1)損失函數(shù)損失函數(shù)也稱為目標函數(shù)或優(yōu)化評分函數(shù),諸如均方誤差(mean_squared_error,MSE)、平均絕對誤差(MeanAbsoluteError,MAE),泊松(poisson)等損失函數(shù)。損失函數(shù)是在模型編譯的過程中設(shè)置的參數(shù),代碼如下所示:2Keras核心模塊(2)評估指標評估指標用于評估當前訓(xùn)練模型的性能,常見的評估指標有準確率(Accuracy)、精確度(Precision)和召回率(Recall)等,評估指標也是編譯模型時的一個重要參數(shù)。示例代碼如下:2Keras核心模塊(3)優(yōu)化器優(yōu)化器,即神經(jīng)網(wǎng)絡(luò)優(yōu)化算法,或梯度下降算法。常見的優(yōu)化器模塊有Adam、SGD等。優(yōu)化器可以通過改善訓(xùn)練方式,最小化損失值,不斷優(yōu)化模型。2Keras核心模塊(4)激活函數(shù)激活函數(shù)是神經(jīng)網(wǎng)絡(luò)中的重要概念,激活函數(shù)模塊提供了許多激活函數(shù)類型,例如softmax、relu等。激活函數(shù)可以由單獨的激活函數(shù)層構(gòu)建,也可以在構(gòu)造網(wǎng)絡(luò)層的時候設(shè)置激活函數(shù)參數(shù),比如可以在添加全連接層的時候設(shè)置激活函數(shù)參數(shù):2Keras核心模塊(5)回調(diào)函數(shù)回調(diào)函數(shù)(Keras.callback)模塊是一個函數(shù)集合,回調(diào)函數(shù)用在模型訓(xùn)練階段,可以使用回調(diào)函數(shù)查看訓(xùn)練模型的狀態(tài),在使用fit()或fit_generator()訓(xùn)練模型時,回調(diào)函數(shù)就是一個用以訪問模型的狀態(tài)與性能的函數(shù),根據(jù)模型狀態(tài)采取中斷訓(xùn)練、保存模型等措施。回調(diào)函數(shù)模塊包括許多內(nèi)置的函數(shù):①keras.callback.ModelCheckPoint:在訓(xùn)練過程中的不同時間點,保存模型的當前權(quán)重;②keras.callback.EarlyStopping:如果驗證集上的損失不再改善,則中斷訓(xùn)練;③keras.callback.ReduceLROnPlateau:如果驗證集上的損失不再改善,可以通過該回調(diào)函數(shù)降低學(xué)習率。2Keras核心模塊(6)數(shù)據(jù)集Keras的數(shù)據(jù)集模塊中集成了許多常用的數(shù)據(jù)集,在做模型訓(xùn)練時,可以直接調(diào)用數(shù)據(jù)集,比如:①CIFAR-10圖像分類數(shù)據(jù)集②CIFAR-100圖像分類數(shù)據(jù)集③IMDB電影評論情感分類數(shù)據(jù)集④路透社新聞主題分類數(shù)據(jù)集⑤MNIST手寫字符數(shù)據(jù)集⑥Fashion-MNIST時尚物品數(shù)據(jù)集⑦Boston房價回歸數(shù)據(jù)集ThankYOU!目錄1Keras網(wǎng)絡(luò)層介紹01任務(wù)Keras網(wǎng)絡(luò)層類型02任務(wù)1Keras網(wǎng)絡(luò)層介紹1Keras網(wǎng)絡(luò)層介紹Keras模型中的每個層代表神經(jīng)網(wǎng)絡(luò)模型中的對應(yīng)層,Keras提供了許多預(yù)構(gòu)建層,如輸入層、隱藏層、輸出層、卷積層、池化層等,因此提高了構(gòu)建復(fù)雜神經(jīng)網(wǎng)絡(luò)模型的效率。2Keras網(wǎng)絡(luò)層類型2Keras網(wǎng)絡(luò)層類型(1)全連接層:神經(jīng)網(wǎng)絡(luò)中最常用到的層,全連接層的每一個神經(jīng)元都與上一層的所有神經(jīng)元相連,用來把前邊提取到的特征綜合起來。實現(xiàn)對神經(jīng)網(wǎng)絡(luò)里的神經(jīng)元激活。參數(shù)說明:units:全連接層輸出的維度,即下一層神經(jīng)元的個數(shù)activation:激活函數(shù),默認使用Reluuse_bias:是否使用bias偏置項2Keras網(wǎng)絡(luò)層類型(2)激活層:對上一層的輸出應(yīng)用激活函數(shù)。參數(shù)說明:activation:激活函數(shù)的名稱,如:relu、tanh、sigmoid等2Keras網(wǎng)絡(luò)層類型(3)Dropout層:對上一層的神經(jīng)元隨機選取一定比例的失活,不更新參數(shù),但是權(quán)重仍然保留,防止模型過擬合。參數(shù)說明:
rate:失活的比例,為0-1之間的浮點數(shù)。2Keras網(wǎng)絡(luò)層類型(4)Flatten層:將一個維度大于或等于3的高維矩陣,“壓扁”為一個二維矩陣。即保留第一個維度(如:batch的個數(shù)),然后將剩下維度的值相乘為“壓扁”矩陣的第二個維度。2Keras網(wǎng)絡(luò)層類型(5)Reshape層:該層的作用和numpy.reshape一樣,就是將輸入的維度重構(gòu)成特定的shape。參數(shù)說明:
target_shape:目標矩陣的維度,不包含batch樣本數(shù)。2Keras網(wǎng)絡(luò)層類型(6)卷積層:卷積操作分為一維、二維、三維,分別為Conv1D、Conv2D、Conv3D。一維卷積主要用于處理時間序列數(shù)據(jù)或文本數(shù)據(jù),二維卷積通常用于處理圖像數(shù)據(jù)。這三類的使用方法和參數(shù)基相同,這里我們主要介紹用于處理圖像數(shù)據(jù)的二維卷積。參數(shù)說明:filters:濾波器的個數(shù)。kernel_size:卷積核的大小。strides:卷積操作的步長,二維中默認為(1,1),一維默認為1。Padding:補“0”策略2Keras網(wǎng)絡(luò)層類型(7)池化層:與卷積層類似,池化層分為最大池化層和平均池化層,也分為一維池化、二維池化和三維池化三種,由于使用和參數(shù)基本相同,所以主要以MaxPooling2D進行說明。參數(shù)說明:pool_size:表示池化核大小,池化核大小可以數(shù)組或元祖表示。strides:和卷積步長類似,表示池化核的移動步長,默認和pool_size保持一致。padding:和卷積層的padding參數(shù)類似。ThankYOU!目錄1Keras建模流程介紹01任務(wù)Keras建模具體流程02任務(wù)1Keras建模流程介紹1Keras建模流程介紹深度學(xué)習框架Keras是像搭積木般構(gòu)建神經(jīng)網(wǎng)絡(luò)模型,主要分為6個部分,每個部分只需調(diào)用kerasAPI函數(shù)就能實現(xiàn)。使用keras框架建模流程通常包括:(1)數(shù)據(jù)預(yù)處理:獲取并預(yù)處理訓(xùn)練數(shù)據(jù);(2)建立模型:定義由網(wǎng)絡(luò)層組成的網(wǎng)絡(luò)或模型,將輸入數(shù)據(jù)映射成目標;(3)編譯模型:配置訓(xùn)練過程參數(shù),包括損失函數(shù)、優(yōu)化器、模型評估指標;(4)訓(xùn)練模型:調(diào)用函數(shù)在訓(xùn)練數(shù)據(jù)上進行迭代,更新模型權(quán)重;(5)評估模型:使用測試集或驗證數(shù)據(jù)集,評估模型的性能是否達到要求;(6)模型預(yù)測:使用訓(xùn)練好的模型預(yù)測新的數(shù)據(jù)。2Keras建模具體流程2Keras建模具體流程(1)數(shù)據(jù)預(yù)處理在以深度學(xué)習為主的人工智能任務(wù)流程中,第一步要做的就是數(shù)據(jù)的處理,因為有了數(shù)據(jù),網(wǎng)絡(luò)模型才能夠訓(xùn)練,數(shù)據(jù)處理的步驟主要有以下幾個環(huán)節(jié):數(shù)據(jù)采集數(shù)據(jù)標注數(shù)據(jù)增強數(shù)據(jù)清洗數(shù)據(jù)標準化數(shù)據(jù)的劃分在本課程的案例中,均使用keras數(shù)據(jù)集模塊加載相應(yīng)的數(shù)據(jù)集,然后進行相應(yīng)的數(shù)據(jù)處理。2Keras建模具體流程(2)建立模型Keras框架中,有序列式和函數(shù)式兩種常用的建模方法。比如使用序列式API建模,代碼如下:使用model.add()給模型添加了一個Dense層,參數(shù)2表示該層神經(jīng)元的數(shù)量;一般層的添加順序即是各層連接的順序,也是數(shù)據(jù)流經(jīng)模型被處理的順序。2Keras建模具體流程(3)編譯模型定義好模型之后需要通過編譯(compile)來對學(xué)習過程進行配置,模型編譯主要是設(shè)置各類參數(shù)包括:優(yōu)化器optimizer,損失函數(shù)loss,評估指標metrics等。代碼如下:編譯的過程也是Keras將定義好的模型轉(zhuǎn)化為底層平臺(如TensorFlow)結(jié)構(gòu)描述過程,底層平臺會支持后續(xù)的計算任務(wù),如GPU、CPU的調(diào)度選擇,分布式運行等。2Keras建模具體流程(4)訓(xùn)練模型編譯后的模型可以使用model.fit()函數(shù)進行訓(xùn)練,訓(xùn)練的過程就是通過測試數(shù)據(jù)來確定神經(jīng)元間連接權(quán)重(weight)的過程。訓(xùn)練過程需要指定訓(xùn)練數(shù)據(jù)、批量大小、訓(xùn)練代數(shù)等參數(shù)。代碼如下:2Keras建模具體流程(5)評估模型訓(xùn)練后的模型,需要對其性能進行評估,以此來確定訓(xùn)練效果是否達到了預(yù)期。評估模型使用的函數(shù)是model.evalute(),該函數(shù)的參數(shù)x_test和y_test與model.fit()方法的數(shù)據(jù)類型是一樣的,一般會選擇用測試數(shù)據(jù)進行評估。2Keras建模具體流程(6)模型預(yù)測模型預(yù)測是建模的最后一步,當模型的性能評估達到要求后,就可以用訓(xùn)練好的模型在新的數(shù)據(jù)上進行預(yù)測了。預(yù)測一般使用測試集或驗證集,代碼如下:predictions是預(yù)測返回的結(jié)果,數(shù)據(jù)格式與輸出層的輸出格式相同。ThankYOU!目錄1案例目標01任務(wù)環(huán)境配置02任務(wù)案例實施04任務(wù)案例分析02任務(wù)03任務(wù)1案例目標案例目標通過一個花朵圖像分類案例,掌握深度學(xué)習框架keras的建模流程;熟悉數(shù)據(jù)的加載以及從文件中生成數(shù)據(jù)集的方法;掌握使用matplotlib工具繪制訓(xùn)練曲線的方法,初步了解模型過擬合的概念。12案例分析2案例分析本案例使用keras框架實現(xiàn)對5種花朵圖像進行分類;本案例使用keras的Sequential方法創(chuàng)建模型;本案例使用preprocessing.image_dataset_from_directory從圖像文件中加載數(shù)據(jù)并生成數(shù)據(jù)集;本案例從指定網(wǎng)址中下載花朵圖像數(shù)據(jù),數(shù)據(jù)包含約3700張5類花朵圖像。3環(huán)境配置3環(huán)境配置Windows10tensorflow=2.10.0matplotlib=3.6.1numpy=1.23.44案例實施4案例實施部分代碼展示:1、導(dǎo)入庫導(dǎo)入本案例要使用的庫:4案例實施2、下載數(shù)據(jù)集并展示圖像從指定的網(wǎng)址中下載圖像文件:4案例實施計算圖像的數(shù)量,并展示圖像示例:4案例實施3、將圖像加載到tf.data.dataset中4案例實施4、搭建模型4案例實施5、編譯訓(xùn)并練模型編譯模型:訓(xùn)練模型:4案例實施6、繪制訓(xùn)練曲線ThankYOU!認識生物神經(jīng)網(wǎng)絡(luò)01任務(wù)認識人工神經(jīng)網(wǎng)絡(luò)02任務(wù)目錄11認識生物神經(jīng)網(wǎng)絡(luò)1認識生物神經(jīng)網(wǎng)絡(luò)概念:生物神經(jīng)網(wǎng)絡(luò)(BiologicalNeuralNetworks)一般指生物的大腦神經(jīng)元,細胞,觸點等組成的網(wǎng)絡(luò),用于產(chǎn)生生物的意識,幫助生物進行思考和行動;神經(jīng)元是人類大腦的一個組成單元,人腦神經(jīng)系統(tǒng)約有860億個神經(jīng)元組成,每個神經(jīng)元有上千個突觸與其他神經(jīng)元相連接;神經(jīng)元的狀態(tài)取決于從其他神經(jīng)元接收的輸入信號量,當信號量總和超過了閾值,細胞體被激活,產(chǎn)生電脈沖;神經(jīng)元的狀態(tài)(興奮或抑制)通過突觸傳送到其他神經(jīng)元,神經(jīng)元之間的連接通過神經(jīng)遞質(zhì)進行傳播。1認識生物神經(jīng)網(wǎng)絡(luò)經(jīng)典的神經(jīng)元結(jié)構(gòu)1認識生物神經(jīng)網(wǎng)絡(luò)一個人的智力不完全由遺傳決定,大部分來自于生活經(jīng)驗.也就是說人腦神經(jīng)網(wǎng)絡(luò)是一個具有學(xué)習能力的系統(tǒng);在人腦神經(jīng)網(wǎng)絡(luò)中,每個神經(jīng)元本身并不重要,重要的是神經(jīng)元如何組成網(wǎng)絡(luò).不同神經(jīng)元之間的突觸有強有弱,其強度是可以通過學(xué)習(訓(xùn)練)來不斷改變的,具有一定的可塑性.不同的連接形成了不同的記憶印痕。2認識人工神經(jīng)網(wǎng)絡(luò)人工神經(jīng)網(wǎng)絡(luò)概念:受到人腦神經(jīng)系統(tǒng)的啟發(fā),早期的神經(jīng)科學(xué)家構(gòu)造了一種模仿人腦神經(jīng)系統(tǒng)的數(shù)學(xué)模型,稱為人工神經(jīng)網(wǎng)絡(luò)(ArtificialNeuralNetworks),簡稱神經(jīng)網(wǎng)絡(luò);在機器學(xué)習領(lǐng)域,神經(jīng)網(wǎng)絡(luò)是指由很多人工神經(jīng)元構(gòu)成的網(wǎng)絡(luò)結(jié)構(gòu)模型,這些人工神經(jīng)元之間的連接強度是可學(xué)習的參數(shù);人工神經(jīng)元模型是一個包含輸入、計算、輸出功能的數(shù)學(xué)模型。2人工神經(jīng)網(wǎng)絡(luò)2人工神經(jīng)元結(jié)構(gòu)元素:輸入,類比于樹突計算,類比于細胞體
輸出,類比于軸突權(quán)重,類比于突觸強度閾值,類比于閾值激活函數(shù),執(zhí)行模型的非線性變換注:所有輸入的加權(quán)求和超過閾值時,神經(jīng)元被激活否則處于抑制狀態(tài)。人工神經(jīng)網(wǎng)絡(luò)2人工神經(jīng)元的特征:神經(jīng)元是多輸入、單輸出的元件;具有非線性的輸入、輸出特征;具有可塑性,調(diào)整權(quán)重的過程稱為“學(xué)習”或者“訓(xùn)練”;神經(jīng)元的輸出響應(yīng)是輸入值的綜合作用的結(jié)果;輸入分為興奮(正值)和抑制(負值)兩種。ThankYOU!目錄1初識感知機01任務(wù)感知機的數(shù)學(xué)定義02任務(wù)感知機的幾何意義03任務(wù)感知機的局限性04任務(wù)1初識感知機1初識感知機1958年,美國心理學(xué)家FrankRosenblatt提出了第一個可以自動學(xué)習權(quán)重的神經(jīng)元模型,稱為感知機(Perceptron),感知機(perceptron),又稱“人工神經(jīng)元”或“樸素感知機。如圖所示,為感知機的基本結(jié)構(gòu):感知機的基本結(jié)構(gòu)1初識感知機感知機輸入為實例的特征向量,輸出為實例的類別,取
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年山西工程職業(yè)學(xué)院高職單招(數(shù)學(xué))歷年真題考點含答案解析
- 2025年山東商業(yè)職業(yè)技術(shù)學(xué)院高職單招(數(shù)學(xué))歷年真題考點含答案解析
- 2025年宜春職業(yè)技術(shù)學(xué)院高職單招職業(yè)技能測試近5年??及鎱⒖碱}庫含答案解析
- 胡華生活化話課程
- 課堂教學(xué)安全
- Excel基礎(chǔ)知識課件
- B超健康知識講座課件
- bibexcel知識圖譜教程電
- 創(chuàng)新產(chǎn)品助力商業(yè)成功
- 鐵嶺衛(wèi)生職業(yè)學(xué)院《化工廢水處理》2023-2024學(xué)年第二學(xué)期期末試卷
- 《大數(shù)據(jù)財務(wù)分析》教學(xué)大綱
- 狀語從句(練習)-2025年高考英語一輪復(fù)習(新教材新高考)
- DB11∕T 584-2022 薄抹灰外墻外保溫工程技術(shù)規(guī)程
- JJF 2156-2024材料熱膨脹儀校準規(guī)范
- 中國老年骨質(zhì)疏松癥診療指南(2023)解讀課件
- 精 《校園的早晨》同步課件
- 醫(yī)學(xué)教材 鼻竇病變的CT和MRI診斷思路解析
- 2024年河南省機關(guān)單位工勤技能人員培訓(xùn)考核高級工技師《職業(yè)道德》題庫
- 2023光伏并網(wǎng)柜技術(shù)規(guī)范
- 綜合港區(qū)海水淡化引水工程施工組織設(shè)計
- Revision1(課件)人教新起點版英語四年級下冊
評論
0/150
提交評論