1. 程式人生 > >BAT機器學習面試題1000題(306~310題)

BAT機器學習面試題1000題(306~310題)

640?wx_fmt=png&wxfrom=5&wx_lazy=1

《BAT機器學習面試1000題》系列作為國內首個AI題庫,囊括絕大部分機器學習和深度學習的筆試面試題、知識點,可以作為機器學習自測題,也可以當做查漏補缺的資料庫。七月線上AI題庫(網頁版及APP版)見“閱讀原文

306. LSTM神經網路輸入輸出究竟是怎樣的?
@YJango,本題解析來源:https://www.zhihu.com/question/41949741
Recurrent Layers——介紹(https://zhuanlan.zhihu.com/p/24720659?refer=YJango)

  • 第一要明確的是神經網路所處理的單位全部都是:向量

下面就解釋為什麼你會看到訓練資料會是矩陣和張量

  • 常規feedforward 輸入和輸出:矩陣

       輸入矩陣形狀:(n_samples, dim_input)
       輸出矩陣形狀:(n_samples, dim_output)
注:真正測試/訓練的時候,網路的輸入和輸出就是向量而已。加入n_samples這個維度是為了可以實現一次訓練多個樣本,求出平均梯度來更新權重,這個叫做Mini-batch gradient descent。 如果n_samples等於1,那麼這種更新方式叫做Stochastic Gradient Descent (SGD)。
Feedforward 的輸入輸出的本質都是單個向量。

  • 常規Recurrent (RNN/LSTM/GRU) 輸入和輸出:張量

       輸入張量形狀:(time_steps, n_samples,  dim_input)
       輸出張量形狀:(time_steps, n_samples,  dim_output)
注:同樣是保留了Mini-batch gradient descent的訓練方式,但不同之處在於多了time step這個維度。 
Recurrent 的任意時刻的輸入的本質還是單個向量,只不過是將不同時刻的向量按順序輸入網路。所以你可能更願意理解為一串向量 a sequence of vectors,或者是矩陣。

python程式碼表示預測的話:

import numpy as np 
#當前所累積的hidden_state,若是最初的vector,則hidden_state全為0
hidden_state=np.zeros((n_samples, dim_input))
#print(inputs.shape):(time_steps, n_samples, dim_input)
outputs = np.zeros((time_steps, n_samples, dim_output))

for i in range(time_steps):
   #輸出當前時刻的output,同時更新當前已累積的hidden_state outputs[i],
   hidden_state = RNN.predict(inputs[i],hidden_state)
#print(outputs.shape):(time_steps, n_samples, dim_output)

但需要注意的是,Recurrent nets的輸出也可以是矩陣,而非三維張量,取決於你如何設計。

  1. 若想用一串序列去預測另一串序列,那麼輸入輸出都是張量 (例如語音識別或機器翻譯 一箇中文句子翻譯成英文句子(一個單詞算作一個向量),機器翻譯還是個特例,因為兩個序列的長短可能不同,要用到seq2seq;

  2. 若想用一串序列去預測一個值,那麼輸入是張量,輸出是矩陣 (例如,情感分析就是用一串單片語成的句子去預測說話人的心情)

Feedforward 能做的是向量對向量的one-to-one mapping,
Recurrent 將其擴充套件到了序列對序列 sequence-to-sequence mapping.

但單個向量也可以視為長度為1的序列。所以有下圖幾種型別:
0?wx_fmt=jpeg
除了最左側的one to one是feedforward 能做的,右側都是Recurrent所擴充套件的

若還想知道更多

  • 可以將Recurrent的橫向操作視為累積已發生的事情,並且LSTM的memory cell機制會選擇記憶或者忘記所累積的資訊來預測某個時刻的輸出。

  • 以概率的視角理解的話:就是不斷的conditioning on已發生的事情,以此不斷縮小sample space

  • RNN的思想是: current output不僅僅取決於current input,還取決於previous state;可以理解成current output是由current input和previous hidden state兩個輸入計算而出的。並且每次計算後都會有資訊殘留於previous hidden state中供下一次計算

307.以下關於PMF(概率質量函式),PDF(概率密度函式),CDF(累積分佈函式)描述錯誤的是?
A.PDF描述的是連續型隨機變數在特定取值區間的概率
B.CDF是PDF在特定區間上的積分
C.PMF描述的是離散型隨機變數在特定取值點的概率
D.有一個分佈的CDF函式H(x),則H(a)等於P(X<=a)

正確答案:A
解析:
概率質量函式 (probability mass function,PMF)是離散隨機變數在各特定取值上的概率。
概率密度函式(p robability density function,PDF )是對 連續隨機變數 定義的,本身不是概率,只有對連續隨機變數的取值進行積分後才是概率。
累積分佈函式(cumulative distribution function,CDF) 能完整描述一個實數隨機變數X的概率分佈,是概率密度函式的積分。對於所有實數x 與pdf相對。

308.線性迴歸的基本假設有哪些?(ABDE)
A.隨機誤差項是一個期望值為0的隨機變數;
B.對於解釋變數的所有觀測值,隨機誤差項有相同的方差;
C.隨機誤差項彼此相關;
D.解釋變數是確定性變數不是隨機變數,與隨機誤差項之間相互獨立;
E.隨機誤差項服從正態分佈

309.處理類別型特徵時,事先不知道分類變數在測試集中的分佈。要將 one-hot encoding(獨熱碼)應用到類別型特徵中。那麼在訓練集中將獨熱碼應用到分類變數可能要面臨的困難是什麼?
A. 分類變數所有的類別沒有全部出現在測試集中
B. 類別的頻率分佈在訓練集和測試集是不同的
C. 訓練集和測試集通常會有一樣的分佈
答案為:A、B ,如果類別在測試集中出現,但沒有在訓練集中出現,獨熱碼將不能進行類別編碼,這是主要困難。如果訓練集和測試集的頻率分佈不相同,我們需要多加小心。

310.假定你在神經網路中的隱藏層中使用啟用函式 X。在特定神經元給定任意輸入,你會得到輸出「-0.0001」。X 可能是以下哪一個啟用函式?
A. ReLU
B. tanh
C. SIGMOID
D. 以上都不是
答案為:B,該啟用函式可能是 tanh,因為該函式的取值範圍是 (-1,1)。

往期題目:

640?wx_fmt=png

0?wx_fmt=gif提高學習效率,顛覆傳統刷題!