2019年2月22日 星期五

[課程] 2019基於遊戲的機器學習入門



Instructor
蘇文鈺 (Alvin W.Y. Su, alvinsu@mail.ncku.edu.tw)

Teaching Assistant
邱晴瑜,高靖珊,   RM 65707

Course Materials
  1. Introduction to machine learning textbook
  2. Gamed Based coding platform
  3. Online ppt
  4. Reference: Stanford CS229, https://stanford.edu/~shervine/teaching/cs-229.html
Power Point

    week 3    課程投影片   Lab
    week 4    課程投影片
    week 5    課程投影片   Lab
    week 10  PreContestFeedback Lab
    week 11  課程投影片   Lab
    week 12  課程投影片
    week 13  課程投影片
    week 15  課程投影片

Target
1.  Learn basic machine learning algorithms
2.  Use machine learning tools
3.  Understand data and its preprocessing
4.  Learning by doing and gaming.

Course Arrangement
Breakfast
Purpose: Application of unsupervised learning tools to game playing from the collected data.
Week 1: Introduction of the course and applications using ML
Week 2: Build Machine Learning Environment and brief intro to basic classifiers
·        Python sklearn
·        Unsupervised classifier
o   k-Means
o   Mean-shift
o   Gaussian Mixture Model (GMM)
·        Supervised classifier
o   kNN
o   SVM
·        Lab 1-1
Week 3: Build and Practice of the Game Platform
·        Installation of Game Platform
·        Game 1: Breakout clone
·        Try to write a novice code to play the game
·        Play the game 10000 times, record the processes.
·        Analysis be the HW. To report on Week 6.
Week 4: Support Vector Machine
·        SVM (Support Vector Machine)
·        SVC (Support Vector Classification)
·        SVR (Support Vector Regression)
·        Lab 1-2
Week 5: Multi-class clustering/classification
·        SVM
·        Hierarchical clustering
·        Lab 1-3
    Week 6: Student reports
·        Strategy report to get a high score from the breakout clone game.
·        To use ML tools is encouraged.
Lunch
Purpose: Application of machine learning tools to a computer game, called Breakout Clone, also called Arkanoid. Object positions provided.
Week 7: Decision Tree
·        Decision Tree
·        Random Forest
·        Lab 1-4
Week 8: Breakout Clone, pre-contest
Week 9: Bagging, Boosting, Adaboost
·        Lab 1-5
Week 10: Neural Network
·        MLP
o   Common aspects between SVM and MLP
o   Image pre-processing
o   Feature vector examples and comparison
§  2D image whole into 1D vector
§  Encoding and compression
o   Hidden layers and Activation functions
o   Back propagation algorithm
o   Before coding an MLP
§  Mathematical representation (Matrix forms)
·        Lab 1-6
Week 11: Installation of Game 2, Ping-Pong
·        Get Familiar with the online platform.
·        Try to write a novice code to play the game.
·        Play the game 10000 times, record the processes.
·        Analysis be the HW. To report on Week 14.
Week 12: DNN
·        DNN (Deep Neural Network)
o   Pitch detection: RWC dataset
o   Ping-Pong
·        Lab 1-7
Week 13: Breakout Clone contest
Afternoon Tea
Purpose: Application of machine learning tools to a computer Ping-Pong game. Object positions provided.
Week 14: Student reports
·        Strategy report to get a high score from the Ping-Pong game.
·        To use ML tools is encouraged.
Week 15: CNN
·        CNN (Convolutional Neural Network)
·        Common and different aspects between MLP and CNN
o   One big 2D convolution, Many smaller 2D convolutions, and Inner-products
o   Block-based activation (kernel Pooling) v.s. Activations
·        YOLO-like CNNs
o   Annotations
·        Lab 1-8
Week 16: RNN
·        Recurrent Neural Network
o    Stock price
·        Lab 1-9
Showtime
Purpose: Applications of ML knowledge in Game playing 
Week 17: Discussion
·        Private communication
    Week 18: Final contest and report
Grading by Ranking
  1. G-1: Lab report (HackMD) and attendance: 20%
  2. G-2: Breakout Clone pre-contest: 5%
  3. G-3: Breakout Clone contest 2: 25%
  4. G-4: Github: 10%
  5. G-5: Final Contest: 45%
·        Winner of each contest with Rank=0. The second position with Rank=1. Same for others.
·        Grade = Contest highest grade (1 - Rank * factor), factor TBD
·        Finale =  sum (G-i), for all i.

2019年2月18日 星期一

[課程]2019訊號與系統

Instructor

蘇文鈺 (Alvin W.Y. Su), X62537, Rm 65C08, alvinsu@mail.ncku.edu.tw

Teaching Assistants
林煒婷,楊鴻志,蕭佑丞, RM 65707

Course Materials
  1. Schaum’s Outline of Signals and Systems, 3rd Edition (Schaum's Outlines) 3rd Edition, Hwei Hsu 
  2. VST plugin tutorial 
  3. Online ppt 

Targets
  1. Learn signals and Systems Basics 
  2. Know the algorithms and how to implement 
  3. Both Python and C++ are required 
  4. VST Plugin 
  5. Term team project

PREREQUISITES
  1. Calculus 
  2. Linear Algebra 
  3. Engineering Math. 
  4. Computer Programming I 
Course Arrangement
  • 課堂成績 
  • In-class programming: 簡單混音器,將四個單聲道不同樂器之一分鐘音檔,照指定大小與時間位置混成左右聲道一個立體聲音檔。  
  • In-class programming: 可參數化的吉他失真效果器。準備電吉他獨奏一分鐘音檔一個。  
  • In-class programming: 可參數化的Wah-Wah效果器。準備電吉他獨奏一分鐘音檔一個。  
  • lab2: 播放音擋與耳機輸入之改變音量之VST Plug-in  
  • lab3: 移植可參數化的吉他失真效果器之VST Plug-in  
  • lab4: 移植可參數化的Wah-Wah效果器之VST Plug-in  
  • lab5: Karplus Strong撥弦音色合成之VST Plug-in  
  • lab6: Source Filter Model合成器之VST Plug-in  
  • lab7 Echo/Delay 之 VST Plug-in  
  • lab8: 電腦Keyboard 為輸入介面之VST Plug-in  
Team Project Topics of the Term
  1. 實作HRTF(Head Related Transfer Function),指定單音音源至空間中的某一位置,包含距離遠近 
  2. 具備四個回授路徑的殘響產生器。 
  3. 可參數化,六頻段之等化器。
  4.  Chorus effect processor 
  5. 合成單簧管 
  6. 合成Saxophone 
  7. 合成法國號 
  8. 合成吉他 
  9. Automatic Chord Progression Generator (KW: Automatic Chord Progression Generator Machine Learning AI LSTM RNN) 
Grading by Ranking
  • In-class programming: 40% 
    • Turn in before 6:30pm: 100 
    • Turn in before midnight: 90 
    • Turn in before midnight of the next day: 80 
    • Turn in before midnight 2 days later: 60 
  • Written exams: 15% 
  • Computer program exam (VST plugin): 10% 
  • Final Project and report (VST plugin): 35% 
  • Attendance and others: 10%