intern

自我介紹

  • 修什麼
  • 交換
  • 專題
  • 實習
  • 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)
  • 它的核心是:
    1. 定義一個 surrogate objective(代理損失函數)
    2. 使用 clipping 或 penalty 來避免策略更新過大
    3. 再用 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)生成的數據

面試可能問的問題

  1. SGD、Mini-batch SGD、Momentum、Adam 的差別? | Momentum | 在梯度下降中加入 動量(Momentum),避免局部極小值 | 更平滑,較少陷入局部極小點 |

  2. CrossEntropyLoss 怎麼計算?為什麼 Softmax 和 CrossEntropy 會一起用?

  3. Q-learning 和 Policy Gradient 的區別?

  4. DQN 如何解決訓練不穩定的問題?

    • DQN(Q-learning):學習「動作的價值」再決定最佳動作
    • PPO(Policy Gradient):直接學習最佳動作
  5. PPO 相比於 DDPG、A2C,有什麼優勢?

  6. PyTorch autograd 的作用?torch.no_grad() 何時使用?

  7. PyTorch 的 DataLoader 如何提高訓練效率? PyTorch 提供 DataLoader,可以 批量讀取數據,提高 GPU 計算效率。 📌 主要優化方式

  8. 使用 num_workers

    • 開啟多個線程 並行讀取數據
  9. 使用 pin_memory=True

    • 讓 Tensor 存在 固定記憶體(pinned memory),提高 CPU 到 GPU 的數據傳輸速度
  10. 使用 prefetch_factor

    • 預先加載更多 batch,減少 IO 等待時間

4️⃣ DQN 核心技術

🔹 目標網絡(Target Network)

  • DQN 會使用 兩個網絡

    • 主網絡(Q-network):負責學習 Q 值
    • 目標網絡(Target Q-network):負責計算目標 Q 值,每隔幾步才更新
  • 好處:梯度變化較平滑,訓練更穩定

DQN 目標值更新公式

經驗回放(Experience Replay)

  • 存儲過去的經驗 ,並隨機取樣來訓練
  • 降低數據相關性,提高學習穩定性