人工智能实践:Tensorflow2.0笔记 北京大学MOOC(1-1)
人工智能實(shí)踐:Tensorflow2.0筆記 北京大學(xué)MOOC(1-1)
- 說(shuō)明
- 一、神經(jīng)網(wǎng)絡(luò)計(jì)算過(guò)程
- 1. 人工智能三學(xué)派
- 2. 神經(jīng)網(wǎng)絡(luò)設(shè)計(jì)過(guò)程
- 2.1 人腦中的神經(jīng)網(wǎng)絡(luò)形成過(guò)程
- 2.2 計(jì)算機(jī)模仿神經(jīng)網(wǎng)絡(luò)連接關(guān)系
- 3.神經(jīng)網(wǎng)絡(luò)設(shè)計(jì)過(guò)程
- 3.1 數(shù)據(jù)集介紹
- 3.2 網(wǎng)絡(luò)搭建與訓(xùn)練
- 3.2.1 神經(jīng)元的計(jì)算模型
- 3.2.2 全連接網(wǎng)絡(luò)的搭建
- 3.2.3 定義損失函數(shù)
- 3.2.3.1 損失函數(shù)
- 3.2.3.2 梯度下降法
- 傳送門
說(shuō)明
本文內(nèi)容整理自中國(guó)大學(xué)MOOC “北京大學(xué)-人工智能實(shí)踐:Tensorflow筆記” 課程,轉(zhuǎn)載請(qǐng)注明出處
授課老師:曹健
中國(guó)大學(xué)MOOC 人工智能實(shí)踐:Tensorflow筆記課程鏈接
本講目標(biāo):理解神經(jīng)網(wǎng)絡(luò)計(jì)算過(guò)程,使用基于TF2原生代碼搭建第一個(gè)神經(jīng)網(wǎng)絡(luò)訓(xùn)練模型
本節(jié)內(nèi)容:介紹神經(jīng)網(wǎng)絡(luò)相關(guān)的基本概念,剖析神經(jīng)網(wǎng)絡(luò)實(shí)際計(jì)算過(guò)程
一、神經(jīng)網(wǎng)絡(luò)計(jì)算過(guò)程
1. 人工智能三學(xué)派
人工智能:讓機(jī)器具備人的思維和意識(shí)。
人工智能三學(xué)派:
2. 神經(jīng)網(wǎng)絡(luò)設(shè)計(jì)過(guò)程
2.1 人腦中的神經(jīng)網(wǎng)絡(luò)形成過(guò)程
圖1展示了人腦中的一根神經(jīng)元,其中紫色部分為樹突,其作為神經(jīng)元的輸入。黃色部分為軸突,其作為神經(jīng)元的輸出。
人腦就是由大約 860 億個(gè)這樣的神經(jīng)元首尾相接組成的網(wǎng)絡(luò)。
圖2 展示了從出生到成年,人腦中神經(jīng)網(wǎng)絡(luò)的變化。
隨著我們的成長(zhǎng),大量的數(shù)據(jù)通過(guò)視覺、聽覺涌入大腦,使我們的神經(jīng)網(wǎng)絡(luò)連接,也就是這些神經(jīng)元連接線上的權(quán)重發(fā)生了變化,有些線上的權(quán)重增強(qiáng)了,有些線上的權(quán)重減弱了。
如圖3 所示。
2.2 計(jì)算機(jī)模仿神經(jīng)網(wǎng)絡(luò)連接關(guān)系
要用計(jì)算機(jī)模仿剛剛說(shuō)到的神經(jīng)網(wǎng)絡(luò)連接關(guān)系,讓計(jì)算機(jī)具備感性思維,需要4個(gè)步驟:
數(shù)據(jù)采集->搭建網(wǎng)絡(luò)->優(yōu)化參數(shù)->應(yīng)用網(wǎng)絡(luò)
- 數(shù)據(jù)采集:采集大量“標(biāo)簽/特征”數(shù)據(jù)
- 搭建網(wǎng)絡(luò):搭建神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
- 優(yōu)化參數(shù):訓(xùn)練網(wǎng)絡(luò)獲取最佳參數(shù)(反向傳播)
- 應(yīng)用網(wǎng)絡(luò):將網(wǎng)絡(luò)保存為模型,輸入新數(shù)據(jù),輸出分類或預(yù)測(cè)結(jié)果(前向傳播)
圖4 神經(jīng)網(wǎng)絡(luò)權(quán)重變化示意圖
3.神經(jīng)網(wǎng)絡(luò)設(shè)計(jì)過(guò)程
3.1 數(shù)據(jù)集介紹
本文中采用鳶尾花數(shù)據(jù)集,此數(shù)據(jù)集包含鳶尾花 “花萼長(zhǎng)、花萼寬、花瓣長(zhǎng)、花瓣寬 ”及對(duì)應(yīng)的類別。
其中前 4 個(gè)屬性作為輸入特征,類別作為標(biāo)簽,0 代表狗尾草鳶尾(Iris Setosa),1 代表雜色鳶尾(Iris Versicolour),2 代表弗吉尼亞鳶尾(Iris Virginica)。
人們通過(guò)對(duì)數(shù)據(jù)進(jìn)行分析總結(jié)出了規(guī)律:通過(guò)測(cè)量花的花萼長(zhǎng)、花萼寬、花瓣長(zhǎng)、花瓣寬,可以得出鳶尾花的類別
(如:“花萼長(zhǎng)>花萼寬” 且 “花瓣長(zhǎng)/花瓣寬>2” ,則 “雜色鳶尾”)。
由上述可知,可通過(guò) if 與 case 語(yǔ)句構(gòu)成專家系統(tǒng),進(jìn)行判別分類。
在本文中,采用搭建神經(jīng)網(wǎng)絡(luò)的辦法對(duì)其進(jìn)行分類。即將鳶尾花花萼長(zhǎng)、花萼寬、花瓣長(zhǎng)、花瓣寬四個(gè)輸入屬性喂入搭建好的神經(jīng)網(wǎng)絡(luò),網(wǎng)絡(luò)優(yōu)化參數(shù)得到模型,輸出分類結(jié)果。
3.2 網(wǎng)絡(luò)搭建與訓(xùn)練
采用搭建神經(jīng)網(wǎng)絡(luò)的辦法對(duì)其進(jìn)行分類,需要將鳶尾花花萼長(zhǎng)、花萼寬、花瓣長(zhǎng)、花瓣寬四個(gè)輸入屬性喂入搭建好的神經(jīng)網(wǎng)絡(luò),網(wǎng)絡(luò)優(yōu)化參數(shù)得到模型,輸出分類結(jié)果。設(shè)想中構(gòu)建的神經(jīng)網(wǎng)絡(luò)如下圖所示:
3.2.1 神經(jīng)元的計(jì)算模型
1943年,英國(guó)心理學(xué)家瑪卡洛克和數(shù)學(xué)家皮茨給出了神經(jīng)元的計(jì)算模型,即MP模型。
為求解簡(jiǎn)單,本文將MP模型進(jìn)行簡(jiǎn)化,去掉非線性函數(shù)后MP模型如下所示。
由矩陣乘法,該模型可用數(shù)學(xué)表達(dá)式寫為:
y = x × w + b y=x \times w+b y=x×w+b
在鳶尾花數(shù)據(jù)集中,各矩陣大小如下:
| y | 1 | 3 |
| x | 1 | 4 |
| w | 4 | 3 |
| b | – | 3 |
3.2.2 全連接網(wǎng)絡(luò)的搭建
搭建如圖所示的全連接網(wǎng)絡(luò):
1.初始化過(guò)程:搭建好基本網(wǎng)絡(luò)后,需要輸入特征數(shù)據(jù),并對(duì)線上權(quán)重 w 與偏置 b 進(jìn)行初始化。
假設(shè)搭建網(wǎng)絡(luò)時(shí)隨機(jī)初始化所有參數(shù)w和b分別如下:
2.前向傳播計(jì)算過(guò)程:有了輸入數(shù)據(jù)與線上權(quán)重等數(shù)據(jù),即可按照 y = x × w + b y=x \times w+b y=x×w+b 的方式進(jìn)行前向傳播。
假設(shè)某組鳶尾花數(shù)據(jù)為 [ 5.8 , 4.0 , 1.2 , 0.2 ](實(shí)際標(biāo)簽為0:狗尾草鳶尾花),則前向傳播計(jì)算過(guò)程如圖所示:
3.2.3 定義損失函數(shù)
3.2.3.1 損失函數(shù)
損失函數(shù)(loss function):定義預(yù)測(cè)值(y)和標(biāo)準(zhǔn)答案(標(biāo)簽)(y_)的差距。
損失函數(shù)可以定量的判斷當(dāng)前參數(shù) w 和 b 的優(yōu)劣,當(dāng)損失函數(shù)最小時(shí),即可得到最優(yōu) w 的值和 b 的值。
損失函數(shù)的定義有多種方法,均方誤差就是一種常用的損失函數(shù)。
均方誤差: M S E ( y , y _ ) = ∑ k = 0 n ( y ? y _ ) 2 n \mathbf{MSE}(y,y\_)=\frac{\sum_{k=0}^n(y-y\_)^2}{n} MSE(y,y_)=n∑k=0n?(y?y_)2?
3.2.3.2 梯度下降法
目的:尋找一組參數(shù) w 和 b ,使得損失函數(shù)最小。
方法:梯度下降法 - 損失函數(shù)的梯度表示損失函數(shù)對(duì)各參數(shù)求偏導(dǎo)后的向量,損失函數(shù)梯度下降的方向,就是是損失函數(shù)減小的方向。梯度下降法即沿著損失函數(shù)梯度下降的方向,尋找損失函數(shù)的最小值,從而得到最優(yōu)的參數(shù)。
梯度下降法更新參數(shù)時(shí)涉及的公式如下:
w t + 1 = w t ? l r × ? l o s s ? w t b t + 1 = b ? l r × ? l o s s ? b t w t + 1 × x + b t + 1 → y \boxed{ \begin{gathered} w_{t+1}=w_t-lr \times \frac{\partial{loss}}{\partial{w_t}}\\ b_{t+1}=b-lr \times \frac{\partial{loss}}{\partial{b_t}}\\ w_{t+1} \times x+b_{t+1} \rightarrow y \end{gathered} } wt+1?=wt??lr×?wt??loss?bt+1?=b?lr×?bt??loss?wt+1?×x+bt+1?→y??
其中,參數(shù)lr(learning rate)為學(xué)習(xí)率,用于表征梯度下降的速度,是一個(gè)超參數(shù)。
梯度下降更新的過(guò)程為反向傳播。
其中如學(xué)習(xí)率lr設(shè)置過(guò)小,參數(shù)更新會(huì)很慢;
如果學(xué)習(xí)率lr設(shè)置過(guò)大,參數(shù)更新可能會(huì)跳過(guò)最小值。
eg(舉例如下):
設(shè)損失函數(shù)為 l o s s = ( w + 1 ) 2 loss=(w+1)^2 loss=(w+1)2,則其對(duì) w 的偏導(dǎo)數(shù)為 ? l o s s ? w t = 2 w + 2 \frac{\partial{loss}}{\partial{w_t}}=2w+2 ?wt??loss?=2w+2。
該函數(shù)在平面內(nèi)的圖像如下所示:
由圖像可知,該函數(shù)在w=-1時(shí)損失函數(shù)達(dá)到最小值,故最優(yōu)解w=-1.
以下通過(guò)代碼仿真反向傳播過(guò)程中梯度下降法使損失函數(shù)減小,參數(shù)更新的過(guò)程:
改變參數(shù)lr的初始值,觀察程序的運(yùn)行結(jié)果:
- 當(dāng)lr取0.2時(shí),迭代31次后算法收斂,得到最優(yōu)解 w=-1
- 當(dāng)lr取0.01時(shí),迭代40次后算法未收斂,沒有得到最優(yōu)解
- 當(dāng)lr取0.99時(shí),迭代40次后算法未收斂,沒有得到最優(yōu)解,但取值在最優(yōu)解附件反復(fù)跳動(dòng)
傳送門
下一講將介紹TensorFlow2.1 中的基本概念與常用函數(shù)。
人工智能實(shí)踐:Tensorflow2.0筆記 北京大學(xué)MOOC(1-2)
總結(jié)
以上是生活随笔為你收集整理的人工智能实践:Tensorflow2.0笔记 北京大学MOOC(1-1)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: untiy下连接photon
- 下一篇: 如何写一个优质的网站标题title?