日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

人工智能实践:Tensorflow2.0笔记 北京大学MOOC(1-1)

發(fā)布時(shí)間:2024/1/8 编程问答 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 人工智能实践:Tensorflow2.0笔记 北京大学MOOC(1-1) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

人工智能實(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é)派:

  • 行為主義:基于控制論,構(gòu)建感知-動(dòng)作控制系統(tǒng)。(如人的平衡、行走、避障等自適應(yīng)控制系統(tǒng))
  • 符號(hào)主義:基于算數(shù)邏輯表達(dá)式,求解問(wèn)題時(shí)先把問(wèn)題描述為表達(dá)式,再求解表達(dá)式。(可用公式描述、實(shí)現(xiàn)理性思維,如專家系統(tǒng))
  • 連接主義:基于仿生學(xué),模仿神經(jīng)元連接關(guān)系。(仿腦神經(jīng)元連接,實(shí)現(xiàn)感性思維,如神經(jīng)網(wǎng)絡(luò))
  • 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ò)。

    圖1 神經(jīng)元示意圖

    圖2 展示了從出生到成年,人腦中神經(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 所示。

    圖3 神經(jīng)網(wǎng)絡(luò)權(quán)重變化示意圖

    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ù)集中,各矩陣大小如下:

    變量行數(shù)列數(shù)
    y13
    x14
    w43
    b3

    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分別如下:

    圖6 權(quán)重與偏置初始化矩陣

    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ò)程如圖所示:

    圖7 前向傳播計(jì)算過(guò)程示意圖 在本次計(jì)算中,1類鳶尾花得分最高,為2.01分,因此該鳶尾花被判斷為雜色鳶尾化(判斷失誤的原因是此時(shí)的w與b均為隨機(jī)產(chǎn)生的,輸出結(jié)果也就是隨機(jī)數(shù))

    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_)=nk=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ò)程:

    import tensorflow as tf w = tf.Variable(tf.constant(5, dtype=tf.float32)) lr = 0.2 #初始化參數(shù) epoch = 40for epoch in range(epoch): # for epoch 定義頂層循環(huán),表示對(duì)數(shù)據(jù)集循環(huán)epoch次,此例數(shù)據(jù)集數(shù)據(jù)僅有1個(gè)w,初始化時(shí)候constant賦值為5,循環(huán)40次迭代。with tf.GradientTape() as tape: # with結(jié)構(gòu)到grads框起了梯度的計(jì)算過(guò)程。loss = tf.square(w + 1)grads = tape.gradient(loss, w) # .gradient函數(shù)告知誰(shuí)對(duì)誰(shuí)求導(dǎo)w.assign_sub(lr * grads) # .assign_sub 對(duì)變量做自減 即:w -= lr*grads 即 w = w - lr*gradsprint("After %s epoch,w is %f,loss is %f" % (epoch, w.numpy(), loss))

    改變參數(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)題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。