Kursus
Kualitas model bergantung pada data tempat model tersebut dilatih, namun mengumpulkan dataset besar dan beragam membutuhkan banyak tenaga.
Data augmentation menawarkan solusi: dengan membuat versi data yang dimodifikasi dari data yang ada, Anda dapat memperluas set pelatihan secara artifisial, mengurangi overfitting, dan membangun model yang mampu melakukan generalisasi.
Panduan ini membahas teknik inti data augmentation untuk gambar, teks, dan audio. Anda juga akan menemukan ringkasan alat mandiri populer yang dapat ditambahkan ke alur kerja Anda.
Apa itu Data Augmentation?
Data augmentation adalah teknik untuk meningkatkan ukuran set pelatihan secara artifisial dengan membuat salinan dataset yang dimodifikasi menggunakan data yang ada. Ini mencakup membuat perubahan kecil pada dataset atau menggunakan deep learning untuk menghasilkan titik data baru.
Data augmented vs. data sintetis
Data augmentation dan pembuatan data sintetis adalah teknik yang berbeda namun saling melengkapi dalam machine learning:
- Data augmented: Melibatkan pembuatan versi termodifikasi dari data yang ada untuk meningkatkan keragaman dataset. Misalnya, dalam pemrosesan gambar, menerapkan transformasi seperti rotasi, pembalikan (flip), atau penyesuaian warna pada gambar yang ada dapat membantu model melakukan generalisasi dengan lebih baik.
- Data sintetis: mengacu pada data yang dihasilkan secara artifisial, yang memungkinkan peneliti dan pengembang menguji dan meningkatkan algoritma tanpa mempertaruhkan privasi atau keamanan data dunia nyata.
Catatan: teknik augmentation tidak terbatas pada gambar. Anda juga dapat melakukan augmentasi pada audio, video, teks, dan tipe data lainnya.
Mengapa data augmentation penting?
Data augmentation membantu model machine learning berkinerja lebih baik dengan memaksimalkan pemanfaatan data yang ada. Teknik ini mencegah overfitting, meningkatkan akurasi, dan menciptakan keragaman dalam data pelatihan—yang krusial saat dataset kecil atau tidak seimbang. Dengan mensimulasikan variasi dunia nyata, data augmentation membuat model lebih andal dan tangguh—tanpa perlu pengumpulan data yang mahal. Singkatnya, ini adalah cara sederhana dan ampuh untuk membantu model belajar dan melakukan generalisasi secara efektif.
Kapan sebaiknya Anda menggunakan data augmentation?
- Untuk mencegah model mengalami overfitting.
- Set pelatihan awal terlalu kecil.
- Untuk meningkatkan akurasi model.
- Untuk mengurangi biaya operasional pelabelan dan pembersihan dataset mentah.
Keterbatasan data augmentation
- Bias dalam dataset asli akan tetap ada pada data yang di-augment.
- Penjaminan mutu untuk data augmentation mahal biayanya.
- Diperlukan riset dan pengembangan untuk membangun sistem dengan aplikasi lanjutan. Misalnya, menghasilkan gambar beresolusi tinggi menggunakan GAN bisa menjadi tantangan.
- Menemukan pendekatan data augmentation yang efektif bisa sulit.
Teknik Data Augmentation
Pada bagian ini, kita akan mempelajari teknik data augmentation untuk audio, teks, gambar, dan teknik lanjutan.
Augmentasi data audio
- Penyuntikan noise: tambahkan noise Gaussian atau acak ke dataset audio untuk meningkatkan performa model.
- Pergeseran (shifting): geser audio ke kiri (fast forward) atau ke kanan dengan detik acak.
- Mengubah kecepatan: meregangkan deret waktu dengan laju tetap.
- Mengubah pitch: ubah pitch audio secara acak.
Augmentasi data teks
- Pengacakan kata atau kalimat: mengubah posisi kata atau kalimat secara acak.
- Penggantian kata: ganti kata dengan sinonim.
- Manipulasi pohon sintaksis: parafrase kalimat menggunakan kata yang sama.
- Penyisipan kata acak: sisipkan kata secara acak.
- Penghapusan kata acak: hapus kata secara acak.
Augmentasi gambar
Pelajari lebih lanjut tentang transformasi dan manipulasi gambar dengan latihan langsung di skill track Image Processing with Python kami.
- Transformasi geometris: secara acak melakukan flip, crop, rotasi, stretching, dan zoom pada gambar. Anda perlu berhati-hati saat menerapkan banyak transformasi pada gambar yang sama, karena hal ini dapat menurunkan performa model.
- Transformasi ruang warna: ubah kanal warna RGB, kontras, dan kecerahan secara acak.
- Filter kernel: ubah ketajaman atau blur gambar secara acak.
- Penghapusan acak (random erasing): hapus sebagian dari gambar awal.
- Mencampur gambar: memadukan dan mencampur beberapa gambar.
Teknik lanjutan
- Generative adversarial networks (GAN): digunakan untuk menghasilkan titik data atau gambar baru. Tidak memerlukan data yang ada untuk menghasilkan data sintetis.
- Neural Style Transfer: serangkaian lapisan konvolusional yang dilatih untuk mendekonstruksi gambar dan memisahkan konteks serta gaya.
Aplikasi Data Augmentation
Data augmentation dapat diterapkan pada semua aplikasi machine learning di mana perolehan data berkualitas merupakan tantangan. Selain itu, teknik ini dapat membantu meningkatkan ketangguhan dan kinerja model di semua bidang kajian.
Kesehatan
Mengumpulkan dan memberi label dataset citra medis memakan waktu dan mahal. Anda juga memerlukan pakar materi untuk memvalidasi dataset sebelum melakukan analisis data. Menggunakan transformasi geometris dan transformasi lainnya dapat membantu Anda melatih model machine learning yang tangguh dan akurat.
Misalnya, pada kasus Klasifikasi Pneumonia, Anda dapat menggunakan cropping acak, zoom, stretching, dan transformasi ruang warna untuk meningkatkan performa model. Namun, Anda perlu berhati-hati terhadap augmentasi tertentu karena dapat memberikan hasil sebaliknya. Sebagai contoh, rotasi acak dan refleksi sepanjang sumbu x tidak direkomendasikan untuk dataset citra X-ray.

