Python深度學習及智能車競賽實踐 課件 第7、8章 Python計算生態(tài)及機器學習概述、深度學習基礎及車輛識別項目實踐_第1頁
Python深度學習及智能車競賽實踐 課件 第7、8章 Python計算生態(tài)及機器學習概述、深度學習基礎及車輛識別項目實踐_第2頁
Python深度學習及智能車競賽實踐 課件 第7、8章 Python計算生態(tài)及機器學習概述、深度學習基礎及車輛識別項目實踐_第3頁
Python深度學習及智能車競賽實踐 課件 第7、8章 Python計算生態(tài)及機器學習概述、深度學習基礎及車輛識別項目實踐_第4頁
Python深度學習及智能車競賽實踐 課件 第7、8章 Python計算生態(tài)及機器學習概述、深度學習基礎及車輛識別項目實踐_第5頁
已閱讀5頁,還剩194頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第七章Python計算生態(tài)及機器學習概述Python深度學習及智能車競賽實踐目錄第2頁010203計算思維的概念

Python計算生態(tài)Python數據分析庫0405機器學習方法概述一元線性回歸理論及實踐目錄第3頁010203計算思維的概念

Python計算生態(tài)Python數據分析庫0405機器學習方法概述一元線性回歸理論及實踐實證思維:

實驗和驗證,物理為代表,

引力波→實驗;邏輯思維:推理和演繹為特征的,數學為代表,

A→B,B→C,A→C;計算思維:設計和構造,計算機為代表,

求階乘、科赫曲線。1.計算思維的概念人類在認識世界、改造世界過程中表現出三種基本的思維特征計算思維是計算機科學發(fā)展到一定程度而提出的,它是人類逐漸意識到計算機解決問題的強大能力后而自然產生的思維模式,具有顯著的時代特性。在程序設計范疇,計算思維主要反映在抽象實際問題的計算特性、將計算特性抽象為計算問題、通過程序設計語言實現問題的自動求解等。1.計算思維的概念計算思維的本質是抽象和自動化:抽象問題的計算過程,

利用計算機自動化求解;程序設計是實踐計算思維的重要手段;1.計算思維的概念1.計算思維的概念計算思維基于計算機強大的算力及海量數據抽象計算過程。1.計算思維的概念計算思維基于計算機強大的算力及海量數據抽象計算過程。1.計算思維的概念計算思維基于計算機強大的算力及海量數據抽象計算過程。車、路、云一體化的智慧交通目錄第10頁010203計算思維的概念

Python計算生態(tài)Python數據分析庫0405機器學習方法概述一元線性回歸理論及實踐2.Python計算生態(tài)Python語言從誕生之初致力于開源開放,近20年的開源運動產生了深植于各信息技術領域的大量可重用資源,直接且有力的支撐了信息技術超越其他技術領域的發(fā)展速度,形成了“計算生態(tài)”,建立了全球最大的編程計算生態(tài)。2.Python計算生態(tài)以開源項目為代表的大量第三方庫(超15萬個第三方庫)庫的建設經過野蠻生長和自然選擇,

同一個功能,Python語言2個以上第三方庫。在計算生態(tài)思想指導下,編寫程序的起點不再是探究每個具體算法的邏輯功能和設計,而是盡可能利用第三方庫進行代碼復用,探究運用庫的系統(tǒng)方法,實現了模塊設計。隨Python安裝包一起發(fā)布,用戶可以隨時使用,被稱為Python標準庫,受限于Python安裝包的設定大小,標準庫數量270個左右。Python常用標準庫:turtle庫、math庫、time庫、random庫、JSON庫、OS庫、在zipfile庫、Tkinter庫……Python標準庫2.Python計算生態(tài)Python有非常簡單靈活的編程方式,采用C、C++等語言編寫的專業(yè)庫可以經過簡單的接口封裝供Python語言程序調用。這樣的粘性功能使得Python語言成為了各類編程語言之間的接口,俗稱Python語言為“膠水語言”。Python的粘接功能2.Python計算生態(tài)Python有非常豐富的第三方庫。這些第三方庫由全球各行業(yè)專家、工程師和愛好者開發(fā),沒有頂層設計,由開發(fā)者采用“盡力而為”的方式維護;Python第三方程序包括庫(library)、模塊(module)、類(class)和程序包(Package)等多種命名,這些可重用代碼統(tǒng)稱為“庫”。Python第三方庫2.Python計算生態(tài)Python官方網站提供了第三方庫索引功能

/pypi列出了Python語言超過15萬個第三方庫的基本信息,這些函數庫覆蓋信息領域技術所有技術方向。Python第三方庫2.Python計算生態(tài)Python第三方庫需要安裝后才能使用,第三方庫依照安裝方式靈活性和難易程度有三種方法:

1.pip工具安裝

2.自定義安裝

3.文件安裝pip是Python官方提供并維護的在線第三方庫安裝工具,pip工具安裝是最常用且最高效的Python第三方庫安裝方式。

