Data augmentation là gì?

Trả lời nhanh: Data augmentation (tăng cường dữ liệu) là tập hợp kỹ thuật tạo thêm mẫu huấn luyện bằng cách biến đổi hợp lý dữ liệu gốc, như xoay ảnh, thay từ đồng nghĩa hay thêm nhiễu âm thanh, mà vẫn giữ nguyên nhãn. Mục đích là giúp mô hình học máy bớt học vẹt và tổng quát hoá tốt hơn.

Điểm chính

  • Tăng cường dữ liệu không tạo thông tin hoàn toàn mới. Nó biến tấu mẫu đã có thành các phiên bản khác nhưng cùng nhãn.
  • Mỗi loại dữ liệu (ảnh, văn bản, âm thanh, chuỗi thời gian, bảng) có bộ phép biến đổi riêng.
  • Chỉ tăng cường trên tập huấn luyện. Tập kiểm định và kiểm thử phải giữ nguyên.
  • Phép biến đổi sai ngữ nghĩa, ví dụ lật ngược chữ số hay đổi từ y khoa, sẽ làm hỏng nhãn và giảm chất lượng mô hình.
  • Hiệu quả phải được kiểm bằng so sánh có và không có augmentation trên cùng tập kiểm thử.
Mục lục
  1. Data augmentation là gì và nó giải quyết vấn đề gì?
  2. Cơ chế hoạt động: biến đổi mẫu nhưng giữ nhãn
  3. Các kỹ thuật theo từng loại dữ liệu
  4. Ví dụ thực tế cho doanh nghiệp Việt Nam
  5. Thứ tự làm đúng: chia dữ liệu trước, tăng cường sau
  6. Làm thế nào để biết augmentation có hiệu quả?
  7. Ưu điểm và giới hạn
  8. Data augmentation khác gì dữ liệu tổng hợp và học chuyển giao?
  9. Khi nào nên và không nên dùng
  10. Câu hỏi thường gặp

Data augmentation là gì và nó giải quyết vấn đề gì?

Data augmentation, tiếng Việt thường gọi là tăng cường dữ liệu hay làm giàu dữ liệu, là cách tạo thêm mẫu huấn luyện từ chính các mẫu đang có. Bạn lấy một mẫu, sửa nó theo cách không đổi ý nghĩa, rồi thêm vào tập huấn luyện. Một bức ảnh hộp sản phẩm bị xoay 10 độ vẫn là ảnh hộp sản phẩm đó.

Về bản chất, các kỹ thuật này không tạo ra thông tin hoàn toàn mới. Chúng biến tấu dữ liệu hiện có thành những phiên bản khác nhau nhưng vẫn giữ nguyên ý nghĩa và nhãn ban đầu. Thứ mô hình nhận được là tính bất biến: dù sáng hay tối, nghiêng hay thẳng, nó vẫn phải ra cùng một kết luận.

Kỹ thuật này nhắm vào ba tình huống:

  • Ít dữ liệu có nhãn. Gán nhãn tốn tiền và thời gian, nên việc nhân thêm biến thể từ mẫu đã gán nhãn rẻ hơn nhiều so với gán thêm mẫu mới. Về công việc gán nhãn, bạn có thể đọc bài về gán nhãn dữ liệu và nghề annotator.
  • Mất cân bằng lớp. Ví dụ minh hoạ: trong 10.000 ảnh kiểm tra ngoại quan linh kiện chỉ có 80 ảnh lỗi. Mô hình có thể đạt độ chính xác cao chỉ bằng cách đoán “không lỗi”. Tăng cường riêng nhóm lỗi giúp cân lại tỷ lệ.
  • Dữ liệu thực tế đa dạng hơn dữ liệu huấn luyện. Ảnh chụp trong phòng sáng đèn nhưng triển khai ở kho thiếu sáng. Mô phỏng thay đổi độ sáng, nhiễu và góc chụp giúp thu hẹp khoảng cách này.

Cơ chế hoạt động: biến đổi mẫu nhưng giữ nhãn

