Contents ...
udn網路城邦
達到95%的手寫數字辨識里程碑!恍如我的博士論文翻版?
2026/09/13 00:28
瀏覽81
迴響0
推薦0
引用0

自七月底至今經過約一個半月的努力,完全不遵循任何既有技術的方式與架構,我完全獨立開發的手寫數字辨識核心終於達到以MNIST字集為基準的95%辨識率了!感覺很像重溫了一次自己的博士論文經驗?我的博士論文也是這樣,徹底拋開前人嘗試過的方法,完全創新自己建立了一套數位地形辨識的數學架構!當時就讓我的評審教授們很焦慮,不敢輕易放行,如果我的方法是造假的,那就是學術醜聞了!但是一個全新的演算法要如何讓海洋地質背景的教授辨識真偽?好難的!

如我之前強調的,這個字集自行「定義」的標準答案,也就是機器學習模式說「標記」的Ground Truth是有些模糊地帶爭議空間的!如右上展示的就是部分字集說是5,我目前的辨識核心卻無法確定是5的案例!當然都不是一般人認為很正常的寫法,按照我的架構它們都「可能」是5?但還有其他無法明確排除的候選答案!

當然我還會繼續研究,讓這些我的架構中還不能確定唯一答案的案例持續減少一些,也就是讓以MNIST字集定義為基礎的辨識率再提升一點,目前估計大約就是再提升約一兩趴吧?我估計超過這個極限辨識率就是所謂的Overfitting過度遷就字集提供的不合理答案了!

所以我不會繼續追求98%以上辨識率的!因為當我真的據此辨識核心製作出辨識軟體時,這些過度遷就字集提供的扭曲不合理答案產生的怪異邏輯會讓某些辨識反應很奇怪?反而不合乎一般人的預期了!某些狀況其實根本人眼也無法分辨時,就不應該強制按照字集的答案走!直接以剩下的候選答案隨機選擇一個答案輸出即可!

譬如上面兩個案例你認為應該誰是0?誰是6呢?按照MNIST的說法左邊的是6,右邊的是0!這種明顯自相矛盾的案例在MNIST中非常多!你同意嗎?如果我硬是找到能配合答案的怪異邏輯,讓右邊案例被視為0?左邊案例被視為6譬如根據上面兩例,建立一個邏輯說:圓圈大的就是6?圓圈小的就是0?我知道這個邏輯不合理所以不會採用,但是機器學習不會介意加入這種邏輯!這些量身訂做的扭曲邏輯就是會破壞整體辨識穩定性的!一旦面對MNIST字集以外的真實案例就會發生不可預期的怪異反應了!

我想這也是機器學習訓練出來的影像辨識軟體在市面上其實很少的原因之一!就是根據主觀武斷標記正確答案的案例訓練出來的模型,即使答案已經是100%辨識率,那些辨識邏輯也未必很合理,所以面對非字集內的真實案例時會出現一些讓使用者瞠目結舌的怪異反應!但這類狀況發生時,機器學習的軟體開發者也只是擁有一個黑盒子!無法因應修改優化升級的!即使增加更多訓練資料重做訓練,也只是增加更多不穩定的怪異邏輯,不會讓辨識核心表現更穩定合理的!

所以這段時間的經驗,也讓我更深入了解到機器學習模式做這種影像辨識時的潛在問題!讓我知道那些宣稱XNN模型訓練的辨識率多高的神話有多荒謬?之前只是懷疑他們說得那麼神奇?那為何市面上還是很少看到這類產品?大家都說在訓練,卻始終提不出方便好用的辨識軟體?現在我知道更多原因了!

當然按照我目前使用的創新架構,也就是回歸Rule based的邏輯開發的辨識軟體就絕對不會有上述的弊病了!如果我的軟體建立的明確邏輯碰到上面的案例無法判定是06時,就會隨機選一個答案輸出!一般人被迫說出一個答案時也會這麼作的!即使不完全正確也不會太不合理!如果硬是建立一個邏輯說:圓圈大的就是6?圓圈小的就是0?那就是遷就MNIST標準答案的爛邏輯了!這個不合理邏輯就是會讓辨識答案離譜的BUG了!


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