[chatbot + AI = 下一代操作模式][29]維護Custon Vision Model - 使用歷史查詢記錄做訓練以及如何版控 @ Alan Tsai 的學習筆記|An Asp .Net Mvc Web Developer Blog

Alan Tsai 的學習筆記


學而不思則罔,思而不學則殆,不思不學則“網貸” 記錄軟體開發的點點滴滴 著重於微軟技術、網頁開發、DevOps、C#, Asp .net Mvc、Azure、AI、Chatbot、Docker、Data Science

[chatbot + AI = 下一代操作模式][29]維護Custon Vision Model - 使用歷史查詢記錄做訓練以及如何版控

[chatbot + AI = 下一代操作模式][29]維護Custon Vision Model - 使用歷史查詢記錄做訓練以及如何版控.jpg
圖片來源:https://pixabay.com/en/books-spine-colors-pastel-1099067/ 

在上一篇([28]整合Custom Vision到chatbot - 拍照就可以識別價錢)把Custom Vision Training好的Model和Chatbot結合達到了拍照就可以辨識飲料價錢的功能。

這一篇來看看如何透過歷史查詢的圖片持續精進Model,讓他的準確度越來越高,并且透過Iteration做版控避免更糟糕的Model不小心上綫。

加入歷史查詢圖片到Training Image裡面

和LUIS一樣,Custom Vision會記錄那些圖片有被送過來做辨識,并且會把辨識的結果留下來。

因此,作爲管理者,一段時間就應該看一下這個Model在識別上面有沒有什麽問題,有的話把他調整過了。

首先,登入到Custom Vision裡面了之後,找到要看的專案,選擇上面最後一個tab,Predictions

chrome_2018-08-09_15-02-08.png
找到Prediction的tab

點下去了之後會看到測試時候的照片都在了這邊。這個時候把滑鼠移動到某一張圖片的時候,會顯示這張圖片在決定各個tag裡面的幾率是多少:

chrome_2018-08-09_15-03-06.png
看圖片識別的幾率

如果想要看大一點的圖片,可以點下去,看到的畫面類似用Quick Test的到的結果畫面一樣。

如果要把這些圖片加入training的圖片清單的話,只需要把相同的用勾勾選起來,然後選擇上面的Tag images來決定是哪個tag,確定了之後按下save and close即可:

chrome_2018-08-09_15-07-08.png
圖片加入training集合裡面

儲存完了之後,再去看Training Images會看到多了剛剛那兩張,這個時候記得要做Training:

chrome_2018-08-09_15-09-27.png
剛剛設定的進入了training image裡面

Iteration的介紹 - 管理好Model的版本

當在執行一次Train的時候,在Peformance那邊會發現多了一個Iteration 2:

chrome_2018-08-09_16-00-42.png
多出了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差很多:

2018-08-09_16-07-14.png
左邊是Iteration 1,右邊是Iteration 2

從截圖可以看到,不止整體的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)將介紹這兩個數字的含義以及怎麽看。

comments powered by Disqus