pip工具安裝2.Python計算生態(tài)pipinstall<擬安裝庫名>:\>pipinstallPyInstaller#或者:\>pip3installPyInstallerpip是Python第三方庫最主要的安裝方式,可以安裝超過90%以上的第三方庫。然而,還有一些第三方庫無法暫時用pip安裝,此時,需要其他的安裝方法。pip工具與操作系統(tǒng)也有關系,在MacOSX和Linux等操作系統(tǒng)中,pip工具幾乎可以安裝任何Python第三方庫,在Windows操作系統(tǒng)中,有一些第三方庫仍然需要用其他方式嘗試安裝。

pip工具安裝2.Python計算生態(tài)pip是Python內置命令,需要通過命令行執(zhí)行,如執(zhí)行pip-h命令將列出pip常用的子命令::\>pip-hpip使用2.Python計算生態(tài)pip支持安裝(install)、下載(download)、卸載(uninstall)、列表(list)、查看(list)、查找(search)等一系列安裝和維護子命令。如list子命令列出當前系統(tǒng)中已經安裝的第三方庫,格式如下:

:\>piplist

pip使用2.Python計算生態(tài)更新pip本身的方法:

pip的更新2.Python計算生態(tài)C:\Users\Administrator>python.exe-mpipinstall--upgradepipRequirementalreadysatisfied:pipinc:\users\administrator\appdata\local\programs\python\python39\lib\site-packages(22.2.2)CollectingpipUsingcachedpip-23.3.2-py3-none-any.whl(2.1MB)Installingcollectedpackages:pipAttemptinguninstall:pipFoundexistinginstallation:pip22.2.2Uninstallingpip-22.2.2:Successfullyuninstalledpip-22.2.2Successfullyinstalledpip-23.3.2卸載一個庫的命令格式如下:

pipuninstall<擬卸載庫名>

pip的子命令2.Python計算生態(tài)download子命令可以下載第三方庫的安裝包,但并不安裝,格式如下:

pipdownload

<擬卸載庫名>

pip的子命令2.Python計算生態(tài)search子命令可以鏈接搜索庫名或摘要中關鍵字,格式如下:

pipsearch<擬查詢庫名或關鍵字>

pip的子命令2.Python計算生態(tài)show子命令列出某個已經安裝庫的詳細信息,格式如下:

pipshow<擬查詢庫名或關鍵字>

常用的第三方庫和及其安裝指令需要注意,庫名是第三方庫常用的名字,pip安裝用的名字和庫名不一定完全相同,建議采用小寫字符。2.Python計算生態(tài)常用的第三方庫和及其安裝指令需要注意,庫名是第三方庫常用的名字,pip安裝用的名字和庫名不一定完全相同,建議采用小寫字符。2.Python計算生態(tài)需要注意,安裝需在系統(tǒng)命令行下進行,不要在IDLE中,部分庫會依賴其他函數庫,會自動安裝,部分庫下載后需要一個安裝過程,pip會自動執(zhí)行。成功安裝庫后會出現”Successfullyinstalled…“提示。常用的第三方庫和及其安裝指令2.Python計算生態(tài)可以使用

OS標準庫

的system()函數調用控制臺importoslibs={"numpy","matplotlib","pillow","sklearn","requests",\"jieba","beautifulsoup4","wheel","networkx","sympy",\"pyinstaller","django","flask","werobot","pyqt5",\"pandas","pyopengl","pypdf2","docopt","pygame"}try:forlibinlibs:

os.system("pipinstall"+lib)print("Successful")except:print("FailedSomehow")pip批量安裝Python庫2.Python計算生態(tài)目錄第29頁010203計算思維的概念

Python計算生態(tài)Python數據分析庫0405機器學習方法概述一元線性回歸理論及實踐numpy庫numpy(NumericalPython的簡稱)是高性能科學計算和數據分析的基礎包,其部分功能如下:ndarray,一個具有矢量算術運算和復雜廣播能力的快速且節(jié)省空間的多維數組;用于對整組數據進行快速運算的標準數學函數(無需編寫循環(huán));用于讀寫磁盤數據的工具以及用于操作內存映射文件的工具;線性代數、隨機數生成以及傅里葉變換功能。NumPy官方的英文文檔:/NumPy官方的中文文檔:/3.Python數據分析庫pandas是python第三方庫,提供高性能易用數據類型和分析工具pandas基于numpy實現,常與numpy和matplotlib一同使用兩大核心數據結構:Series(一維數據)

和DataFrame(多特征數據,既有行索引,又有列索引)Pandas官方的英文文檔:https:///PandasPandas官方的中文文檔:/pandas庫3.Python數據分析庫Matplotlib庫3.Python數據分析庫Matplotlib是一個Python2D繪圖庫,通過調用庫的方法,只需幾行代碼就可以生成圖表、直方圖、功率譜、條形圖、誤差圖、散點圖等。Matplotlib庫英文網:

