亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

(Python實現)

系統 1628 0

聲明:本人為機器學習初學者,此博文純為個人學習總結之用,難免出現紕漏錯誤之處,歡迎各位批評指正,不惜吝教!


編程環境:Anaconda3 , Python3.7


編程練習介紹

在本練習中,您將使用與之前編程作業(邏輯回歸識別手寫數字)中相同的訓練集,從而實現神經網絡向前傳播算法的手寫數字識別。 神經網絡相比較邏輯回歸而言,能夠表示非線性假設的復雜模型。而邏輯回歸不能形成更復雜的假設,因為它只是一個線性分類器.。本次的編程練習,還將使用已經訓練過的神經網絡中的參數。 您的目標是實現向前傳播算法并使用我們的參數進行預測。 在下周的練習中,將編寫神經網絡參數的反向傳播算法。

數據分析

本次的編程練習,提供兩個文件分別是:ex3data1.mat 和 ex3weights.mat 點擊鏈接即可獲取

  • ex3data1.mat 中包含5000個手寫數字訓練示例的數據集: 0~9 中十個數字,每個數字有500個樣式。共5000樣本數據。
    每個訓練樣例 20像素*20像素 ,展開成向量為400維行向量,由于每個訓練樣例都為數據矩陣X中的一行,所以X 5000行 400列 , 而標簽矩陣y 5000行 1列。ex3data1.mat中的數據部分信息如下圖所示:
    吳恩達機器學習第三周------(2)神經網絡向前傳播算法識別手寫數字(Python實現)_第1張圖片
  • ex3weights.mat 中是已經幫我們訓練好的參數theta1和theta2,ex3weights.mat中的數據部分信息如下圖所示:
    吳恩達機器學習第三周------(2)神經網絡向前傳播算法識別手寫數字(Python實現)_第2張圖片

模型表示

使用神經網絡的第一件事,就是建立神經網絡模型,即確定神經網絡的層數以及每層神經單元的數量。神經網絡模型由三層構成:輸入層,隱藏層,輸出層。通常輸入層的神經單元數即我們訓練集的特征數量,而輸出層的神經單元數即我們訓練集結果的類的數量。我們真正要確定的是隱藏層的層數和每個中間層的單元數,而一個合理的默認選項:只使用單個隱藏層。如果隱藏層數大于1,應盡量確保每個隱藏層的神經單元個數相同,通常情況下隱藏層神經單元的個數越多越好,即使大量的神經單元會導致計算量大的問題。一般來說,每個隱藏層所包含的神經單元數量還應當和輸入X的緯度即特征的數量相匹配或呈現倍數關系。

由于我們的輸入是數字圖像的像素值,并且像素的圖像尺寸為20像素*20像素,因此我們應設置400個輸入層神經單元(不包括額外的偏置神經元),設置10個輸出層神經單元,對應10個數字類,至于隱藏層,規定設置隱藏層的層數為一層,隱藏層的神經單元數量為25個。

  • 輸入層:400個神經單元
  • 隱藏層:25個神經單元
  • 輸出層:10個神經單元

神經挖網絡模型圖如下圖所示:
吳恩達機器學習第三周------(2)神經網絡向前傳播算法識別手寫數字(Python實現)_第3張圖片

實現過程

            
              import numpy as np
import scipy.io as sio
# 導入 ex3data1.mat 文件數據
data = sio.loadmat('ex3data1.mat')
raw_X = data['X']
raw_y = data['y']

            
          

為 raw_X 前插入一列值為1的數 ,賦值給 X

            
              X = np.insert(raw_X,0,values=1,axis=1)
X.shape
# (5000, 401)

            
          
            
              y = raw_y.flatten()
y.shape
# (5000,)

            
          
            
              # 導入 ex3weights.mat 文件數據
theta = sio.loadmat('ex3weights.mat')
theta.keys()
# dict_keys(['__header__', '__version__', '__globals__', 'Theta1', 'Theta2'])

            
          

獲取到已經訓練好的參數theta1和theta2

            
              theta1 = theta['Theta1']
theta2 = theta['Theta2']
theta1.shape,theta2.shape
# ((25, 401), (10, 26))

            
          

定義sigmoid函數

            
              def sigmoid(z):
    return 1/ (1 + np.exp(-z))

            
          

向前傳播

            
              a1 = X 
z2 = X @theta1.T
a2 = sigmoid(z2)
a2.shape
# (5000, 25)
a2 = np.insert(a2,0,values=1,axis=1)
a2.shape
# (5000, 26)
z3 = a2 @ theta2.T
a3 = sigmoid(z3)
a3.shape
# (5000, 10)

            
          
            
              y_pred = np.argmax(a3,axis=1)
y_pred = y_pred + 1
acc =  np.mean(y_pred == y)
acc
# 0.9752

            
          
            
              a3
# array([[1.12661530e-04, 1.74127856e-03, 2.52696959e-03, ...,
        4.01468105e-04, 6.48072305e-03, 9.95734012e-01],
       [4.79026796e-04, 2.41495958e-03, 3.44755685e-03, ...,
        2.39107046e-03, 1.97025086e-03, 9.95696931e-01],
       [8.85702310e-05, 3.24266731e-03, 2.55419797e-02, ...,
        6.22892325e-02, 5.49803551e-03, 9.28008397e-01],
       ...,
       [5.17641791e-02, 3.81715020e-03, 2.96297510e-02, ...,
        2.15667361e-03, 6.49826950e-01, 2.42384687e-05],
       [8.30631310e-04, 6.22003774e-04, 3.14518512e-04, ...,
        1.19366192e-02, 9.71410499e-01, 2.06173648e-04],
       [4.81465717e-05, 4.58821829e-04, 2.15146201e-05, ...,
        5.73434571e-03, 6.96288990e-01, 8.18576980e-02]])

            
          

更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 3级毛片 | fxxxx性欧美高清 | 国产精品98福利小视频 | 日本一区二区三区在线播放 | 伊人精品在线视频 | 久久99精品久久久久久青青日本 | 欧美色综合高清免费 | 亚欧在线精品免费观看一区 | 久草首页在线观看 | 国产欧美日韩精品一区二 | 亚洲高清在线mv | 午夜亚洲| 国产三级做爰高清视频a | 欧美在线视频7777kkkk | 欧美大成色www永久网站 | 国产精片 | 五月综合在线 | 国产国语videosex另类 | 成人久久伊人精品伊人 | 婷婷性| 国产a免费视频 | 激情五月婷婷在线 | 亚洲国产高清视频在线观看 | 中国一级毛片免费观看 | 欧美操片在线观看 | 国产乱肥老妇精品视频 | 亚洲欧美日本国产综合在线 | 天天干干 | 中国一级毛片欧美一级毛片 | 四虎精品影院2022 | 亚洲国产精品线观看不卡 | 99热在线看| 久青草视频在线 | 国产亚洲精品美女一区二区 | 久久亚洲国产成人影院 | 免费在线成人网 | 波多野结衣xxxx性精品 | 精品无码久久久久久国产 | 婷婷在线网 | 国产在线精品成人一区二区三区 | 日韩午夜在线视频 |