Quy trình gồm bốn thành phần: tập mẫu gốc có nhãn, danh sách phép biến đổi, xác suất và cường độ áp dụng từng phép, và tập huấn luyện sau mở rộng. Nhãn được giữ nguyên với phần lớn phép biến đổi. Ngoại lệ là các kỹ thuật trộn mẫu, nơi nhãn cũng được trộn theo.

Luồng tăng cường dữ liệu Mẫu gốc có nhãn Biến đổi ngẫu nhiên Tập huấn luyện mở rộng Huấn luyện mô hình Chỉ áp cho tập train
Sơ đồ khái niệm về luồng tăng cường dữ liệu trong huấn luyện mô hình.

Có hai cách triển khai. Cách thứ nhất là offline: sinh sẵn các biến thể, lưu ra đĩa rồi huấn luyện. Cách này dễ kiểm tra bằng mắt nhưng tốn dung lượng. Cách thứ hai là online (on-the-fly): mỗi lần nạp một lô dữ liệu, thư viện biến đổi ngẫu nhiên ngay trong bộ nạp dữ liệu. Mỗi epoch mô hình thấy một phiên bản khác của cùng một ảnh mà không cần lưu thêm tệp. Các thư viện như Albumentations hay torchvision làm được kiểu này với chi phí nhỏ.

Với ảnh, các phép cơ bản gồm xoay, lật, phóng to thu nhỏ, cắt, dịch chuyển, đổi độ sáng và độ tương phản. Khi mô hình là mạng tích chập, những phép này ép nó học đặc trưng không phụ thuộc vị trí chính xác của vật thể. Cơ chế của loại mạng này được giải thích trong bài về mạng nơ-ron tích chập CNN.

Các kỹ thuật theo từng loại dữ liệu

Không có bộ phép biến đổi dùng chung. Chọn phép nào phụ thuộc vào việc phép đó có làm đổi nhãn hay không.

Kỹ thuật theo loại dữ liệu Data augmentation Ảnh Xoay, lật, Mixup, CutMix Văn bản Thay từ, dịch ngược, EDA Âm thanh Thêm nhiễu, đổi tốc độ, SpecAugment Chuỗi thời gian, bảng Jittering, SMOTE
Cây phân loại khái niệm; tên kỹ thuật lấy từ các tài liệu nghiên cứu về augmentation.

Ảnh

Ngoài phép hình học và màu sắc, có nhóm kỹ thuật trộn và che. Cutout che một vùng ảnh. Mixup, được đề xuất năm 2017, nội suy tuyến tính hai ảnh cùng hai nhãn của chúng để tạo ảnh mới với nhãn “mềm”. CutMix cắt một mảnh từ ảnh này dán vào ảnh kia. Ngoài ra, AutoAugment và RandAugment tìm chính sách biến đổi từ dữ liệu thay vì để con người chọn tay.

Văn bản (NLP)

Văn bản khó hơn ảnh vì đổi một từ có thể phá nghĩa cả câu. Các kỹ thuật phổ biến gồm thay từ đồng nghĩa, chèn, xoá, hoán đổi từ ngẫu nhiên (nhóm kỹ thuật EDA của Wei và Zou, 2019), dịch ngược (dịch sang ngôn ngữ khác rồi dịch lại), và thay token bằng mô hình ngôn ngữ che từ.

Với tiếng Việt có hai điểm cần lưu ý. Thứ nhất, từ ghép gồm nhiều âm tiết, nên hoán đổi hay xoá theo âm tiết dễ ra câu vô nghĩa. Bạn nên tách từ trước. Thứ hai, thay bằng từ đồng nghĩa có thể đổi sắc thái, ví dụ “rẻ” và “rẻ tiền” trong bình luận sản phẩm, nên nhãn cảm xúc có thể lệch. Các chi tiết về cách mô hình đếm và cắt văn bản tiếng Việt có trong bài về token trong AI.

Âm thanh