/stable/gallery/index.htmlMatplotlib庫中文網:

/intro/目錄第33頁010203計算思維的概念

Python計算生態(tài)Python數據分析庫0405機器學習方法概述一元線性回歸理論及實踐Machine

learningisthestudyofalgorithmsandmathematicalmodelsthatcomputersystemsusetoprogressivelyimprovetheirperformanceonaspecifictask.Machinelearningalgorithmsbuildamathematicalmodelofsampledata,knownas“trainingdata”,inordertomakepredictionsordecisionswithoutbeingexplicitlyprogrammedtoperformthetask.Wikipedia線性回歸支持向量機K-means高斯混合聚類密度聚類邏輯回歸分類決策樹貝葉斯集成學習回歸問題聚類問題分類問題嶺回歸Lasso回歸層次聚類回歸決策樹深度學習方法可以解決分類問題,也可以解決回歸問題4.機器學習方法概述有監(jiān)督學習(supervisedlearning):從給定的有標注的訓練數據集中學習出一個函數,當新的數據到來時可以根據這個函數預測結果。常見任務包括分類與回歸。分類:輸出是類別標簽回歸:電動車剩余里程估計值是連續(xù)值4.機器學習方法概述無監(jiān)督學習(unsupervisedlearning):沒有標注的訓練數據集,需要根據樣本間的統(tǒng)計規(guī)律對樣本集進行分析,常見任務如聚類等。4.機器學習方法概述聚類問題是無監(jiān)督學習的問題,算法的思想就是“物以類聚,人以群分”。聚類算法感知樣本間的相似度,進行類別歸納,對新的輸入進行輸出預測,輸出變量取有限個離散值??梢宰鳛橐粋€單獨過程,用于尋找數據內在的分布結構可以作為分類、稀疏表示等其他學習任務的前驅過程4.機器學習方法概述分類問題是監(jiān)督學習的一個核心問題,它從數據中學習一個分類決策函數或分類模型(分類器(classifier)),對新的輸入進行輸出預測,輸出變量取有限個離散值。分類在我們日常生活中很常見二分類問題多分類問題垃圾郵件正常郵件轎車摩托車貨車4.機器學習方法概述分類模型性能評價指標

準確率(Accuracy)是指在分類中,分類正確的記錄個數占總記錄個數的比值。通常,準確率高時,召回率偏低;召回率高時,準確率偏低。1.地震的預測對于地震的預測,我們希望的是召回率非常高,也就是說每次地震我們都希望預測出來。2.嫌疑人定罪基于不錯怪一個好人的原則,對于嫌疑人的定罪我們希望是非常準確的,即使有時候放過了一些罪犯(召回率低),但也是值得的。

召回率(Recall)也叫查全率,是指在分類中樣本中的正例有多少被預測正確了。4.機器學習方法概述舉例:一個城市路網中有1400輛小轎車,300輛公交巴士,700輛自行車,現在以路網攝像頭抓拍到小轎車為目的,共拍到了1200輛小轎車,300輛公交巴士,500輛自行車,那么,這些指標分別如下:正確率(Precision)

召回率(Recall)

F值=

2*60%

*

85.7%

/

(60%

+

85.7%)

=

70.6%=

1200

/

(1200

+

300

+

500)

=

60%=

1200

/

1400

=

85.7%4.機器學習方法概述=1400

/

(1400

+300

+

700)=

58.3%正確率(Precision)

召回率(Recall)

F值=

1400

/

1400

=

100%=

2*58.3%

*100%

/

(58.3%

+

100%)

=

73.7%一個城市路網中有1400輛小轎車,300輛公交巴士,700輛自行車,現在以路網攝像頭抓拍到小轎車為目的,假設所有的小轎車、公交巴士和自行車都抓拍到了,那么,這些指標分別如下:舉例:4.機器學習方法概述回歸分析用于預測輸入變量(自變量)和輸出變量(因變量)之間的關系,特別是當輸入變量的值發(fā)生變化時,輸出變量值隨之發(fā)生變化?;貧w分析自變量個數自變量與因變量關系因變量個數一元回歸分析多元回歸分析線性回歸分析非線性回歸分析簡單回歸分析多重回歸分析4.機器學習方法概述Sklearn全稱為scikit-learn,其中封裝了大量的機器學習算法,包括分類,回歸,降維和聚類四大機器學習算法。還包括了特征提取,數據處理和模型評估三大模塊。sklearn是Scipy的擴展,建立在Numpy和matplolib庫的基礎上,利用這幾大模塊的優(yōu)勢,可以大大的提高機器學習的效率。官方文檔地址:/stable/Sklearn庫4.機器學習方法概述Sklearn庫4.機器學習方法概述目錄第45頁010203計算思維的概念

Python計算生態(tài)Python數據分析庫0405機器學習方法概述一元線性回歸理論及實踐01一元線性回歸理論及實踐5.1一元線性回歸理論5.2實例:智能車路徑擬合目錄第46頁這個方程對應的圖像是一條直線,稱作回歸線。其中,??1為回歸線的斜率,