Gambar dari ibrahimsobh.github.io | kaggle-COVID19-Classification
Mobil tanpa pengemudi
Data untuk mobil otonom terbatas, dan perusahaan menggunakan lingkungan simulasi untuk menghasilkan data sintetis menggunakan reinforcement learning. Ini dapat membantu Anda melatih dan menguji aplikasi machine learning ketika keamanan data menjadi isu.

Gambar oleh David Silver | Autonomous Visualization System from Uber ATG
Kemungkinan penggunaan data augmented sebagai simulasi tidak terbatas, karena dapat digunakan untuk menghasilkan skenario dunia nyata.
Pemrosesan bahasa alami
Augmentasi data teks umumnya digunakan saat data berkualitas terbatas, dan peningkatan metrik kinerja menjadi prioritas. Anda dapat menerapkan augmentasi sinonim, word embedding, penukaran karakter, serta penyisipan dan penghapusan acak. Teknik-teknik ini juga bermanfaat untuk bahasa dengan sumber daya rendah.

Gambar dari Papers With Code | Selective Text Augmentation with Word Roles for Low-Resource Text Classification.
Peneliti menggunakan augmentasi teks untuk model bahasa pada skenario pengenalan dengan tingkat kesalahan tinggi, pembuatan data sequence-to-sequence, dan klasifikasi teks.
Pengenalan ucapan otomatis
Pada klasifikasi suara dan pengenalan ucapan, data augmentation sangat efektif. Teknik ini meningkatkan performa model bahkan pada bahasa dengan sumber daya rendah.

