Augmentation là gì

Chắc ai làm cho deep learning cũng từng áp dụng cho tới thuật tân oán Data Augmentation - phép cách xử trí tăng con số dữ liệu dataset đến rất nhiều những bài xích tân oán và vận dụng khác biệt. Tại bài viết này, mình đang reviews chi tiết hơn về Data augmentation đặc biệt quan trọng sử dụng vào thị lực thiết bị, thuật toán supervised learning, từ những cách thức cơ bản tới các phương pháp sớm nhất hotline là Stat-Of-The-Art (SOTA).

Bạn đang xem: Augmentation là gì

Giới thiệu

"Deep learning is a data-hungry framework"

Dữ liệu là một phần khôn xiết quan trọng đặc biệt trong những khối hệ thống cùng ứng dụng AI (artificial intelligence) thời nay. Nếu nhỏ người chỉ việc coi khuyên bảo một và lần (dữ liệu mẫu) là hoàn toàn có thể làm lại được, thì với AI, DL (deep learning) hiện nay đề xuất nên tới cực kỳ không hề ít tài liệu. Chỉ ngó qua mấy tập dữ liệu phổ cập hay sử dụng mang lại DL nhỏng ImageNet cũng đều có tới cả ngàn, triệu xuất xắc thậm chí trăm triệu dữ liệu có nhãn. Và chính vì deep learning là thuật tân oán dựa vào data (data-driven approach), cùng càng những data thì sẽ càng dễ dàng dẫn mang đến quality các áp dụng thị giác lắp thêm được cải thiện <3>.


*

image.jpg904×367 149 KB

Original (Ảnh gốc): dĩ nhiên rồi, lúc nào mình cũng có hình ảnh gốcFlip (Lật): lật theo chiều dọc, ngang miễn sao ý nghĩa sâu sắc của hình ảnh (label) được không thay đổi hoặc suy ra được. lấy ví dụ như nhấn dạng quả trơn tròn, thì bản thân lật mẫu mã gì rồi cũng ra quả láng. Còn cùng với thừa nhận dạng chữ viết tay, lật số 8 vẫn luôn là 8, cơ mà 6 đang thành 9 (theo hướng ngang) cùng ko ra số gì theo theo hướng dọc. Còn dìm dạng hình họa y tế thì bài toán bị lật bên trên xuống dưới là ko lúc nào sảy ra ở hình họa thực tế --> tránh việc lật có tác dụng gìRandom crop (Cắt ngẫu nhiên): cắt đột nhiên 1 phần của tấm hình. Lưu ý là lúc cắt phải giữ lại yếu tố bao gồm của tấm hình nhưng ta quan tâm. Nlỗi ở nhấn diện đồ gia dụng thể, nếu hình ảnh được cắt không tồn tại thứ thể, vậy giá trị nhãn là ko đúng chuẩn.


*

image.jpg2000×1125 584 KB

Geometry based: Đủ các thể các loại luân phiên, lật, scale, padding, bóp hình, đổi mới những thiết kế,Màu sắc based: y như trên, cụ thể hơn chia làm (i) tăng độ dung nhan đường nét, (ii) tăng độ sáng, (iii) tăng cường độ tương bội phản xuất xắc (iv) đảo sang ảnh negative - âm phiên bản.Noise/occlusion: Chi máu hơn các loại nhiễu, như bản thân kể bên trên còn nhiều lắm. đề cập không còn rụng răng.Whether: thêm tác dụng cảu thời tiết như mưa, tuyết, sương mờ, …

Một số ví dụ khác <1>

Lưu ý rằng <4> việc sử dụng data aumgentation bắt buộc triển khai hốt nhiên vào quá trình huấn luyện và giảng dạy. Và câu hỏi sử dụng GAN là tạo ra tài liệu ko tất cả trước, rất có thể có công dụng prúc.

Vấn đề của data augmentation!

