planning

專題 - 機器狗

  • 簡介
  • 負責
    • 系統設計、機構控制、模擬、強化學習
  • 難點
  • 理論
    • Jacobian Matrix
    • 齊次變換矩陣, Homogeneous Transformation Matrix
    • 貝茲曲線
    • 強化學習
    • PPO
    • 獎勵函數設計
    • Action Space
    • Sim-to-Real

正向運動學 逆向運動學 微分運動學是什麼

Q: 如何定義座標系(Reference Frames),以及如何處理旋轉矩陣?

A:

Q: 為什麼選擇幾何解而不是數值解(如 Newton-Raphson)?

A: 幾何解計算快、有封閉解

如何處理多解(Multiple solutions)或奇異點(Singularity)?

什麼是 Jacobian?

當 Jacobian 矩陣不可逆(奇異點)時,如何求逆? 報告中提到了使用 Moore-Penrose Pseudoinverse

齊次變換矩陣, 考你旋轉矩陣 的特性(正交矩陣、行列式為 1)。

為什麼選擇貝茲曲線而不是簡單的多項式或正弦波? 為了平滑性與對形狀的直觀控制。

如何實現不同的步態(如 Trot vs. Walk)

如何處理狀態機的切換。

為什麼選 PPO? 穩定、對超參數較不敏感

如何調整權重?

有沒有遇到 Reward Hacking 的情況?

工具不支援某功能(Pybullet 不支援閉鏈),所以我用了某種變通方法(拆解 Link)來解決。

為何輸出位置偏移量,而不是直接輸出力矩?

為什麼機器人導航常用四元數而不是歐拉角 (Euler Angles)? 為了避免萬向鎖 Gimbal Lock 以及計算效率較高。

「轉成 TFLite 後精度下降了多少?如何處理?

ONNX 的作用是什麼?

如何透過數據分析來制定策略

為什麼在策略梯度公式中,我們要對機率取 ? 為什麼不直接計算 ,而要用 Log-Derivative Trick? 請解釋 在強化學習數學推導中的必要性。 為什麼直接對軌跡機率微分會導致無法進行蒙地卡羅採樣(Monte Carlo Sampling)? 使用 Log-Derivative Trick () 主要解決了三個核心問題:將公式轉換為期望值形式以利採樣簡化連乘積運算,以及消除未知環境機率的影響

具體原因如下:

  1. 為了能進行採樣 (Sampling / Expectation Form)

這是最關鍵的數學原因。

  • 直接微分 (): 原始梯度公式為 。這裡沒有機率分佈 作為權重,因此不符合期望值 的定義。如果不符合期望值形式,我們就無法使用蒙地卡羅方法(透過實際玩遊戲取平均)來估算梯度。

  • 取 Log 後 (): 透過變換 ,公式變回了 。因為 重新出現,我們可以將其視為期望值 ,從而利用採樣來近似計算。

2. 簡化數學運算 (Product to Sum)

  • 直接微分: 軌跡機率 是一長串的連乘積(機率鏈)。對連乘積直接微分會觸發乘法法則 (Product Rule),導致算式變得極其複雜且難以計算。

  • 取 Log 後: 函數將「連乘積」轉換為「連加總」。微分「加法」遠比微分「乘法」簡單,可以對每一項單獨處理。

3. 實現 Model-Free (Eliminating Environment Dynamics)

  • 直接微分: 環境的轉移機率混雜在連乘積中,難以分離。

  • 取 Log 後: 因為變成了加法形式,環境機率 成為獨立的項。由於環境與參數 無關,對 微分後,這些環境項直接變成 0。這讓我們完全不需要知道環境的動力學模型(Model-Free),只需要針對策略網路 計算梯度。

Q1: PPO 與 TRPO 的主要區別是什麼?

  • TRPO 使用硬約束(Hard Constraint)限制 KL 散度,需要求解複雜的二階優化問題(共軛梯度法);而 PPO 使用一階優化,通過 Clipping 機制或自適應 KL 懲罰將策略更新限制在一定範圍內,實作更簡單且計算效率更高

Q2: 為什麼 PPO 的目標函數中要使用 min 操作符?

  • 參考回答:取 min 是為了獲得目標函數的下界(Lower Bound),即悲觀估計這確保了我們不會因為機率比率 超出 範圍而獲得過大的獎勵,從而避免策略更新過大導致訓練崩潰