Phép thường dùng là thêm nhiễu nền, đổi tốc độ, dịch cao độ, đổi âm lượng và che đoạn thời gian hoặc tần số. SpecAugment (Park và cộng sự, 2019) che các dải trên phổ âm (spectrogram) thay vì sửa trực tiếp dạng sóng. Một khảo sát về augmentation âm thanh (Wei và cộng sự, 2020) ghi nhận rằng các phép giữ nguyên nguồn âm chỉ cải thiện độ chính xác phân loại ở mức rất hạn chế. Vì vậy bạn cần thử trên đúng bài toán của mình, không nên mặc định là có lợi.

Chuỗi thời gian và dữ liệu dạng bảng

Với tín hiệu cảm biến, jittering (thêm nhiễu nhỏ), co giãn biên độ hoặc thời gian, và bootstrapping là các lựa chọn. Với dữ liệu bảng mất cân bằng lớp, SMOTE nội suy mẫu mới giữa các mẫu của lớp thiểu số. Dữ liệu bảng chứa nhiều cột có ràng buộc nghiệp vụ (ví dụ ngày sinh phải trước ngày vay), nên phép nội suy có thể sinh bản ghi bất khả thi. Hãy kiểm tra ràng buộc sau khi sinh. Về cách phân biệt các kiểu dữ liệu, xem bài về dữ liệu có cấu trúc và phi cấu trúc.

Loại dữ liệu Phép an toàn thường gặp Phép dễ làm sai nhãn Thư viện hay dùng
Ảnh Đổi độ sáng, cắt nhẹ, dịch chuyển Lật hoặc xoay chữ, số, ảnh có chiều trái phải Albumentations, torchvision
Văn bản Dịch ngược, thay từ không mang nhãn Thay hoặc xoá từ mang cảm xúc, phủ định nlpaug, TextAttack
Âm thanh Thêm nhiễu nền, đổi tốc độ nhẹ Dịch cao độ quá mạnh với nhận dạng người nói audiomentations, torchaudio
Chuỗi thời gian Jittering biên độ nhỏ Đảo ngược thời gian khi chiều thời gian có nghĩa tsaug
Bảng SMOTE cho lớp thiểu số Nội suy cột phân loại hoặc cột có ràng buộc imbalanced-learn

Ví dụ thực tế cho doanh nghiệp Việt Nam

Các tình huống dưới đây là ví dụ minh hoạ, không phải số liệu của doanh nghiệp cụ thể.

  • Kiểm tra chất lượng trên dây chuyền. Xưởng chỉ có vài trăm ảnh sản phẩm lỗi trầy xước. Họ thêm biến thể độ sáng, nhiễu cảm biến và xoay nhẹ để mô hình chịu được thay đổi ánh sáng giữa ca ngày và ca đêm. Không nên lật dọc nếu camera luôn lắp cố định và vị trí lỗi gắn với hướng sản phẩm.
  • Phân loại phản hồi khách hàng tiếng Việt. Nhóm “khiếu nại giao hàng chậm” chỉ có vài chục câu. Dịch ngược qua tiếng Anh rồi về tiếng Việt cho ra các cách diễn đạt khác. Người gán nhãn cần duyệt mẫu ngẫu nhiên, vì bản dịch máy có thể làm mất dấu phủ định.
  • Nhận dạng giọng nói tổng đài. Bản ghi âm thường lẫn tiếng ồn văn phòng, đường truyền kém. Trộn nhiễu nền thật vào bản ghi sạch giúp mô hình quen điều kiện này.
  • Phát hiện giao dịch bất thường. Lớp gian lận rất nhỏ so với giao dịch thường. Nội suy kiểu SMOTE chỉ hợp lý trên các đặc trưng số liên tục, và phải kiểm lại các ràng buộc nghiệp vụ sau khi sinh.

Khi ảnh hoặc bản ghi chứa thông tin nhận dạng người, ví dụ khuôn mặt, giọng nói, biển số, bạn cần che hoặc ẩn danh trước khi nhân bản, vì mỗi biến thể sinh ra vẫn là dữ liệu cá nhân của người đó. Kỹ thuật che được mô tả trong bài về data masking.

Thứ tự làm đúng: chia dữ liệu trước, tăng cường sau