Gambar oleh Edward Ma | Noise Injection
Penyuntikan noise acak, pergeseran, dan perubahan pitch dapat membantu Anda menghasilkan model speech-to-text mutakhir. Anda juga dapat menggunakan GAN untuk menghasilkan suara realistis untuk aplikasi tertentu.
Dampak Etis Data Augmentation
Meskipun data augmentation adalah alat yang kuat untuk meningkatkan model machine learning, teknik ini menimbulkan beberapa kekhawatiran etis yang perlu dipertimbangkan secara cermat:
- Penguatan bias: Meng-augmentasi dataset yang bias dapat mereplikasi dan memperparah ketidaksetaraan yang ada, sehingga model berkinerja buruk pada kelompok yang kurang terwakili.
- Risiko privasi: Pembuatan data sintetis dapat secara tidak sengaja mempertahankan detail sensitif dari dataset asli, sehingga berisiko melanggar regulasi privasi.
- Keaslian data: Augmentasi yang diterapkan secara keliru dapat menghasilkan titik data yang tidak realistis atau menyesatkan, yang berpotensi mengompromikan kinerja model dan kepercayaan.
- Transparansi: Penting untuk mendokumentasikan teknik augmentasi secara jelas dan memastikan para pemangku kepentingan memahami bagaimana data diubah atau dihasilkan.
- Keadilan dan kesetaraan: Memastikan data augmented mencerminkan populasi dan skenario yang beragam sangat penting untuk menghindari bias yang tidak diinginkan dan memastikan kinerja model yang tangguh.
- Kepatuhan regulasi: Dataset yang di-augment harus mematuhi undang-undang perlindungan data dan pedoman etis untuk menghindari risiko hukum dan reputasi.
Untuk memanfaatkan data augmentation secara bertanggung jawab, praktisi harus memvalidasi data yang di-augment, mengatasi bias, dan memastikan kepatuhan terhadap standar etika dan hukum yang relevan.
Data Augmentation dengan Keras dan TensorFlow
Dalam tutorial ini, kita akan mempelajari cara meng-augmentasi data gambar menggunakan Keras dan TensorFlow. Selain itu, Anda akan mempelajari cara menggunakan data augmented untuk melatih pengklasifikasi biner sederhana. Kode di bawah ini adalah versi modifikasi dari contoh resmi TensorFlow.
Kami menyarankan Anda mengikuti tutorial pengkodean dengan berlatih sendiri. Sumber kode beserta keluarannya tersedia di DataLab workbook ini.
Mulai
Kita akan menggunakan TensorFlow dan Keras untuk data augmentation serta matplotlib untuk menampilkan gambar.
%%capture
import matplotlib.pyplot as plt
import numpy as np
import tensorflow as tf
from tensorflow.keras import layers
from tensorflow.keras.models import Sequential
Pemuatan data
Koleksi TensorFlow Dataset sangat besar. Anda dapat menemukan dataset teks, audio, video, graf, deret waktu, dan gambar. Dalam tutorial ini, kita akan menggunakan dataset cats_vs_dogs. Ukuran dataset adalah 786,68 MiB, dan kita akan menerapkan berbagai augmentasi gambar serta melatih pengklasifikasi biner.
Pada kode di bawah, kita memuat 80% pelatihan, 10% validasi, dan 10% set uji dengan label dan metadata.
%%capture
(train_ds, val_ds, test_ds), metadata = tfds.load(
'cats_vs_dogs',
split=['train[:80%]', 'train[80%:90%]', 'train[90%:]'],
with_info=True,
as_supervised=True,
)
Analisis data
Terdapat dua kelas dalam dataset, yaitu ‘cat’ dan ‘dog’.
num_classes = metadata.features['label'].num_classes
print(num_classes)
2
Kita akan menggunakan iterator untuk mengekstrak empat gambar acak dengan label dari set pelatihan dan menampilkannya menggunakan fungsi matplotlib `.imshow()`.
try:
get_label_name = metadata.features['label'].int2str
train_iter = iter(train_ds)
fig = plt.figure(figsize=(7, 8))
for x in range(4):
image, label = next(train_iter)
fig.add_subplot(1, 4, x + 1)
plt.imshow(image)
plt.axis('off')
plt.title(get_label_name(label))
except StopIteration:
print("Dataset iterator is empty!")
Seperti terlihat, kita mendapatkan berbagai gambar anjing dan satu gambar kucing.