??0為回歸線的截距。y=???

(??)

=??0+

??1??5.1一元線性回歸理論訓練集:5.1一元線性回歸理論求解方程系數y=

??0+

??1??有沒有準則判斷,哪個更好呢?5.1一元線性回歸理論損失函數(CostFunction或LostFunciton)最小二乘法真實值y,預測值???

(??)

,則誤差平方為(y????

(??)2

找到合適的參數,使得誤差平方和最?。?/p>

5.1一元線性回歸理論θ0=0損失函數5.1一元線性回歸理論損失函數5.1一元線性回歸理論當??1=1時,代價函數值為0損失函數5.1一元線性回歸理論當??1=0.5時,代價函數值約為0.6損失函數5.1一元線性回歸理論當??1=0時,代價函數值約為2.3損失函數5.1一元線性回歸理論當??1=2時,代價函數值約為2.3損失函數5.1一元線性回歸理論J值隨著??0和??1變化的等值線圖損失函數5.1一元線性回歸理論損失函數5.1一元線性回歸理論損失函數5.1一元線性回歸理論Havesome

functionWant到達一個全局初始化不斷改變 ,直到最小值,或局部極小值。梯度下降法(GradientDescent)5.1一元線性回歸理論

J(

)梯度下降法5.1一元線性回歸理論

J(

)梯度下降法5.1一元線性回歸理論正確做法:同步更新不正確做法學習率控制步長梯度下降法5.1一元線性回歸理論

J(

)θ0=0梯度下降法5.1一元線性回歸理論學習率不能太小,也不能太大,可以多嘗試一些值0.1,0.03,0.01,0.003,0.001,0.0003,0.0001…梯度下降法5.1一元線性回歸理論atlocal

optimaCurrentvalue

of有可能會陷入局部極小值梯度下降法5.1一元線性回歸理論梯度下降法求解線性回歸5.1一元線性回歸理論梯度下降法求解線性回歸5.1一元線性回歸理論線性回歸的代價函數是凸函數5.1一元線性回歸理論(for

fixed,thisisafunctionof

x)(functionofthe

parameters)梯度下降法優(yōu)化過程5.1一元線性回歸理論(for

fixed,thisisafunctionof

x)(functionofthe

parameters)梯度下降法優(yōu)化過程5.1一元線性回歸理論(for

fixed,thisisafunctionof

x)(functionofthe

parameters)梯度下降法優(yōu)化過程5.1一元線性回歸理論(for

fixed,thisisafunctionof

x)(functionofthe

parameters)梯度下降法優(yōu)化過程5.1一元線性回歸理論(for

fixed,thisisafunctionof

x)(functionofthe

parameters)梯度下降法優(yōu)化過程5.1一元線性回歸理論(for

fixed,thisisafunctionof

x)(functionofthe

parameters)梯度下降法優(yōu)化過程5.1一元線性回歸理論(for

fixed,thisisafunctionof

x)(functionofthe

parameters)梯度下降法優(yōu)化過程5.1一元線性回歸理論(for

fixed,thisisafunctionof

x)(functionofthe

parameters)梯度下降法優(yōu)化過程5.1一元線性回歸理論(for

fixed,thisisafunctionof

x)(functionofthe

parameters)一口吃不成個胖子,需要靜悄悄地一步一步地完成迭代(學習貴在堅持,日積月累,長期努力,必有大成?。┨荻认陆捣▋?yōu)化過程5.1一元線性回歸理論01一元線性回歸理論及實踐5.1一元線性回歸理論5.2實例:智能車路徑擬合目錄第79頁Sklearn中基于最小二乘法的線性回歸模型

參數:fit_intercept:是否存在截距,默認存在,normalize:是否將數據標準化,默認關閉;copy_X:默認為True。

是否對X復制,如果選擇false,則直接對原數據進行覆蓋寫。(即經過中心化、標準化后,是否把新數據覆蓋到原數據上);n_jobs:int默認為1,計算時設置的任務個數,當-1時默認使用全部CPUs。lr=sklearn.linear_model.LinearRegression(fit_intercept=True,normalize=False,copy_X=True,n_jobs=1)最簡單的實例化調用:lr=sklearn.linear_model.LinearRegression()5.2實例:智能車路徑擬合方法:/stable/modules/generated/sklearn.linear_model.LinearRegression.html#sklearn.linear_model.LinearRegression.fitfit(X,

y[,

sample_weight])Fitlinearmodel.get_params([deep])Getparametersforthisestimator.predict(X)Predictusingthelinearmodel.score(X,

y[,

sample_weight])ReturnthecoefficientofdeterminationR^2oftheprediction.set_params(**params)Settheparametersofthisestimator.Sklearn中基于最小二乘法的線性回歸模型

