Machine Learning HW13
作業內容
Omniglot 資料格式
omniglot.tar.gz
解壓縮後會有兩個資料夾:images_background (training set) 跟 images_evaluation (test set)
每個資料夾裡有不同文字,像是下面的 Crillic.180,180 是角度,每個語言很多不同的字,每個字有 20 個不同的 png 檔,範例如下:
Omniglot/images_background/Cyrillic.180/character01/0218_06.png
原理
Report 1. (2.5%)
配分: classification 修改 (1) regression 修改 (1) report 一階做法在 classification 上的 accuracy (0.5)
請描述如何將助教的程式碼 (包含 classification 與 regression) 從二階的 MAML 改成一階的 MAML (作答請盡可能詳盡,以免助教誤會),並且比較其最後在 classification 上的 accuracy (5-way-1-shot)。因此你的 GitHub 上會有 p1_classification.py 和 p1_regression.py 兩個檔案,分別是 classification 和 regression 的一階版本。
report 連結:https://reurl.cc/Qdn9z5
Report 2. (2.5%)
pseudo code (1) 作圖(1) report accuracy (0.5)
請將 classification 的程式碼改成 inner loop 更新 5 次,inner loop 使用 adagrad 來更新參數。這題一樣要用二階的 MAML,寫出其 pseudo code 與回報 accuracy (5-way-1-shot omniglot 分類任務)。並且以 outer loop 的更新次數為橫軸,分類的準確率為縱軸作圖,比較其差異。因此你的 GitHub 上要有 p2.py,對應本題的程式碼。
Report 3. (2.5%)
配分:report 實作 tip 後的accuracy (1) 解釋你使用的 tip (1) 找出助教實作的 tip (0.5)
實作論文 "How to train your MAML" (https://arxiv.org/abs/1810.09502) 中的一個 tip,解釋你使用的 tip 並且比較其在 5-way-1-shot 的 omniglot 分類任務上的 accuracy。助教其實已經實作了一個,請找出是哪一個 tip 並且不要重複。因此你的 GitHub 上要有 p3.py,對應本題的程式碼。
Report 4. (2.5%)
配分:程式碼 (2) 回報accuracy (0.5)
請實作 reptile 在 omniglot dataset 上,訓練 5-way-1-shot 的分類任務,並且回報其 accuracy。這題應該在 GitHub 上會有 reptile_train.sh與reptile_test.sh 的 shell script,分別對應meta training與meta testing。
老師投影片p.30:http://speech.ee.ntu.edu.tw/~tlkagk/courses/ML_2019/Lecture/Meta1%20(v6).pdf
本題助教會跑 Training 的 code,請不要讓你的 code(在 colab 上用 GPU)跑超過 4 小時。
第四題程式碼規定
reptile_train.sh請實作meta_training,並將train完的model命名為model_學號.bin�reptile_test.sh請實作將上述存起來的model進行meta testing
助教在執行時會以以下方式執行:
bash reptile_train.sh <PATH_TO_OMNIGLOT_train_set> <PATH_TO_MODEL>
bash reptile_test.sh <PATH_TO_OMNIGLOT_test_set> <PATH_TO_MODEL>
作業注意事項
GitHub Submission Format
GitHub 的 hw13-<account> 上應該至少會有以下檔案,pX 對應到的就是 Problem X:
注意事項