Data augmentation dengan keras.Sequential()
Kita biasanya menggunakan keras.Sequential() untuk membangun model, tetapi kita juga dapat menggunakannya untuk menambahkan lapisan augmentasi.
Ubah ukuran dan skala ulang
Pada contoh ini, kita mengubah ukuran dan menskalakan ulang gambar menggunakan Keras Sequential dan lapisan augmentasi gambar. Pertama, kita akan mengubah ukuran gambar menjadi 180x180 lalu menskalakannya ulang dengan 1/255. Ukuran gambar yang kecil akan membantu menghemat waktu, memori, dan komputasi.
Seperti terlihat, kita berhasil meneruskan gambar melalui lapisan augmentasi, dan keluaran akhirnya telah diubah ukuran dan diskalakan ulang.
IMG_SIZE = 180
resize_and_rescale = keras.Sequential([
layers.Resizing(IMG_SIZE, IMG_SIZE),
layers.Rescaling(1./255)
])
result = resize_and_rescale(image)
plt.axis('off')
plt.imshow(result);
1
Rotasi dan flip
Mari terapkan flip dan rotasi acak pada gambar yang sama. Kita akan menggunakan loop, subplot, dan imshow untuk menampilkan enam gambar dengan augmentasi geometris acak.
data_augmentation = keras.Sequential([
layers.RandomFlip("horizontal_and_vertical"),
layers.RandomRotation(0.4),
])
plt.figure(figsize=(8, 7))
for i in range(6):
augmented_image = data_augmentation(image)
ax = plt.subplot(2, 3, i + 1)
plt.imshow(augmented_image.numpy()/255)
plt.axis("off")
Catatan: jika Anda mengalami “WARNING:matplotlib.image:Clipping input data to the valid range for imshow with RGB data ([0..1] for floats or [0..255] for integers).”, coba konversi gambar Anda ke numpy dan bagi dengan 255. Ini akan menampilkan keluaran yang jelas alih-alih gambar yang pudar.