5.2實例:智能車路徑擬合梯度下降法一元線性回歸Sklearn程序實現fromsklearn.linear_modelimportLinearRegressionimportnumpyasnpimportmatplotlib.pyplotaspltdata=np.genfromtxt("data.csv",delimiter=",")#載入數據x_data=data[:,0]y_data=data[:,1]plt.scatter(x_data,y_data)plt.show()print(x_data.shape)x_data=data[:,0,np.newaxis]#給數據加一個維度y_data=data[:,1,np.newaxis]model=LinearRegression()#實例化一個線性回歸對象model.fit(x_data,y_data)#擬合模型plt.plot(x_data,y_data,‘b’)#畫出數據點plt.plot(x_data,model.predict(x_data),‘r’)#畫出回歸線

5.2實例:智能車路徑擬合本章總結了解計算思維和python計算生態(tài);掌握python第三方庫的pip安裝;掌握數據分析三大庫的應用;掌握機器學習三大類方法回歸、分類和聚類基本概念;掌握一元線性回歸方法的理論和實踐。第八章深度學習基礎及車輛識別項目實踐Python深度學習及智能車競賽實踐目錄第85頁010203神經網絡簡介深度學習理論基礎深度學習框架簡介04DNN車輛識別項目目錄第86頁010203神經網絡簡介深度學習理論基礎深度學習框架簡介04DNN車輛識別項目01神經網絡簡介1.1神經網絡基本概念1.2單層感知器1.3多層感知器目錄第87頁

模型:代價函數:參數學習:1.1神經網絡基本簡介一元線性回歸總結建立模型衡量標準參數學習人人機器機器學習框架線性回歸邏輯回歸KNN決策樹損失函數最小二乘方最近鄰樣本數信息熵增益率基尼系數增益梯度下降法傳統(tǒng)的機器學習方法需要知道樣本的特征值1.1神經網絡基本簡介1.1神經網絡基本簡介車的識別神經網絡的經典定義:由具有適應性的簡單單元組成的廣泛并行互連網絡,它的組織能夠模擬生物神經系統(tǒng)對真實世界物體所作出的交互反應。生物神經元結構1.1神經網絡基本簡介視覺影像反射光線神經脈沖雙極細胞1.視感覺階段-信息采集紋狀皮層初級視覺信息輸入1.1神經網絡基本簡介人腦視覺機理紋狀皮層紋外視覺皮層初級視覺信息中級視覺信息海馬體長短時記憶信息神經脈沖輸入1.1神經網絡基本簡介2.視知覺階段-信息認知人腦視覺機理從原始信號攝入(瞳孔攝入像素Pixels)

初步處理(大腦皮層某些細胞發(fā)現邊緣和方向)

抽象(大腦判定,眼前的物體的形狀,是圓形的)

進一步抽象(大腦進一步判定該物體是人臉);從原始信號,做低級抽象,逐漸向高級抽象迭代。測量空間(表象)特征空間(概念)1.1神經網絡基本簡介人腦視覺機理:神經-中樞-大腦神經網絡最初是在圖像識別中取得了很好的效果。

一張圖片被表示成三維數組的形式,每個像素的值從0到255例如:300*100*3表示圖像的長寬和顏色通道數列矩陣1.1神經網絡基本簡介人工神經網絡模仿人類的視覺系統(tǒng)底層特征中層特征高層特征像素矩陣可訓練的分類器1.1神經網絡基本簡介測量空間特征空間類別空間1.1神經網絡基本簡介人工神經網絡目的數字圖片識別機器翻譯自動問答“3”“傾盆大雨”“上海”“Rain

cats

and

dogs”“姚明是哪里人?”1.1神經網絡基本簡介人工神經網絡目的:尋找一個合適的函數圖像識別“燙燙燙燙”“8”“2”學習任務:尋找手寫識別函數,候選函數集合為:1.1神經網絡基本簡介人工神經網絡目的:尋找一個合適的函數確定函數集合如何評價好壞挑出最好函數=“2”=“3”….=“0”=“5”答案人人機器怎么做:對答案1.1神經網絡基本簡介人工神經網絡框架確定函數集合如何評價好壞挑出最好函數=“2”=“3”….=“0”=“5”答案人人機器1.1神經網絡基本簡介人工神經網絡框架監(jiān)督學習(SupervisedLearning)確定函數集合如何評價好壞挑出最好函數人人機器1.1神經網絡基本簡介人工神經網絡框架

XY0建立模型損失函數“0”“2”“5”參數學習Using“8”TrainingTesting監(jiān)督學習任務:手寫數字圖像識別訓練數據測試數據Step1Step2Step31.1神經網絡基本簡介人工神經網絡框架建立模型選擇什么樣的網絡結構選擇多少層數,每層選擇多少神經元損失函數選擇常用損失函數,平方誤差,交叉熵….參數學習梯度下降反向傳播算法1.1神經網絡基本簡介人工神經網絡步驟01神經網絡簡介1.1神經網絡基本概念1.2單層感知器1.3多層感知器目錄第105頁輸入節(jié)點:x1,x2,x3輸出節(jié)點:y權向量:w1,w2,w3偏置因子:b激活函數:sign(x)=1 x>=0-1 x<0單層感知器(SingleLayerPerceptron)是最簡單的神經網絡。它包含輸入層和輸出層,輸入層和輸出層是直接相連的。1.2單層感知器y

