
上圖是我正在做的手寫數字辨識前面三天的成績單!每天大約可以提升0.2%的辨識率!影像樣本數是42000張,0.2%大約就是84張,8%就是3360張!意思大概是說我有3000多張的樣本是辨識錯誤的!原因可能是無法辨識出是標準答案的那個數字,或是有超過一個可能的答案無法確定是誰?
我的做法就是一一去分析研究那三千多張的失敗案例,設法經過修改或新增辨識邏輯讓失敗案例可以變成成功案例!很像醫院體檢之後發現有三千多個病人需要醫療,但他們生的病可能一樣,也可能不一樣?新藥或新療法有時可以一次治好很多人!也可能只能治好眼前的一人,那就是所謂的「罕病」了!更常見的狀況是新藥會「醫死」很多人!那種藥或療法當然就不能用,必須放棄找其他新藥了!

譬如7或9有點相似,所以我會先建立一個上寬下窄的邏輯辨識它們。但是這個簡單的邏輯會讓很多案例都同時可能是7也可能是9?那就算是錯誤生病的案例了!它們需要進一步的辨識邏輯來區分它們到底是7還是9?以上面兩個案例來說上寬的部分如果下方有明顯缺口就是7,近乎封閉就是9了!
很好玩吧?我的影像辨識就是走這麼合乎一般人的常識與直覺的路線!我的工作就是把這些簡單的直覺,試著用數學語言來形容,再實作成為可以在電腦上執行辨識用的程式碼!實作後發現新的狀況無法正確如預期的辨識成功就研究失敗原因持續修改嘛!每一個新的修改除了要先讓眼前案例如願治好,也要試用到所有案例評估副作用!還好吃錯藥不會死人的!比研發新藥壓力小多了!
這當然是相當緩慢的過程,所以前面三天都只能微幅調升辨識率約每天0.2%!就是80多張的治癒病人了!事實上辨識率是會微幅起伏的!如果發現不合理有漏洞的邏輯,即使歪打正著碰巧能讓辨識率略升也不能用,必須放棄的!這就是我的方法跟機器學習最大的不同了!他們是只求辨識率提升,完全不管科學合理性的!
其實人眼能辨識那麼多形狀各異的手寫數字,腦子裡也是使用我們的經驗建立出很多小邏輯來分辨的!只是人腦不是電腦,無法拿個USB插上就可以下載出來給其他電腦使用!我認為合理的影像辨識研發就是嘗試將這些經驗邏輯用逆向工程的方式解析成程式碼!也就是我現在天天在做的事!
事實上機器學習的目標跟我一樣!也是希望可以模擬出跟人腦思考一樣準確有效率的邏輯!但是他們不想做艱辛複雜嚴謹的逆向工程,那太難了!需要非常好的數學與物理知識及極佳的理解力甚至創造力!還要加上非常好的Coding能力!他們天真的概念是:人不需要真的知道或學會人腦的辨識邏輯,只要用大量已知答案的資料去逆推統計就行了!
如果這樣真的行得通,目前市面上所有的影像辨識軟體一定都是使用這套方法做的了!但是事實上成熟的影像辨識產品幾乎都「不是」以這個方式做成功的!反而是我使用的Rule-based方法才是所有主流成熟影像辨識商品的內涵!因為這樣做出來的產品才會更精準,也有更好的執行效率!
有趣的是:大家會瘋迷機器學習(包含CNN與DL)等技術,是因為好像不需要真的知道專業的Knowhow,就可以做出好用的影像辨識產品?但是事實上卻不是這樣的!為什麼會有MNIST這種網站資料與機器學習技術平台就是很弔詭的事情!
如果機器學習這麼簡單又好用,那麼網站建立者自己用機器學習做出好的手寫辨識軟體(或稱模型),直接銷售給所有需要的使用者就好了!哪需要讓大家都來學習如何用機器學習製作自己版本的半調子辨識軟體呢?就跟汽機車如何製作?會有很多網站教你DIY嗎?直接買廠商製作的優質產品就好了嘛!
所以事實是機器學習怎麼作都做得不夠好!那就開放資訊讓大家自己去尋寶吧!看看有誰的「手氣較佳」,做出比網主更好的成果!網主自己無法做出直接好用的商品,就像先驅的淘金客,自己其實找不到多少金子,就靠著販賣掏金資訊與工具賺錢了!只要夠多人相信真的還有很多金子可以挖,他們就不必自己淘金也能賺錢了!這才是機器學習真正的AI煉金術啊!真的別再上當了!
限會員,要發表迴響,請先登入




