《動手學深度學習》task04課后習題


Task04:機器翻譯及相關技術;注意力機制與Seq2seq模型;Transformer

學習筆記見:https://www.cnblogs.com/guohaoblog/p/12324983.html

 機器翻譯及其技術

1、數據預處理中分詞(Tokenization)的工作是?

A、把詞語、標點用空格分開

B、把字符形式的句子轉化為單詞組成的列表

C、把句子轉化為單詞ID組成的列表

D、去除句子中的不間斷空白符等特殊字符

解析:選B

# 將text中句子轉化為源語言單詞列表和目標語言單詞列表
num_examples = 50000 source, target = [], [] for i, line in enumerate(text.split('\n')): if i > num_examples: break parts = line.split('\t') if len(parts) >= 2: source.append(parts[0].split(' ')) target.append(parts[1].split(' ')) source[0:3], target[0:3] --------------------------------------- Out: ([['go', '.'], ['hi', '.'], ['hi', '.']], [['va', '!'], ['salut', '!'], ['salut', '.']])

 

2、不屬於數據預處理工作的是?

A、得到數據生成器

B、建立詞典

C、分詞

D、把單詞轉化為詞向量

答案:D

文本預處理步驟:①讀入文本  ②分詞   ③建立字典(詞典)

單詞轉化為詞向量是模型結構的一部分,詞向量層一般作為網絡的第一層

 

3、下列不屬於單詞表里的特殊符號的是?

A、未知單詞

B、空格符

C、句子開始符

D、句子結束符

答:選B

數據預處理時,空格一般會被處理掉。本課時講的特殊符有:<bos>  <eos>  <unk>

 

4、集束搜索(Beam Search)說法錯誤的是

A、集束搜索結合了greedy search和維特比算法。

B、集束搜索使用beam size參數來限制在每一步保留下來的可能性詞的數量。

C、集束搜索是一種貪心算法。

D、集束搜索得到的是全局最優解。

答:選擇D

貪心算法(greedy search)

 

 維特比算法:選擇整體分數最高的句子(搜索空間太大) 集束搜索:

 

 

從A~E中選擇概率最大的兩個,得到A、C,再求與A、C相鄰的最大概率兩個,以此類推,最后可得到兩個序列,找出最大的一個。不是全局搜索,全局搜索相當於把每個節點都檢索一遍,並計算,比較耗時。維特比是啟發式(或貪心)的算法

 

5、不屬於Encoder-Decoder應用的是

A、機器翻譯

B、對話機器人

C、文本分類任務

D、語音識別任務

答:選擇C

Encoder-Decoder常應用於輸入序列和輸出序列的長度是可變的,如選項一二四,而分類問題的輸出是固定的類別,不需要使用Encoder-Decoder

 

6、關於Sequence to Sequence模型說法錯誤的是

A、訓練時decoder每個單元輸出的單詞作為下一個單元的輸入單詞

B、預測時decoder每個單元輸出得到的單詞作為下一個單元的輸入單詞

C、預測時decoder單元輸出為句子結束時跳出循環

D、每個batch訓練時encoder和decoder都有固定長度的輸入。

答:選擇A

訓練

 

 

預測

 

 每個batch訓練時encoder和decoder都有固定長度的輸入,每個batch輸入需要形狀一致。

 

注意力機制與Seq2seq模型

1、以下對於注意力機制敘述錯誤的是:

A、注意力機制借鑒了人類的注意力思維方式,以獲得需要重點關注的目標區域。

B、在計算注意力權重時,key 和 query 對應的向量維度需相等。

C、點積注意力層不引入新的模型參數。

D、注意力掩碼可以用來解決一組變長序列的編碼問題。

答:選擇B

在Dot-product Attention中,key與query維度需要一致,在MLP Attention中則不需要。

 

2、以下對於加入Attention機制的seq2seq模型的陳述正確的是:

A、seq2seq模型不可以生成無窮長的序列。

B、每個時間步,解碼器輸入的語境向量(context vector)相同

C、解碼器RNN仍由編碼器最后一個時間步的隱藏狀態初始化。

