吳恩達Coursera深度學習課程 DeepLearning.ai 提煉筆記(5-1)-- 迴圈神經網路
Ng最後一課釋出了,撒花!以下為吳恩達老師 DeepLearning.ai 課程專案中,第五部分《序列模型》第一週課程“迴圈神經網路”關鍵點的筆記。
同時我在知乎上開設了關於機器學習深度學習的專欄收錄下面的筆記,以方便大家在移動端的學習。歡迎關注我的知乎:大樹先生。一起學習一起進步呀!^_^
序列模型 — 迴圈神經網路
1. 序列模型的應用
- 語音識別:將輸入的語音訊號直接輸出相應的語音文字資訊。無論是語音訊號還是文字資訊均是序列資料。
- 音樂生成:生成音樂樂譜。只有輸出的音樂樂譜是序列資料,輸入可以是空或者一個整數。
- 情感分類:將輸入的評論句子轉換為相應的等級或評分。輸入是一個序列,輸出則是一個單獨的類別。
- DNA序列分析:找到輸入的DNA序列的蛋白質表達的子序列。
- 機器翻譯:兩種不同語言之間的想換轉換。輸入和輸出均為序列資料。
- 視訊行為識別:識別輸入的視訊幀序列中的人物行為。
- 命名實體識別:從輸入的句子中識別實體的名字。
2. 數學符號
- 輸入x:如“Harry Potter and Herminone Granger invented a new spell.”(以序列作為一個輸入),
x<t> 表示輸入x中的第t個符號。 - 輸出y:如“1 1 0 1 1 0 0 0 0”(人名定位),同樣,用
y<t> 表示輸出y中的第t個符號。 Tx 用來表示輸入x的長度;Ty 用來表示輸出y的長度;x(i)<t> 表示第i個輸入樣本的第t個符號,其餘同理。- 利用單詞字典編碼來表示每一個輸入的符號:如one-hot編碼等,實現輸入x和輸出y之間的對映關係。
3. 迴圈神經網路模型
傳統標準的神經網路:
對於學習X和Y的對映,我們可以很直接的想到一種方法就是使用傳統的標準神經網路。也許我們可以將輸入的序列X以某種方式進行字典編碼以後,如one-hot編碼,輸入到一個多層的深度神經網路中,最後得到對應的輸出Y。如下圖所示:
但是,結果表明這種方法並不好,主要是存在下面兩個問題:
- 輸入和輸出資料在不同的例子中可以有不同的長度;
- 這種樸素的神經網路結果並不能共享從文字不同位置所學習到的特徵。(如卷積神經網路中學到的特徵的快速地推廣到圖片其他位置)
迴圈神經網路:
迴圈神經網路作為一種新型的網路結構,在處理序列資料問題上則不存在上面的兩個缺點。在每一個時間步中,迴圈神經網路會傳遞一個啟用值到下一個時間步中,用於下一時間步的計算。如下圖所示:
這裡需要注意在零時刻,我們需要編造一個啟用值,通常輸入一個零向量,有的研究人員會使用隨機的方法對該初始啟用向量進行初始化。同時,上圖中右邊的迴圈神經網路的繪製結構與左邊是等價的。
迴圈神經網路是從左到右掃描資料的,同時共享每個時間步的引數。
Wax 管理從輸入x<t> 到隱藏層的連線,每個時間步都使用相同的Wax ,同下;Waa 管理啟用值a<t> 到隱藏層的連線;Wya 管理隱藏層到啟用值y<t> 的連線。
上述迴圈神經網路結構的缺點:每個預測輸出
迴圈神經網路的前向傳播:
下圖是迴圈神經網路結構圖:
- 構造初始啟用向量:
a<0>=0→ ; a<1>=g(Waaa<0>+Waxx<1>+ba) ;通常選擇tanh 作為啟用函式,有時也會使用Relu 作為啟用函式;(使用tanh函式梯度消失的問題會用其他方式解決)y^<1>=g(Wyaa<1>+by) ;如果是二分類問題,使用sigmoid作為啟用函式,如果是多分類問題,可以使用softmax啟用函式;- 注:其中
Wax 中,前面的a 表示要得到一個a 型別的量,x 表示引數W 要乘以一個x 型別的量,其餘Waa 、Wya 同理;
a<t>=g(Waaa<t−1>+Waxx<t>+ba)y^<t>=g(Wyaa<t>+by)
上式是RNN的一般前向傳播公式,我們還可以對上式進行簡化:
其中:
Wa=[Wa 相關推薦
吳恩達Coursera深度學習課程 DeepLearning.ai 提煉筆記(5-1)-- 迴圈神經網路
Ng最後一課釋出了,撒花!以下為吳恩達老師 DeepLearning.ai 課程專案中,第五部分《序列模型》第一週課程“迴圈神經網路”關鍵點的筆記。 同時我在知乎上開設了關於機器學習深度學習的專欄收錄下面的筆記,以方便大家在移動端的學習。歡迎關
吳恩達Coursera深度學習課程 DeepLearning.ai 提煉筆記(5-3)-- 序列模型和注意力機制
完結撒花!以下為吳恩達老師 DeepLearning.ai 課程專案中,第五部分《序列模型》第三週課程“序列模型和注意力機制”關鍵點的筆記。 同時我在知乎上開設了關於機器學習深度學習的專欄收錄下面的筆記,以方便大家在移動端的學習。歡迎關注我的知
吳恩達Coursera深度學習課程 DeepLearning.ai 提煉筆記(4-2)-- 深度卷積模型
以下為在Coursera上吳恩達老師的 DeepLearning.ai 課程專案中,第四部分《卷積神經網路》第二週課程“深度卷積模型”關鍵點的筆記。本次筆記幾乎涵蓋了所有視訊課程的內容。在閱讀以下筆記的同時,強烈建議學習吳恩達老師的視訊課程,視訊請至
吳恩達Coursera深度學習課程 DeepLearning.ai 提煉筆記(1-2)-- 神經網路基礎
以下為在Coursera上吳恩達老師的DeepLearning.ai課程專案中,第一部分《神經網路和深度學習》第二週課程部分關鍵點的筆記。筆記並不包含全部小視訊課程的記錄,如需學習筆記中捨棄的內容請至Coursera 或者 網易雲課堂。同時在閱讀以下
吳恩達Coursera深度學習課程 DeepLearning.ai 提煉筆記(1-3)-- 淺層神經網路
以下為在Coursera上吳恩達老師的DeepLearning.ai課程專案中,第一部分《神經網路和深度學習》第三週課程“淺層神經網路”部分關鍵點的筆記。筆記並不包含全部小視訊課程的記錄,如需學習筆記中捨棄的內容請至Coursera 或者 網易雲課堂
吳恩達Coursera深度學習課程 DeepLearning.ai 提煉筆記(1-4)-- 深層神經網路
以下為在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
吳恩達Coursera深度學習課程 DeepLearning.ai 程式設計作業——Convolution model:step by step and application (4.1)
一.Convolutional Neural Networks: Step by Step Welcome to Course 4’s first assignment! In this assignment, you will implement convol