=1 (0.5x1+0.5x2+0.5x3-0.6>=0)-1 (0.5x1+0.5x2+0.5x3-0.6<0)實例權值w都設成0.5,偏置b設為-0.61.2單層感知器實例1.2單層感知器i

=

0,1,2…y是網絡輸出f是sign函數η表示學習率t是標簽值t和y的取值為±1權值調整公式1.2單層感知器假設:t=1,η=1,x1=1,w1=-5,b=0:簡化演示,假設只有一個樣本,一個特征t是標簽值,y

是預測值1.2單層感知器??取值一般取0-1之間;學習率太大容易造成權值調整不穩(wěn)定;學習率太小,權值調整太慢,迭代次數太多。1.2單層感知器模型收斂條件1.2單層感知器1.誤差小于某個預先設定的較小的值;2.兩次迭代之間的權值變化已經很小;3.設定最大迭代次數,當迭代超過最大次數就停止。實例1.2單層感知器假設平面坐標系上有四個點,要求構建單層感知器實現分類。

(3,3),(4,3)兩個點的標簽為1;

(1,1),(0,2)兩個點的標簽為-1。

思路:要分類的數據是2維數據,需要2個輸入節(jié)點,把神經元的偏置值也設置成一個節(jié)點(偏置也是一個輸入,恒等于1),總共有3個輸入節(jié)點。輸入數據有4組:(1,3,3),(1,4,3),(1,1,1),(1,0,2)對應的標簽為(1,1,-1,-1)初始化權值w0,w1,w2取-1到1的隨機數;學習率設為0.11;激活函數為sign函數。8.1npperceptron.ipynb單層感知器程序實現1.2單層感知器01神經網絡簡介1.1神經網絡基本概念1.2單層感知器1.3多層感知器目錄第115頁神經元y1.3多層感知器…偏置bias權重weights………激活函數理解:簡單線性函數f(x)=kx+b(x是向量,表示多維,k是斜率,b是截距)

神經元1.3多層感知器神經元不同的連接方式構成不同的網絡結構每個神經元都有自己的權重和偏置參數

1.3單層感知器單層感知器擴展到多層感知器淺層神經網絡1.3單層感知器單層感知器擴展到多層感知器淺層神經網絡1.3單層感知器單層感知器擴展到多層感知器深度神經網絡1.2單層感知器單層感知器擴展到多層感知器目錄第122頁010203神經網絡簡介深度學習理論基礎深度學習框架簡介04DNN車輛識別項目02深度學習基礎2.1信號前向傳播2.2激活函數2.3損失函數定義2.4優(yōu)化方法2.5誤差反向傳播算法2.6計算圖目錄第123頁1-11-21-101

0.124-2

2.1信號前向傳播激活函數0.98自左向右依次計算1-11-21-101

0.980.124-2

2-1-1-20.860.113-14-10.620.8300-22

2.1信號前向傳播輸出層隱藏層輸入層隱藏層數很多意味著網絡越深神經元……………………………………y1y2ymx1x2xn…………神經網絡其實就是按照一定規(guī)則連接起來的多個神經元。2.1信號前向傳播輸出層(分類問題)常用softmax函數作為輸出層激活函數:容易理解、便于計算

32.7200.051-30.880.12≈02.1信號前向傳播應用示例:手寫數字識別輸入每一個輸出值代表其對應標簽的概率值輸出神經網絡is1is2is8……0.10.10.716x16=256……黑色像素點→1白色像素點→0“8”……神經網絡圖片被識別成數字“8”2.1信號前向傳播應用示例:手寫數字識別設置合適的網絡結構:層數和結點個數、激活函數問題:應該設置多少層,多少結點?是否需要選擇其他網絡結構如CNN/RNN?is1is2is0…………………………………………y1y2ymx1x2xn…………X2.1信號前向傳播02深度學習基礎2.1信號前向傳播2.2激活函數2.3損失函數定義2.4優(yōu)化方法2.5誤差反向傳播2.6計算圖目錄第130頁為什么引入激活函數為了增強網絡的表達能力,需要激活函數來將線性函數->非線性函數2.2激活函數

sigmoid函數:為什么引入激活函數為了增強網絡的表達能力,需要激活函數來將線性函數->非線性函數2.2激活函數

tanh函數:為什么引入激活函數為了增強網絡的表達能力,需要激活函數來將線性函數->非線性函數2.2激活函數

ReLU函數:為什么引入激活函數為了增強網絡的表達能力,需要激活函數來將線性函數->非線性函數2.2激活函數

Leaky-ReLU函數:為什么引入激活函數為了增強網絡的表達能力,需要激活函數來將線性函數->非線性函數2.2激活函數