Q3: 請解釋 PPO Loss Function 中的 Entropy term () 的作用

  • 參考回答:Entropy term 用於鼓勵探索(Exploration)它防止策略過早收斂到局部最優解(即防止策略變得過於確定性),確保 Agent 在訓練初期能嘗試更多不同的動作

Q4: PPO 是 On-policy 還是 Off-policy 演算法?

  • 參考回答:PPO 是 On-policy 演算法它需要使用當前策略 收集數據來計算梯度並更新策略雖然它在一個 Batch 內會進行多次 Epoch 更新(這點與傳統只能更新一次的 On-policy 方法不同),但數據一旦用於該次迭代更新後就會被丟棄,不能像 Off-policy 方法(如 DQN)那樣使用 Replay Buffer 重複利用舊數據

Q5: 在 PPO 中, 代表什麼?為什麼要對它進行 Clip?

  • 參考回答: 代表新策略與舊策略在當前狀態下選擇某動作的機率比值Clip 的目的是限制這個比值不要偏離 1 太遠,這意味著新舊策略之間的差異不能太大,這是為了保證策略迭代的單調改進,避免步伐過大導致性能驟降

Q6: On-policy 和 Off-policy 的差別?


專題 - Character-level Language Modeling

  • 簡介
  • 負責
  • 難點
  • 理論
    • RNN
    • LSTM
    • 單層與雙層 LSTM
    • Long-term dependencies
    • Transformer
    • NanoGPT
    • Tokenization
    • Embeddings
    • Word2Vec
    • Byte Pair Encoding
    • Positional Encoding
    • ALiBi, Attention with Linear Biases
    • Gradient Clipping
    • N-gram matching
    • Temperature Sampling
    • Nucleus Sampling
    • Softmax

為什麼 RNN 難以訓練? 梯度消失/爆炸問題

LSTM 的門控機制 (Forget, Input, Output Gates) 是如何運作的?

為什麼在這個專案中 LSTM 贏過 Transformer? 答案: 數據量不足、Transformer 缺乏歸納偏置 Inductive Bias、或調參失誤有關。

Self-Attention 的計算複雜度是多少? ()。

Decoder-only 與 Encoder-Decoder (如 BERT) 有什麼不同?

Character-level 與 Word-level 的優缺點比較?

Word2Vec 的兩種訓練模式 (CBOW vs Skip-gram) 是什麼?

BPE 是如何運作的? 透過迭代合併最頻繁出現的字元對

為什麼 LLM 偏好 BPE 而不是純單詞或純字元? 平衡了序列長度與詞彙表大小,且能處理 Unknown words。

Transformer 如何處理位置資訊?

ALiBi 相較於傳統位置編碼有什麼優勢? 具有外推性 Extrapolation,能處理比訓練時更長的序列

Temperature 如何影響 Softmax 分佈? 高溫平滑化/更隨機,低溫尖銳化/更確定)。

「Top-k 與 Top-p (Nucleus) 的差別?」(Top-p 是累積機率截斷,能動態適應候選詞的數量)。

訓練 Transformer 時常遇到什麼問題?

為什麼需要 Gradient Clipping? 防止梯度爆炸 Exploding Gradients,特別是在 RNN 或深層網路中。

專題目標

利用莎士比亞全集資料集,實作並比較 RNN、LSTM 與 Transformer 三種架構在字元級語言模型(Character-level Language Modeling)的效能,同時探討分詞策略對生成結果的影響。

資料集與前處理

使用莎士比亞劇本全集,總計約 10^6 字元。處理包括訓練、驗證、測試集分割,以及修正原始資料中的錯誤字元(如將 $ 修正為 l)。

模型架構比較

  • Vanilla RNN:作為基礎對照組。
  • LSTM:實作單層與雙層架構。在資料量有限的情境下,雙層 LSTM 表現最佳,有效解決長序列依賴問題。
  • Transformer (NanoGPT):基於 NanoGPT 架構,配置 6 層 Attention Block 與 6 個 Head。因實驗過程遺漏 Gradient Clipping,導致模型產生過擬合,效能未優於 LSTM。

ALiBi (Attention with Linear Biases)

應用於 Transformer 中取代傳統正弦位置編碼(Sinusoidal Positional Encoding)。透過在 Attention 分數中加入與距離成正比的懲罰項,理論上能讓模型推論比訓練時更長的序列。

