吳恩達Coursera深度學習課程 DeepLearning.ai 提煉筆記(1-3)-- 淺層神經網路
以下為在Coursera上吳恩達老師的DeepLearning.ai課程專案中,第一部分《神經網路和深度學習》第三週課程“淺層神經網路”部分關鍵點的筆記。筆記並不包含全部小視訊課程的記錄,如需學習筆記中捨棄的內容請至Coursera 或者 網易雲課堂。同時在閱讀以下筆記之前,強烈建議先學習吳恩達老師的視訊課程。
同時我在知乎上開設了關於機器學習深度學習的專欄收錄下面的筆記,方便在移動端的學習。歡迎關注我的知乎:大樹先生。一起學習一起進步呀!^_^
神經網路和深度學習—淺層神經網路
1. 神經網路表示
簡單神經網路示意圖:
神經網路基本的結構和符號可以從上面的圖中看出,這裡不再複述。
主要需要注意的一點,是層與層之間引數矩陣的規格大小:
- 輸入層和隱藏層之間
w[1]−>(4,3) :前面的4是隱層神經元的個數,後面的3是輸入層神經元的個數;b[1]−>(4,1) :和隱藏層的神經元個數相同;
- 隱藏層和輸出層之間
w[1]−>(1,4) :前面的1是輸出層神經元的個數,後面的4是隱層神經元的個數;b[1]−>(1,1) :和輸出層的神經元個數相同;
由上面我們可以總結出,在神經網路中,我們以相鄰兩層為觀測物件,前面一層作為輸入,後面一層作為輸出,兩層之間的w引數矩陣大小為
在logistic regression中,一般我們都會用
2. 計算神經網路的輸出
除輸入層之外每層的計算輸出可由下圖總結出:
其中,每個結點都對應這兩個部分的運算,z運算和a運算。
在程式設計中,我們使用向量化去計算神經網路的輸出:
在對應圖中的神經網路結構,我們只用Python程式碼去實現右邊的四個公式即可實現神經網路的輸出計算。
3. 向量化實現
假定在m個訓練樣本的神經網路中,計算神經網路的輸出,用向量化的方法去實現可以避免在程式中使用for迴圈,提高計算的速度。
下面是實現向量化的解釋:
由圖可以看出,在m個訓練樣本中,每次計算都是在重複相同的過程,均得到同樣大小和結構的輸出,所以利用向量化的思想將單個樣本合併到一個矩陣中,其大小為
通過向量化,可以更加便捷快速地實現神經網路的計算。
4. 啟用函式的選擇
幾種不同的啟用函式
- sigmoid:
a=11+e−z
- 導數:
a′=a(1−a)
- 導數:
- tanh:
a=ez−e−zez+e−z
- 導數:
a′=1−a2
- 導數:
- ReLU(修正線性單元):
a=max(0,z) - Leaky ReLU:
a=max(0.01z,z)
啟用函式的選擇:
sigmoid函式和tanh函式比較:
- 隱藏層:tanh函式的表現要好於sigmoid函式,因為tanh取值範圍為
[−1,+1] ,輸出分佈在0值的附近,均值為0,從隱藏層到輸出層資料起到了歸一化(均值為0)的效果。 - 輸出層:對於二分類任務的輸出取值為
{0,1} ,故一般會選擇sigmoid函式。
然而sigmoid和tanh函式在當
ReLU彌補了前兩者的缺陷,當
Leaky ReLU保證在
在選擇啟用函式的時候,如果在不知道該選什麼的時候就選擇ReLU,當然也沒有固定答案,要依據實際問題在交叉驗證集合中進行驗證分析。
5. 神經網路的梯度下降法
以本節中的淺層神經網路為例,我們給出神經網路的梯度下降法的公式。
- 引數:
W[1],b[1],W[2],b[2] ; - 輸入層特徵向量個數:
nx=n[0] ; - 隱藏層神經元個數:
n[1] ; - 輸出層神經元個數:
n[2]=1 ; W[1] 的維度為(n[1],n[0]) ,b[1] 的維度為(n[1],1) ;W[2] 的維度為(n 相關推薦
吳恩達Coursera深度學習課程 DeepLearning.ai 提煉筆記(1-3)-- 淺層神經網路
以下為在Coursera上吳恩達老師的DeepLearning.ai課程專案中,第一部分《神經網路和深度學習》第三週課程“淺層神經網路”部分關鍵點的筆記。筆記並不包含全部小視訊課程的記錄,如需學習筆記中捨棄的內容請至Coursera 或者 網易雲課堂
吳恩達Coursera深度學習課程 DeepLearning.ai 提煉筆記(1-2)-- 神經網路基礎
以下為在Coursera上吳恩達老師的DeepLearning.ai課程專案中,第一部分《神經網路和深度學習》第二週課程部分關鍵點的筆記。筆記並不包含全部小視訊課程的記錄,如需學習筆記中捨棄的內容請至Coursera 或者 網易雲課堂。同時在閱讀以下
吳恩達Coursera深度學習課程 DeepLearning.ai 提煉筆記(5-3)-- 序列模型和注意力機制
完結撒花!以下為吳恩達老師 DeepLearning.ai 課程專案中,第五部分《序列模型》第三週課程“序列模型和注意力機制”關鍵點的筆記。 同時我在知乎上開設了關於機器學習深度學習的專欄收錄下面的筆記,以方便大家在移動端的學習。歡迎關注我的知
吳恩達Coursera深度學習課程 DeepLearning.ai 提煉筆記(1-4)-- 深層神經網路
以下為在Coursera上吳恩達老師的DeepLearning.ai課程專案中,第一部分《神經網路和深度學習》第四周課程“深層神經網路”部分關鍵點的筆記。筆記並不包含全部小視訊課程的記錄,如需學習筆記中捨棄的內容請至 Coursera 或者 網易雲課
吳恩達Coursera深度學習課程 DeepLearning.ai 提煉筆記(4-2)-- 深度卷積模型
以下為在Coursera上吳恩達老師的 DeepLearning.ai 課程專案中,第四部分《卷積神經網路》第二週課程“深度卷積模型”關鍵點的筆記。本次筆記幾乎涵蓋了所有視訊課程的內容。在閱讀以下筆記的同時,強烈建議學習吳恩達老師的視訊課程,視訊請至
吳恩達Coursera深度學習課程 DeepLearning.ai 提煉筆記(5-1)-- 迴圈神經網路
Ng最後一課釋出了,撒花!以下為吳恩達老師 DeepLearning.ai 課程專案中,第五部分《序列模型》第一週課程“迴圈神經網路”關鍵點的筆記。 同時我在知乎上開設了關於機器學習深度學習的專欄收錄下面的筆記,以方便大家在移動端的學習。歡迎關
Coursera深度學習課程 DeepLearning.ai 提煉筆記(1-2)-- 神經網路基礎
以下為在Coursera上吳恩達老師的DeepLearning.ai課程專案中,第一部分《神經網路和深度學習》第二週課程部分關鍵點的筆記。筆記並不包含全部小視訊課程的記錄,如需學習筆記中捨棄的內容請至Coursera 或者 網易雲課堂。同時在閱讀以下筆記之前,
吳恩達Coursera深度學習課程 deeplearning.ai (5-3) 序列模型和注意力機制--程式設計作業(二):觸發字檢測
Part 2: 觸發字檢測 關鍵詞語音喚醒 觸發字檢測 歡迎來到這個專業課程的最終程式設計任務! 在本週的視訊中,你瞭解瞭如何將深度學習應用於語音識別。在本作業中,您將構建一個語音資料集並實現觸發字檢測演算法(有時也稱為關鍵字檢測或喚醒檢測)。觸發字
吳恩達Coursera深度學習課程 deeplearning.ai (4-1) 卷積神經網路--程式設計作業
Part 1:卷積神經網路 本週課程將利用numpy實現卷積層(CONV) 和 池化層(POOL), 包含前向傳播和可選的反向傳播。 變數說明 上標[l][l] 表示神經網路的第幾層 上標(i)(i) 表示第幾個樣本 上標[i][i] 表示第幾個mi
吳恩達Coursera深度學習課程 DeepLearning.ai 程式設計作業——Regularization(2-1.2)
如果資料集沒有很大,同時在訓練集上又擬合得很好,但是在測試集的效果卻不是很好,這時候就要使用正則化來使得其擬合能力不會那麼強。 import numpy as np import sklearn import matplotlib.pyplot as plt
吳恩達Coursera深度學習課程 deeplearning.ai (4-1) 卷積神經網路--課程筆記
本課主要講解了卷積神經網路的基礎知識,包括卷積層基礎(卷積核、Padding、Stride),卷積神經網路的基礎:卷積層、池化層、全連線層。 主要知識點 卷積核: 過濾器,各元素相乘再相加 nxn * fxf -> (n-f+1)x(n-f+1)
吳恩達Coursera深度學習課程 deeplearning.ai (4-4) 人臉識別和神經風格轉換--課程筆記
Part 1:人臉識別 4.1 什麼是人臉識別? 人臉驗證: 輸入圖片,驗證是不是 A 人臉識別: 有一個庫,輸入圖片,驗證是不是庫裡的一員 人臉識別難度更大,要求準確率更高,因為1%的人臉驗證錯誤在人臉識別中會被放大很多倍。 4.2 O
吳恩達Coursera深度學習課程 deeplearning.ai (5-1) 迴圈序列模型--程式設計作業(一):構建迴圈神經網路
Part 1: 構建神經網路 歡迎來到本週的第一個作業,這個作業我們將利用numpy實現你的第一個迴圈神經網路。 迴圈神經網路(Recurrent Neural Networks: RNN) 因為有”記憶”,所以在自然語言處理(Natural Languag
吳恩達Coursera深度學習課程 deeplearning.ai (5-1) 迴圈序列模型--課程筆記
1.1 為什麼選擇序列模型 序列模型的應用 語音識別:將輸入的語音訊號直接輸出相應的語音文字資訊。無論是語音訊號還是文字資訊均是序列資料。 音樂生成:生成音樂樂譜。只有輸出的音樂樂譜是序列資料,輸入可以是空或者一個整數。 情感分類:將輸入的評論句子轉換
吳恩達Coursera深度學習課程 deeplearning.ai (5-3) 序列模型和注意力機制--課程筆記
3.1 基礎模型 sequence to sequence sequence to sequence:兩個序列模型組成,前半部分叫做編碼,後半部分叫做解碼。用於機器翻譯。 image to sequence sequence to sequenc
吳恩達Coursera深度學習課程 deeplearning.ai (5-2) 自然語言處理與詞嵌入--程式設計作業(一):詞向量運算
Part 1: 詞向量運算 歡迎來到本週第一個作業。 由於詞嵌入的訓練計算量龐大切耗費時間長,絕大部分機器學習人員都會匯入一個預訓練的詞嵌入模型。 你將學到: 載入預訓練單詞向量,使用餘弦測量相似度 使用詞嵌入解決類別問題,比如 “Man is to
吳恩達Coursera深度學習課程 deeplearning.ai (4-2) 深度卷積網路:例項探究--課程筆記
本課主要講解了一些典型的卷積神經網路的思路,包括經典神經網路的leNet/AlexNet/VGG, 以及殘差網路ResNet和Google的Inception網路,順便講解了1x1卷積核的應用,便於我們進行學習和借鑑。 2.1 為什麼要進行例項探究 神經
吳恩達Coursera深度學習課程 deeplearning.ai (2-1) 深度學習實踐--程式設計作業
初始化 一個好的初始化可以做到: 梯度下降的快速收斂 收斂到的對訓練集只有較少錯誤的值 載入資料 import numpy as np import matplotlib.pyplot as plt import sklearn impo
吳恩達Coursera深度學習課程 deeplearning.ai (4-4) 人臉識別和神經風格轉換--程式設計作業
Part 1:Happy House 的人臉識別 本週的第一個作業我們將完成一個人臉識別系統。 人臉識別問題可以分為兩類: 人臉驗證: 輸入圖片,驗證是不是A 1:1 識別 舉例:人臉解鎖手機,人臉刷卡 人臉識別: 有一個庫,輸入圖片,驗證是不是庫裡的
吳恩達Coursera深度學習課程 deeplearning.ai (5-2) 自然語言處理與詞嵌入--程式設計作業(二):Emojify表情包
Part 2: Emojify 歡迎來到本週的第二個作業,你將利用詞向量構建一個表情包。 你有沒有想過讓你的簡訊更具表現力? emojifier APP將幫助你做到這一點。 所以不是寫下”Congratulations on the promotion! L