ELU函數:引入激活函數的目的是在模型中引入非線性2.2激活函數CNN在卷積層盡量不要使用Sigmoid和Tanh,將導致梯度消失。首先選用ReLU,使用較小的學習率,以免造成神經元死亡的情況。如果ReLU失效,考慮使用LeakyReLU、PReLU、ELU或者Maxout,此時一般情況都可以解決。02深度學習基礎2.1信號前向傳播2.2激活函數2.3損失函數定義2.4優(yōu)化方法2.5誤差反向傳播算法2.6計算圖目錄第137頁建立模型選擇什么樣的網絡結構選擇多少層數,每層選擇多少神經元損失函數選擇常用損失函數,平方誤差,交叉熵….參數學習梯度下降誤差反向傳播算法2.3損失函數定義損失函數是用來衡量模型的預測值與真實值之間差異程度的函數分類損失回歸損失損失函數的設計依賴于具體的任務常用:交叉熵損失函數常用:平方損失函數2.3損失函數定義16x16=256y1

值最大;對于數字識別任務,設計用于分類的損失函數,使得學習目標變?yōu)椋狠斎?y8

值最大······輸入:………………………………y1y2y10x1x2x256…………is1is2……is0Softmax

2.3損失函數定義

“1”……100目標盡可能接近好的參數使得所有訓練數據的損失越小越好………………………………y1y2y10x1x2x256…………Softmax

學習一組參數2.3損失函數定義對所有訓練數據:

即確定參數使得總損失L最小總損失:盡可能小找到一個函數使得總損失L最小神經網絡樣本x1y1

樣本x2y2

神經網絡樣本x3y3

神經網絡樣本xRyR

