天天看點

看完發現RNN原來是這樣,機器學習人門貼送上

雲栖号資訊:【 點選檢視更多行業資訊

在這裡您可以找到不同行業的第一手的上雲資訊,還在等什麼,快來!

今天寫給小白的機器學習入門貼,就來介紹一下什麼是循環神經網絡,也就是RNN。

循環神經網絡就是專門處理序列的。由于它們在處理文本方面的有效性,是以經常用于自然語言處理(NLP)任務。

還是之前介紹的那個作者——Victor Zhou。

看完發現RNN原來是這樣,機器學習人門貼送上

RNN有什麼用?

傳統的神經網絡,以及CNN,它們存在的一個問題是,隻适用于預先設定的大小。

通俗一點,就是采用固定的大小的輸入并産生固定大小的輸出。

就比如上次提到的CNN例子,以4×4圖像為輸入,最終指定輸出2×2的圖像。

而RNN呢?它專注于處理文本,其輸入和輸出的長度是可變的,比如,一對一,一對多,多對一,多對多。

看這個圖,我想你就可以明白了。

看完發現RNN原來是這樣,機器學習人門貼送上

其中,輸入是紅色、RNN本身是綠色,輸出為藍色。

這種處理序列的能力十分有用,于是,RNN就有了豐富的應用場景。

比如,機器翻譯。

像你見到的,某歌、某道、某度,還有最近很火的DeepL翻譯器,它們都是“多對多”進行的。

原始文本序列被饋送到RNN,然後RNN生成翻譯後的文本作為輸出。

再比如,情緒分析。

通常使用的是“多對一”的RNN進行。将想要分析的文本輸入到RNN中,然後産生一個單一的輸出分類。

舉個例子:分析一個評論是正面還是負面的評論。

輸出得出:這是一個肯定的評論。

怎樣實作RNN?

我們就先來考慮一下,“多對多的RNN,輸入為x0、x1、x2……xn,輸出為y0、y1、y2……yn,這些xi,yi都是向量,具有任意次元。

RNNs的工作原理是疊代更新一個隐藏狀态h,它是一可以有任意次元的向量。

而對于任意的一個ht:

1、由對應的輸入xt與上一個隐藏層ht-1來計算

2、輸出yt是由ht計算出的結果。

這樣,前一次的輸出結果,就會帶到下一次的隐藏層中,跟着一起訓練。這樣看,是不是就感受到了循環二字了。

看完發現RNN原來是這樣,機器學習人門貼送上

每一個步驟都是采用的相同的權重,通常來講,一個典型的RNN通常隻需3組權重去完成它的計算。

看完發現RNN原來是這樣,機器學習人門貼送上

此外,還需要兩個偏差。

看完發現RNN原來是這樣,機器學習人門貼送上

由此,這3個權重跟2個偏差,就完成了整個RNN的計算。

将他們組合起來,方程式是這樣的。

看完發現RNN原來是這樣,機器學習人門貼送上

需要注意的是,這裡的權重是矩陣,而其他變量是向量哦!

這裡的第一個方程式,激活函數采用的是雙曲線函數,當然用之前提到的S型函數也是OK的。

文本是肯定還是否定?

接着,我們就來試着從頭開始執行RNN吧。

以一個簡單的情感分析為例,就是判斷一串給定的文本字元串是肯定的表達還是否定的。

比如,這些資料集。

看完發現RNN原來是這樣,機器學習人門貼送上

從這個表格看出,我們将使用“多對一”的RNN類型。

看完發現RNN原來是這樣,機器學習人門貼送上

每個輸入x都将是一個向量,代表文本中的一個單詞。

而輸出y則是一個包含兩個數字的向量,一個代表正數,一個代表負數,然後應用Softmax将這些值轉化為機率,并最終得出正負。

預處理

首先,我們要先進行一些預處理——将資料集轉化為可用的格式。因為RNN暫且還不能識别單詞,是以,我們需要建構一個所有單詞的詞彙表,并給它編号。

在詞彙表中,有18個單詞,那就意味着每一個單詞是一個x,那麼輸入就是一個18維的向量。

訓練RNN

接下來,就是按照原始RNN所需的3個權重,與2個偏差開始。

就是我們前面見過的公式。

看完發現RNN原來是這樣,機器學習人門貼送上

就像此前訓練CNN一樣,訓練RNN,首先需要一個損失函數。

此次将使用交叉熵損失與Softmax聯合計算:

看完發現RNN原來是這樣,機器學習人門貼送上

(其中c表示某個文本标簽,比如 correct)

舉個例子,如果一個肯定文本測試顯示有90%的機率是肯定的,那麼它的損失函數是:

看完發現RNN原來是這樣,機器學習人門貼送上

計算了損失函數以後,就要利用梯度下降的訓練來減小損失。

接下來,就涉及到多變量演算,計算思路跟之前的一樣,隻是具體計算公式有所不同。詳情就戳下方連結。

訓練之後,别忘了,還需要進行一番測試哦~

好了,今天有關RNN介紹,就到這裡了。

【雲栖号線上課堂】每天都有産品技術專家分享!

課程位址:

https://yqh.aliyun.com/live

立即加入社群,與專家面對面,及時了解課程最新動态!

【雲栖号線上課堂 社群】

https://c.tb.cn/F3.Z8gvnK

原文釋出時間:2020-05-31

本文作者:白交

本文來自:“

量子位公衆号

”,了解相關資訊可以關注“公衆号 QbitAI”

繼續閱讀