Tính phụ thuộc vào dữ liệu với ứng dụng

Vấn đề là “bé vịt nào cũng béo vặt lông nhỏ nào”, rất nhiều phương pháp augmentation, chọn lựa cách làm sao để cho quality rất tốt đây? Câu vấn đáp là - tùy ở trong vào tài liệu (số lượng mẫu, tính balance/imbalance của mẫu, dữ liệu test, v.v. với ứng dụng tương ứng. Nghĩa là từng cỗ dữ liệu sẽ có phương pháp riêng biệt nhằm augmentation làm sao cho ra công dụng rất tốt.

Điển hình là dữ liệu MNIST được hiểu giỏi cùng với cách thức elastic distortion, scale, translation, với rotation. Trong Lúc dữ liệu hình ảnh tự nhiên nlỗi CIFAR10 cùng ImageNet thì lại giỏi với thuật toán thù random-cropping, iamge miroring, color shiffting/whitenting <8>. Không những có vậy cơ mà một trong những augmentation method ko xuất sắc đến một số trong những tập dữ liệu. Đơn cử là hroizontal flipping tốt cho CIFAR10 mà lại ko xuất sắc cho MNIST ( bởi vì flip là do đó số không giống rồi còn gì).

Sự đa dạng chủng loại của augmentation

Với danh sách những tmùi hương thức augmentation nhắc trên thì cũng còn nhiều phương pháp bản thân không liệt kê không còn. Bản thân từng augmenation lại có những Yếu tố điều khiển và tinh chỉnh riêng. Mình hoàn toàn có thể phân các loại thành

Các cách thức augmentation: flip, rotation, random crop, v.v.Các yếu tố điều khiển augmentation: từng augmenation sẽ sở hữu các nguyên tố điều khiển và tinh chỉnh riêng rẽ. Ví dụ rotation thì từng nào độ, scaling thì scaling tăng lên giảm xuống bao nhiêu lần, crop random thì random trong khoảng từng nào …Tần suất sử dụng từng thủ tục augmentation?Cách augmentation cực tốt là 1 trong những bộ những cách làm augmentationCách augmenation cho từng tiến độ training/epoch có thể khác biệt. Epoch đầu sinh hoạt leanring rate lớn có thể khác với những epoch cuối sống learning rate nhỏCách augmenation mang lại từng class, gia tốc dùng augmenation rất có thể khác nhauCách augmenation cũng hoàn toàn có thể bị ảnh hưởng bnghỉ ngơi kết cấu mạng. Tức là augmentation mang đến nút gain không giống nhau tới từng network

Và chưa phải những yếu tố nói trên tất cả ảnh hưởng giống như nhau tới tầm độ nâng cấp quality của augmentation.

Cách augmentation tốt nhất?

Việc dựa vào vào dữ liệu với ứng dụng, kiến trúc mạng,nhắc trên đồng nghĩa cùng với bài toán bạn cần phải demo tương đối, và chắc hẳn rằng đang tốn tương đối nhiều thời gian nhưng mà không chắc tìm ra bí quyết augmentation tốt nhất.

Xem thêm: " Dầm Là Cái Gì ? Khái Niệm Khoảng Cách, Kích Thước Và Chiều Cao Dầm

Auto lớn augmentation

Vậy làm cách như thế nào nhằm augmentation giỏi nhất? Không đề xuất phương pháp làm sao không giống chính là thuật tân oán AutoAugmentation --> cần sử dụng chuyên môn chắt lọc linh động thủ tục augmentation trong quá trình training.

Trong bài xích báo của group người sáng tác Google gồm anh Quốc Lê thực hiện reinforcement learning cùng với một loạt các bộ thông số kỹ thuật augmentation, mức độ augmentation, tần suất thực hiện augmentation nhằm học ra quy quy định (policy) augmentation rất tốt. Tuy nhiên quy chế độ này là fixed policy - Có nghĩa là sử dụng mang đến tất cả những epoch. Trong khi câu hỏi tiêu tốn cho tới 5000GPU hours cũng chính là cả một sự việc cùng với mấy người tiêu dùng Colab ca tòng.

Hướng nghiên cứu những augmentation tốt đang dần nhận được không ít quyên tâm như một vài bài bác mình share cách đây không lâu ở SOTA.

Cách Augmenation có thể transfer được !!!

Một tính năng độc đáo là mặc dầu ko chỉ dẫn được quality tốt nhất có thể, nhung cách làm augenation học trường đoản cú dữ liệu không nhiều CIFAR 10 hoàn toàn có thể sử dụng cho CIFAR100 nhưng mà vẫn nâng cấp đáng chú ý quality.

Vậy cân đối giưa độ phức tạp với cách augmentation có thể sử dụng lại trường đoản cú tập dữ liệu tất cả tính chất tương tự hoặc học tập từ bỏ tập dữ liệu thu nhỏ.

Tài liệu tsay mê khảo

T. Shaikhina, N. A. Khovanova, Handling limited datasets with neural networks in medical applications: A small-data approach, Elsevier Artificial Intelligence in Medicine, Jan. 2017.E. D. Cubuk, B. Zoph, D. Mane, V. Vasudevan, Q. V. Le, AutoAugment, Learning augmetnation strategies form data, arxiv 1805.0951.

Xem thêm: Nên Thay Nhớt Nào Cho Sirius Dùng Loại Nhớt Motul Nào Tốt, Giá Hợp Lý?

Thuật ngữ viết tắt

AI: Artificial IntelligenceDL: Deep learningCNN: Convolutional Neural NetworkSOTA: State-Of-The-Art

Tlỗi viện pyTorch cũng cung cấp những các loại augmentation sinh sống torch.vision.transforms bao gồm có khá nhiều thể nhiều loại augmentatio nlỗi mình viết sinh hoạt trên.

torchvision.transforms. CenterCrop ( size )torchvision.transforms. ColorJitter ( brightness=0 , contrast=0 , saturation=0 , hue=0 )torchvision.transforms. FiveCrop ( size )torchvision.transforms. Grayscale ( num_output_channels=1 )torchvision.transforms. Pad ( padding , fill=0 , padding_mode=‘constant’ )torchvision.transforms. RandomAffinetorchvision.transforms. RandomApplytorchvision.transforms. RandomChoicetorchvision.transforms. RandomCroptorchvision.transforms. RandomGrayscaletorchvision.transforms. RandomHorizontalFliptorchvision.transforms. RandomOrdertorchvision.transforms. RandomPerspectivetorchvision.transforms. RandomResizedCroptorchvision.transforms. RandomRotationtorchvision.transforms. RandomSizedCroptorchvision.transforms. RandomVerticalFliptorchvision.transforms. Resizetorchvision.transforms. Scaletorchvision.transforms. TenCroptorchvision.transforms. LinearTransformationtorchvision.transforms. Normalizetorchvision.transforms. ToPILImagetorchvision.transforms. ToTensortorchvision.transforms. Lambdatorchvision.transforms.functional. adjust_brightnesstorchvision.transforms.functional. adjust_contrasttorchvision.transforms.functional. adjust_gammatorchvision.transforms.functional. adjust_huetorchvision.transforms.functional. adjust_saturationtorchvision.transforms.functional. affinetorchvision.transforms.functional. croptorchvision.transforms.functional. five_croptorchvision.transforms.functional. hfliptorchvision.transforms.functional. vfliptorchvision.transforms.functional. normalizetorchvision.transforms.functional. padtorchvision.transforms.functional. perspectivetorchvision.transforms.functional. resizetorchvision.transforms.functional. resized_croptorchvision.transforms.functional. rotatetorchvision.transforms.functional. ten_croptorchvision.transforms.functional. to_grayscale

Chuyên mục: Kiến Thức