……神經網絡2.3損失函數定義多分類損失CarscoreTrunkscoreMotorscoref(w?x+b)1.隨機賦值w,b的情形下,模型的初始計算結果必然和對應的標簽不一致;2.如何定義損失函數,衡量網絡計算結果與標簽值的差異?+B:一般初始賦值為0,待優(yōu)化label2.3損失函數定義多分類損失交叉熵損失函數&SoftMax概率歸一化normalize交叉熵用來衡量兩個分布間的差異性:根據網絡輸出結果和標簽(p(x)代表標簽的真實概率分布,q(x)代表模型概率分布如何根據損失函數對網絡的權重參數w和b進行更新?label1.7960.1990.452q(x)log(q(x))p(x)交叉熵explog2.3損失函數定義02深度學習基礎2.1信號前向傳播2.2激活函數2.3損失函數定義2.4優(yōu)化方法2.5誤差反向傳播算法2.6計算圖目錄第145頁建立模型選擇什么樣的網絡結構選擇多少層數,每層選擇多少神經元損失函數選擇常用損失函數,平方誤差,交叉熵….參數學習梯度下降誤差反向傳播算法2.4優(yōu)化方法參數學習

枚舉所有可能的取值例如:車輛圖片分類模型有8層,每層1000神經元參數個數巨大L+1層……L層……106權重參數1000神經元1000神經元

2.4優(yōu)化方法梯度下降法總損失神經網絡參數w初始值下的總損失總損失值最小總損失變小通過調節(jié)參數w,逐步逼近總損失最小值2.4優(yōu)化方法初始值w選擇一個初始值w,Random,RBMpre-train

梯度為正梯度為負減小w增加w

梯度下降法2.4優(yōu)化方法選擇一個初始值w,Random,RBMpre-train

η

是“學習率”迭代

梯度下降法2.4優(yōu)化方法總損失神經網絡參數w在平坦區(qū)變化非常緩慢

停在鞍點

全局最優(yōu)值停在局部最優(yōu)值梯度下降法2.4優(yōu)化方法初始值影響選取不同的初始值,可能到達不同的局部最小值ABCDACBD例如:2.4優(yōu)化方法梯度下降法使用樣本方式的變種2.4優(yōu)化方法梯度下降方式的優(yōu)化

2.4優(yōu)化方法02深度學習基礎2.1信號前向傳播2.2激活函數2.3損失函數定義2.4優(yōu)化方法2.5誤差反向傳播算法2.6計算圖目錄第155頁建立模型選擇什么樣的網絡結構選擇多少層數,每層選擇多少神經元損失函數選擇常用損失函數,平方誤差,交叉熵….參數學習梯度下降誤差反向傳播算法2.5誤差反向傳播BP(Back

Propagation)神經網絡1986年,由McClelland和Rumelhart為首的科學家小組提出,解決了多層神經網絡的學習問題,極大促進了神經網絡的發(fā)展。BP神經網絡也是整個人工神經網絡體系中的精華,廣泛應用于分類識別、逼近、回歸、壓縮等領域。在實際應用中,大約80%的神經網絡模型都采取了BP網絡或BP網絡的變化形式。2.5誤差反向傳播算法……………………………………y1y2ymx1x2xn…………輸入:x

總誤差L

隱藏層InputLayer1Layer2Output反向傳播的基本思想就是通過計算輸出層與期望值之間的誤差來調整網絡參數,從而使得誤差變小。2.5誤差反向傳播算法信號正向傳播

2.5誤差反向傳播算法

信號正向傳播2.5誤差反向傳播算法

信號正向傳播2.5誤差反向傳播算法

信號正向傳播2.5誤差反向傳播算法

信號正向傳播2.5誤差反向傳播算法

信號正向傳播2.5誤差反向傳播算法

信號正向傳播2.5誤差反向傳播算法

信號正向傳播每一層的各個輸出都是參數w的函數2.5誤差反向傳播算法將神經網絡輸出的預測值和Yo

和標簽值Y相比較,計算損失。如果損失值比較大,就使用梯度下降法調整最后一層神經元的參數,然后反向傳播梯度信息,逐層后退,更新模型參數,完成一輪訓練2.5誤差反向傳播算法參數調整后的網絡,再次根據樣本特征,正向計算預測值,反向傳播誤差,調整模型參數,最終通過這樣不斷地訓練,直到網絡輸出與標簽值一致。2.5誤差反向傳播算法例子演示其中,輸入數據

i1=0.02,i2=0.7;輸出數據o1=0,

o2=1;初始化權重和偏置項:w1=0.1,w2=0.2,w3=0.3,w4=0.4;w5=0.2,w6=0.3,w7=0.1,w8=0.2;b1=0.3,b2=0.2目標:給出輸入數據i1,

i2,(0.02和0.7),訓練模型,更新權重參數,使輸出盡可能與原始輸出o1,o2(0和1)接近。i1i2h1h2o1o2w1w2w3w4b1b2w5w6w7w8輸入層隱藏層輸出層偏置項偏置項2.5誤差反向傳播算法2.5誤差反向傳播算法信號前向傳播基于鏈式法則的誤差反向傳播基于梯度下降法的參數更新信號前向傳播是否滿足迭代終止條件?結束開始輸入數據和輸出數據初始化權重和偏置參數是否例子演示i1i2h1h2o1o2w1w2w3w4b1b2w5w6w7w8輸入層隱藏層輸出層偏置項偏置項例子演示(計算保留五位小數)Step1:前向傳播(激活函數為sigmoid):1.輸入層---->隱藏層:2.隱藏層---->輸出層:輸出值為[0.62586,0.59613],與實際值[0,1]相差大。輸入層隱藏層輸出層

sigmoidsigmoid

2.5誤差反向傳播算法例子演示Step2:誤差反向傳播

2.5誤差反向傳播算法

sigmoidsigmoid例子演示

2.隱藏層---->輸出層的權值更新:

2.5誤差反向傳播算法Step2:誤差反向傳播

sigmoidsigmoid例子演示

2.5誤差反向傳播算法例子演示

①②③

2.5誤差反向傳播算法利用梯度下降法更新參數:例子演示同樣方法,可更新w6

,

w7,w8。

2.5誤差反向傳播算法

2.輸入層---->隱藏層的權值更新:

2.5誤差反向傳播算法Step2:誤差反向傳播例子演示

Step2:誤差反向傳播2.輸入層---->隱藏層的權值更新:

故而注意:這里的w5、w6使用之前未更新的權重(0.2、0.1),而不是已經更新過的權重!2.5誤差反向傳播算法例子演示

2.輸入層---->隱藏層的權值更新:

由于

所以2.5誤差反向傳播算法Step2:誤差反向傳播例子演示

Step2:誤差反向傳播3.輸入層---->隱藏層的權值更新:

將計算好的三者進行相乘:最后,更新w1權值:

同樣方法,可更新w2,

w3,w4。2.5誤差反向傳播算法例子演示第一次誤差反向傳播完成后,總誤差E(total)由0.27741下降至0.26537。把更新的權值重新計算,不停地迭代,迭代10000次后,總誤差為0.000063612,輸出為[0.00793003941675692,0.9919789331998798](原輸入為[0,1]),已經很接近了。Step3:迭代計算例子演示2.5誤差反向傳播算法同樣方法,可更新偏置b1,

b2??偨Y回顧:02深度學習基礎2.1信號前向傳播2.2激活函數2.3損失函數定義2.4優(yōu)化方法2.5誤差反向傳播2.6計算圖目錄第182頁2.6計算圖計算圖是一種用于描述計算過程的數據結構,其基本元素包括節(jié)點(node)和邊(edge);節(jié)點代表的是數據,也就是變量,包括標量、矢量、張量等;邊則表示的是操作,也就是函數。計算圖中節(jié)點之間的結構關系也被稱為拓撲結構(TopologicalStructure)。z=f(x+y)

y=f(g(h(x)))

2.6計算圖計算圖可以直觀表達鏈式法則2.6計算圖常見復合函數求導及計算圖假定a=1,b=2計算可得c=3,d=3,e

溫馨提示

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

評論

0/150

提交評論