數據增強是從現有的訓練樣本中生成更多的訓練數據,其方法是利用多種能夠生成可信圖像的隨機變換來增加樣本,其目標是讓模型在訓練時不會兩次查看完全相同的圖像。
對於一張圖片的樣本數據,每次迭代時都會先隨機變換,然後再輸入網絡,所以使用數據增強來訓練一個新網絡,那麼該網絡將不會兩次看到同樣的輸入。
在Keras中使用數據增強:
from keras.preprocessing.image import ImageDataGenerator
generator = ImageDataGenerator(rotation_range=40,
width_shift_range=0.2,
height_shift_range=0.2,
shear_range=0.2,
zoom_range=0.2,
horizontal_flip=True,
fill_mode='nearest')
rotation_range: 角度值(0,180),表示圖像隨機旋轉的角度範圍。
width_shift_range和height_shift_range: 是圖像在水平或垂直方向上平移的範圍(相對於總寬度或總高度的比例)。
shear_range: 隨機錯切變換的角度。
zoom_range: 是圖像隨機縮放的範圍。
horizontal_flip: 是隨機將一半圖像水平翻轉。如果沒有水平不對稱的假設(比如真實世界的圖像),這種做法是有意義的。
fill_mode: 是用於填充新創建像素的方法,這些新像素可能來自於旋轉或寬度/高度平移。
參考:
1、弗朗索瓦·肖萊《Python深度學習》