人工智慧導論
Introduction to Artificial Intelligence (Robotics)
| 節 | 週一 |
|---|---|
5 13:20–14:10 | 人工智慧導論 EE632 3 節連堂 |
6 14:20–15:10 | |
7 15:30–16:20 |
* 根據陽明交大上課時間表所列
本課程是一門為AI機器人領域設計之基礎課程,強調機器人領域重要之人工智慧演算法,並以Python與演算法實作為主,將使用Jupyter Notebook進行互動式做中學,讓課程所學習之演算法可以快速轉移至實體機器人上實現。本課程為導論課程,將以主題式介紹機器人各種應用領域,包括:教育、救難、輔助、水域、機器手臂等。
C++或Python基礎物件導向程式語言能力,包含迴圈、陣列、類別的宣告與使用 Basic Probability, Linear Algebra, Data Structure
M567時段(線上 meet.google.com/bhs-kyjq-kfx): 1-1 課程講授(Lecture) 1-2 Colab 與 Python程式演練(請參考:2020課程網路資料夾) 學生將分組進行課程討論,每位同學上課須攜帶筆電,筆電有Ubuntu系統,或可連線至個人Ubuntu工作站為佳。 本課程將使用Google Colab。 本學期將安排實作、實體機器人展示,強調課程介紹之演算法如何用於機器人任務。 實體或虛擬LoCoBot介紹 * 11/1 LoCoBot I - Gazebo and Teleoperation * 11/29 Locobot II - MaskRCNN 2021課程網路資料夾: https://drive.google.com/drive/u/2/folders/1W7X5oN1T0vYpSutkmMSzbawQ_SSEyBrw 期末專題主題原則(參考MIT6.811課程 ),要點如下: https://manipulation.csail.mit.edu/Fall2020/project.html * 本課程專題應與人工智慧或機器人主題相關。 * 課程專題建議以2-3人小組進行,專題的評分會根據人數進行調整(人數越多應有更多產出) * 專題應有適當的規模,可在一學期內完成,工作環境設置(Ubuntu, Simulation, GPU Workstation等)應儘早預備。 * 專題內容應反映出小組對課程內容的理解,如進行演算法實作,建議能將已有的Github Repo程式碼跑起來,重現已發表重要論文之方法,包含實驗結果作為baseline/benchmark。. * 本課程鼓勵期末專題與個人研究、參與研究室之研究主題相關,然需於計畫書說明本課程專題與其他專題的關聯,本課程專題內容應為學期初尚未完成之項目,不可為(個人、上學期修課同學、或研究室學長姐)已完成內容。Some of you will be able to do a project that is closely related to your current research. This is completely acceptable, as long as the subproblem you are solving is clearly defined. If you are using part or all of your work for research or as a part of another class, you must state this explicitly in your final report. We expect you to do something new that you would not have done if you hadn't taken this class. * 期末專題鼓勵使用開源程式碼,但須明確說明什麼部分是開源程式碼提供,什麼部分是專題成果,若使用GitHub repo應用fork,切勿重新上傳或移除原作者資訊(可能違反學術倫理)。 期中報告Proposal要點 The project proposal is intended as a forcing function for you to crystalize a project idea. Moreover, it gives us a chance to offer you a feedback and make sure that your plan is worthwhile and feasible. It should be approximately one page (at most, say, 500 words) detailing your idea for the project. It should: * Define exactly what the project deliverable is. * Briefly describe why the project is worthwhile and interesting. * List the topics that we have studied (or that we will study) in class that are covered by your project. * Discuss any related prior work you have found that is relevant. * Define specific goals that you expect to have accomplisehd before each of the progress updates. * It does not have to be extremely polished, but it does need to provide us with enough information to understand what you are hoping to do. Otherwise, we won't be able to help you! 期末報告與書面報告 The project presentation is due by the last day of classes. Extensions may be granted on request. The presentation must have duration of 3 minutes for individual projects and 5 minutes for group projects. Please try to share the 5 minutes evenly between the various members of the group. This year we will require you to upload presentations on E3. We expect you to provide a final report of your project by 1/11. Using the IEEE Template for conference proceedings (probably the LaTeX one; we suggest the team lead to create an Overleaf project to share with team members), write a summary of what you accomplished during your project. Write it, as much as possible, like a conference paper. You should include: * An abstract. * An introduction of your project and why you think it is interesting. * A related work / literature review section * Your results (partial or work-in-progress is expected, and completely fine!) * A discussion of your results and potential next steps We don't have any requirements on length, but realize that this is worth a very large portion of your overall grade, so be as thorough as possible in demonstrating mastery of the course material. For reference, reasonable lengths could be anywhere between 3-8 pages, with figures and a few citations where relevant. Videos are encouraged as well, as a way to showcase simulation/hardware results and provide visual explanation. IEEE Latex Template: https://www.ieee.org/conferences/publishing/templates.html
1. 學期作業: There are in-class tutorials (in Python and Jupyter Notebook), and each includes 3 checkpoints/exercises. 2. 期中報告: 繳交書面計畫書(Proposal)一份與一分鐘影片 3. 期末報告(含口頭報告、書面報告): 可選擇以實體或虛擬環境進行,若因疫情可能全部調整為virtual形式。 3.評量方法: - Class Participation 10 (%) - In-class tutorials (Python and Jupyter Notebook checkpoints/exercises) 40 (%) - Midterm Report 10 (%) - Final Project 40 (%)
- AI Agent
- Robot Perception & Machine Learning
- Robot Control and Reinforcement Learning
| 週次 | 主題 |
|---|---|
| 第 1 週 | [Lec] Introduction to Artificial Intelligence 線上連結:meet.google.com/bhs-kyjq-kfx 選課問卷調查(必填):https://forms.gle/WkYHScahLM4PGnei6 |
| 第 2 週 | [Lec] 中秋節彈性放假 |
| 第 3 週 | [Lec] AI Agents [Lab] Python, Colab |
| 第 4 週 | [Lec, Lab] OpenAI Gym, Taxi Problem, Q-Learning |
| 第 5 週 | [Holiday] 國慶日補假 |
| 第 6 週 | [Lec] Robot Perception, [Lab] Machine Learning Overview (MLP) |
| 第 7 週 | [Lec, Lab] Convolutional Neural Network, PyTroch |
| 第 8 週 | [Lec, Lab] ROS Publisher and Subscriber, Docker [Lab] LoCoBot I - Gazebo and Teleoperation Midterm Week |
| 第 9 週 | [Lec] Guest Lecture [Lab] Applicaitions of Convolutional Neural Network |
| 第 10 週 | [Lec, Lab] Classification, Transfer Learning Proposal Due |
| 第 11 週 | [Lec, Lab] Object Detection and Segmentation |
| 第 12 週 | [Lec] Robot Control [Lab] Locobot II - MaskRCNN |
| 第 13 週 | [Lec] Imitation Learning and Behavior Cloning Project Progress Updates |
| 第 14 週 | [Lec, Lab] DeepRL & Deep Q-Network |
| 第 15 週 | [Lec, Lab] Deep Deterministic Policy Gradients (DDPG) & Actor–Critic Methods |
| 第 16 週 | [Lec, Lab] Recurrent Deterministic Policy Gradients (RDPG) and Demo for Learning-based Navigation |
| 第 17 週 | Final Project Preparation |
| 第 18 週 | Final Project Presentation |
教科書 • Artificial Intelligence: A Modern Approach 4th Edition (Stuart Russell, Peter Norvig) 參考書目 • Probabilistic Robotics (Sebastian Thrun) • I. Goodfellow, Y. Bengio, and A. Courville, Deep Learning, 1st Ed., MIT Press, Dec. 2016 • R. S. Sutton and A. G. Barto, Reinforcement Learning: An Introduction, Nov. 2017 • Adnan Aziz, Amit Prakash, and Tsung-Hsien Lee, Elements of Programming Interviews in Python: The Insiders' Guide. 2016