iT邦幫忙

2026 iThome 鐵人賽

DAY 12
0
AI Engineering

Model with GIS系列 第 13

[Day 13] Save my Dataset

  • 分享至 

  • xImage
  •  

昨天討論了過小資料即會有過擬合的問題,今天我們會透過調整超參數和資料增強訓練新的偵測模型。

不過今天的實作大起大落

假陽性爆炸和高分誤判

為了解決過擬合的問題,我重新寫了一個 train_v2.py,加了重度的遙測資料增強,然後也調低 learning rate,結果推論出來後看到了假陽性爆炸 (False Positive Explosion) ,密畫面上多出了數百個藍框,混淆矩陣的 FP 高達 216 ,然後嘗試將推論的置信度門檻(conf)拉高到 0.85,但後來的框都在旁邊,完全沒標到目標物,重點是分數都很高,目標物被無視。

卷積神經網路的陷阱

因為極端的旋轉和縮放打破原本對目標物的幾何認知,當目標物特徵被扭曲後模型就會放棄學習形狀,只要看到排列整齊的高對比人造物就會誤判為目標物。

拯救

為了讓他會到正軌,我把旋轉和縮放關掉,只留左右翻轉,也讓 learning rate 和 weight decay 條回預設。

以下是扣:

results = model.train(
    # ... 前略 ...
    lr0=0.01,            # 恢復預設學習率
    weight_decay=0.0005, # 恢復預設正則化

    degrees=0.0,         # 關閉旋轉
    scale=0.0,           # 關閉大範圍縮放
    fliplr=0.5,          # 保留左右翻轉
    flipud=0.5           # 保留上下翻轉
)

問號

v3 訓練完之後他直接給我空白,應該是遇到 模型崩潰 (Model Collaose),因為關掉了極端增強,模型在小資料集找不到特徵梯度,因為這樣不確定所以就直接預測沒有。

逼供

為了測試他是真的不知道還是假的不知道,我們把推論門檻調到非常低的 0.1:

results = model.predict(
    source=str(test_source),
    conf=0.1,    
    iou=0.50,
    save=True
)

結果

模型最後還是在右下角畫出了一個 0.22 的框,但她還是很不確定,只敢給低分。

小結

今天經歷了模型自信跟不確定的分析結果,今天演算法已碰到小資料集的天花板,我們可能要加入跨領域的解法,可能將暫時放下 YOLO,進入遙測領域的章節,如何將預測出來的像素座標 (x, y),透過 Affine Transform 轉換為真實世界的 EPSG:4326 地理經緯度,那我們明天見。


上一篇
[Day 12] How to deal with Overfitting
下一篇
[Day 14] Image and distance of geo
系列文
Model with GIS19
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言