Contents ...
udn網路城邦
製作一個手寫數字的實驗介面,感覺就真實多了!
2026/08/18 01:49
瀏覽124
迴響0
推薦4
引用0

研究手寫數字辨識大約三週了!使用MNIST42000張影像資料庫為標的,辨識率已達93.3%了!每天還在繼續研究處理細節問題,好像進入陣地戰或巷戰,每天大概能挺進個零點幾趴!雖然客觀的目標是依據這個資料集跑出來的辨識率,但總覺得少了一點真實感?我現在隨手寫個數字,我的軟體能辨識正確嗎

所以昨天收工前就在實驗程式中做了這個模擬手寫數字的介面!可以用滑鼠拖曳的方式寫數字讓我的軟體立即辨識!當然幾乎怎麼寫都可以做出合理正確的辨識!這樣感覺就踏實多了!或許研究完工後也可以做個互動網頁讓網友在網頁上做這種測試?那就更好玩了!

重點是:如果拿去跟客戶展示時,不會只是空口說白話說是根據XX資料庫辨識率多少了!可以讓有興趣或有疑慮的客戶現場自己測試!須知所謂的辨識率是很容易美化,甚至做假的!任何既有資料庫都是固定存在的!如果我的辨識軟體作弊直接跟這些檔案產生關聯,等於偷窺正確答案!辨識率要多高都行的!

另一方面這些資料庫也會有很多偏差到太誇張的案例,如果我太刻意扭曲辨識邏輯去配合它們提高辨識率,就會產生所謂的Overfitting(過度擬合)效應,讓某些其實視覺上正常的數字影像也會偶然出現奇怪的錯誤!簡單說就是潛藏一些辨識地雷讓軟體反而變得不穩定,偶爾會出現讓人意外的錯誤啦!

譬如上面這些影像MNIST資料庫說它們都是5?你同意嗎?一般人會認為這樣寫的字是5嗎?有些根本比較像368!如果我替它們量身打造刻意做出讓它們可以被辨識為5的邏輯,你覺得會是穩定可靠的邏輯嗎?所以我不會太刻意在這種不是百分百大家都同意的標準答案中追求完美辨識率的!頂多是追高到95%左右就會收工了!不然自己建立的邏輯之間就會有太多矛盾衝突,無法自圓其說了!我現在的93.3%辨識率就開始衝進這個陰陽魔界的邊緣了!上面就是我的程式收集的部分辨識失敗案例。

影像辨識總是會有模糊地帶的!所以我不喜歡過度強調辨識率的絕對高度!因為如果標準答案都有爭議時,辨識率當然也會跟著不可靠,如果辨識目標是印刷字,追求辨識率到98%是合理的!手寫字呢?以我目前對MNIST資料集的觀察,大概95%左右是合理目標,在此以上並沒有太大的實質意義。也就是說:宣稱根據此資料集做到98%的未必比95%的更好!只是更扭曲配合答案而已!

也就是說:最終客戶要找到合乎自己預期的辨識軟體,一定是要自己大量手寫測試,或是使用自己需要辨識的資料做測試的!或許這也是機器學習派說必須自己訓練模型的原因吧?因為每個應用場域資料集合都會有些不同的特性!譬如我們台灣人與歐美人士的手寫數字習慣就可能有明顯差異

如果碰到這種情況,就是出貨之後發現客戶需要辨識的資料有些特性是我的軟體開發時沒碰到過處理過的呢?我就可以跑程式收集辨識錯誤的案例,分析那些失敗的原因加入新的邏輯去適應它們!頂多一兩天就可以優化更新了!如果辨識軟體是用機器學習做的呢?那就只能全部打掉重做(重新訓練)了!成本當然會高出很多很多的!

所以一念之間以為使用不必大腦思考辨識邏輯就能進行的CNNDLML等技術,後果真是不堪設想!每一個步驟都需要花更多的錢與時間!簡直就是所謂的錢坑!還未必保證可以獲得高辨識率!你還是覺得非用這些技術做影像辨識不可嗎?就看你到底能笨到甚麼程度了!

有誰推薦more

限會員,要發表迴響,請先登入