Đây là lỗi phổ biến nhất khiến kết quả đẹp mà không dùng được. Nếu bạn nhân biến thể trước rồi mới chia train/test ngẫu nhiên, các biến thể của cùng một ảnh gốc sẽ nằm ở cả hai phía. Mô hình đã “thấy” ảnh trong tập kiểm thử dưới dạng xoay nhẹ, và điểm đo bị thổi phồng. Hiện tượng này là rò rỉ dữ liệu (data leakage).

Sai Đúng Nhân biến thể toàn bộ Rồi mới chia train/test Biến thể rò sang test Chia train/val/test trước Chỉ tăng cường train Test giữ nguyên
Sơ đồ khái niệm về thứ tự chia dữ liệu và tăng cường.

Một biến thể khác của lỗi này: các ảnh chụp cùng một sản phẩm, cùng một bệnh nhân hay cùng một khách hàng nên nằm chung một phía khi chia. Hãy chia theo nhóm thực thể, không chia theo từng ảnh.

Làm thế nào để biết augmentation có hiệu quả?

  1. Chốt tập kiểm thử trước và không đụng đến nó trong suốt quá trình thử nghiệm.
  2. Huấn luyện mô hình nền không có augmentation, ghi lại chỉ số phù hợp bài toán như F1 cho dữ liệu lệch lớp, AUC hay độ chính xác theo từng lớp.
  3. Thêm từng nhóm phép biến đổi một (ablation), không bật cùng lúc. Nếu bật cả sáu phép thì không biết phép nào giúp, phép nào gây hại.
  4. Xem mẫu sinh ra bằng mắt hoặc để người gán nhãn duyệt ngẫu nhiên. Với văn bản và bảng, bước này bắt được phần lớn lỗi sai nhãn.
  5. So sánh theo từng lớp, không chỉ điểm trung bình. Augmentation cho lớp thiểu số có thể tăng recall của lớp đó nhưng kéo precision xuống.
  6. Thử trên dữ liệu thật từ môi trường triển khai (ảnh từ camera thật, ghi âm từ tổng đài thật) nếu có, vì đó mới là nơi augmentation phải phát huy.

Ưu điểm và giới hạn

Ưu điểm

  • Giảm quá khớp (overfitting) khi tập huấn luyện nhỏ.
  • Rẻ hơn thu thập và gán nhãn thêm dữ liệu thật.
  • Giúp mô hình chịu được biến động như ánh sáng, nhiễu, lỗi gõ.
  • Có thể cân lại các lớp thiểu số.

Giới hạn

  • Không thêm thông tin mới. Nếu tập gốc thiếu hẳn một tình huống, ví dụ loại lỗi chưa từng xuất hiện, biến tấu mẫu cũ không bù được.
  • Khuếch đại sai lệch của dữ liệu gốc. Nhãn sai hay thiên lệch lấy mẫu sẽ được nhân lên. Nguyên tắc này liên quan trực tiếp đến chất lượng dữ liệu, và nên làm sạch trước khi nhân bản.
  • Phải hiểu miền ứng dụng. Phép biến đổi hợp lý với ảnh mèo có thể sai với ảnh X-quang hoặc ảnh chụp tài liệu.
  • Tốn thêm tài nguyên tính toán khi sinh online, nhất là với kỹ thuật dựa trên mô hình sinh.
  • Đưa thêm siêu tham số (xác suất, cường độ từng phép) cần được tinh chỉnh.

Data augmentation khác gì dữ liệu tổng hợp và học chuyển giao?

Ba khái niệm này hay bị gộp nhưng giải quyết việc khác nhau.

Tiêu chí Data augmentation Dữ liệu tổng hợp Học chuyển giao
Nguồn mẫu mới Biến đổi từ mẫu thật có sẵn Sinh từ mô phỏng hoặc mô hình sinh Không sinh mẫu, tái dùng mô hình đã huấn luyện
Nhãn Thường kế thừa từ mẫu gốc Có thể được sinh cùng mẫu Cần một ít dữ liệu có nhãn để tinh chỉnh
Khi nào hợp Có mẫu thật nhưng ít hoặc thiếu đa dạng Dữ liệu thật khó có hoặc nhạy cảm Có mô hình nền gần với bài toán
Rủi ro chính Biến đổi làm sai nhãn Dữ liệu sinh lệch khỏi thực tế Lệch miền giữa nguồn và đích

