自我介紹
- 修什麼
- 交換
- 專題
- 實習
- TDK
- 個性
- 結尾
1. 開場自我介紹(15-20 秒)
「您好,我是,目前就讀於國立交通大學機械工程系,主修控制與機器人,並同時修習太空科技學程。目前在瑞典皇家理工學院交換,學習機器學習與機器人規劃,希望將這些技術應用於四足機器人與自動導航領域。」
目標:快速建立背景,點出核心專長。
2. 亮點經歷與技能(45-60 秒)
-
「在大學期間,我參與了四足機器狗、無人機載台等專案,負責運動學建模、導航與控制軟體開發。我也曾在工研院實習,使用ROS 與 JavaScript 開發雷達與 GPS 數據可視化工具,提升測試效率。」
-
「此外,我曾參加 TDK Robocon 機器人競賽,負責導航與馬達控制,並整合 Hector SLAM 提升機器定位精度。在這些經歷中,我不僅強化了嵌入式系統開發、ROS 自主導航與機器學習應用的能力,也學會了如何高效協作、解決工程挑戰。」
目標:突出專業技能與實作經驗,展現團隊合作與問題解決能力。
3. 個人特質與未來方向(20-30 秒)
「我是一個注重分析與計畫執行的人,習慣在深入理解問題後再動手實作,這讓我在專案中能確保開發穩定推進。我也樂於學習與嘗試,在 KTH 交換期間,更進一步學習了深度學習應用,希望未來能將這些技術結合到機器人或航太領域。」
目標:讓面試官了解你的做事風格與未來發展方向。
4. 結尾與轉場(10 秒)
「我很期待能在貴公司發揮我的專長,學習新技術,並與團隊合作解決更具挑戰性的問題。請問您希望我進一步分享哪方面的經驗呢?」
目標:展現熱忱,引導面試官提問。
Self-Introduction (English)
1. Opening Introduction (15-20 seconds)
“Hello, my name is Altonso Lin. I am currently studying Mechanical Engineering at National Chiao Tung University, majoring in Control and Robotics, and also pursuing a Space Technology Program. At present, I am on an exchange program at KTH Royal Institute of Technology in Sweden, where I am focusing on machine learning and robotic planning, aiming to apply these technologies to quadruped robotics and autonomous navigation.”
Goal: Quickly establish background and highlight core expertise.
2. Key Experiences and Skills (45-60 seconds)
“During my time at university, I worked on projects like quadruped robots and drone platforms, where I was responsible for kinematic modeling, navigation, and control software development. I also interned at Industrial Technology Research Institute, where I developed radar and GPS data visualization tools using ROS and JavaScript, improving testing efficiency.”
“Additionally, I participated in the TDK Robocon robot competition, where I was in charge of navigation and motor control, integrating Hector SLAM to improve robot localization accuracy. Through these experiences, I not only strengthened my abilities in embedded system development, autonomous navigation using ROS, and applying machine learning but also learned how to collaborate efficiently and solve engineering challenges.”
Goal: Highlight professional skills, hands-on experience, teamwork, and problem-solving abilities.
3. Personal Traits and Future Directions (20-30 seconds)
“I am someone who focuses on analysis and planning execution, preferring to dive deep into a problem before jumping into implementation. This approach allows me to ensure stable progress in projects. I also enjoy learning and exploring new areas, which is why during my time at KTH, I expanded my knowledge in deep learning applications. Moving forward, I aim to integrate these skills into the fields of robotics and aerospace.”
Goal: Show your working style and future development direction.
4. Closing and Transition (10 seconds)
“I’m excited about the opportunity to contribute my expertise, learn new technologies, and collaborate with a team to solve more challenging problems at your company. What aspects of my experience would you like me to elaborate on?”
Goal: Show enthusiasm and guide the interviewer to ask questions.
- PPO 是一種策略學習方法
- 目的是:最大化回報(reward)
- 它的核心是:
- 定義一個 surrogate objective(代理損失函數)
- 使用 clipping 或 penalty 來避免策略更新過大
- 再用 gradient descent 來最大化這個 surrogate loss
為什麼用 Mini-batch?
- 批次梯度下降(Batch Gradient Descent, BGD) 計算整個數據集的梯度,準確但計算量大。
- 隨機梯度下降(Stochastic Gradient Descent, SGD) 每次用一筆數據更新權重,雖然計算量小,但梯度變動劇烈,收斂較不穩定。
- Mini-batch SGD 取 小批量數據(如 32 或 64 筆) 更新權重,能平衡 計算效率與收斂穩定性。
批次歸一化(Batch Normalization)
- 作用:加速收斂、穩定訓練
- 計算方式:使用均值與標準差對輸入做標準化
Cross Entropy(交叉熵)
在分類問題(如影像辨識)中,交叉熵常用來衡量預測分佈與真實分佈的相似度: 其中:
- ppp 是真實標籤的機率分佈(通常是 one-hot encoding)。
- qqq 是模型的預測機率分佈(通常是 Softmax 輸出)。
Softmax 是一個將數字轉換為概率分佈的函數,常用於分類問題的輸出層:
*PyTorch 重點
1. Tensor 基礎
torch.tensor()
建立張量.cuda()
搬到 GPU.detach()
移除梯度資訊.reshape()
vs..view()
.permute()
vs..transpose()
2. 訓練流程
import torch
import torch.nn as nn
import torch.optim as optim
model = nn.Linear(10, 1) # 建立線性模型
optimizer = optim.Adam(model.parameters(), lr=0.01)
criterion = nn.MSELoss() # 損失函數
for epoch in range(100):
optimizer.zero_grad() # 清除舊梯度
output = model(torch.randn(5, 10)) # 前向傳播
loss = criterion(output, torch.randn(5, 1)) # 計算 loss
loss.backward() # 反向傳播
optimizer.step() # 更新參數
3. PyTorch 訓練 DQN
torch.nn.Module
定義網路torch.optim.Adam
最佳化torch.no_grad()
防止梯度更新Replay Buffer
存取過去經驗Target Network
緩解不穩定性
4. PyTorch 訓練 PPO
- Actor-Critic 架構
- GAE 計算 Advantage
- 策略更新 (Clipped Surrogate Objective)
- Value Function 更新 (MSE Loss)
Data Augmentation 是在訓練數據集上進行變換,以人工合成更多樣化的數據,提高模型的泛化能力,防止過擬合。
翻轉(Flip) | 水平或垂直翻轉圖片 |
---|---|
旋轉(Rotation) | 隨機旋轉一定角度 |
縮放(Scaling) | 放大或縮小圖片 |
裁剪(Cropping) | 隨機裁剪圖片部分區域 |
亮度/對比度變換 | 改變顏色屬性 |
加噪聲(Noise Injection) | 增加高斯噪聲,讓模型適應不同環境 |
On-policy(基於當前策略)是一種強化學習的方法,其中 訓練過程只能使用當前策略(policy)生成的數據。
面試可能問的問題
-
SGD、Mini-batch SGD、Momentum、Adam 的差別? | Momentum | 在梯度下降中加入 動量(Momentum),避免局部極小值 | 更平滑,較少陷入局部極小點 |
-
CrossEntropyLoss 怎麼計算?為什麼 Softmax 和 CrossEntropy 會一起用?
-
Q-learning 和 Policy Gradient 的區別?
-
DQN 如何解決訓練不穩定的問題?
- DQN(Q-learning):學習「動作的價值」再決定最佳動作
- PPO(Policy Gradient):直接學習最佳動作
-
PPO 相比於 DDPG、A2C,有什麼優勢?
-
PyTorch
autograd
的作用?torch.no_grad()
何時使用? -
PyTorch 的
DataLoader
如何提高訓練效率? PyTorch 提供DataLoader
,可以 批量讀取數據,提高 GPU 計算效率。 📌 主要優化方式 -
使用
num_workers
- 開啟多個線程 並行讀取數據
-
使用
pin_memory=True
- 讓 Tensor 存在 固定記憶體(pinned memory),提高 CPU 到 GPU 的數據傳輸速度
-
使用
prefetch_factor
- 預先加載更多 batch,減少 IO 等待時間
4️⃣ DQN 核心技術
🔹 目標網絡(Target Network)
-
DQN 會使用 兩個網絡:
- 主網絡(Q-network):負責學習 Q 值
- 目標網絡(Target Q-network):負責計算目標 Q 值,每隔幾步才更新
-
好處:梯度變化較平滑,訓練更穩定
DQN 目標值更新公式
經驗回放(Experience Replay)
- 存儲過去的經驗 ,並隨機取樣來訓練
- 降低數據相關性,提高學習穩定性