我的作業筆記:吳恩達的Python機器學習課程(神經網路篇)
本文將介紹吳恩達的機器學習課程中關於神經網路的程式設計作業3和4。這也是我們在課程中遇到的第一個複雜的非線性演算法。我不瞭解你,但這個任務對於我來說肯定有一個陡峭的學習曲線。神經網路構成了深度學習的基礎,它具有廣泛的應用,如計算機視覺或自然語言處理。因此,重要的是獲得基本權利並在python中編碼這些賦值是確保這一點的一種方法。
在進入神經網路之前,讓我們完成邏輯迴歸的最後一節 - 多類Logistic迴歸。
該系列練習利用由5000個訓練示例組成的手寫數字資料集,其中每個示例都是20×20畫素的數字灰度影像。
載入資料集
由於資料集是以.mat格式而不是通常的.txt格式給出的,因此我需要使用scipy loadmat函式。官方文件可以在這裡找到。()由於loadmat將.mat檔案作為帶有變數名稱作為鍵的字典載入,因此分配X和y就像使用變數的鍵訪問dict一樣簡單。
為了更好地理解資料集,具有資料的形狀可以告訴我們資料的維度。 X形狀為5000,400,其對應5000個訓練示例,每個示例具有來自其20×20畫素的400個特徵。 y具有5000,1的形狀,其中每個訓練示例具有範圍從1到10的標籤(在該資料集中'0'數字被標記為'10')。
視覺化資料
上面的程式碼塊構造了100個子圖,並使用plt.imshow隨機視覺化5000個訓練示例中的100個。請注意,我們必須將訓練示例重新塑造為20 X 20畫素,才能將其視覺化並將order =“F”作為引數新增到重塑功能中,以確保影像的方向是垂直的。
計算成本函式和梯度
這類似於我們在Logistic迴歸分配中使用的成本函式。
現在進行分類任務。由於我們有多個類,我們必須使用一對一分類方法(每個類一個分類器)訓練多個邏輯迴歸分類器。
gradientDescent函式是我們之前實現的常用最佳化函式。對於oneVsAll,它遍歷所有的類,並使用梯度下降(作業中使用了fmincg函式)為每個類訓練一組。然後all_theta捕獲列表中的所有最佳化的theta並返回為numpy陣列,重新塑造為theta的矩陣,其中第i行對應於標籤i的分類器。 np.where在這裡派上用場,為每個類得到一個y的向量,每個類的向量有1/0,以便在每次迭代中進行二進位制分類任務。
繪製成本函式以確保梯度下降按預期工作
為了進行預測,計算每個類的x(i)的機率,並且預測為具有最高機率的類
訓練集準確度:91.46%
最後,神經網路的時間。使用相同的資料集,我們的目標是使用更復雜的演算法(如神經網路)實現更高的精度。對於練習的第一部分,我們給出了最佳化的θ值,我們需要進行前饋傳播以獲得預測和模型精度。
載入最佳化的theta
使用前饋傳播進行預測
訓練集準確度:97.52%。與多級邏輯迴歸相比,準確度更高!
在作業4中,我們致力於從頭開始實現神經網路。我們首先計算成本函式和θ的梯度。
該作業分步驟進行,首先是正則化成本、梯度,最後是正則化梯度。如果你想繼續,我修改了程式碼,只要你使用正確的索引,它就會返回中間步驟的值。
flatten()函式將陣列摺疊為一維,np.append將引數“展開”為向量。
在講座中討論了初始theta的對稱性問題。為了打破這種對稱性,需要隨機初始化。
最後,輪到我們使用前饋傳播和反向傳播來最佳化θ值。我正在使用的最佳化演算法再次是相同的舊梯度下降。
對執行程式碼的人發出警告。根據您的計算能力計算需要相當長的時間,如果您正在最佳化alpha和num_iters值,則需要更長的時間。我使用0.8表示alpha,對num_iters使用800,但我相信使用更多的tunnin可以獲得更好的準確性。
GitHub傳送門: ( / machine - learning by andrew - ng- in- python)
後續期待
來源:
來自 “ https://towardsdatascience.com/andrew-ngs-machine- ”,原文連結:http://blog.itpub.net/31545819/viewspace-2305497/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 吳恩達機器學習課程 筆記5 神經網路吳恩達機器學習筆記神經網路
- 吳恩達機器學習筆記——八、神經網路吳恩達機器學習筆記神經網路
- 吳恩達機器學習筆記 —— 9 神經網路學習吳恩達機器學習筆記神經網路
- 吳恩達《神經網路與深度學習》課程筆記(4)– 淺層神經網路吳恩達神經網路深度學習筆記
- 吳恩達《神經網路與深度學習》課程筆記(5)– 深層神經網路吳恩達神經網路深度學習筆記
- 吳恩達《卷積神經網路》課程筆記(1)– 卷積神經網路基礎吳恩達卷積神經網路筆記
- 吳恩達《序列模型》課程筆記(1)– 迴圈神經網路(RNN)吳恩達模型筆記神經網路RNN
- 吳恩達機器學習系列11:神經網路吳恩達機器學習神經網路
- 吳恩達《卷積神經網路》課程筆記(3)– 目標檢測吳恩達卷積神經網路筆記
- 吳恩達《神經網路與深度學習》課程筆記(3)– 神經網路基礎之Python與向量化吳恩達神經網路深度學習筆記Python
- 吳恩達《優化深度神經網路》課程筆記(2)– 優化演算法吳恩達優化神經網路筆記演算法
- 吳恩達《神經網路與深度學習》課程筆記(1)– 深度學習概述吳恩達神經網路深度學習筆記
- 吳恩達《卷積神經網路》課程筆記(2)– 深度卷積模型:案例研究吳恩達卷積神經網路筆記模型
- 吳恩達《神經網路與深度學習》課程筆記(2)– 神經網路基礎之邏輯迴歸吳恩達神經網路深度學習筆記邏輯迴歸
- 吳恩達《優化深度神經網路》課程筆記(1)– 深度學習的實用層面吳恩達優化神經網路筆記深度學習
- 吳恩達《卷積神經網路》課程筆記(4)– 人臉識別與神經風格遷移吳恩達卷積神經網路筆記
- 吳恩達機器學習筆記 —— 10 神經網路引數的反向傳播演算法吳恩達機器學習筆記神經網路反向傳播演算法
- 吳恩達《最佳化深度神經網路》課程筆記(2)– 最佳化演算法吳恩達神經網路筆記演算法
- 吳恩達《最佳化深度神經網路》課程筆記(1)– 深度學習的實用層面吳恩達神經網路筆記深度學習
- Stanford機器學習課程筆記——神經網路的表示機器學習筆記神經網路
- 吳恩達《Machine Learning》精煉筆記 5:神經網路吳恩達Mac筆記神經網路
- 吳恩達《構建機器學習專案》課程筆記(1)– 機器學習策略(上)吳恩達機器學習筆記
- 吳恩達《構建機器學習專案》課程筆記(2)– 機器學習策略(下)吳恩達機器學習筆記
- 吳恩達神經網路-第一週吳恩達神經網路
- 吳恩達機器學習筆記(3)吳恩達機器學習筆記
- Stanford機器學習課程筆記——神經網路學習機器學習筆記神經網路
- 吳恩達機器學習課程05——Logistic迴歸吳恩達機器學習
- 吳恩達機器學習筆記 —— 15 降維吳恩達機器學習筆記
- 吳恩達(Andrew Ng)——機器學習筆記1吳恩達機器學習筆記
- 吳恩達機器學習筆記 —— 11 應用機器學習的建議吳恩達機器學習筆記
- 吳恩達機器學習筆記 —— 18 大規模機器學習吳恩達機器學習筆記
- 吳恩達《Machine Learning》精煉筆記 4:神經網路基礎吳恩達Mac筆記神經網路
- 吳恩達對話LeCun:神經網路跌宕四十年吳恩達LeCun神經網路
- 吳恩達機器學習筆記 —— 13 支援向量機吳恩達機器學習筆記
- 吳恩達機器學習筆記 —— 8 正則化吳恩達機器學習筆記
- 吳恩達《序列模型》課程筆記(2)– NLP & Word Embeddings吳恩達模型筆記
- 吳恩達《優化深度神經網路》課程筆記(3)– 超引數除錯、Batch正則化和程式設計框架吳恩達優化神經網路筆記除錯BAT程式設計框架
- 機器學習 | 吳恩達機器學習第九周學習筆記機器學習吳恩達筆記