林晉宏 (Jephian Lin)
此投影片由 Jupyter 製作
原始檔請見下方連結
https://github.com/jephianlin/outreach/blob/master/NSYSU-digits/NSYSU-digits.ipynb
MNIST 手寫數字資料庫
idx
格式儲存(Source: Wikipedia of MNIST database
author: Josef Steppan)
各數字的墨水用量分佈
用墨水猜測的答對率(confusion matrix)
96.8% ~ 99.37%
(10 minutes on i7-8700 12 cores)
(Source: Wikipedia of k-nearest neighbors algorithm
author: Antti Ajanki)
88% ~ 92.4%
97.9% ~ 99.44% (7 minutes on i7-8700 12 cores)
(Source: Wikipedia of Support vector machine
author: Alisneaky)
97% ~ 99.77%
NSYSU-digits 手寫數字資料集
png
格式儲存悲慘世界
M to M | M to N | N to N | |
---|---|---|---|
random | 10 | 10 | 10 |
ink | 22 | 6 | 19 |
kNN | 98.8 | 13 | 45 |
linear | 88 | 21 | 34 |
SVM | 97 | 27 | 52 |
NN | 92 | 28 | 25 |
CNN | 97 | 44 | 32 |
M: MNIST
N: NSYSU-digits
資料科學的用意不只在於使用模型
更重要的是在結果不如預期的時候了解可能的原因
資料前處理
可能的選項:加粗、加深、大小統一、置中
參數:radius
, decay
decay = 0.8
參數:thres
, ax + b
(leveling function)
new_arr[arr > thres] = new_arr[arr > thres] * a + b
參數:thres
, target
(size of the bounding box)
參數:thres
, target
(size of the bounding box)
參數:thres
[ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 (index)
[ 0 0 0 0 0 0 0 0 233 1080 550 310 295 240 (column sum)
14 15 16 17 18 19 20 21 22 23 24 25 26 27] (index)
289 402 542 119 0 0 0 0 0 0 0 0 0 0] (column sum)
M to N | M to thicken | M to dark | M to center | M to ??? | |
---|---|---|---|---|---|
random | 10 | 10 | 10 | 10 | 10 |
ink | 6 | 9 | 7 | 7 | 12 |
kNN | 13 | 27 | 26 | 52 | 87 |
linear | 21 | 22 | 25 | 74 | 76 |
SVM | 27 | 38 | 40 | 75 | 91 |
NN | 28 | 28 | 29 | 70 | 82 |
CNN | 44 | 45 | 49 | 90 | 95 |
M: MNIST
N: NSYSU-digits
thicken: thicken NSYSU-digits (rad=2, decay=0.8)
dark: darkened NSYSU-digits (+100)
center: centerized NSYSU-digits (fit to 20x20 and centered by mass)
???: some formula
thres
ax + b
(leveling function)radius
decay
target
(size of the bounding box) 這些參數的設定目前看起來不錯
適用於所有狀況嗎?(掃描器、筆...)
超出格子、字體歪斜、額外的一點、非預期的答案或空白...
超出格子
字體歪斜
額外的一點
非預期的答案或空白
專案中遇到的困難、犯過的錯誤
分數採全有全無制、滿分 5 分
小考分數 = 課堂小考、所有補考的平均
如果課堂小考 0 分,但想拿 4.5
就要再寫對 9 張小考
而且在這之中沒有犯錯
驗證碼區位於右下角往左上 (1cm, 1cm) 處
大小為 (2cm, 2cm)
QR code 區位於左下角往右上 (1cm,1cm) 處
大小為 (2cm, 2cm)
在線性代數課中試行小考系統
助教幫我跑程式,發現:
C.-C. Jay Kuo, Min Zhang, Siyang Li, Jiali Duan, Yueru Chen
Interpretable convolutional neural networks via feedforward design
Journal of Visual Communication and Image Representation, 60: 346–359, 2019
我當時相信只要神經網路處理好
字體大小不一、不置中、有時候截圖還會截到線
都不是問題
就這樣擺了一年
整年的考卷其實都是助教人工改的
有好助教的老師像個寶
由衷感謝 <(_ _)>
每個人也不一定會寫在中心位置、大小也不同
一年後我開始準備下一年的課程
決心要在開學前把 auto-grading 搞定
我一直告訴助教驗證碼和 QR code 的位置應該在 (1cm, 1cm) 的位置
LaTeX 產出的檔案預設是 US letter
印表機自動縮放印在 A4 的紙上
(更精確來說,每一頁的原始檔我有調成 A4,但合併的時候忘了;所以 A4 紙被嵌在 US letter 裡,又被 A4 紙印出來...)
匯入資料庫的時候
圖片有重新洗牌一次
程式沒寫好...
圖片和答案分兩次洗牌
答案跟亂數沒兩樣,得到 10% 天經地義
bright = 255
if bright > 100
)加深、補洞
學生的名字或學號
目前還是須要助教輸入 T_T
自動閱卷系統
掃描 → QR & 辨識 → email 學生
已經幾乎完成
資料沒清洗的狀況下辨識成功率只有 60%
↪ 為了做這投影片才認真清洗
(但目前還是人工辦識)
學號還是沒辦法處理
↪ 目前還是人工
QR code
↪ 出錯一次,程式除錯
不斷修正改進中:)
總結