吳恩達的Python機器學習課程,你學到哪一步了?

尋夢新聞LINE@每日推播熱門推薦文章,趣聞不漏接❤️

加入LINE好友

點擊上方關注,All in AI中國

吳恩達的Python機器學習課程,你學到哪一步瞭?

本文將介紹吳恩達的機器學習課程中關於神經網路的編程作業3和4。這也是我們在課程中遇到的第一個複雜的非線性算法。我不了解你,但這個任務對於我來說肯定有一個陡峭的學習曲線。神經網路構成了深度學習的基礎,它具有廣泛的應用,如計算機視覺或自然語言處理。因此,重要的是獲得基本權利並在python中編碼這些賦值是確保這一點的一種方法。

在進入神經網路之前,讓我們完成邏輯回歸的最後一節 – 多類Logistic回歸。

該系列練習利用由5000個訓練示例組成的手寫數字數據集,其中每個示例都是20×20像素的數字灰度圖像。

加載數據集

吳恩達的Python機器學習課程,你學到哪一步瞭?

由於數據集是以.mat格式而不是通常的.txt格式給出的,因此我需要使用scipy loadmat函數。官方文檔可以在這里找到。(https://docs.scipy.org/doc/scipy-0.19.0/reference/generated/scipy.io.loadmat.html)由於loadmat將.mat文件作為帶有變量名稱作為鍵的字典加載,因此分配X和y就像使用變量的鍵訪問dict一樣簡單。

吳恩達的Python機器學習課程,你學到哪一步瞭?

為了更好地理解數據集,具有數據的形狀可以告訴我們數據的維度。 X形狀為5000,400,其對應5000個訓練示例,每個示例具有來自其20×20像素的400個特徵。 y具有5000,1的形狀,其中每個訓練示例具有架式圍從1到10的標籤(在該數據集中’0’數字被標記為’10’)。

可視化數據

吳恩達的Python機器學習課程,你學到哪一步瞭?

上面的代碼塊構造了100個子圖,並使用plt.imshow隨機可視化5000個訓練示例中的100個。請注意,我們必須將訓練示例重新塑造為20 X 20像素,才能將其可視化並將order =「F」作為參數添加到重塑功能中,以確保圖像的方向是垂直的。

吳恩達的Python機器學習課程,你學到哪一步瞭?

計算成本函數和梯度

吳恩達的Python機器學習課程,你學到哪一步瞭?

這類似於我們在Logistic回歸分配中使用的成本函數。

吳恩達的Python機器學習課程,你學到哪一步瞭?

吳恩達的Python機器學習課程,你學到哪一步瞭?

現在進行分類任務。由於我們有多個類,我們必須使用一對一分類方法(每個類一個分類器)訓練多個邏輯回歸分類器。

吳恩達的Python機器學習課程,你學到哪一步瞭?

gradientDescent函數是我們之前做到的常用優化函數。對於oneVsAll,它遍歷所有的類,並使用梯度下降(作業中使用了fmincg函數)為每個類訓練一組。然後all_theta捕獲列表中的所有優化的theta並返回為numpy數組,重新塑造為theta的矩陣,其中第i行對應於標籤i的分類器。 np.where在這里派上用場,為每個類得到一個y的向量,每個類的向量有1/0,以便在每次迭代中進行二進制分類任務。

繪制成本函數以確保梯度下降按預期工作

吳恩達的Python機器學習課程,你學到哪一步瞭?

吳恩達的Python機器學習課程,你學到哪一步瞭?

alpha = 1,num_iters = 300

為了進行預測,計算每個類的x(i)的概率,並且預測為具有最高概率的類

吳恩達的Python機器學習課程,你學到哪一步瞭?

訓練集準確度:91.46%

最後,神經網路的時間。使用相同的數據集,我們的目標是使用更複雜的算法(如神經網路)做到更高的精度。對於練習的第一部分,我們給出了優化的θ值,我們需要進行前饋傳播以獲得預測和模型精度。

加載優化的theta

吳恩達的Python機器學習課程,你學到哪一步瞭?

使用前饋傳播進行預測

吳恩達的Python機器學習課程,你學到哪一步瞭?

訓練集準確度:97.52%。與多級邏輯回歸相比,準確度更高!

在作業4中,我們致力於從頭開始做到神經網路。我們首先計算成本函數和θ的梯度。

吳恩達的Python機器學習課程,你學到哪一步瞭?

該作業分步驟進行,首先是正則化成本、梯度,最後是正則化梯度。如果你想繼續,我修改了代碼,只要你使用正確的索引,它就會返回中間步驟的值。

吳恩達的Python機器學習課程,你學到哪一步瞭?

吳恩達的Python機器學習課程,你學到哪一步瞭?

flatten()函數將數組折疊為一維,np.append將參數「展開」為向量。

在講座中討論了初始theta的對稱性問題。為了打破這種對稱性,需要隨機初始化。

吳恩達的Python機器學習課程,你學到哪一步瞭?

最後,輪到我們使用前饋傳播和反向傳播來優化θ值。我正在使用的優化算法再次是相同的舊梯度下降。

吳恩達的Python機器學習課程,你學到哪一步瞭?

對執行代碼的人發出警告。根據您的計算能力計算需要相當長的時間,如果您正在優化alpha和num_iters值,則需要更長的時間。我使用0.8表示alpha,對num_iters使用800,但我相信使用更多的tunnin可以獲得更好的準確性。

吳恩達的Python機器學習課程,你學到哪一步瞭?

吳恩達的Python機器學習課程,你學到哪一步瞭?

GitHub傳送門: (https://github.com/benlau93 / machine – learning by andrew – ng- in- python)

後續期待

來源:https://towardsdatascience.com/andrew-ngs-machine-learning-course-in-python-neural-networks-e526b41fdcd9

吳恩達的Python機器學習課程,你學到哪一步瞭?

About 尋夢園
尋夢園是台灣最大的聊天室及交友社群網站。 致力於發展能夠讓會員們彼此互動、盡情分享自我的平台。 擁有數百間不同的聊天室 ,讓您隨時隨地都能找到志同道合的好友!