輸入表示法 (Tokenization)

  • Character-level:基礎字元輸入。
  • Word2Vec:詞層級輸入。因詞彙量大導致高 Perplexity,且無法處理未登錄詞。
  • Byte Pair Encoding (BPE):設定詞彙表大小為 2000,將高頻字元對合併為子詞。應用於 RNN/LSTM 後,在 2-gram 與 3-gram 匹配率上有顯著提升。

取樣策略 (Sampling Strategies)

比較 Temperature Sampling 與 Nucleus Sampling (Top-p)。實驗結果顯示 Nucleus Sampling (閾值 p=0.3) 能在文本多樣性與結構完整性之間取得最佳平衡,優於單純調整溫度的隨機取樣。

實驗結果與結論

  • 最佳模型:經適當正則化的雙層 LSTM 在拼字正確率與 n-gram 匹配率上表現最優。
  • Transformer 限制:在此專題中,Transformer 因資料量不足及缺乏梯度裁剪(Gradient Clipping)導致過擬合,未能展現理論優勢。
  • BPE 效益:引入 BPE 能提升模型捕捉局部模式的能力,但增加了架構複雜度,整體 Loss 未能顯著低於字元級模型。

個人具體貢獻 (Ying-Pei Lin)

負責將 BPE (Byte Pair Encoding) 分詞技術整合至 RNN 與 LSTM 模型中,並設計比較實驗以分析不同分詞策略對模型效能的影響。

「Cross-Entropy 的值包含了真實資料的熵 () 和 KL 散度,但在訓練過程中,因為真實資料的分佈是固定的,所以最小化 Cross-Entropy 就等同於最小化 KL 散度。」

  • Entropy(真實資料本身的亂度/不確定性)。
  • KL Divergence(兩分佈之間的「距離」或資訊損失)。

如果你的真實標籤是 One-hot encoding(例如 [0, 1, 0]),那麼真實分佈的熵 。 在這種特例下,Cross-Entropy 的數值會剛好等於 KL 散度的數值

1. 關於模型效能的反直覺結果

問題:「你的實驗結果顯示雙層 LSTM 的表現優於 Transformer,這與目前的主流認知相反。請解釋造成這個結果的主要原因是什麼?」

預期回答重點:

  • 資料量不足:莎士比亞全集僅約 10^6 字元,對 Transformer 而言資料量太少,容易過擬合。
  • 實作疏失:Transformer 訓練過程中遺漏了梯度裁剪(Gradient Clipping),導致訓練不穩定或過擬合。
  • 模型容量:在小資料集上,經適當正則化的 LSTM 泛化能力反而優於參數較多的 Transformer。

2. 關於個人貢獻(BPE 分詞)

問題:「你負責將 BPE(Byte Pair Encoding)應用於 RNN/LSTM,引入 BPE 後對模型架構與效能具體產生了什麼改變?」

預期回答重點:

  • 輸入維度改變:詞彙表大小(Vocabulary Size)從字元級的約 65 增加到 2000,增加了 Embedding 層的參數與複雜度。
  • 捕捉能力提升:BPE 能將常見字元組(如 “the”, “ing”)視為一個單位,提升了 n-gram(2-gram, 3-gram)的匹配率。
  • 代價:雖然 n-gram 表現提升,但因參數增加且資料量固定,整體 Loss 並未顯著低於字元級模型。

3. 關於除錯與反思

問題:「報告中提到 Transformer 遺漏了梯度裁剪(Gradient Clipping),你是如何發現這個問題的?如果現在讓你重做,你會如何改進 Transformer 的實驗?」

預期回答重點:

  • 發現過程:觀察到 Training Loss 持續下降,但 Validation Loss 在約 4500 次迭代後停滯甚至上升,這是典型的過擬合跡象。
  • 改進策略:加入 Gradient Clipping 以穩定訓練;嘗試更小的模型配置或更多的正則化(如提高 Dropout);或使用預訓練模型進行 Fine-tuning,而非從頭訓練。

專題 - Kibo RPC

為什麼選 YOLOv11 而不是 v8 或 v5?

針對小物件(Small Object Detection)你有做什麼優化?

合成數據與真實數據的 Domain Gap 如何解決? 答案通常是透過隨機化紋理、光照以及 Sim-to-Real 的微調。

為什麼 NMS 不夠用? 因為 NMS 會直接丟棄重疊框,而 WBF 可以利用多個預測來平均坐標,提升精度

什麼是相機內參 (Intrinsics) 和外參 (Extrinsics)?

畸變係數 (Distortion Coefficients) 是做什麼用的?