Ranh giới giữa hai khái niệm đầu mờ đi khi bạn dùng GAN để sinh ảnh, nên nhiều tài liệu xếp GAN vào cả hai nhóm. Chi tiết về hướng sinh dữ liệu mới có trong bài về dữ liệu tổng hợp. Trong thực tế hai hướng thường dùng song song. Còn học chuyển giao thường được kết hợp với augmentation khi tinh chỉnh một mô hình có sẵn trên tập nhỏ.

Khi nào nên và không nên dùng

Nên cân nhắc khi mô hình đạt điểm cao trên tập huấn luyện nhưng thấp rõ rệt trên tập kiểm định, khi một lớp có quá ít mẫu, hoặc khi điều kiện triển khai biến động hơn điều kiện thu dữ liệu.

Chưa nên dùng, hoặc dùng rất thận trọng khi nhãn của bạn còn nhiều lỗi, khi bạn chưa có tập kiểm thử tách riêng, khi nhãn phụ thuộc vào chi tiết rất nhỏ (một chấm trên phim y khoa, một dấu phủ định trong câu), hoặc khi điểm yếu của mô hình đến từ thiếu loại tình huống chứ không phải thiếu số lượng. Trường hợp cuối cần thu thêm dữ liệu thật, như bài về thu thập dữ liệu mô tả.

Câu hỏi thường gặp

Data augmentation là gì, nói ngắn gọn?

Là kỹ thuật tạo thêm mẫu huấn luyện bằng cách biến đổi hợp lý các mẫu đã có, như xoay ảnh hay dịch ngược câu văn, để tăng số lượng và độ đa dạng của tập dữ liệu mà không phải thu thập thêm. Nhãn thường được giữ nguyên.

Data augmentation có làm tăng độ chính xác chắc chắn không?

Không chắc chắn. Với nhiều bài toán ảnh nó giúp rõ rệt, nhưng một khảo sát về âm thanh ghi nhận một số phép chỉ cải thiện rất ít. Bạn cần so sánh mô hình có và không có augmentation trên cùng tập kiểm thử không bị đụng đến.

Có tăng cường được dữ liệu bảng như Excel không?

Có thể, thường bằng SMOTE hoặc các mô hình sinh dữ liệu bảng, nhưng khó hơn ảnh. Bạn phải kiểm tra ràng buộc giữa các cột và không nội suy cột phân loại như mã tỉnh hay loại sản phẩm.

Tăng cường dữ liệu và dữ liệu tổng hợp khác nhau ở đâu?

Augmentation biến đổi mẫu thật có sẵn. Dữ liệu tổng hợp được sinh mới từ mô phỏng hoặc mô hình sinh, không nhất thiết xuất phát từ một mẫu cụ thể. Ranh giới mờ khi dùng GAN, nên hãy nhìn vào việc mẫu mới có phụ thuộc trực tiếp vào mẫu gốc hay không.

Nên tăng cường bao nhiêu lần là đủ?

Không có con số chung. Với augmentation online, mỗi epoch mô hình thấy một biến thể khác nên khái niệm “nhân bao nhiêu lần” ít quan trọng hơn cường độ biến đổi. Hãy thử tăng dần cường độ và dừng khi chỉ số trên tập kiểm định không còn cải thiện.

Cần kỹ năng gì để bắt đầu?

Bạn cần biết Python cơ bản và một khung học sâu như PyTorch hoặc TensorFlow. Với ảnh, Albumentations hay torchvision cho phép khai báo chuỗi phép biến đổi chỉ trong vài dòng. Với văn bản, nlpaug hỗ trợ thay từ đồng nghĩa và dịch ngược.

Đọc thêm tin tức, phân tích về AI, blockchain và chuyển đổi số trên VBPO Tech Blog, hoặc các bài khác trong chuyên mục Dữ liệu & phân tích.