Python 挑戰 ML (機器學習) -- 練習題 [3]

📝 測驗說明與操作指南(管線工程與實戰進階篇)

  • 作答方式:請閱讀題目後,直接點擊下方您認為正確的選項((A), (B), (C), (D))。
  • 即時判定:點擊選項後,系統會透過純 CSS 機制立即判定對錯。若答對,系統會顯示綠色提示;若答錯,系統會標示紅色,並為您同步標出真正的正確答案。
  • 觀看解析:作答選定後,選項下方會自動展開詳細的管線與模型觀念解析,幫助您加深記憶。
⚠️ 注意:本測驗採用單次鎖定作答設計,點選任何選項後即無法更改,請確認思考後再點選。
Q1. 在 PyTorch 的標準訓練迴圈中,若發現 Loss 一直維持常數完全沒有下降,且已經確認呼叫了 loss.backward() 產生梯度,最可能是遺漏了下列哪一行程式碼?

✅ 答對了!

❌ 答錯了!

💡 解析:loss.backward() 只負責計算梯度並存放在變數中。必須呼叫 optimizer.step() 才會根據算出的梯度實際更新網路權重,Loss 才會下降。

Q2. 在進行特徵工程時,若想用 Pandas 依據各「部門(Department)」的「平均薪資(Salary)」來填補該部門員工薪資的遺漏值(NaN),下列哪一段程式碼最為正確?

✅ 答對了!

❌ 答錯了!

💡 解析:groupby 後搭配 transform 可以保持原始資料表的列數不變,並將分組計算出來的平均值(x.mean())精準填補回該組的缺失值(fillna)中。

Q3. 處理嚴重類別不平衡資料時常使用 SMOTE 技術。在使用 Scikit-learn 進行 K-Fold 交叉驗證時,為了避免嚴重的「資料洩漏(Data Leakage)」,SMOTE 應該在什麼階段套用?

✅ 答對了!

❌ 答錯了!

💡 解析:若先對全資料 SMOTE 再切分,會導致驗證集混入人工合成的假資料,讓模型提早「偷看」並產生極度虛高且不真實的評估分數。

Q4. 在建構神經網路進行「二元分類」時,為何實務上強烈不建議使用 MSE(均方誤差)作為損失函數,而是採用 BCE(二元交叉熵)?

✅ 答對了!

❌ 答錯了!

💡 解析:Sigmoid 函數在輸出趨近 0 或 1 時梯度會趨近於 0。若搭配 MSE,即使模型極度自信卻預測錯誤,依然無法產生足夠的梯度來修正;而交叉熵的對數特性剛好能抵銷此問題。

Q5. 相較於傳統的 TF-IDF 矩陣,使用 Word2Vec 或 BERT 產生的詞向量(Word Embeddings)具有什麼最關鍵的數學特徵?

✅ 答對了!

❌ 答錯了!

💡 解析:TF-IDF 是超高維度且極度稀疏的矩陣,無法理解「蘋果」和「橘子」都是水果的幾何靠近性。詞嵌入技術透過低維稠密向量完美解決了語意關聯問題。

Q6. 在 YOLO 物件偵測演算法中,會將輸入影像均勻劃分為 S x S 的網格(Grid)。某一個特定網格單元(Grid Cell)的「主要職責」是什麼?

✅ 答對了!

❌ 答錯了!

💡 解析:YOLO 的核心設計哲學:無論物件有多大,只要它的「中心點」落在哪個 Grid Cell 裡,那個 Cell 就要全權負責預測並框出這個物件。

Q7. 假設你的資料集極度不平衡(99% 正常交易,1% 詐欺交易)。你訓練的模型測出 ROC AUC 高達 0.95,但 Precision-Recall AUC 卻只有 0.15。這代表什麼?

✅ 答對了!

❌ 答錯了!

💡 解析:ROC 曲線的 FPR 分母包含了所有的負樣本(99%)。只要負樣本超多,FPR 就會被稀釋得很低,使得 ROC 看起來很完美。而 PR 曲線只關心「被預測為正」的樣本,能戳破這種虛高的假象。

Q8. Adam 優化器是目前深度學習的預設首選。若與其前身 RMSProp 相比,Adam 主要加入了什麼核心數學機制來進一步穩定訓練?

✅ 答對了!

❌ 答錯了!

💡 解析:RMSProp 只使用了二階動量(梯度的平方)來動態調整學習率。Adam (Adaptive Moment Estimation) 同時結合了一階動量(方向慣性)與二階動量(步伐大小),達到最優的適應性。

Q9. 訓練隨機森林(Random Forest)模型時,發現訓練集準確率達 100%,但在測試集上僅有 65%。若要透過 Scikit-learn 緩解此嚴重的過擬合(Overfitting),調整下列哪一組超參數最有效?

✅ 答對了!

❌ 答錯了!

💡 解析:訓練集 100% 代表決策樹生長得太深、太細碎,完美記住了每一筆訓練資料。限制深度(max_depth)或要求葉節點必須有足夠樣本(min_samples_leaf)能強迫模型提早停止生長,增加泛化能力。

Q10. 在使用 PCA 進行降維時,我們會計算共變異數矩陣的特徵向量(Eigenvectors)與特徵值(Eigenvalues)。這些「特徵值」在實務上的統計意義為何?

✅ 答對了!