專題 - Event-Based Camera

  • 簡介
  • 負責
  • 難點
  • 理論
    • Asynchronous Sensing

事件相機的資料結構長什麼樣子?與傳統 RGB Frame 有何不同?

你的程式如何處理『非同步』的資料流?使用了什麼 Buffer 機制?

如何將 Event stream 轉換為人類可視化的 Frame (Frame Generator)? 報告提到使用了 Frame Generator 將事件轉為影像。

在資源受限的嵌入式系統上,你做了哪些效能優化? 關閉 GUI 渲染,減少 GPU/CPU 負載。

如何確保程式在火箭發射的高震動或異常斷電下,數據能安全寫入? 報告提到系統會檢查是否終止並安全關閉 。

你的 Main Loop 是怎麼設計的? 讀取相機數據和寫入檔案是同步還是非同步? 通常需要分開 Thread 以避免掉幀。

你如何快速上手一個陌生的硬體 SDK? 在使用 Iterator pattern 讀取硬體數據時,有沒有遇過 Buffer Overflow 或延遲的問題?

為什麼選擇 CLI 而不是寫一個 GUI? 為了透過 SSH 遠端操作,且節省資源

你是如何實現低延遲的影像串流? FFmpeg + SSH tunnel 是一個經典的輕量級解法。

為什麼需要壓縮?頻寬限制是多少? 報告提到壓縮成較小尺寸以利傳輸

如何從雜訊中提取出標記點的訊號? 報告提到使用 UV 燈增強對比

如何從 Event timestamp 計算出速度?」,需要解釋如何精確抓取


專業科目


1. 監督式學習 (Supervised Learning)

「有老師帶著寫練習題,有標準答案。」

  • 資料型態:標記資料 (Labeled Data)。每一筆輸入 都有對應的正確輸出 (Ground Truth)。
  • 目標:訓練模型學習輸入與輸出之間的映射關係函數 ,以便預測新資料的結果。
  • 核心任務
    • 分類 (Classification):預測類別(例如:貓/狗、垃圾郵件偵測)。
    • 回歸 (Regression):預測數值(例如:房價預測、股市趨勢)。
  • 與你專題的關聯
    • 你的 Language Modeling 專題屬於此類(更精確說是 Self-Supervised)。輸入是「前面的字元」,標籤(Label)是「下一個字元」,模型透過 Cross-Entropy Loss 與真實字元比對來學習。

2. 非監督式學習 (Unsupervised Learning)

「沒有老師,學生自己從課本中找規律。」

  • 資料型態:無標記資料 (Unlabeled Data)。只有輸入 ,沒有對應的
  • 目標:尋找資料中隱藏的結構、模式或分佈。
  • 核心任務
    • 分群 (Clustering):將相似資料歸類(例如:K-Means 做客戶分群)。
    • 降維 (Dimensionality Reduction):保留重要特徵並壓縮資料(例如:PCA、t-SNE)。
    • 關聯規則 (Association):發現項目間的關係(例如:購物籃分析)。
  • 與你專題的關聯
    • 你的 Word2Vec 實驗本質上是在學習詞嵌入(Embedding),將語義相似的詞在向量空間中聚在一起,這具有非監督(或自監督)尋找結構的特性。

3. 強化學習 (Reinforcement Learning, RL)

「透過糖果與鞭子訓練寵物。」

  • 資料型態:沒有靜態資料集。由 Agent (代理人)Environment (環境) 互動產生數據。
  • 核心機制
    • Action (動作):Agent 做出決策。
    • Reward/Penalty (獎勵/懲罰):環境根據動作給予回饋。
  • 目標:透過試誤 (Trial-and-Error),學習一套策略 (Policy),以最大化長期的累積獎勵 (Cumulative Reward)
  • 核心任務:遊戲對局 (AlphaGo)、機器人控制 (Robot Control)、路徑規劃。
  • 與你背景的關聯
    • 這是你未來研究所(機器人與控制)的核心領域。與監督式學習不同,RL 關注的是序列決策 (Sequential Decision Making),且答案(獎勵)通常會延遲發生(Delayed Reward)。

快速比較表 (面試用)

類型資料有無標籤是否有回饋 (Feedback)目標你的專題/背景
監督式有 (Labeled)有 (來自 Ground Truth)預測結果預測下一個字元
非監督式無 (Unlabeled)尋找結構Word2Vec, BPE
強化學習無 (互動產生)有 (來自 Reward Function)決策序列機器人控制