版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、深度學(xué)習(xí)介紹,2018年5月,1,目錄,深度學(xué)習(xí)概述深度學(xué)習(xí)常見場景深度學(xué)習(xí)常用算法介紹深度學(xué)習(xí)常用框架介紹TensorFlow入門深度學(xué)習(xí)未來和展望,2,1.1 深度學(xué)習(xí)概述,3,深度學(xué)習(xí)(Deep Learning, DL)由Hinton等人于2006年提出,是機(jī)器學(xué)習(xí)(MachineLearning, ML)的一個新領(lǐng)域。深度學(xué)習(xí)起源于人工神經(jīng)網(wǎng)絡(luò),它的定義:通過組合低層特征形成更加抽象的高層特征或類別,從而從大量的輸
2、入數(shù)據(jù)中學(xué)習(xí)有效特征表示,并把這些特征用于分類、回歸和信息檢索的一種技術(shù)。深度學(xué)習(xí)被引入機(jī)器學(xué)習(xí)使其更接近于最初的目標(biāo)----人工智能(AI,Artificial Intelligence)。深度學(xué)習(xí)是學(xué)習(xí)樣本數(shù)據(jù)的內(nèi)在規(guī)律和表示層次,這些學(xué)習(xí)過程中獲得的信息對諸如文字、圖像和聲音等數(shù)據(jù)的解釋有很大的幫助。它的最終目標(biāo)是讓機(jī)器能夠像人一樣具有分析學(xué)習(xí)能力,能夠識別文字、圖像和聲音等數(shù)據(jù)。,1.2 與機(jī)器學(xué)習(xí)關(guān)系,4,如上圖,人工智能是
3、最早出現(xiàn)的,也是最大、最外側(cè)的同心圓;其次是機(jī)器學(xué)習(xí),稍晚一點;最內(nèi)側(cè),是深度學(xué)習(xí),當(dāng)今人工智能大爆炸的核心驅(qū)動。,1.3 基本概念,5,深度學(xué)習(xí)(Deep Learning, DL):通過組合低層特征形成更加抽象的高層特征或類別,從而從大量的輸入數(shù)據(jù)中學(xué)習(xí)有效特征表示,并把這些特征用于分類、回歸和信息檢索的一種技術(shù)。人工神經(jīng)網(wǎng)絡(luò):是一種模仿動物神經(jīng)網(wǎng)絡(luò)行為特征,進(jìn)行分布式并行信息處理的算法數(shù)學(xué)模型。這種網(wǎng)絡(luò)依靠系統(tǒng)的復(fù)雜程度,通過調(diào)
4、整內(nèi)部大量節(jié)點之間相互連接的關(guān)系,從而達(dá)到處理信息的目的。深度神經(jīng)網(wǎng)絡(luò):包含多個隱含層的神經(jīng)網(wǎng)絡(luò)。模型:可以理解成算法和數(shù)據(jù)的合集。模型訓(xùn)練:利用模型的算法,使用深度神經(jīng)網(wǎng)絡(luò)進(jìn)行權(quán)值的訓(xùn)練,最終得出一個最優(yōu)解。模型預(yù)測:使用訓(xùn)練完成的模型進(jìn)行預(yù)測,得出分類識別結(jié)果。,目錄,深度學(xué)習(xí)概述深度學(xué)習(xí)常見場景深度學(xué)習(xí)常用算法介紹深度學(xué)習(xí)常用框架介紹TensorFlow入門深度學(xué)習(xí)未來和展望,6,2 深度學(xué)習(xí)場景,7,當(dāng)前深度學(xué)
5、習(xí)使用的場景主要在無人駕駛,人臉識別,拍照購,智能客服,文字識別,語音識別,目標(biāo)檢測,圖片分類等方面。,深度學(xué)習(xí),無人駕駛,人臉識別,拍照購,智能客服,文字識別,目標(biāo)檢測,圖像分類,語音識別,2.1 深度學(xué)習(xí)場景 - 無人駕駛,8,無人駕駛:深度學(xué)習(xí)利用其深層的神經(jīng)網(wǎng)絡(luò),通過一定的算法能訓(xùn)練出一個識別率非常高的分類器,從而能夠使環(huán)境感知部分高精度的完成,為駕駛決策模塊提供正確的環(huán)境信息,保證無人駕駛正常的完成。,2.2 深度學(xué)習(xí)場景 -
6、 人臉識別,9,人臉識別:人臉信息的識別,是對人臉的信息加以提取然后進(jìn)行識別的辦法,一個最重要的目標(biāo)就是分辨不同人的信息,辨別身份。面部識別的主要方式有:幾何結(jié)構(gòu)、子空間局部特征以及深度學(xué)習(xí)。,安防領(lǐng)域,開戶審核,考勤門禁,......,2.3 深度學(xué)習(xí)場景 - 文字識別,10,文字識別:基于深度學(xué)習(xí)的文字識別系統(tǒng)的實現(xiàn)方法,屬于圖像處理技術(shù)領(lǐng)域,將包含文字的圖片進(jìn)行預(yù)處理、切分、識別,重組成一段文本,從而實現(xiàn)圖片到文本的轉(zhuǎn)換。涉及到圖
7、像預(yù)處理、圖片切分、圖片識別和文字重組。,審核,車牌識別,文檔識別,......,2.4 深度學(xué)習(xí)場景 - 圖像識別,11,圖片識別:圖像識別與人臉及文字識別類似,主要流程包括圖像預(yù)處理,圖像分割,圖像特征提取和圖像分類。,圖像審核,拍照購,工業(yè)醫(yī)療檢測,目標(biāo)識別,......,2.5 深度學(xué)習(xí)場景 - 語音識別,12,語音識別:一個完整的語音識別系統(tǒng)可大致分為3部分:語音特征提取、聲學(xué)模型與模式匹配和語言模型與語言處理。其中聲學(xué)模型是
8、識別系統(tǒng)的底層模型,并且是語音識別系統(tǒng)中最關(guān)鍵的一部分。,語音審核,語音轉(zhuǎn)文字,語音控制,......,目錄,深度學(xué)習(xí)概述深度學(xué)習(xí)常見場景深度學(xué)習(xí)常用算法介紹深度學(xué)習(xí)常用框架介紹TensorFlow入門深度學(xué)習(xí)未來和展望,13,3.1 人工神經(jīng)網(wǎng)絡(luò)(ANN),14,人工神經(jīng)網(wǎng)絡(luò)(Artificial Neural Networks)是一種模仿生物神經(jīng)網(wǎng)絡(luò)行為特征,進(jìn)行分布式并行信息處理的算法數(shù)學(xué)模型。這種網(wǎng)絡(luò)依靠系統(tǒng)的復(fù)雜程度
9、,通過調(diào)整內(nèi)部大量節(jié)點(神經(jīng)元)之間相互連接的權(quán)重,從而達(dá)到處理信息的目的。,3.1 人工神經(jīng)網(wǎng)絡(luò)(ANN),15,神經(jīng)網(wǎng)絡(luò),3.1 人工神經(jīng)網(wǎng)絡(luò)(ANN),16,人工神經(jīng)網(wǎng)絡(luò)的重要概念: 1 權(quán)值矩陣:相當(dāng)于神經(jīng)網(wǎng)絡(luò)的記憶!在訓(xùn)練的過程中,動態(tài)調(diào)整和適應(yīng)。 2 激勵函數(shù):,3.1 人工神經(jīng)網(wǎng)絡(luò)(ANN),17,人工神經(jīng)網(wǎng)絡(luò)的重要概念: 激勵函數(shù)很重要,無論是對建立神經(jīng)網(wǎng)絡(luò)的模型,還是理解神經(jīng)網(wǎng)絡(luò)。首先要了解,它
10、有以下幾個影響: 1 如何能更好的求解目標(biāo)函數(shù)的極值!——高等數(shù)學(xué)中求解函數(shù)極值的知識!可微,單調(diào)! 2 如何提升訓(xùn)練效率,讓梯度的優(yōu)化方法更穩(wěn)定; 3 權(quán)值的初始值,不影響訓(xùn)練結(jié)果!,3.1 卷積神經(jīng)網(wǎng)絡(luò)(CNN),18,卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks / CNNs / ConvNets)與普通神經(jīng)網(wǎng)絡(luò)非常相似,它們都由具有可學(xué)習(xí)的權(quán)重和偏置常量(biases)的神經(jīng)元組成。每個神經(jīng)元都
11、接收一些輸入,并做一些點積計算,輸出是每個分類的分?jǐn)?shù),普通神經(jīng)網(wǎng)絡(luò)里的一些計算技巧到這里依舊適用。與普通神經(jīng)網(wǎng)絡(luò)不同之處:卷積神經(jīng)網(wǎng)絡(luò)默認(rèn)輸入是圖像,可以讓我們把特定的性質(zhì)編碼入網(wǎng)絡(luò)結(jié)構(gòu),使是我們的前饋函數(shù)更加有效率,并減少了大量參數(shù)。,3.1 卷積神經(jīng)網(wǎng)絡(luò)(CNN),19,卷積操作:對圖像(不同的數(shù)據(jù)窗口數(shù)據(jù))和濾波矩陣(一組固定的權(quán)重:因為每個神經(jīng)元的權(quán)重固定,所以又可以看做一個恒定的濾波器filter)做內(nèi)積(逐個元素相乘再求
12、和)的操作就是所謂的『卷積』操作,也是卷積神經(jīng)網(wǎng)絡(luò)的名字來源。,3.1 卷積神經(jīng)網(wǎng)絡(luò)(CNN),20,3.1 卷積神經(jīng)網(wǎng)絡(luò)(CNN),21,3.1 卷積神經(jīng)網(wǎng)絡(luò)(CNN),22,卷積層(Convolutional layer),卷積神經(jīng)網(wǎng)路中每層卷積層由若干卷積單元組成,每個卷積單元的參數(shù)都是通過反向傳播算法優(yōu)化得到的。卷積運(yùn)算的目的是提取輸入的不同特征,第一層卷積層可能只能提取一些低級的特征如邊緣、線條和角等層級,更多層的網(wǎng)絡(luò)能從低級
13、特征中迭代提取更復(fù)雜的特征。線性整流層(Rectified Linear Units layer, ReLU layer),這一層神經(jīng)的激勵函數(shù)(Activation function)使用線性整流(Rectified Linear Units, ReLU)f(x)=max(0,x)。池化層(Pooling layer),通常在卷積層之后會得到維度很大的特征,將特征切成幾個區(qū)域,取其最大值或平均值,得到新的、維度較小的特征。全連接
14、層( Fully-Connected layer), 把所有局部特征結(jié)合變成全局特征,用來計算最后每一類的得分。,3.1 卷積神經(jīng)網(wǎng)絡(luò)(CNN),23,3.1 卷積神經(jīng)網(wǎng)絡(luò)(CNN),24,在圖像處理中,往往把圖像表示為像素的向量,比如一個1000×1000的圖像,可以表示為一個1000000的向量。在上一節(jié)中提到的神經(jīng)網(wǎng)絡(luò)中,如果隱含層數(shù)目與輸入層一樣,即也是1000000時,那么輸入層到隱含層的參數(shù)數(shù)據(jù)為1000000
15、215;1000000=10^12,這樣就太多了,基本沒法訓(xùn)練。所以圖像處理要想練成神經(jīng)網(wǎng)絡(luò)大法,必先減少參數(shù)加快速度。就跟辟邪劍譜似的,普通人練得很挫,一旦自宮后內(nèi)力變強(qiáng)劍法變快,就變的很牛了。,3.1 卷積神經(jīng)網(wǎng)絡(luò)(CNN),25,卷積神經(jīng)網(wǎng)絡(luò)有兩種神器可以降低參數(shù)數(shù)目,第一種神器叫做局部感知。在下方右圖中,假如每個神經(jīng)元只和10×10個像素值相連,那么權(quán)值數(shù)據(jù)為1000000×100個參數(shù),減少為原來的萬分之
16、一。而那10×10個像素值對應(yīng)的10×10個參數(shù),其實就相當(dāng)于卷積操作。,3.1 卷積神經(jīng)網(wǎng)絡(luò)(CNN),26,這樣的話參數(shù)仍然過多,那么就啟動第二級神器,即權(quán)值共享。在上面的局部連接中,每個神經(jīng)元都對應(yīng)100個參數(shù),一共1000000個神經(jīng)元,如果這1000000個神經(jīng)元的100個參數(shù)都是相等的,那么參數(shù)數(shù)目就變?yōu)?00了。怎么理解權(quán)值共享呢?我們可以這100個參數(shù)(也就是卷積操作)看成是提取特征的方式,該方式與
17、位置無關(guān)。這其中隱含的原理則是:圖像的一部分的統(tǒng)計特性與其他部分是一樣的。這也意味著我們在這一部分學(xué)習(xí)的特征也能用在另一部分上,所以對于這個圖像上的所有位置,我們都能使用同樣的學(xué)習(xí)特征。,3.1 卷積神經(jīng)網(wǎng)絡(luò)(CNN),27,上面所述只有100個參數(shù)時,表明只有1個100*100的卷積核,顯然,特征提取是不充分的,我們可以添加多個卷積核,比如32個卷積核,可以學(xué)習(xí)32種特征。在有多個卷積核時,如下圖所示:,3.1 卷積神經(jīng)網(wǎng)絡(luò)(CNN)
18、,28,池化,也稱作下采樣,可以實現(xiàn)降維。常用有最大值池化和均值池化。,3.1 卷積神經(jīng)網(wǎng)絡(luò)(CNN),29,全連接層:連接所有的特征,將輸出值送給分類器(如softmax分類器),最終得出識別結(jié)果。,3.2 常見網(wǎng)絡(luò)模型,30,LeNet,3.2 常見網(wǎng)絡(luò)模型,31,AlexNet,3.2 常見網(wǎng)絡(luò)模型,32,VGG16,3.2 常見網(wǎng)絡(luò)模型,33,GoogleNet (InceptionV4),3.2 常見網(wǎng)絡(luò)模型,34,比較,3.
19、3 其他深度學(xué)習(xí)算法,35,自動編碼器(AutoEncoder)稀疏編碼(Sparse Coding)限制玻爾茲曼機(jī)(RBM),目錄,深度學(xué)習(xí)概述深度學(xué)習(xí)常見場景深度學(xué)習(xí)常用算法介紹深度學(xué)習(xí)常用框架介紹TensorFlow入門深度學(xué)習(xí)未來和展望,36,4.1 開源框架概述,37,深度學(xué)習(xí)研究的熱潮持續(xù)高漲,各種開源深度學(xué)習(xí)框架也層出不窮,其中包括TensorFlow、Caffe、Keras、CNTK、Torch7、MXNe
20、t、Leaf、Theano、DeepLearning4、Lasagne、Neon等等。下圖是各個開源框架在GitHub上的數(shù)據(jù)統(tǒng)計(2017年初)。,4.1 開源框架概述,38,Google、Microsoft、Facebook等巨頭都參與了這場深度學(xué)習(xí)框架大戰(zhàn),此外,還有畢業(yè)于伯克利大學(xué)的賈揚(yáng)清主導(dǎo)開發(fā)的Caffe,蒙特利爾大學(xué)Lisa?Lab團(tuán)隊開發(fā)的Theano,以及其他個人或商業(yè)組織貢獻(xiàn)的框架。下表是主流深度學(xué)習(xí)框架在各個維度的
21、評分。,4.2 TensorFlow,39,TensorFlow最初是由研究人員和Google Brain團(tuán)隊針對機(jī)器學(xué)習(xí)和深度神經(jīng)網(wǎng)絡(luò)進(jìn)行研究所開發(fā)的,目前開源之后可以在幾乎各種領(lǐng)域適用。TensorFlow靈活的架構(gòu)可以部署在一個或多個CPU、GPU的臺式以及服務(wù)器中,或者使用單一的API應(yīng)用在移動設(shè)備中。,4.3 Caffe,40,Caffe由加州大學(xué)伯克利的PHD賈揚(yáng)清開發(fā),全稱Convolutional Architectu
22、re for Fast Feature Embedding,是一個清晰而高效的開源深度學(xué)習(xí)框架,目前由伯克利視覺學(xué)中心(Berkeley Vision and Learning Center,BVLC)進(jìn)行維護(hù)。(賈揚(yáng)清曾就職于MSRA、NEC、Google Brain,他也是TensorFlow的作者之一,目前任職于Facebook FAIR實驗室。)Caffe2臉書 (Facebook) 出品,為生產(chǎn)環(huán)境設(shè)計,提供在各種平臺(包括
23、移動設(shè)備)的運(yùn)行。,4.4 Torch,41,Torch是一個有大量機(jī)器學(xué)習(xí)算法支持的科學(xué)計算框架,其誕生已經(jīng)有十年之久,但是真正起勢得益于Facebook開源了大量Torch的深度學(xué)習(xí)模塊和擴(kuò)展。Torch另外一個特殊之處是采用了編程語言Lua(該語言曾被用來開發(fā)視頻游戲)。PyTorch是基于Torch的衍生,支持Python語言,實現(xiàn)了機(jī)器學(xué)習(xí)框架 Torch 在 Python 語言環(huán)境的執(zhí)行。,4.5 Theano,42,2
24、008年誕生于蒙特利爾理工學(xué)院,Theano派生出了大量深度學(xué)習(xí)Python軟件包,最著名的包括Blocks和Keras。Theano的核心是一個數(shù)學(xué)表達(dá)式的編譯器,它知道如何獲取你的結(jié)構(gòu)。并使之成為一個使用numpy、高效本地庫的高效代碼,如BLAS和本地代碼(C++)在CPU或GPU上盡可能快地運(yùn)行。它是為深度學(xué)習(xí)中處理大型神經(jīng)網(wǎng)絡(luò)算法所需的計算而專門設(shè)計的,是這類庫的首創(chuàng)之一(發(fā)展始于2007年),被認(rèn)為是深度學(xué)習(xí)研究和開發(fā)的行業(yè)
25、標(biāo)準(zhǔn)。,4.6 Deeplearning4j,43,Deeplearning4j是“for Java”的深度學(xué)習(xí)框架,也是首個商用級別的深度學(xué)習(xí)開源庫。Deeplearning4j由創(chuàng)業(yè)公司Skymind于2014年6月發(fā)布,使用 Deeplearning4j的不乏埃森哲、雪弗蘭、博斯咨詢和IBM等明星企業(yè)。DeepLearning4j是一個面向生產(chǎn)環(huán)境和商業(yè)應(yīng)用的高成熟度深度學(xué)習(xí)開源庫,可與Hadoop和Spark集成,即插即用,方便
26、開發(fā)者在APP中快速集成深度學(xué)習(xí)功能。,4.7 MXNet,44,出自CXXNet、Minerva、Purine 等項目的開發(fā)者之手,主要用C++ 編寫。MXNet 強(qiáng)調(diào)提高內(nèi)存使用的效率,甚至能在智能手機(jī)上運(yùn)行諸如圖像識別等任務(wù)。,4.8 CNTK,45,CNTK(Computational?Network?Toolkit)是微軟研究院(MSR)開源的深度學(xué)習(xí)框架。它最早由start?the?deep?learning?craze的演
27、講人創(chuàng)建,目前已經(jīng)發(fā)展成一個通用的、跨平臺的深度學(xué)習(xí)系統(tǒng),在語音識別領(lǐng)域的使用尤其廣泛。,目錄,深度學(xué)習(xí)概述深度學(xué)習(xí)常見場景深度學(xué)習(xí)常用算法介紹深度學(xué)習(xí)常用框架介紹TensorFlow入門深度學(xué)習(xí)未來和展望,46,5.1 引言,47,TensorFlow的API主要分兩個層次,核心層和基于核心層的高級API。核心層面向機(jī)器學(xué)習(xí)的研究人員,以及對模型控制精細(xì)的相關(guān)人員。高級API使用和學(xué)習(xí)相對容易,簡化重復(fù)性任務(wù),使不同的用戶之
28、間保持一致性。高級API,如tf.contrib.learn可以幫助管理數(shù)據(jù)集data set,估計量estimators,訓(xùn)練training,推理inference注意,一些高級API的方法名中包含contrib,意味著這些API依然處于開發(fā)過程中,這些方法在后續(xù)的TensorFlow版本中可能改變或者不再使用本章從核心層開始,后邊會提到如何使用tf.contrib.learn實現(xiàn)模型。了解核心層,在使用高級API的時候知道程
29、序是如何工作的。,5.2 安裝,48,推薦使用Anaconda環(huán)境安裝,集成了Python,numpy等。Windows要求Python版本為3.5。在線環(huán)境直接使用pip install tensorflow (tensorflow_gpu)離線環(huán)境可下載whl包進(jìn)行安裝(https://pypi.python.org/pypi),然后同樣執(zhí)行pip install xx.whl進(jìn)行安裝,安裝過程中若提示缺少依賴包可下載安裝后再
30、繼續(xù)安裝。推薦Python開發(fā)工具 PyCharm安裝成功后驗證安裝是否成功$python>>import tensorflow as tf>>tf.__version__ #查看TF版本>>tf.__path__ #查看TF安裝路徑,5.3 張量Tensor,49,數(shù)據(jù)的核心單元,一個tensor是一個包含任意維度的數(shù)組,張量的階Tensor' rank是數(shù)組的維度,如下
31、:3 # 0階張量,一個標(biāo)量scalar with shape[][1. ,2., 3.] # 1階張量; 一個向量vector with shape [3][[1., 2., 3.], [4., 5., 6.]] # 2階 張量; 一個矩陣matrix with shape [2, 3][[[1., 2., 3.]], [[7., 8., 9.]]] # 3階 張量tensor with shape [2, 1, 3]
32、2 是指[[1., 2., 3.]] 和 [[7., 8., 9.]]1 是指[[1., 2., 3.]] 中有1個 [1., 2., 3.]3 是指 [1., 2., 3.]中有3個:1., 2., 3.,5.4 計算圖 Computational Graph,50,Tensorflow編程包含兩個步驟: 1.構(gòu)造計算圖 2.運(yùn)行計算圖計算圖是什么?計算圖是一系列的計算操作抽象為圖中的節(jié)點。構(gòu)造一個簡單的
33、計算圖:每個節(jié)點將0或多個tensor作為輸入,輸出一個tensor。一種類型的節(jié)點是常量節(jié)點constant,就如同tensorflow中的常數(shù),它有0個輸入,輸出一個值。構(gòu)建兩個浮點型tensor:node1和node2,5.4 計算圖 Computational Graph,51,構(gòu)造一個簡單的計算圖:每個節(jié)點將0或多個tensor作為輸入,輸出一個tensor。一種類型的節(jié)點是常量節(jié)點constant,就如同tensorfl
34、ow中的常數(shù),它有0個輸入,輸出一個值。構(gòu)建兩個浮點型tensor:node1和node2node1 = tf.constant(3.0, tf.float32) node2 = tf.constant(4.0) # also tf.float32 implicitly print(node1, node2) 輸出結(jié)果:Tensor("Const:0", shape=(), dtype=floa
35、t32) Tensor("Const_1:0", shape=(), dtype=float32),5.4 計算圖 Computational Graph,52,需要說明,打印結(jié)果并不是我們期待的3.0 , 4.0,因為這是打印的節(jié)點(屬于計算操作),當(dāng)評估運(yùn)行之后,才是我們期待的值。評估一個節(jié)點,必須在一個會話Session中運(yùn)行計算圖,會話封裝了Tensorflow運(yùn)行時的狀態(tài)和控制接下來創(chuàng)建一個Sessi
36、on會話對象,調(diào)用run方法,運(yùn)行計算圖,去評估node1和node2sess=tf.Session() print(sess.run([node1,node2])) 輸出結(jié)果:[3.0, 4.0],5.4 計算圖 Computational Graph,53,可以使用計算操作將多個節(jié)點組合,構(gòu)建更復(fù)雜的計算,例如將兩個常量節(jié)點相加,產(chǎn)生一個新的計算圖:node3 = tf.add(node1, node2) pri
37、nt("node3: ", node3) print("sess.run(node3): ",sess.run(node3)) 輸出結(jié)果:node3: Tensor("Add:0", shape=(), dtype=float32) sess.run(node3): 7.0,5.4 計算圖 Computational Graph,54,計算圖可以使用占位符pla
38、ceholder參數(shù)化的從外部輸入數(shù)據(jù),placeholder的作用是在稍后提供一個值# 構(gòu)造計算圖 a=tf.placeholder(tf.float32) b=tf.placeholder(tf.float32) adder_node=a+b #運(yùn)行計算圖 print("adder_node:",adder_node) print(sess.run(adder_node,{a:3,b:4
39、.5})) print(sess.run(adder_node,{a:[1,3],b:[2,4]})) 輸出結(jié)果:adder_node: Tensor("add:0", dtype=float32) 7.5 [ 3. 7.],5.4 計算圖 Computational Graph,55,在機(jī)器學(xué)習(xí)中,需要模型可以任意輸入,為了模型具有可訓(xùn)練能力,需要修正計算圖,使對于同樣的輸入得到新的輸出。變量V
40、ariable允許我們?yōu)橛嬎銏D添加訓(xùn)練參數(shù)。構(gòu)造一個變量,需要提供類型和初始值:W=tf.Variable([.3],tf.float32) b=tf.Variable([-.3],tf.float32) x=tf.placeholder(tf.float32) linear_model=W*x+b,5.4 計算圖 Computational Graph,56,常量節(jié)點在調(diào)用tf.constant時就被初始化,而變量在
41、調(diào)用tf.Variable時并不初始化,必須顯性的執(zhí)行如下操作:init = tf.global_variables_initializer() sess.run(init) 意識到init對象是Tensorflow子圖初始化所有全局變量的句柄是重要的,在調(diào)用sess.run(init)方法之前,所有變量都是未初始化的。因為x是一個占位符,我們可以指定幾個值來評估linear_model模型(訓(xùn)練)print("
42、linear_model:",linear_model) print(sess.run(linear_model,{x:[1,2,3,4]})) 得到輸出:linear_model: Tensor("add_1:0", dtype=float32) [ 0. 0.30000001 0.60000002 0.90000004],5.4 計算圖 Computational G
43、raph,57,我們創(chuàng)建了一個模型,但是不知道這個模型的效果怎么樣,基于訓(xùn)練數(shù)據(jù)來評估模型,還需要一個placeholder y 來提供期望值,我們需要一個損失函數(shù)loss function損失函數(shù)測量當(dāng)前模型與真實數(shù)據(jù)之間的差距,對于線性模型,我們使用標(biāo)準(zhǔn)損失函數(shù),求模型預(yù)測結(jié)果與實際數(shù)據(jù)之間差值的平方和sum the squares of the deltasy=tf.placeholder(tf.float32) squa
44、red_deltas=tf.square(linear_model-y) loss=tf.reduce_sum(squared_deltas) print("loss:",loss) print(sess.run(loss,{x:[1,2,3,4],y:[0,-1,-2,-3]})) 輸出結(jié)果:loss: Tensor("Sum:0", dtype=float32) 23.6
45、6,5.4 計算圖 Computational Graph,58,我們可以通過手動的方式將參數(shù)W和b置為W=-1,b=1,使模型最優(yōu),即損失函數(shù)最小。初始化后的變量可以通過tf.assign來更改,tf.assign后需要tf.run生效fixW=tf.assign(W,[-1.]) fixb=tf.assign(b,[1.]) sess.run([fixW,fixb]) print("fix loss:&quo
46、t;,sess.run(loss,{x:[1,2,3,4],y:[0,-1,-2,-3]})) 輸出結(jié)果:fix loss: 0.0 我們猜想最優(yōu)的W和b值,但是在機(jī)器學(xué)習(xí)中,就是自動的尋找這些最優(yōu)的模型參數(shù)。,5.5 API tf. train,59,Tensorflow提供了優(yōu)化器Optimizer慢慢改變每個變量來最小化損失函數(shù)。最簡單的Optimizer是梯度下降gradient descent,它根據(jù)損失函數(shù)相
47、對于該變量的導(dǎo)數(shù)大小來修改參數(shù)值,一般來講,手動計算導(dǎo)數(shù)是乏味且易出錯的,Tensorflow可以使用方法tf.gradients自動的為給定模型計算導(dǎo)數(shù)。優(yōu)化器通常做這個工作。,5.5 API tf. train,60,optimizer=tf.train.GradientDescentOptimizer(0.01) train=optimizer.minimize(loss) print("train:\n&qu
48、ot;,trian) sess.run(init)#重置變量到初始化值 for i in range(1000): sess.run(train,{x:[1,2,3,4],y:[0,-1,-2,-3]}) print(sess.run([W,b])) 輸出結(jié)果:train: name: "GradientDescent" op: "NoOp" [arr
49、ay([-0.9999969], dtype=float32), array([ 0.99999082], dtype=float32)],5.6 作業(yè) - 圖像分類,61,基本:使用TensorFlow對商品圖像進(jìn)行訓(xùn)練,模型可自己選擇,或自定義使用TensorBoard查看訓(xùn)練過程輸出商品分類模型進(jìn)階:使用測試樣本集驗證模型準(zhǔn)確率部署模型,提供預(yù)測服務(wù),目錄,深度學(xué)習(xí)概述深度學(xué)習(xí)常見場景深度學(xué)習(xí)常用算法介紹深度學(xué)
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- ecmo介紹ppt課件
- 《藝考生介紹》ppt課件
- shbg項目介紹ppt課件
- 《約克品牌介紹》ppt課件
- 幼兒園介紹ppt課件
- 《敏捷開發(fā)介紹》ppt課件
- icu基本介紹ppt課件
- 《西安旅游介紹》ppt課件
- 《青蛙效應(yīng)介紹》ppt課件
- 齲病的介紹ppt課件
- 射頻消融術(shù)介紹ppt課件
- 安列克介紹ppt課件
- 《創(chuàng)意自我介紹》ppt課件
- 《客戶轉(zhuǎn)介紹培訓(xùn)》ppt課件
- okr工作法介紹》ppt課件
- 精品建盞介紹【ppt課件】
- 《雅思托福課程介紹》ppt課件
- 《汽車品牌介紹》ppt課件
- [學(xué)習(xí)]防雷法律法規(guī)介紹ppt
- 常見血液病介紹ppt課件
評論
0/150
提交評論