Selain augmentasi sederhana, Anda juga dapat menerapkan RandomContrast, RandomCrop, CenterCrop, dan RandomZoom pada gambar.
Menambahkan langsung ke lapisan model
Ada dua cara untuk menerapkan augmentasi pada gambar. Metode pertama adalah dengan langsung menambahkan lapisan augmentasi ke model.
model = keras.Sequential([
# Add the preprocessing layers you created earlier.
resize_and_rescale,
data_augmentation,
# Add the model layers
layers.Conv2D(16, 3, padding='same', activation='relu'),
layers.MaxPooling2D(),
layers.Flatten(),
layers.Dense(128, activation='relu'),
layers.Dense(64, activation='relu'),
layers.Dense(1,activation='sigmoid')
])
Catatan: data augmentation tidak aktif selama fase pengujian. Ini hanya akan bekerja untuk Model.fit, bukan untuk Model.evaluate atau Model.predict.
Menerapkan fungsi augmentasi menggunakan .map
Metode kedua adalah menerapkan data augmentation ke seluruh set pelatihan menggunakan Dataset.map.
aug_ds = train_ds.map(lambda x, y: (data_augmentation(x, training=True), y))
Prapemrosesan data
Kita akan membuat fungsi prapemrosesan data untuk memproses set train, valid, dan test.
Fungsi ini akan:
- Menerapkan ubah ukuran dan skala ulang ke seluruh dataset.
- Jika shuffle bernilai True, dataset akan diacak.
- Mengonversi data ke dalam batch dengan ukuran batch 32.
- Jika augment bernilai True, akan menerapkan fungsi data augmentation pada semua dataset.
- Terakhir, gunakan Dataset.prefetch untuk tumpang tindih pelatihan model di GPU dengan pemrosesan data.
batch_size = 32
AUTOTUNE = tf.data.AUTOTUNE
def prepare(ds, shuffle=False, augment=False):
# Resize and rescale all datasets.
ds = ds.map(lambda x, y: (resize_and_rescale(x), y),
num_parallel_calls=AUTOTUNE)
if shuffle:
ds = ds.shuffle(1000)
# Batch all datasets.
ds = ds.batch(batch_size)
# Use data augmentation only on the training set.
if augment:
ds = ds.map(lambda x, y: (data_augmentation(x, training=True), y),
num_parallel_calls=AUTOTUNE)
# Use buffered prefetching on all datasets.
return ds.prefetch(buffer_size=AUTOTUNE)
train_ds = prepare(train_ds, shuffle=True, augment=True)
val_ds = prepare(val_ds)
test_ds = prepare(test_ds)
Pembangunan model
Kita akan membuat model sederhana dengan lapisan konvolusi dan dense. Pastikan bentuk masukan serupa dengan bentuk gambar.
model = keras.Sequential([
layers.Conv2D(32, (3, 3), input_shape=(180,180,3), padding='same', activation='relu'),
layers.MaxPooling2D(pool_size=(2, 2)),
layers.Flatten(),
layers.Dense(32, activation='relu'),
layers.Dense(1,activation='softmax')
])
Pelatihan dan evaluasi
Sekarang kita akan melakukan kompilasi model dan melatihnya selama satu epoch. Optimizer yang digunakan adalah Adam, fungsi loss adalah Binary Cross Entropy, dan metriknya adalah akurasi.
Seperti terlihat, kita memperoleh akurasi validasi 51% pada satu kali jalan. Anda dapat melatihnya untuk beberapa epoch dan mengoptimalkan hiperparameter untuk mendapatkan hasil yang lebih baik.
Bagian pembuatan dan pelatihan model ini hanya untuk memberi gambaran bagaimana Anda dapat meng-augmentasi gambar dan melatih model.
model.compile(optimizer='adam',
loss='binary_crossentropy',
metrics=['accuracy'])
epochs=1
history = model.fit(
train_ds,
validation_data=val_ds,
epochs=epochs
)
582/582 [==============================] - 98s 147ms/step - loss: 0.6993 - accuracy: 0.4961 - val_loss: 0.6934 - val_accuracy: 0.5185
loss, acc = model.evaluate(test_ds)
73/73 [==============================] - 4s 48ms/step - loss: 0.6932 - accuracy: 0.5013
Pelajari cara melakukan analisis gambar, serta membangun, melatih, dan mengevaluasi jaringan konvolusional dengan mengikuti kursus Image Processing with Keras.
Data augmentation menggunakan tf.image()
Pada bagian ini, kita akan mempelajari cara meng-augmentasi gambar menggunakan TensorFlow untuk mendapatkan kontrol yang lebih halus atas data augmentation.
Pemuatan Data
Kita akan memuat kembali dataset cats_vs_dogs beserta label dan metadata.
%%capture
(train_ds, val_ds, test_ds), metadata = tfds.load(
'cats_vs_dogs',
split=['train[:80%]', 'train[80%:90%]', 'train[90%:]'],
with_info=True,
as_supervised=True,
)
Alih-alih gambar kucing, kita akan menggunakan gambar anjing dan menerapkan berbagai teknik augmentasi.
image, label = next(iter(train_ds))
plt.imshow(image)
plt.title(get_label_name(label));
1
Flip kiri ke kanan
Kita akan membuat fungsi visualize() untuk menampilkan perbedaan antara gambar asli dan gambar yang di-augment.
Fungsinya cukup langsung. Fungsi ini menerima gambar asli dan fungsi augmentasi sebagai masukan, lalu menampilkan perbedaannya menggunakan matplotlib.
def visualize(original, augmented):
fig = plt.figure()
plt.subplot(1,2,1)
plt.title('Original image')
plt.imshow(original)
plt.axis("off")
plt.subplot(1,2,2)
plt.title('Augmented image')
plt.imshow(augmented)
plt.axis("off")
Seperti terlihat, kita telah membalik gambar dari kiri ke kanan menggunakan fungsi tf.image. Ini lebih sederhana dibandingkan keras.Sequential().
flipped = tf.image.flip_left_right(image)
visualize(image, flipped)
1
Skala keabuan
Mari ubah gambar menjadi skala keabuan menggunakan tf.image.rgb_to_grayscale().
grayscaled = tf.image.rgb_to_grayscale(image)
visualize(image, tf.squeeze(grayscaled))
1
Menyesuaikan saturasi
Anda juga dapat menyesuaikan saturasi dengan faktor 3.
saturated = tf.image.adjust_saturation(image, 3)
visualize(image, saturated)
1
Menyesuaikan kecerahan
Sesuaikan kecerahan dengan memberikan faktor kecerahan.
bright = tf.image.adjust_brightness(image, 0.4)
visualize(image, bright)
1
Cropping tengah
Crop gambar dari tengah menggunakan fraksi pusat 0,5.
cropped = tf.image.central_crop(image, central_fraction=0.5)
visualize(image, cropped)
1
Rotasi 90 derajat
Putar gambar sebesar 90 derajat menggunakan fungsi tf.image.rot90().
rotated = tf.image.rot90(image)
visualize(image, rotated)
1
Menerapkan kecerahan acak
Sama seperti lapisan Keras, tf.image() juga memiliki fungsi augmentasi acak. Pada contoh di bawah, kita akan menerapkan kecerahan acak pada gambar dan menampilkan beberapa hasil.
Seperti terlihat, gambar pertama sedikit lebih gelap, dan dua gambar berikutnya lebih terang.
for i in range(3):
seed = (i, 0) # tuple of size (2,)
stateless_random_brightness = tf.image.stateless_random_brightness(
image, max_delta=0.95, seed=seed)
visualize(image, stateless_random_brightness)
Menerapkan fungsi augmentasi
Sama seperti Keras, kita dapat menerapkan fungsi data augmentation ke seluruh dataset menggunakan Dataset.map().
def augment(image, label):
image = tf.cast(image, tf.float32)
image = tf.image.resize(image, [IMG_SIZE, IMG_SIZE])
image = (image / 255.0)
image = tf.image.random_crop(image, size=[IMG_SIZE, IMG_SIZE, 3])
image = tf.image.random_brightness(image, max_delta=0.5)
return image, label
train_ds = (
train_ds
.shuffle(1000)
.map(augment, num_parallel_calls=AUTOTUNE)
.batch(batch_size)
.prefetch(AUTOTUNE)
)
Data Augmentation dengan ImageDataGenerator
ImageDataGenerator() Keras bahkan lebih sederhana. Ini bekerja paling baik ketika Anda memuat data dari direktori lokal atau CSV.
Pada contoh ini, kita akan mengunduh dan memuat dataset CIFAR10 kecil dari pustaka dataset bawaan Keras.
Setelah itu, kita akan menerapkan augmentasi menggunakan keras.preprocessing.image.ImageDataGenerator(). Fungsi ini akan secara acak melakukan rotasi, mengubah tinggi dan lebar, serta membalik gambar secara horizontal.
Terakhir, kita akan melakukan fit ImageDataGenerator() pada dataset pelatihan dan menampilkan enam gambar dengan augmentasi acak.
Catatan: ukuran gambar adalah 32x32, sehingga tampilannya beresolusi rendah.
(x_train, y_train), (x_test, y_test) = keras.datasets.cifar10.load_data()
datagen = keras.preprocessing.image.ImageDataGenerator(rotation_range=20,
width_shift_range=0.2,
height_shift_range=0.2,
horizontal_flip=True,
validation_split=0.2)
datagen.fit(x_train)
for X_batch, y_batch in datagen.flow(x_train,y_train, batch_size=6):
for i in range(0, 6):
plt.subplot(2,3,i+1)
plt.imshow(X_batch[i]/255)
plt.axis('off')
break
Alat Data Augmentation
Pada bagian ini, kita akan mempelajari alat open-source lain yang dapat Anda gunakan untuk melakukan berbagai teknik data augmentation dan meningkatkan performa model.
Pytorch
Transformasi gambar tersedia di modul torchvision.transforms. Mirip dengan Keras, Anda dapat menambahkan lapisan transform dalam torch.nn.Sequential atau menerapkan fungsi augmentasi secara terpisah pada dataset.
Augmentor
Augmentor adalah paket Python untuk augmentasi gambar dan pembuatan gambar artifisial. Anda dapat melakukan Perspective Skewing, Elastic Distortions, Rotating, Shearing, Cropping, dan Mirroring. Augmentor juga dilengkapi fungsionalitas prapemrosesan gambar dasar.
Albumentations
Albumentations adalah alat Python untuk augmentasi gambar yang cepat dan fleksibel. Alat ini banyak digunakan dalam kompetisi machine learning, industri, dan penelitian untuk meningkatkan performa deep convolutional neural networks.
Imgaug
Imgaug adalah alat open-source untuk augmentasi gambar. Alat ini mendukung beragam teknik augmentasi, seperti noise Gaussian, kontras, ketajaman, crop, affine, dan flip. Imgaug memiliki antarmuka stokastik yang sederhana namun kuat, serta dilengkapi dengan keypoints, bounding boxes, heatmaps, dan segmentation maps.
OpenCV
OpenCV adalah pustaka open-source besar untuk visi komputer, machine learning, dan pemrosesan gambar. Umumnya digunakan untuk membangun aplikasi waktu nyata. Anda dapat menggunakan OpenCV untuk meng-augmentasi gambar dan video dengan mudah.
Kesimpulan
Fungsi augmentasi gambar yang disediakan oleh TensorFlow dan Keras sangat praktis. Anda hanya perlu menambahkan lapisan augmentasi, tf.image(), atau ImageDataGenerator() untuk melakukan augmentasi. Selain kerangka kerja deep learning, Anda dapat menggunakan alat mandiri seperti Augmentor, Albumentations, OpenCV, dan Imgaug untuk melakukan data augmentation.
Dalam tutorial ini, kita telah mempelajari kelebihan, keterbatasan, aplikasi, dan teknik data augmentation. Selain itu, kita telah mempelajari cara menerapkan augmentasi gambar pada dataset cats_vs_dogs menggunakan Keras dan TensorFlow. Jika Anda tertarik mempelajari lebih lanjut tentang pemrosesan gambar, lihat skill track Image Processing with Python kami. Anda akan mempelajari dasar-dasar transformasi dan manipulasi gambar, analisis citra medis, serta pemrosesan gambar lanjutan menggunakan Keras.
FAQ Data Augmentation
Apa yang dimaksud dengan data augmentation?
Ini adalah serangkaian teknik untuk meningkatkan dataset secara artifisial dengan memodifikasi salinan data yang ada atau secara sintetis menghasilkan salinan baru dari dataset dengan menggunakan dataset yang ada. Saat melatih model machine learning, teknik ini bertindak sebagai regularisasi dan mengurangi overfitting.
Apakah data augmentation meningkatkan akurasi?
Dalam banyak kasus, data augmentation meningkatkan akurasi model. Teknik ini mengurangi overfitting pada model dan meningkatkan akurasi pada dataset yang belum pernah dilihat.
Apa kekurangan data augmentation?
Kekurangan utama data augmentation berasal dari bias data. Jika data asli memiliki bias, data yang di-augment juga akan memiliki bias yang akan menghasilkan hasil yang suboptimal.
Apa contoh data augmentation?
Jika Anda memiliki 40 dataset gambar kucing dan anjing, dengan secara acak melakukan flip horizontal dan vertikal, Anda dapat membuat salinan gambar baru dan menggandakan set pelatihan.
Apa saja beberapa teknik data augmentation?
Dalam kasus augmentasi gambar, Anda dapat melakukan flip, crop, rotasi, zoom, ubah ukuran, stretching, dan affine secara acak. Selain itu, Anda dapat mengubah saturasi, kecerahan, kontras, ketajaman, atau bahkan menambahkan noise.
Apa itu data augmentation dalam CNN?
Performa model convolutional neural networks (CNN) meningkat seiring bertambahnya data pelatihan. CNN bersifat invarian terhadap translasi, sudut pandang, ukuran, dan pencahayaan, dan bekerja dengan baik dengan data augmentation.