D、引入注意力機制可以加速模型訓練。

答:選擇C

A項:seq2seq模型的預測需人為設定終止條件,設定最長序列長度或者輸出[EOS]結束符號,若不加以限制則可能生成無窮長度序列

B項:不同,每個位置都會計算各自的attention輸出

D項:注意力機制本身有高效的並行性,但引入注意力並不能改變seq2seq內部RNN的迭代機制,因此無法加速。

 

3、關於點積注意力機制描述錯誤的是:

A、高維張量的矩陣乘法可用於並行計算多個位置的注意力分數。

B、計算點積后除以以減輕向量維度對注意力權重的影響。

C、可視化注意力權重的二維矩陣有助於分析序列內部的依賴關系。

D、對於兩個有效長度不同的輸入序列,若兩組鍵值對完全相同,那么對於同一個query的輸出一定相同。

答: 選擇D

有效長度不同導致 Attention Mask 不同,屏蔽掉無效位置后進行attention,會導致不同的輸出。

現在我們創建了兩個批,每個批有一個query和10個key-values對。我們通過valid_length指定,對於第一批,我們只關注前2個鍵-值對,而對於第二批,我們將檢查前6個鍵-值對。因此,盡管這兩個批處理具有相同的查詢和鍵值對,但我們獲得的輸出是不同的。

atten = DotProductAttention(dropout=0)

keys = torch.ones((2,10,2),dtype=torch.float)
values = torch.arange((40), dtype=torch.float).view(1,10,4).repeat(2,1,1)
atten(torch.ones((2,1,2),dtype=torch.float), keys, values, torch.FloatTensor([2, 6]))

# attention_weight
#  tensor([[[0.5000, 0.5000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000,
#          0.0000, 0.0000]],

#        [[0.1667, 0.1667, 0.1667, 0.1667, 0.1667, 0.1667, 0.0000, 0.0000,
#          0.0000, 0.0000]]])

輸出:

tensor([[[ 2.0000,  3.0000,  4.0000,  5.0000]],

        [[10.0000, 11.0000, 12.0000, 13.0000]]])

 

Transformer

1、關於Transformer描述正確的是:

A、在訓練和預測過程中,解碼器部分均只需進行一次前向傳播。

B、Transformer 內部的注意力模塊均為自注意力模塊。

C、解碼器部分在預測過程中需要使用 Attention Mask。

D、自注意力模塊理論上可以捕捉任意距離的依賴關系。

答:選擇D

A項:訓練過程1次,預測過程要進行句子長度次

B項:Decoder 部分的第二個注意力層不是自注意力,key-value來自編碼器而query來自解碼器

C項:不需要

D項:正確,因為自注意力會計算句子內任意兩個位置的注意力權重

 

2、在Transformer模型中,注意力頭數為h,嵌入向量和隱藏狀態維度均為d,那么一個多頭注意力層所含的參數量是:

 

 

 答:參考MultiHeadAttention模塊的定義。

 

 

 h個注意力頭中,每個的參數量為3d^2,最后的輸出層形狀為h×d ×d,所以參數量共為4hd^2。

 

3、下列對於層歸一化敘述錯誤的是:

 A、層歸一化有利於加快收斂,減少訓練時間成本

B、層歸一化對一個中間層的所有神經元進行歸一化

C、層歸一化對每個神經元的輸入數據以mini-batch為單位進行匯總

D、層歸一化的效果不會受到batch大小的影響

答: 選擇C

批歸一化(Batch Normalization)才是對每個神經元的輸入數據以mini-batch為單位進行匯總。

補充:Transformer還有一個重要的相加歸一化層,它可以平滑地整合輸入和其他層的輸出,因此我們在每個多頭注意力層和FFN層后面都添加一個含殘差連接的Layer Norm層。這里 Layer Norm 與7.5小節的Batch Norm很相似,唯一的區別在於Batch Norm是對於batch size這個維度進行計算均值和方差的,而Layer Norm則是對最后一維進行計算。層歸一化可以防止層內的數值變化過大,從而有利於加快訓練速度並且提高泛化性能。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM