以前遇到的面試題
1. LSTM的網絡結構,以及和GRU的區別面試
答案: LSTM的三個門:輸入門、輸出門、遺忘門。 GRU的兩個門:更新門和重置門。網絡
2. 若是訓練集和測試集的正確率都很高,可是實際應用的使用模型正確率很低?異步
答案:發生了數據泄露。這種多是在數據集劃分的時候,也多是模型的問題,好比transformer decoder沒有作mask。(答過擬合是不對的,答訓練集和測試集和實際分佈有差別是能夠的)函數
3. 爲何BERT須要mask,以前的模型不須要?學習
答案:BERT是雙向的Encoder,因此須要mask。GPT是單向的transformer,ElMo是兩個單向的LSTM編碼的拼接。測試
4. Transformer的Muti Head的作法的緣由?優化
答案:相似CNN的多個卷積核,目的是分紅多個獨立的子空間,能夠學習到更豐富的語義特徵,從而增大模型的容量。編碼
Multi-head attention allows the model to jointly attend to information from different representation subspaces at different positions.spa
5. 最大後驗估計和最大似然的區別3d
答案:最大後驗估計 = 似然函數 × 先驗機率
6. 邏輯迴歸和樸素貝葉斯的區別
答案:
- Logistic Regression屬於判別式模型,Naive Bayes屬於生成模型。
- Naive Bayes是創建在條件獨立假設基礎之上的,Logistic Regression的限制則要寬鬆不少。
- Naive Bayes不須要優化參數,Logistic Regression須要創建損失函數,而後利用梯度降低進行優化。(參數模型和非參模型)
7. HMM、MEMM、CRF的區別
答案:
- HMM是生成式模型,MEMM和CRF是判別式模型。
- HMM模型中存在兩個假設:一是輸出觀察值之間嚴格獨立,二是狀態的轉移過程當中當前狀態只與前一狀態有關(一階馬爾可夫模型)。
- MEMM模型克服了觀察值之間嚴格獨立產生的問題,可是因爲狀態之間的假設理論,使得該模型存在標註偏置問題。
- CRF模型解決了標註偏置問題,去除了HMM中兩個不合理的假設,模型相應得也變複雜了。
8. BN的訓練和測試
答案:
- 訓練時每次會傳入一批數據,計算每一個batch的均值和方差,並計算移動平均做爲訓練集的均值和方差
- 當測試或預測時,每次可能只會傳入單個數據,這個時候直接使用訓練集的均值和方差
9. 分類樣本不平衡如何解決
答案:
- 數據層面:數據上採樣或者下采樣
- 評價指標:選用F1或者AUC等對數據不平衡不敏感的指標
- 損失函數:使用Focal Loss等損失函數
- word2vec的損失函數
答案: CBOW是根據context預測中間詞,所以是:
Skip-gram是根據context預測中間詞,所以是:
- ELMo的損失函數
答案:兩個雙向的語言模型的log損失函數之和
- TF實現多GPU並行?
答案:
同步模式:
tf中的並行主要分爲兩種:
- 模型並行: 將模型中不一樣計算節點放在不一樣硬件資源上運算
- 數據並行: 同時使用多個硬件資源來計算不一樣batch的數據的梯度,幾乎適用於全部深度學習模型
數據並行
- 同步數據並行: 等待全部GPU都計算完一個batch數據的梯度後,再統一將多個梯度合在一塊兒,並共享更新後的模型參數,這相似於用了一個較大的batch
- 異步數據並行: 不等待全部GPU都完成計算,而是哪一個GPU完成了運算就當即將梯度更新到共享的模型參數中