在上一篇([28]整合Custom Vision到chatbot - 拍照就可以識別價錢)把Custom Vision Training好的Model和Chatbot結合達到了拍照就可以辨識飲料價錢的功能。
這一篇來看看如何透過歷史查詢的圖片持續精進Model,讓他的準確度越來越高,并且透過Iteration做版控避免更糟糕的Model不小心上綫。
加入歷史查詢圖片到Training Image裡面
和LUIS一樣,Custom Vision會記錄那些圖片有被送過來做辨識,并且會把辨識的結果留下來。
因此,作爲管理者,一段時間就應該看一下這個Model在識別上面有沒有什麽問題,有的話把他調整過了。
首先,登入到Custom Vision裡面了之後,找到要看的專案,選擇上面最後一個tab,Predictions
:
點下去了之後會看到測試時候的照片都在了這邊。這個時候把滑鼠移動到某一張圖片的時候,會顯示這張圖片在決定各個tag裡面的幾率是多少:
如果想要看大一點的圖片,可以點下去,看到的畫面類似用Quick Test
的到的結果畫面一樣。
如果要把這些圖片加入training的圖片清單的話,只需要把相同的用勾勾選起來,然後選擇上面的Tag images
來決定是哪個tag,確定了之後按下save and close
即可:
儲存完了之後,再去看Training Images
會看到多了剛剛那兩張,這個時候記得要做Training:
Iteration的介紹 - 管理好Model的版本
當在執行一次Train的時候,在Peformance
那邊會發現多了一個Iteration 2:
還記得在上一篇取得Prediction Url
之前,我把Iteration 1變成了Default。這樣做的原因是會影響到產生的Prediction Url
。
以Iteration 2來説,點下他的Prediction Url,會發現裡面有一段的參數是?iterationId={guid}
。如果說沒有這個參數,那麽Default的iteration將會被使用。
這代表什麽意思呢?當Model在做調整的時候,結果可能好,也有可能壞。因此,Production使用的應該是Default的Iteration,也就是Predication URL
沒有加入iterationId
的版本。
只有當確認好了某個iteration model符合需求,這個時候在透過Make Default
來切換成爲預設的Iteration。
以剛剛的例子來看,在Iteration 2只是在sprite類型加了兩張圖片,但是整個的Precision和Recall和Iteration 1差很多:
從截圖可以看到,不止整體的Precision和Recall掉了,在個別項目來説coke和pepsi都往下掉了。換句話説,加入了兩張圖片的training比不加入的效果還來的糟。換句話説,iteration 1比iteration 2好多了。
這個時候就不應該把iteration 2改成default。
結語
這篇對於如何使用歷史的查詢來持續Training Model以及透過Iteration的概念達到版控的效果做了一些介紹。
不過還留了一個問題,怎麽樣才知道目前的Iteration Model是好還是壞?這邊就牽扯到了兩個數字:Precision以及Recall。
這兩個數字是classifier model用來衡量好不好的數字,牽涉比較多,因此在下一篇([30]Confusion Matrix - 用來衡量Classifier Model的方式 Precision和Recall)將介紹這兩個數字的含義以及怎麽看。