--- tags: 實習日記 --- # 實習日記10/24~10/28 [TOC] ## 10/24 1. 開會 2. 柏林建議可以找這本書來看,有更多 ai 的內容可以玩 ![](https://i.imgur.com/d9LO67z.png) - 工研院的轉正和 ocr 模型就是用 pytorch 寫的 3. 研究工學院車牌辨識報告 ``` Yolo 的優點 ``` - 免去RegionProposal步驟,直接用CNN進行Regression,速度很快 ``` Yolo 的缺點 ``` - 預測物件的總數受限於Grid的總數 - 能夠辨識物件的種類很少 - 面積占比小的物件因為IOU小,準確率很低 - 之前的專題曾經想使用yolo來抓高爾夫球,正是因為小物件準確度很低,所以無法成功抓取到。 - 群體小物件,例如鳥群,只能檢測其中一個,準確率很低 - 影像辨識的種類 - 標記麻煩程度:實例分割>語意分割>物件偵測>物件分類 - 資訊量:實例分割>語意分割>物件偵測>物件分類 4. 標籤什麼照片要等公司處理好影像,我才有辦法做標籤 5. 看第3點的書 ## 10/25 1. 研究利用via標籤 ![](https://i.imgur.com/dywsa92.png) ### 練習成果 ``` 第一張 ``` ![](https://i.imgur.com/CkxU1aZ.jpg) - 用正向長方型標記,並加上車牌號碼的訊息。 ![](https://i.imgur.com/YI1vcnV.jpg) - 左上顯示車牌號碼資訊 ![](https://i.imgur.com/IGca8Lm.jpg) - 輸出json檔案 ``` 第二張 ``` ![](https://i.imgur.com/u31FByz.jpg) - 使用任意四邊形標記 ![](https://i.imgur.com/d1P9Nfs.png) - 車牌標記成功 ![](https://i.imgur.com/Hky2NaH.png) - 輸出json檔案 ![](https://i.imgur.com/wsSY3UT.jpg) ![](https://i.imgur.com/U0lc1xD.jpg) 2. 看pytorch的書和其他pytorch相關資料 3. 參考資料 - https://www.youtube.com/watch?v=-3WVSxNLk_k - https://medium.com/pyladies-taiwan/%E6%B7%B1%E5%BA%A6%E5%AD%B8%E7%BF%92%E6%96%B0%E6%89%8B%E6%9D%91-pytorch%E5%85%A5%E9%96%80-511df3c1c025 ## 10/26 1. 繼續了解pytorch a. Deep learning framework b. 以Python優先的深度學習框架(對Python的支援性高) c. 人工智慧(Artificial Intelligence):電腦與機器模仿人類思考進而模擬人類的能力與行為(較大的集合) d. 機器學習(Machine Learning):從資料中學習分析獲得規律,並利用獲得的規律對未知的資料進行預測 (為人工智慧的子集合) e. 深度學習(Deep Learning):以神經網路為架構,對資料進行特徵學習的演算法(為機器學習的子集合) ![](https://i.imgur.com/e1CIrsS.png) 2. 看programing pytorch for deep learning 3. 練習基本pytorh的程式語法 4. 參考資料: - https://www.readfog.com/a/1633738521353228288 - https://medium.com/ching-i/pytorch-%E5%9F%BA%E6%9C%AC%E4%BB%8B%E7%B4%B9%E8%88%87%E6%95%99%E5%AD%B8-ac0e1ebfd7ec - https://ithelp.ithome.com.tw/articles/10244106 - https://www.youtube.com/results?search_query=pythorch ## 10/27 1. 讀工研院course02 ### 簡單重點整理 - 機器學習與傳統規則模型十分不同 - 傳統規則模型: 人工尋找資料規律並訂定規則,規則須明確闡明,使得機器足以根據規則下判斷 - 機器學習模型: 資料驅動規則訂定,準備大量資料並使用數學模型歸納規則,規則通常難以明確闡明 - 機器學習模型永遠使用最簡單的方式完成我們準備的考卷 - 張量 tendsor,ndarry - Scalar:0-dim tensor - Vector:1-dim tensor - Matrix:2-dim tensor - Tensor:3-dim tensor - 從立體空間到平面影像 - 物體被拍攝後會從三維影像變成二維影像,有很多轉換形式可以解決,有些複雜 - 透視投影 - homographic matrix - 平移 - 旋轉 - 等比縮放 - 非等比縮放 - 仿射轉換 - 透視轉換 - SWAG vs. Yolo - Yolo也可以框車號,但每個數字英文都要標,並註明他的類別,十分麻煩 2. 盡力了解course2裡面的數學和公式 3. 看programing pytorch for deep learning ## 10/28 1. 研究工研院course3 2. 看programing pytorch for deep learning ``` 重點整理 ``` ### Overfitting: - 訓練資料當中學習到錯誤的規則,這些規則在訓練資 料內或許成立,但實際考慮訓練資料以外的情況則否 - 模型的 能力越來越強時,訓練資料上的準確率越來越高,但是在測試資料的 準確率卻越來越低 ![](https://i.imgur.com/f3xDuDy.png) ### Solution of overfitting 1. 正規化: 在 cost function 的後面增加一個懲罰項 ![](https://i.imgur.com/Nw8VsOB.png) 2. Early Stop: 在每一個 epoch 結束時計算驗證集(validation data)的準確率,當準確率不再提高就停止訓練 ![](https://i.imgur.com/iZEoUrD.png) 3. Augmentation:考慮洽當的資料增量,可以以少量資料模擬多量資料的效果,當資料 越來越多時,縱使模型能力很強也不容易過擬合 ![](https://i.imgur.com/HKvGKUy.png) 4. Cutout:強迫模型多學幾種額外的特徵 ![](https://i.imgur.com/eMy9Gdz.png) 使用類似high availablity的觀念,強迫模型多雪幾種特徵 5. Random Padding:YOLO有時候會框歪物件,導致後面的模型辨識效果不佳,不如我們一開始就假設YOLO會框歪,將此效果直接加入YOLO後面 模型的資料增量 6. Random Perspective:轉動車牌的角度,增加不同的特徵 ![](https://i.imgur.com/fh9ad0B.png) ### Hyper-parameter Tuning Tips 1. 調整增量程度的參數專有名詞為超參數(hyper-parameters),為了避 免與模型內的參數(parameters)混淆,模型以外的參數都稱超參數 2. 資料增量手法眾多(上面所提到的6個方法),會留下許多的超參數,這些超參數因為不可微分 ,無法使用先前的梯度下降(gradient descent method,之前訓練模 型內參數的方式)進行最佳化 3. 超參數可分為重要與不重要,代表其數值對於模型準確率影響的程度 ,不重要的參數不管怎麼設對準確率都沒什麼影響,重要的參數要設 得正確才能達到高準確率 ### Solution of Hyper-parameter 1. 網格搜尋 (grid search):使用網格搜尋每次只搜尋一個維度,剩下N-1個維度皆為一樣的數值, 若搜尋的維度為不重要的,那就浪費了計算資源只是得到類似效果的 模型 2. 網格搜尋 (grid search):使用隨機搜尋可以在每個維度都嘗試不一樣的數值,探索空間的程度 更高 3. 貝式最佳化 (Bayesian optimization):貝式最佳化基於統計學的貝氏理論,特 色為一邊蒐集資訊一邊做決策。在現有 最佳超參數附近,加上考量不確定性來 決定下一輪該嘗試什麼![](https://i.imgur.com/M9g53ek.png) 5. 增強式學習 (reinforcement learning):增強式學習直接將最佳化當作機器學習 問題處理,特色為可以直接處理不可微 分的問題,以模型準確率為獎勵,尋找 最佳化超參數以獲取最大獎勵 ### Object Detection 1. 準確率為衡量模型預測與正確答案之間的差異 2. 物件偵測任務對應的標記為每個畫面中有數個方框,每個模型預測的方 框還包含信心值,而正確答案則無 3. 定義物件有沒有被模型偵測到,需大於信心門檻值TYOLO 4. 定義物件有沒有被正確偵測到,通常使用IoU進行衡量,IoU大於門檻 值TIoU才能視為正確偵測 ![](https://i.imgur.com/dAFWFpY.png) ### Recall and Precision 1. ![](https://i.imgur.com/KF1Gmbs.png) 2. 在不同信心門檻值下,模型預測結果也會跟著改變 - 信心門檻值越高,物件容易被門檻值濾掉,模型偵測到的物件越少 Precision很高不會多判,recall很低容易漏判 - 信心門檻值越低,物件信心值容易過門檻,模型偵測到的物件越多 Recall很高不會漏判,precision很低容易多判 ### 同時考量各種信心值且也同時考量recall及precision,該怎麼做? - Mean Average Precision 1. Consider rank position of each relevant doc(-K1,K2,....KR) 2. Compute Precision@K for each K1, K2, … KR 3. Average precision = average of P@K, for each K ![](https://i.imgur.com/wwVo5qJ.png) ![](https://i.imgur.com/uu3VIcj.png) 4. AP也可解釋成precision-recall curve中曲線下的面積 ![](https://i.imgur.com/gI1P35D.png) ![](https://i.imgur.com/EHAfuWq.png) - 參考資料 1. https://ithelp.ithome.com.tw/articles/10203371 2. https://www.youtube.com/watch?v=pM6DJ0ZZee0 3. https://medium.com/lifes-a-struggle/mean-average-precision-map-%E8%A9%95%E4%BC%B0%E7%89%A9%E9%AB%94%E5%81%B5%E6%B8%AC%E6%A8%A1%E5%9E%8B%E5%A5%BD%E5%A3%9E%E7%9A%84%E6%8C%87%E6%A8%99-70a2d2872eb0