# 人工神經網路與深度學習 Artificial Neural Networks and Deep Learning ## 注意事項 * 這門課整體學起來有點弔詭,初學真的會頭破血流,故做這篇,希望後人可以少走一些彎路 ## 成績標準 * Project 3 times(15% * 3 = 45%) + Final proj(25%) + Final Exam(30%) * 3 個 proj 的 15% 再拆成單看驗收時準確率的 11.25%,跟 proj 驗收後的個人輪流報告 3.75%,因此,11.25%會直接乘上你的準確率得到該次 proj 的大部分分數。 * Project 1: 不仰賴套件,單純使用 Back propagation 的概念來辨識數字,使用的資料集為MNIST,其中神經網路、loss function、learning rule 自己決定。 * Project 2: 允許使用套件,用CNN的方式辨識10類圖片,使用資料集為CIFAR-10 * Project 3: 用 Semi-supervised learning 的方式來辨識圖片,使用資料集為STL-10 * Final proj: 109-2 學期沒有報告,所以單純拼準確率,用 CNN 就能獲得好結果 ## 一些待整理的經驗談 (以下經驗均以 Keras 套件出發,我不會 Pytorch) * 實作前有什麼要注意的嗎? 記得觀察網路上程式碼的各環節的對接資料格式,numpy/keras 的函數參數要早點搞懂,沒事多用numpy.shape來看看張量的形狀 * 如果 CNN 平常在弄的時候一切正常,但驗收的時候餵資料準確率很低怎辦? 檢查資料傳遞過程,跟平常訓練的過程是否一致? 檢查一下測試資料格式有沒有對?進NN之前的各階段資料格式跟平常訓練是否相同? 之前遇到這狀況的原因為忘記將測試資料/255,數值對 NN 來講太大了! * 如果訓練時 val_accuracy,甚至 training set accuracy 一直都是爛的呢? 一樣先檢查資料格式,然後如果是 CNN,記得每個 conv2d 後面要上 batch normalization,整個 conv 的流程就會是 conv2d->batch normalzation->activation function (通常是 ReLU 啦) * 訓練過程 accuracy 抖動幅度過大? 這樣就可以判讀成學習的速度不夠快,Batch normalization 會加速學習速度,學術上來說就是讓loss 更快收斂。 * 越大張的圖片,就用越深的網路 ###### tags: `CSnote`
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up