❌ 答錯了!

💡 解析:特徵向量決定了投影的方向,而特徵值的大小則代表了該方向上涵蓋了多少原始資料的分散程度(變異量)。特徵值越大的主成分,能解釋的資訊就越多。

Q11. 現代 NLP 模型(如 BERT)在處理未曾出現在訓練字典中的「未知詞彙(OOV, Out-of-Vocabulary)」時,採用了什麼機制來避免直接輸出無法辨識的 標籤?

✅ 答對了!

❌ 答錯了!

💡 解析:例如遇到未知的 'playing',WordPiece 會將其拆解為 'play' 和 '##ing' 兩個已知單位。這大幅減少了 OOV 問題,並讓模型能推敲未知詞彙的語意。

Q12. 在物件偵測中評估 IOU(交集比聯集)時,若預測的邊界框(Pred Box)「完全包覆」了真實邊界框(GT Box),且預測框的面積剛好是真實框面積的 2 倍,則此時的 IOU 值為何?

✅ 答對了!

❌ 答錯了!

💡 解析:因為預測框完全包覆真實框,交集(Intersection)面積等於真實框面積 (1)。聯集(Union)面積則是預測框面積 (2)。IOU = 1 / 2 = 0.5。

Q13. 在 PyTorch 中使用 CosineAnnealingLR 作為學習率排程器(Scheduler)時,其學習率變化的軌跡具有什麼特徵?

✅ 答對了!

❌ 答錯了!

💡 解析:這正是半個 Cosine 波形的特徵。初期慢慢下降確保穩定起步,中期快速下降加速收斂,後期再次變慢讓模型在谷底精細微調(Fine-tuning),這是實務上極為強大的排程策略。

Q14. 當資料特徵維度極高且存在嚴重的共線性(Collinearity)時,在 Logistic Regression 中套用 L1 正規化(Lasso Penalty)通常會產生什麼顯著的數學效果?

✅ 答對了!

❌ 答錯了!

💡 解析:L1 正規化由於其絕對值懲罰的菱形幾何特性,優化解經常落在座標軸上,導致多數權重變成剛好等於 0,這非常適合用來剔除高維度中的多餘共線特徵。

Q15. 在建構 PyTorch 深度學習 Pipeline 時,為何必須將 NumPy 陣列轉換為 torch.Tensor 物件才能進行訓練?

✅ 答對了!

❌ 答錯了!

💡 解析:NumPy 只能在 CPU 上運算且不懂反向傳播;Tensor 不僅能 `tensor.to('cuda')`,還會自動記錄所有運算歷史(requires_grad=True)以算出神經網路需要的梯度。

Q16. 為何實務上深度學習多採用 Mini-batch SGD(小批次梯度下降),而不使用將全部資料一次丟入計算的 Full Batch Gradient Descent?

✅ 答對了!

❌ 答錯了!

💡 解析:除了記憶體放不下全圖外,更深層的數學原因是:每次只看一小批資料所產生的「顛簸/震盪」,能避免模型卡死在表現不佳的小坑洞中,找到更寬廣、泛化能力更好的平緩谷底。

Q17. 當我們對一個連續數值特徵完整套用 Scikit-learn 的 StandardScaler(Z-score 標準化)後,該特徵的新平均數(Mean)與標準差(Standard Deviation)數學上必定會變成多少?

✅ 答對了!

❌ 答錯了!

💡 解析:Z-score 公式為 `(x - mean) / std`。減去平均數將中心點平移至 0,除以標準差將數據的散佈幅度縮放為 1。這是最標準的統計學特徵對齊手法。

Q18. 一個深度神經網路在分類任務中給出「機率 0.99」的極度自信預測時,經統計發現它實際上卻只有 60% 的機率預測正確。這種現象在機器學習工程中稱為什麼問題?

✅ 答對了!

❌ 答錯了!

💡 解析:完美的模型除了準確率高,其輸出的機率也必須與真實信心相符(Calibration)。若輸出 0.99 卻常常錯,代表機率分佈嚴重扭曲,實務上常需透過 Temperature Scaling 等技術來重新校準機率值。

Q19. 在建構 ML 訓練特徵表時,經常需要將 df_sales (交易紀錄表) 與 df_users (用戶特徵表) 透過共有的 user_id 欄位進行關聯整併。Pandas 中專門處理這種關聯式資料庫(SQL JOIN)風格合併的最佳函式是?

✅ 答對了!

❌ 答錯了!

💡 解析:pd.merge() 是 Pandas 中最強大且專門為了進行資料庫風格連接(Inner, Left, Right, Outer Join)所設計的函式,可以精準指定依據哪一個鍵值(on='user_id')進行對齊合併。

Q20. 在使用正規方程式解線性迴歸 w = (X^T X)^{-1} X^T y 時,若「特徵維度的數量」遠遠大於「樣本的數量」(即 D > N,例如有一萬個特徵但只有一百筆資料),矩陣 X^T X 必然會發生什麼事?

✅ 答對了!

❌ 答錯了!

💡 解析:這就是經典的「維度災難 (Curse of Dimensionality)」在線性代數上的體現。解方程式的條件數量不足以確定所有的未知數權重,這時必須引入正規化(如 L2 Ridge 增加對角線數值)才能強行算出反矩陣。

沒有留言:

張貼留言

>