- 2021년 1월 22일 오후 4:03
- 조회수: 8138
INFORMATION
- 2021년 1월 22일
- 오후 1시 ~
- Youtube
- 온라인 비디오 시청 (YouTube)
TOPIC
On-Line Video
OVERVIEW
청취자 후기
이번 세미나는 'The Whys and Hows of Data Augmentation'이라는 주제로 현구형이 발표를 해주셨다.
현대 머신러닝과 딥러닝은 매개변수가 수 만에서 수 천만개에 이르는 큰 모델용량을 가지고 있다. 그에 반해 데이터의 수는 현저하게 적은 경우가 대다수이므로 오버피팅 문제가 발생한다.
이를 해결하기 위해서는 모델 용량을 강제로 줄이는 규제 기법이나 데이터의 수를 늘려야 한다. 전자의 경우 L2-norm, 드롭아웃 등 테크닉을 통해 구현할 수 있지만 데이터의 수를 늘리는 것은 비용과 시간이 많이 필요하다. 이를 해결하기 위해 기존의 데이터를 이용해 인위적인 데이터를 만드는 Data Augmentation 기법이 다양하게 개발되었다.
이미지 데이터에서 Data Augmentation 기법은 Crop, Rotate 등 다양한 기법이 있지만 세미나에서는 Mixup에 대해 중점적으로 설명해 주었다. Mixup은 두 이미지 데이터를 Convex combination하여 새로운 데이터를 만드는 것인데 클래스가 다른 이미지들도 mixup하여 label 또한 mixup을 한다는 것이 흥미로웠다.
텍스트 데이터에서는 의미가 비슷한 단어로 바꾸는 기법과 Embedding을 통해 벡터 공간에서 거리가 가까운 단어로 바꾸는 기법, 특정 단어 위치에 Mask를 씌워 미리 학습된 모델의 예측값을 사용하는 기법 그리고 문장에서 의미가 크지 않은 단어를 다른 단어로 대체하는 기법을 소개했다.
Data Augmentation에서 주의해야할 점은 원래 데이터의 의미가 달라지면 안된다는 것이다. 예를 들어 6이라는 숫자를 뒤집어버리면 9가 되어 버리기 때문에 그 의미가 바뀌어 버린다. 그로 인해 데이터셋마다 적절한 기법을 선택해야 하는데 이를 학습으로 찾는AutoAugment가 있다. 다양한 Augmentation 기법들의 조합을 policy로 두는 이 기법은 강화학습을 이용해 최적의 policy를 찾지만 시간이 많이 소요된다는 단점이 있다.
데이터의 특징을 사람이 찾던 것에서 표현학습으로 학습을 통해 찾게 되면서 딥러닝의 성능은 큰 발전을 할 수 있었다. Data Augmentation도 이와 같이 학습을 통해 각 데이터셋과 모델에 맞게
찾을 수 있다면 다시 한 번 성능을 향상시킬 수 있지 않을까 생각한다. 좋은 세미나를 해주신 현구형께 감사드리며 세미나 후기를 마친다.
이번 세미나는 현구형이 ‘The Whys and Hows of Data Augmentation’이라는 주제로 진행하였다. Data augmentation이 필요한 이유는 overfitting을 방지하기 위함이다. 이러한 overfitting을 해결하기 위해서는 다양한 방법론들이 존재하지만 크게 2가지로 나눌 수 있다. 첫번째는 regularization기법을 적용하는 것이고 두번째는 학습 데이터 양을 늘리는 방법이 있다. Augmentation은 학습 데이터의 양을 늘리는 방법 중 하나라고 볼 수 있다. 이미지에서 augmentation의 방법으로는 명도, 채도, 대비 등을 조절하는 방법들이 존재한다. Data augmentation에서 주의해야 할 점은 semantically invariant transformation이여야한다는 점이다. 즉 augmentation이 image class label을 보존해야하는 것이다. Image에서 사용된 augmentation은 cutout이라는 방법론이다. Cutout은 이미지에 일정한 크기의 box를 잘라내고 box를 noise로 채우는 방법론이다. Mixup에서는 이미지의 convex combination을 가지고 새로운 이미지를 만들어 내는 방식이다. 그 이후에도 CutMix, AugMix, Puzzle Mix등 다양한 방법론이 계속 나오고 있다.
자연어 처리 분야에서 사용되는 augmentation방법은 문장에서 사전적으로 유사한 단어로 바꿔주는 Thesaurus-based Substitution이라는 방법이 있으며 사전적인 유사도가 아닌 단어 vector들 간의 유사도로 바꾸어 주는 Word Embedding-based Substitution 방법론이 존재한다.
평소 이미지 데이터에 관한 augmentation 방법론에 대해서만 알고 있었는데 자연어 처리 분야에서 사용되는 다양한 방법론에 대해 알 수 있어서 좋았고 data augmentation에 대해 쉽고 재미있게 설명해준 현구형에게 감사하다는 말을 전하고 싶다.
이번 세미나는 "The Whys and Hows of Data Augmentation"을 주제로 진행되었다.
Data augmentation의 경우 over fitting을 방지하기 위한 여러 기술 중 하나로 발전되고 있다. Over fitting은 알고리즘의 Variance가 클 때 발생하는 문제로, train data set에 대해 learning을 정상적으로 마친 후 test data set에 적용할 때 그 결과가 매우 다르게 나온다는 것을 의미한다. 이러한 Over fitting을 방지하기 위해 Variance를 낮추는 방법으로는 training data를 많이 모으는 방법, feature의 개수를 줄이는 방법, regularization을 통해 weight 값을 조절해주는 방법 등이 있다. 여기에서 training data를 많이 모으는 방법은 금전적, 시간적으로 손실이 큰데, 이를 해결하기 위한 기존에 있는 Data를 활용하여 변형하는 방법이 data augmentation이다. 하지만 지켜야 할 것이 있는데, Semantically Invariant Transformation 이를 Machine Learning 관점에서 풀면 고유의 class labels를 보존해야 한다는 것이고, 쉽게 말해 Data에서 중요한 부분을 보존하는 선에서 최대한 augmentation을 하는 것이 좋다는 의미이다.
Data Augmentation for Computer Vision에서는 Cutout, Mixup, CutMix, AugMix, Puzzle Mix 등이 있다. 이를 자동화하기 위해 구글에서 AutoAugment를 만들었는데, 계산 시간이 너무 오래 걸리는 단점이 있다. 이후 Poppulation-Based Augmentation, Fast AutoAugment가 시간 문제를 어느정도 해결했으며, RandAugment는 random하게 매번 다른 augmentation 하는 것이 더 낫다는 취지로 만들어진 방식이다.
Data Augmentation for Natural Language Processing에서는 유사 사전에 기반한 Thesaurus-based Substitution, 사전 학습된 단어 벡터의 거리에 기반한 Word Embedding-based Substitution, BERT를 이용한 Masked Language Model, TF-IDF-based Replacement, 번역 후 재번역하는 Back Translation, Word/Sent Mixup 등이 있다.
Data augmentation의 경우 프로젝트를 위해 간단하게만 사용해보았는데, Data의 특성에 따라 augmentation 하는 방법이 많이 다르다는 것을 알 수 있었으며, 과거부터 최신 연구까지 알 수 있는 좋은 시간이었다. 향후에 비젼이나 자연어 분야 뿐만 아니라 더욱 다양한 augmentation 기법을 통해 Data의 양을 확보 할 수 있는 능력을 갖는다면 좋은 무기가 될 것이라는 생각을 하게 되었다.
끝으로 좋은 내용으로 방대한 양을 알기 쉽게 설명해주신 강헌구 연구원님께 감사하다는 말을 전합니다.
금일 세미나는 현구형이 'The Whys and Hows of Data Augmentation'이라는 주제로 발표를 해주었다. 이번 세미나의 주제로 Data Augmentation을 다룬 이유는 모델이 학습하는 과정에서 가장 골치 아픈 Overfitting 문제를 방지해주는데 Data-level 관점에서 가장 많이 사용 되는 기법이기 때문이다. 세미나의 주요 설명은 크게 Computer Vision 분야와 NLP 분야의 전반적인 Data Augmentation 연구 동향에 대해 설명해주셨다.
Computer Vision 에서는 잘 알려진 Cutout, Mix-up, CutMix 알고리즘에 대해 말씀해주셨는데 구체적인 수식 없이도 예시와 실험 결과를 통해 각 알고리즘이 연구된 배경과 동작 원리를 이해하기 쉽도록 설명해주셨다. 최근 연구된 AugMix와 Puzzle Mix도 소개해주셨다. 현재 개인 연구로 Mix-up알고리즘을 개선한 새로운 Augmentation 기법에 대해 연구 중인데 금일 세미나를 통해 Mix-up 알고리즘이 여러 방면으로 개선되고 있다는 것을 한번 더 느낄 수 있었다. 뿐만 아니라 최근 강화학습 이론과 결합된 Auto Augmentation 연구 분야의 주요 알고리즘으로 AutoAugment(AA) 와 Popultation-Based Augmentation(PBA), Fast AutoAugment(Fast AA), RandAugment(RA) 까지 소개해주셨다. 사실 개인적으로 처음 AutoAugment에 대해 공부했을 때 너무나 유혹적인 알고리즘이였지만 충분한 자원 없이는 사용을 하지 못해서 개인적으로 아쉬웠는데 AutoAugment와 유사한 성능을 보이지만 학습 시간을 1000배 가까이 줄일 수 있는 RandAugment가 있다는 것을 알게 되어서 RandAugment 알고리즘에 대해서도 개인적으로 공부해보고 싶다는 생각이 들었다.
NLP 분야에서는 사전적으로 유사한 의미로 대체를 하거나 워드 임베딩 값의 유사도를 이용해 다른 단어로 대체를 하는 알고리즘과 뿐만 아니라 Bert와 같은 마스킹을 통한 학습 모델을 이용해 Augmentation을 적용하는 방법론까지 소개해주셨다. 최근까지도 학습된 Translation model을 통해 Augmentation 알고리즘이 있다는 것을 보니 정말 다양한 도메인에서 Augmentation을 위한 연구가 활발히 진행되고 있다는 것을 느꼈다.
사실 현재 개인 연구로 Signal data에 적합한 Mix-up 알고리즘을 연구 중인데 여러 어려움에 부딪힐 때마다 현구형에게 너무 많은 도움을 얻었다. 평소에도 너무 많은 도움과 배움을 얻었는데 이번 세미나를 통해서도 개인 연구에 도움이 될 수 있는 여러 알고리즘을 가르쳐 주셔서 너무나 감사드린다.
금일 세미나는 데이터 증강 기법에 대한 목적과 여러 기법들의 핵심을 소개 받을 수 있었다. 곧 연구실 자리를 떠날 현구형이 유튜버처럼 재미있게 진행해주셨는데 마지막 세미나라 하니 아쉬운 마음이 들었다. 20분에 해당하는 시간동안 데이터 증강 기법들의 재미있는 핵심들을 접할 수 있었고, 즐거운 노래도 청취할 수 있었다. 20분이였지만 6년동안 연구해 온 현구형의 생각과 근거를 함께 들을 수 있었기 때문에 더욱 좋았다. 감사합니다!
- 데이터 증강 기법: 머신러닝의 과적합을 방지하고자 사용하는 기법으로, 데이터의 본질을 변형시키지 않는 선상에서의 노이즈를 이용해 데이터 개수를 늘리는 방법.
- Cutout: 이미지 데이터의 일부 영역을 평균값 혹은 0으로 대체하는 기법.
- Mix-up: 두 데이터의 feature와 label을 convex combination하여 새로운 데이터를 얻는 방법.
- Cutmix: Cutout 기법과 Mix-up 기법을 합친 데이터 증강 기법.
- Augmix: 여러 종류의 augmentation 기법을 적용한 후, 원본 데이터와 Mix-up하는 기법.
- Puzzlemix: 최적화 문제를 기반하여 Cutmix 기법을 업그레이드한 데이터 증강 기법.
- Auto-augment: 여러 augmentation 기법 중 최적 기법을 강화학습으로 탐색한 기법.
- Population based augmentation과 Fast auto-augmentation: Auto-augmentation에 성능을 유지하면서 학습 시간을 급격하게 줄인 데이터 증강 기법으로, 고도화된 강화학습과 베이지안 최적화를 응용하였음.
- Rand-augment: 랜덤성을 기반하여, 매 iteration마다 다른 augmentation 기법을 적용하는 데이터 증강 기법.
- 텍스트 분야에서는 사전적으로 단어가 유사하거나, 임베딩 벡터가 유사한 단어들로 대체하는 데이터 증강 기법들이 사용되고 있으며, Bert와 같은 Pre-trained된 언어 모델을 이용해 유사 단어를 탐색해 데이터를 증강시키기도 한다. 그리고 TF-IDF를 이용해 의미가 다소 떨어지는 단어들을 다른 단어로 대체하는 데이터 증강 기법도 존재하며, Pre-trained된 번역 모델을 이용해 Back-translation으로 데이터를 증강하는 기법도 존재한다.
이번 세미나는 'The Whys and Hows of Data Augmentation'이라는 주제로 진행되었다. Data Augmentation(DA)는 모델의 과적합을 막고 일반화 성능을 끌어올리기 위해서 사용된다. DA처럼 데이터의 양을 늘려 과적합을 막는 방법에는 단순히 더 많은 데이터를 수집하는 방법이나 생성 모델을 사용해서 기존 이미지와 비슷한 이미지를 생성하는 방법이 있다. 하지만 DA가 그 중에서 가장 시간적인 측면에서 비용 효율적이라고 할 수 있다. DA를 사용할 때 주의할 점이 있는데 augmentation을 통해서 이미지를 변형할 때 본래의 의미를 해쳐서는 안 된다는 것이다. 한편 본래의 의미를 해치지 않는 선에서 강력한 변형을 준다면 모델의 일반화 성능을 끌어올리는데 큰 기여를 한다고 많은 문헌에서 언급하고 있다.
세미나에서 크게 이미지와 텍스트 분야의 augmentation을 소개하고 있다. 먼저 #1 이미지에 사각형의 빈 공간을 만든 뒤 노이즈(혹은 평균값 등)으로 채워넣는 Cutout, #2 서로 다른 두 이미지를 Convex combination으로 혼합하는 Mixup, #3 Cutout 기법과 Mixup 기법을 동시에 사용하여 빈 공간에 다른 이미지로 채워넣는 Cutmix, #4 한 이미지에서 여러 augmentation을 한 뒤 원본과 다시 섞는 Augmix, #5 서로 다른 두 개의 이미지에서 중요한 정보는 최대한 보존하면서 쌍방을 혼합하는 Puzzlemix가 있다. 앞서 언급한 기법들을 개별적으로 고안한 방법이 있는가 하면 다양한 기법들을 최적으로 어떻게 조합할지 방법을 제시한 논문들도 있다. 이에는 강화학습 또는 베이지안 기법들을 활용한 Population Based Augmentation, Fast AutoAugmentation, RandAugment 등이 있으며 주요 발전 방향은 성능을 최대로 유지하면서 최적의 조합을 찾는데 걸리는 시간을 줄이는 것이다. 한편 텍스트 분야에서도 augmentation이 이루어지고 있는데, 가장 간단한 방법으로는 #1 Thesaurus-based Substitution이다. 이는 사전적으로 유사한 의미를 가진 단어로 대체하는 방법이다. #2 Word Embedding-based Substitution은 워드 임베딩을 통한 단어 유사도를 기반으로 기존 단어를 대체하는 방법이다. #3 Masked Language Model은 학습된 BERT 모델을 사용하여 빈칸이 뚫린 문장에 들어올 적합한 여러 단어들을 활용하여 기존 문장에 관련된 여러 가지 문장을 생성하는 방법이다. #4 TF-IDF based Replacement는 TF-IDF 계수를 통해서 문장의 의미를 크게 좌지우지하지 않는 단어를 유사 단어로 대체하는 방법이다. #5 Back Translation은 기존 문장을 다른 언어로 번역한 뒤 다시 본래의 언어로 번역하는 과정에서 문장이 같은 의미는 갖되 단어 구성이 변할 수 있다는 점에서 착안한 방법론으로 재번역 과정을 통해서 문장을 생성한다. Word/Sent Mixup은 개별 단어들끼리 augmentation을 한 뒤 모델에 입력하거나 단어들을 모델에 입력해서 문장 단위의 임베딩을 구한 다음 문장 단위의 임베딩을 mixup하는 방법이다.
Self-supervised learning 분야를 공부하면서 이미지 data augmentation을 조합하는 것이 꽤나 까다롭게 느껴졌었는데 이번 현구 형의 세미나를 통해 augmentation에 대한 이해가 좀 더 깊어진 것 같아서 유익했다. 다양한 기법과 논문을 알기 쉽도록 열심히 준비해주신 현구 형에게 감사의 말을 전한다.
이번 세미나는 Data augmentation을 주제로 진행되었다. Data augmentation이 왜 필요한지, 어떤 방법들이 최근 연구되고 있는지를 정말 잘 정리하여 발표해준 것 같다. Data augmentation은 Overfitting을 방지하기 위한 방법이다. Overfitting을 방지하기 위한 방법으로 두 가지 접근 방법을 생각해볼 수 있는데, Regularization technique을 사용하는 모델 관점에서의 방법이 있겠고, 데이터의 사이즈를 더 늘리는 데이터 관점에서의 접근 방법이 있을 것이다. 그 중 데이터 사이즈를 더 늘리기 위한 현실적인(간단하면서도 비용이 적은) 방법이 Data augmentation이 되겠다. Data augmentation을 하는 다양한 기법들이 있을 수 있는데, 원래의 데이터가 가지는 고유의 정보까지 바뀌지는 않아야 할 것이기 때문에 Semantically invariant transformation이 되어야 하고, 원래의 Class label을 유지해야 한다. 이를 "What doesn't kill you makes you stronger."란 말로 표현해줬는데, label이 바뀔 정도의 transformation만 아니면 더 강건한 모델을 만들 수 있다는 의미로 생각된다. Data augmentation을 표현하는 직관적인 이 한 문장으로 Data augmentation을 왜 해야하는지 한번에 이해할 수 있었다. Computer vision 분야에서의 Data augmentation 방법으로 Cutout, Mixup, CutMix, AugMix, Puzzle Mix가 단계적으로 어떻게 연구되어 왔는지를 알 수 있었고, AutoAugment, Population-based Augmentation과 같이 Augmentation을 어떻게 해야할지를 학습하는 방법이 있다는 것도 새롭게 알게 되었다. 자연어 처리 분야에서의 Data augmentation 방법도 소개가 되었는데, 기본적인 사전 기반부터 Word embedding-based substitution, Masked language model, TF-IDF-based replacement 등 원본 데이터의 단어를 대체하는 방법이 있었고, Back translation이나 Word/Sent Mixup과 같이 원래 문장을 변형하는 방법도 소개가 되었다. Back translation은 직관적이면서도 유용하게 쓸 수 있는 방법인 것 같다는 생각이 들었다. 앞으로 개인연구로 이미지 데이터를 많이 다루게 될 것 같은데 Data augmentation은 필수적으로 적용을 해야겠다는 생각을 했고 그에 대한 기초 내용으로 이번 세미나가 정말 많은 도움이 될 것 같다. Data augmentation에 대한 전반적인 내용을 이해하기 쉽고 간결하게 준비해준 강현구 연구원에게 감사의 말을 전한다.
이번 세미나는 Data Augmentation을 주제로 진행되었다. Data Augmentation은 overfitting의 문제를 해결하기 위해 필요하다는 도입에서 단순히 데이터의 양을 늘리는 수단이 아니라 모델 학습 시 주의해야 하는 overfitting 문제를 해결하는 역할을 한다는 것에 Data Augmentation의 중요성을 느낄 수 있었다. 컴퓨터 비전을 위한 Data Augmentation 기법에는 Cutout, Mixup, CutMix, AugMix, Puzzle Mix 등이 있다. 최근 연구 미팅에 참석하며 이러한 기법들이 언급되는 것을 볼 수 있었는데 이번 세미나를 통해 각 기법에 대한 설명을 들을 수 있어서 좋았다. 자연어 처리를 위한 Data Augmentation 기법으로는 Thesaurus-based Substitution, Word Embedding-based Substitution, Masked Language Model 등이 있는데 각각 다른 접근으로 augumentation을 수행하는 것이 흥미로웠다. 자연어 처리 분야에서 한글은 영어에 비해 다루기 어려운 언어라고 알고 있는데 한글에 최적화된 Data Augmentation 기법에 대한 연구가 활발하게 이루어졌으면 좋겠다고 생각했다. 최근에는 Augmentation 또한 학습할 수 있는 방법들이 제시되고 있는데 대표적인 예로 AutoAugment, Population-Based Augmentation, Fast AutoAugment 등이 있다. 각각에 대한 특징과 장단점을 쉽고 명확하게 설명해 주셔서 이해에 큰 도움이 되었다. Data Augmentation에 대해서는 모델 학습 시 가지고 있는 데이터보다 더 많은 양의 데이터를 사용하기 위해 필요하다 정도만 알고 있었는데 이번 세미나를 통해 전반적인 내용뿐만 아니라 컴퓨터 비전과 자연어 처리를 위한 기법에 대해서도 자세하게 배울 수 있었다. 들어본 적은 있지만 정확하게 어떤 방식으로 수행되는지 몰랐던 기법들에 대해서도 예시와 함께 쉽게 설명해 주셔서 흥미롭게 들을 수 있었던 세미나였다.
오랜만에 현구가 진행하는 세미나였다. 현구 박사학위 논문 주제인 Self-Supervised Representation Learning에서 가장 중요하게 다루고 있는 데이터 증강 기법에 관한 소개를 해주었다. 원본 데이터와 데이터 증강 기법을 적용한 후 이 둘간의 유사성을 높이는 방향으로 Feature extractor를 학습하는 것이 위에서 언급한 분야인데 이 중 기본이 되는 많은 방법론을 간결하게 설명해주어 이해하는데 큰 어려움이 없었다. 이미지 뿐만 아니라 텍스트 데이터에 대한 데이터 증강 기법이 특히 인상적이 었는데 현재 진행하고 있는 프로젝트에서 이를 응용해야겠다는 생각이 들었다. 나의 연구에서도 이미지 데이터에 대한 여러가지 데이터 증강 기법을 적용하고 있는데 이를 참고해보아야겠다. 학교를 떠나기전 마지막 선물로 연구실 동료들에게 좋은 세미나를 해준 현구에게 감사함을 표한다.
이번 세미나는 "The whys and hows of data augmentations"이라는 주제로 진행되었다. 모든 머신러닝 모델들은 학습된 데이터에 대해서만 잘 동작하는 오버피팅 문제가 발생할 수 있으며 이를 해결할 수 있는 방법 중 하나가 data augmentation이다. Data augmenation은 데이터의 의미적 맥락은 유지하면서 약간의 변형을 통해 다양한 데이터를 생성해내는 기법을 의미한다. 이번 세미나에서는 컴퓨터 비전과 자연어 처리 분야에서 활용될 수 있는 다양한 data augmentation 기법에 관해서 소개되었다. 먼저 컴퓨터 비전 분야에서 자주 사용되는 Cutout, Mixup 등과 같은 방법론들이 소개되었다. 해당 방법론들은 이미지의 일부를 다른 이미지로 대체하거나 서로 다른 이미지 섞어 새로운 이미지 등의 방식으로 data augmentation을 적용했다. 다음으로 소개된 방법론들은 데이터에 적합한 augmentation 방법을 자동으로 찾아 나가는 방법론들에 관해서 소개되었다. 대표적인 기법으로 AutoAugment와 같은 방법들이 있으며 AutoAugment는 강화학습을 통해 최적의 augmentatio 조합을 찾아 나가는 방법론이다. 세미나의 마지막 부분에서는 자연어 처리 분야에서 활용되는 data augmentation 방법들에 관해 소개되었다. 자연어처리에서는 문장의 의미적인 부분을 동일하게 유지하기 위해 단어의 동의어 혹은 유의어들로 대체하는 방법을 통해 새로운 데이터를 생성해냈다. 이번 세미나를 통해 다양한 data augmentation 기법들에 대해 살펴볼 수 있었다. 향후 개인 연구에도 관련된 방법론을 적용할 수 있을 것으로 예상되어 개인 연구를 발전시키는 데에 큰 도움이 되는 세미나였다.
이번 세미나는 "Data augmentation"을 주제로 진행되었다. Data들의 Overfitting을 방지하기 위한 model의 관점으로 한 해결방법과 더불어 Data의 관점으로 한 해결방법들이 존재한다. Data관점의 해결방법은 학습데이터의 양을 늘리는 것으로 해결하고자 하는 아이디어로, Data를 실제로 더욱 수집하는 가장 직관적인 방법이 존재하지만 비용과 시간적인 측면에서 좋지 못한 경우가 많다. 그렇기에, 기존의 우리가 가지고 있는 Data를 활용하여 유사한 Data를 만들어 학습데이터의 양을 늘리는 Data augmentation 기법이 활용이 되고 있다.
Data augmentation에서 우리가 조심하여야 할 부분은 바로 "Semantically Invariant Tranformation" 이어야 한다는 것이다. Data augmentation을 진행하며 새로운 Data를 만들더라도 기존의 Data에서의 의미가 변형이 되어서는 안되게 진행을 해야 한다.
이미지 데이터와 텍스트 데이터에서의 Data augmentation 기법 위주로 설명이 진행되었는데, 이미지 데이터의 부분에서는 Cutout,Mixup,CutMix,AugMix,Puzzle Mix의 5가지 방법에 대해서 설명을 들으며 각각의 방법에서의 어떠한 부분들이 보완되어 왔는지를 알아볼 수 있었다. 텍스트 데이터의 부분에서는 사전적으로 유사한 단어로 변경하는 Thesaurus-based Substitution, 단어 벡터들간의 유사도를 활용하여 대체하는 Word Embedding-based Substitution, TF-IDF score를 활용한 TF-IDF based Replacement의 방법론들에 대해서 알아볼 수 있었다.
앞으로의 연구가 진행되며 마주하게 될 Overfittiing의 문제들을 극복해 나갈수 있는 여러 기법들에 대해서 알아볼 수 있는 세미나를 준비해준 발표자에게 감사함을 표하고 싶다.
오늘 현구가 "The Whys and Hows of Data Augmentation"를 주제로 세미나를 진행했다. 데이터 증강(data augmentation) 기법은 여러 분야 비정형데이터(이미지, 텍스트, 그래프 등)나 정형데이터에 대해 딥러닝 모델 적용이 활발해지며 모델의 과적합을 방지하기 위한 기법으로 연구되어 오는 추세다. 전통적으로는 모델에 정규화 항을 추가하거나 앙상블 기법을 적용하는 등 Model-level 기법으로 접근하였지만 강건한 성능을 보이기 위한 적절한 데이터를 직접 생성해 학습하는 Data-level 기법으로 접근하는 게 대세인 것 같다. 오늘 세미나에선 (1) Vision, (2) NLP에서 사용되는 augmentation 기법 여럿을 직관적으로 설명해주었다. 현구가 오랜만에 세미나했는데 역시 연구실 연구원 중 최근 연구동향에 대해 가장 빠르게 접근하여 실제 그 효과를 살펴보는 선배의 면모를 다시금 보여준 것 같다. 또한, 그동안 현구 세미나는 그 디테일이 남달랐는데 오늘은 그 과적합이 해소된 즉, 전반적인 흐름을 정리하기에는 많은 노력이 필요하지만 컨셉을 이해하기 쉽게 잘 전달해주는 세미나 였던 것 같다. Data augmentation은 "what doesn't kill you makes you stronger"의 철학을 바탕으로 "semantically invariant transformation"을 수행하는 과정으로 요약해준 점도 좋았다. 오늘 세미나와 더불어 그동안(6년간) 수고 많았다는 말 전하고 싶다!
금일 세미나는 “The Whys and Hows of Data Augmentation”의 주제로 진행되었다. Data Augmentation은 오버피팅 문제를 방지하기 위하여 학습 데이터의 수를 늘리는 방법 중 하나로 활용되며, 데이터에 쉽고 빠르게 적용이 가능하다는 장점을 갖고 있다. 어떠한 변환 과정을 거치더라도 기존 데이터의 의미, 또는 레이블 자체는 변하지 않아야 한다는 점이 가장 주요하다. 이번 세미나에서는 크게 두 가지 방향의 Data Augmentation 방법들을 소개해주셨다. 첫 번째로 이미지 분야에서 활용하는 Cutout, Mixup, Cutmix, Augmix, Puzzle Mix 등으로, 기존 이미지 데이터의 일부를 잘라내거나, 다른 이미지와 결합하는 등으로 Augmentation을 진행한다. 이 외에도 Augmentation 자체를 학습시킬 수 있는 AutoAugment, Population-Based Augmentation, FastAutoAugment, RandAugment 등의 방법을 설명해주셔서 강화학습이나 베이지안 최적화 등을 활용한 Data Augmentation도 가능함을 알 수 있었다. 두 번째 분야인 텍스트에서도 Thesaurus-based, Word Embedding-based Substitution, Masked Language Model 등 다양한 동의어나 masking을 진행하는 모델을 활용하는 방법들이 있었으며, 이 외에도 기계 번역 등의 분야를 활용한다는 점도 알 수 있었다. 이번 세미나를 통하여 왜 Data Augmentation이 필요한지, 그리고 어떠한 방식으로 진행 및 활용되는지 파악할 수 있어 의미있었다. 다양한 데이터 도메인에서도 활발하게 활용되는만큼, 프로젝트나 연구를 진행할 때에도 이번 세미나에서 배운 기법들을 활용해보는 것이 도움이 많이 될 것이라 생각된다.
이번 세미나에선 강현구 연구원이 데이터 Augmentation의 여러 기법을 일목요연하게 소개해줬다. Augmentation은 모델 학습 과정에서 오버피팅을 방지하기 위한 테크닉 중 하나이다. 학습 데이터 중 일부를 변형해 데이터 수를 늘린다면 모델의 일반화 성능이 더욱 높아질 것이라는 가정 하에서 이뤄진다.
이미지 데이터 분석에서 가장 기초적인 augmentation에는 이미지 명도, 채도 등을 조정하거나 확대, 일부를 잘라내는 기법 등이 있다. 나아가 이미지에서 임의의 사각형 영역을 비우고 0 또는 평균값으로 대체하는 컷아웃, A 레이블 이미지와 B 레이블 이미지를 섞어 P(A)=0.5, P(B)=0.5의 이미지를 만드는 믹스업, 컷아웃과 믹스업을 합한 컷믹스 등도 있다. 이런 augmentation 기법 중 어떤 기법들을 사용할 지 연구자가 정할 수도 있지만, 최근에는 최적의 augmentation 조합을 학습을 통해 찾는 방법론이 활발히 연구되고 있다. 그외 자연어처리 분야에서 쓰이는 augmentation 기법 중 Thesaurus-based substitution, Word embedding-based substitution, Masked language model 등도 소개됐다.
최근 이미지 분석을 하면서 augmentation 부분은 flip과 같이 가장 기초적인 방법만 사용하고 넘어갔는데, 다음에는 더 적절한 기법이 무엇인지 연구해보고 선택해야겠다는 생각이 들었다. 노래까지 곁들여 가며 친절하게 설명해준 현구에게 감사의 인사를 전한다.
이번 세미나를 통해 data augmentation이 왜 필요하고, computer vision과 natural language processing에서 구체적으로 어떤 방식으로 이루어지고 있는지에 대해 배울 수 있었다.
data augmentation은 overfitting을 방지하기 위해 학습데이터의 양을 늘리는 방법 중 하나로 사용되고 있으며 쉽고 빠르게 적용이 가능하다는 장점을 가지고 있다.
computer vision 분야에서는 Cutout, Mixup, CutMix, AugMix, Puzzle Mix등의 data augmentation 기법이 사용된다. Cutout은 임의의 사각형 부분을 떼어내고, 그 빈자리에 랜덤한 노이즈나 평균 또는 0의 값으로 대체해 데이터의 양을 늘리는 방법이고, Mixup은 같은 Convex combination 비율로 label까지 augmentation시키는 방법이다. 여기서 Cutout과 Mixup을 결합해 Mixup이 다소 비현실적인 결과물을 생성해내는것을 보완한 방법이 CutMix이다. AugMix는 여러가지 방법으로 augmentation을 적용한 것들을 다시 원본과 Mixup하는 방법인데, 직관적이며 현실적인 데이터가 생성되는 장점이 있다. Puzzle Mix는 중요한 정보를 보존하면서 두 이미지를 섞는 방법인데 기존 Mixup보다 현실적 결과물을 생성해 준다. 어떤 방법을 사용해서 augmentation을 하는것이 가장 좋은지를 찾기 위한 모델들도 있다. 구글은 자주 사용되는 16가지 기법들 중 최적의 조합을 PPO로 학습하는 AutoAugment를 하는데, 이는 탐색공간이 커 매우 오래걸려 사용하는 주체가 제한적이다. 계산속도를 개선하기 위해 PBA가 등장했는데, 이는 시간에 따라 다른 Augmentation 조합을 제공하는 시간에따른 스케쥴을 학습하는 모델이다. 또 FastAA는 AA의 학습시간을 줄이기 위해 Bayesian optimization기술을 사용한다. RandAugment는 조합을 찾는것과는 다르게 random성에 기반해 매번 다른 Augmentation 조합을 사용하는것이 낫다는 아이디어를 구현한 것인데, 성능의 뒤쳐짐이 없고 코드를 구현하기 쉬운 장점이 있다.
NLP분야에서는 Thesaurus-based Substitution, Word Embedding-based Substitution, Masked Language Model, TF-IDF-based Replacement, Back Translation, Word/Sent Mixup등의 기법들이 사용된다. Thesaurus-based Substitution은 사전적으로 유사한 의미를 가진것으로 단어를 바꿔 augmentation을 시킨다. 반면 Word Embedding-based Substitution은 워드 엠베딩 모델로 학습한 단어 벡터들간의 유사성에 따라 단어를 대치해 데이터 양을 늘리는 방법이다. Masked Language Model은 빈칸을 뚫고 그 곳에 들어갈 단어를 예측하는 모델을 통해 augmentation을 시키며, TF-IDF-based Replacement는 TF-IDF 점수가 낮은 것들은 중요한 정보를 담지 않는 단어로 보고 이를 대체한다는 특징을 가지고 있다. Back Translation은 다른 언어로 번역하고 다시 원래 언어로 재번역해 데이터를 늘리는 방법이다. 마지막으로 Word/Sent Mixup은 앞에 언급된 Mixup기법을 text에 적용한 것이다.
이번 세미나를 계기로 Augmentation의 개념과 방법들이 머릿속에 체계적으로 정리된것 같아 매우 유익한 시간이었다. NLP에 관심을 가지고 있어 더 관심을 가지고 흥미롭게 세미나를 들을 수 있었다. 간결하게 Augmentation 기법들을 정리해서 설명해주신 연구원님께 감사하다는 말을 전하고 싶다.
이번 세미나는 'The Whys and Hows of Data Augmentation’이라는 주제로 Data Augmentation에 관한 전반적 연구 동향에 대해 진행되었다. Augmentation은 학습데이터의 모델이 오버피팅되는 문제를 해결하는 하나의 기법으로 적은 비용과 큰 다양성을 동시에 이루어낼 수 있다는 장점을 가지고 있다. 이러한 data augmentation을 적용할 때에는 이미지에 가하는 augmentation은 이미지가 갖고있는 고유의 class label을 보존해야 한다는 점을 반드시 고려해야 한다. 이 점을 유의하면서 더 강력한 augmentation 기법을 찾는 것이 중요한데, 실제 Computer Vision 분야에서 사용되는 data augmentation 기법으로는 이미지에서 임의의 사각형 부분을 떼어내고 random한 noise로 대체하는 방법인 Cutout, 두 이미지간 convex combination으로 새로운 이미지를 만들어내며 input 이미지와 함께 class label 또한 augmentation하여 학습 데이터로 활용하는 방법인 Mixup, 앞의 두 기법을 결합한 CutMix, 이 외에도 AugMix, PuzzleMix 등이 있음을 소개해주었다. 이와 함께 강화학습을 통해 최적의 augmentation 기법을 찾아내는 Auto Augmentation 연구 분야에서 적용할 수 있는 주요 알고리즘에 대해서도 소개해주었다. 반면 자연어 처리 분야에서 사용되는 data augmentation 기법으로는 유사한 의미를 가지는 단어로 대체하는 Thesaurus-based Substitution, 사전적 유사성이 아닌 단어 벡터도간 유사성을 사용하여 대체하는 Word Embedding-based Substitution, 이 외에도 Masked Language Model, TF-IDF-based Replacement, Back Translation, Word/Sent Mixup 등이 있음을 소개해주었다. Data Augmentation의 필요성부터 여러 적용기법, 더 나아가 강화학습까지 광범위하지만 찬찬히 내용을 짚어볼 수 있어 매우 의미있는 시간이었다. 과거부터 최신 연구동향까지 여러 논문을 알기 쉽게 정리해서 깔끔히, 또 유쾌하게 전달해준 강현구 연구원께 감사의 말씀을 전하고 싶다.
이번 세미나는 “The Whys and Hows of Data Augmentation”에 대한 주제로 현구가 발표했다. Data augmentation (DA)은 데이터의 형태에 따라 기법이 다양하고 많은 분야에서 적용되고 있다. 특히, 최근 Self-supervised learning에서는 많은 DA 기법을 활용하면서 데이터의 특징을 잘 학습하기 위한 연구가 진행되고 있다. 하지만, DA의 기법에 따라 성능 차이가 존재하여 이를 해결하기 위한 다양한 DA 기법들이 연구되고 적용하고 있는 추세이다. 이번 시간에는 computer vision, natural language processing 분야에 적용할 수 있는 다양한 DA 기법 동향을 소개해주었다. 나의 메인 연구 분야인 강화학습에서도 DA 기법을 적용하는 연구가 이루어지고 있지만 수많은 DA 기법 중 일부만 적용되고 있다. 강화학습은 강아지, 고양이 등의 이미지가 아닌 실시간 게임 영상을 사용하기에 맞지 않은 DA 기법을 적용할 경우 잘못된 방향으로 학습이 이루어지게 된다. 이번 세미나에서 소개해준 DA 기법 뿐만 아니라 강화학습에서 사용하는 게임 도메인에 알맞은 DA 기법의 연구 및 적용도 흥미로운 주제가 될 것 같다.
이번 세미나는 data augmentation이 필요한 이유와 다양한 augmentation 기법에 대하여 진행되었다. Augmentation은 overfitting 문제를 해결하기 위해 사용된다. Overfitting을 해결하기 위해 학습 데이터의 절대적인 양을 늘리고자 하면, 대표적으로 3가지 방식을 사용할 수 있다. 첫번째는 필요한 데이터를 직접 더 많이 모으는 것이고, 두번째는 생성모델을 사용하여 현재의 data와 유사한 sample을 추가적으로 더 생성하는 것이다. 마지막은 augmentation을 활용하는 것이다. 이미지의 색상 변화, 형태 왜곡 등의 방식으로 여러 장의 이미지를 생성하게 되는데 이때 본래의 이미지가 가진 고유의 class label을 유지해야한다는 유의점이 있다.
Computer vision 분야의 Augmentation 기법은 다음과 같다. Cutout은 이미지에서 임의의 사각형 부분을 떼어내고 빈자리에 random한 noise나 평균값, 0 등으로 대체하는 것이다. Mixup은 두 이미지 간의 convex combination으로 새로운 이미지를 생성하는 것이다. 이미지만을 섞는 것이 아니라 같은 convex combination 비율로 label 또한 augmentation하여 사용하는 방식이다. CutMix는 Cutout과 Mixup을 결합한 기법이다. Mixup의 결과물은 비현실적이라는 단점이 있는데 이를 해결하고자 제안되었다. AugMix는 하나의 이미지에서 여러 augmentation 이미지를 얻고 다시 원본 이미지와 섞는 방식이다. Puzzle Mix는 CutMix를 개선한 방법으로 원본의 중요한 부분을 최대한 보전하면서 이미지를 섞는 방식이다. 더 나아가 데이터에 적합한 augmentation을 하는 과정 자체를 자동화하고자 하는 아이디어에서 시작한 AutoAugment, Population-Based Augmentation, Fast AutoAugment, RandAugment가 있다.
자연어 처리 분야에서 활용하는 augmentation 기법에는 Thesaurus-based substitution, Word embedding-based substitution, Masked language model, TF-IDF-based replacement, Back translation, Work/Sent mixup이 있다. 다양한 아이디어로 augmentation을 text에도 적용할 수 있다는 점이 인상적이었다. 이전에 참여했던 연구에서 augmentation를 활용하지 못해 아쉬움이 남았던 적이 있었다. 이번 세미나를 통해 다양한 augmentation 기법과 각각이 어떻게 연구되었는지 알 수 있었다. 유익한 세미나를 진행해 주셔서 감사하다는 말을 전하고 싶다.
이번 세미나는 Data augmentation를 주제로 진행되었다. Overfitting 문제를 해결하기 위한 방법으로, 정규화를 하거나 모수 자체를 늘리는 방법중에서, Augmentation같은 경우는 모수를 모으는 시간과 비용을 절약하면서, 동시에 학습로직의 정합성을 더 정교하게 올릴 수 있다는 측면으로도 장점이 있었다.
컴퓨터 비전에서의 Augmentation 방법들과, 자연어 처리에서의 방법이 서로 달랐는데, 비전의 경우는 이미지의 색깔,명도,채도등을 바꾸거나 이미지끼리 섞어서 만들거나, 또는 둘다 하는 경우도 있었다. 인상깊은것은 Augmix였는데, 여러가지 변형을 가한다음 다시 원본과 Mix를 섞어주는 것이 간단한 아이디어 같으면서도, 꽤 절묘하게 잘맞다는 점이 재밌었다.
자연어 처리 방식은 이미지와는 달리 의미 위주로 바꿔주는 작업이 많았는데, 설명을 쉽게 해주셔서 이해하고 받아들이기에 좋았지만, 각각의 모델들이 비슷한 뜻을 가진 단어들의 vector공간이라던가, 단어를 대체해주는 기준이라던가의 모델 자체의 세부적인 바탕이 어떻게 수행되는지에 대해서는 좀 더 궁금해졌다.
세미나를 보면서 반도체 제조에서 발생하는 불량 image가 연상되었다. 어떤 불량이 반도체 wafer 위에 발생했을 때, 100개의 particle이 떨어졌다고 하면 그 100개는 다 똑같은 원인으로 발생한 불량이므로 전부 일관된 특징을 지녔지만, 각각은 떨어진 위치도 생긴 모양도 조금씩 다르게 생겼기 때문에, 이런 image들을 분류하는 로직은 사용해보면 사람이 직접 보는것에 비해 굉장히 정합성이 떨어진 상태로 사용한 경험이 있다. 이런 상황에서 Data augmentation을 통해 정합성을 높여가는 학습로직이 있다면 매우 효과적일 것일 거란 생각이 든다.
굉장히 흥미롭게 들었고, 개념을 쉽고 편하게 설명해주셔서 감사하다는 말씀을 전달하고 싶다. 귀여운 햄스터사진이나...켈리클락슨 같은 디테일이 더 유쾌하게 집중시켜줬던거 같습니다..감사합니다.
금일은 The Whys and Hows of Data Augmentation를 주제로 세미나가 진행되었다. 세미나 제목처럼 Data Augmentation (데이터 증강기법)이 왜 필요하고 어떻게 사용하는지에 대한 내용을 중심으로 세미나는 진행되었다. Data Augmentation이 필요한 이유는 Overfitting을 방지하기 위해서이다. Overfitting을 방지하기 위해서는 데이터 수를 늘려서 모델을 학습해야 한다. 데이터 수를 늘리기 위해서는 단순히 데이터를 더 모으는 방법이 있지만 이는 시간, 비용이 너무 많이 들게 된다. 두번째로는 GAN 모델 등을 통해 유사한 데이터를 더 생성해 낼 수 있지만 이는 복잡하고 생성되는 데이터가 다양하지 못하다는 단점이 있다. 위에 언급된 두가지 방법에 대한 단점을 해결할 수 있는 방안이 Data Augmentation이다. 본 세미나에서는 다양한 Augmentation 기법에 대한 설명이 진행되었다. Computer Vision 영역에서 사용하는 Cutout, Mixup, CutMix, AugMix, Puzzle Mix와 같은 기법들의 핵심 개념이 소개되었고, 이러한 다양한 기법들을 기반으로 최적의 Augmentation 조합을 찾을 수 있는 AutoAugmnet, Population-Based Augmentation, Fast AutoAugment, RandAugment 등이 소개되었다. 마지막으로 NLP 영역에서 사용되는 Data Augmentation에 대한 설명이 이어졌다. 이번 세미나를 통해 Data Augmentation에 대한 연구들의 큰 줄기를 알 수 있었다는 점이 좋았다. 그리고 직관적으로 생각해볼 수 있는 Computer Vision 영역에서 Data Augmentation 기법들이 하나, 하나 연구되어 왔고 그 내용을 기반으로 강화학습, Papulation-based, Bayesian optimization을 활용한 연구들이 추가로 더 진행되어 왔다는 사실을 알 수 있었다. 이러한 연구들의 큰 줄기를 보면서 기본 개념에 대한 공부 그리고 다양한 연구들의 개념 및 알고리즘에 대해서 전반적으로 잘 공부해 지식 수준을 늘려야 한다는 생각이 들었다. 각 연구들 하나, 하나 개념에서 끝나는 것이 아니라 그 연구들이 기존에 있던 다른 개념 및 연구들과 콜라보레이션을 이루며 또 다른 좋은 연구들이 등장한다는 것을 다시 한번 알게 되었다. 졸업 전 좋은 세미나를 준비해준 현구에게 고맙다고 수고했다고 말해주고 싶다.
데이터 레벨에서 모델 과적합하는 해결책으로는 학습데이터를 더 모으는 방법, 생성하는 방법 그리고 증강(augment)하는 방법이 있는데 금일은 최근 그 효과와 역할이 재조명되는 CV/NLP에서의 Data Augmentation 방법론들을 알아보았다. 소개된 모든 Data Augmentation 방법론들은 클래스 레이블이 변경되지 않는 한 최대한 다.양.한 mapping(augmentation)을 만들어 내는 것을 목표로 한다. 최근의 트렌드를 특유의 귀에 쏙쏙 박히는 쉬운 설명으로 소개해준 현구형에게 감사의 말을 전한다.
[Computer Vision]
MixUp(2018) : 이미지와 그 이미지 클래스 레이블의 Convex combination을 (X,y) 로 사용
CutMix(2019) : 패치 level의 Mix로 (X,y) 사용 -
AugMix(2019) : 한 이미지(y)에 대한 Augmentation 여러개를 섞은 y_augment을 최종 y로 사용
PuzzleMix(2020) : Optimal Transport + CutMix -> 보다 더 자연스럽게 섞은 y 생성
[Reinforcement Learning Boosted Augmentation]
최적의 Augmentation transformation 조합을 강화학습을 통해서 자동으로 탐색
[Natural Language Processing]
Thesaurus-based Substitution(2015) : 사전 기반 유사 단어 교체
Word Embedding-based Substitution(2019) : 워드 임베딩 벡터 기반 유사 단어 교체
Masked Language Model(2020) : 사전 학습된 언어 모델(e.g BERT) 출력 사용
TF-IDF-based Replacement(2019) : TF-IDF 가 낮은 단어(e.g 대명사) 교체
Back Translation(2019) : e.g) 한국어->영어->한국어
Word/Sent Mixup(2019) : 단어/문장 level의 MixUp
이번 세미나는 현구가 'The Whys and Hows of Data Augmentation’라는 주제로 진행해주었다. 보통 머신러닝 및 딥러닝 연구에서는 모델이 학습 데이터에 대해서만 잘 작동하는 오버피팅 문제가 발생할 수 있다. 이 때 해결책으로 가장 쉽게 생각할 수 있는 방법은 학습 데이터의 수를 늘리는 방법이다. 학습 데이터의 수가 늘어나면 모델이 다양한 데이터를 커버할 수 있게 된다. 하지만 일반적으로 데이터를 많이 확보하는 것은 비용이 많이 드는 일이기 때문에 존재하는 데이터를 특정 방식으로 변형하여 비슷한 가상의 데이터를 만들어내는 Data Augmentation 기법을 많이 활용하게 된다. 이번 세미나에서 현구는 컴퓨터 비젼과 자연어 처리 분야에서 적용되는 최신 흐름의 Data Augmentation 기법을 여러가지 소개해줬다. Data Augmentation 기법은 데이터의 도메인에 따라서 다른 방법이 적용된다 . 컴퓨터 비젼의 경우 이미지를 자르거나 회전하는 등의 변형을 거쳐도 매칭되는 label이 쉽게 변하지 않는다는 점을 이용하여 다양한 Augmentation 기법이 적용될 수 있다. 이 중 이번 세미나에서 집중적으로 소개한 방법론은 두 이미지를 섞는 방식인 mixup 계열의 방법론과 주어진 데이터에 최적의 Augmentation을 찾는AutoAugment, RandAugment 계열의 방법론을 주로 다루어 주었다. 각 파트별로 발전과정 순으로 발표를 해주었기에 전체적인 연구의 흐름을 이해하기 용이했다. 다음으로 자연어 처리에서의 Augmentation 기법을 다루어주었는데 자연어 처리의 경우에는 컴퓨터 비젼과 달리 단어 하나만 바꿔도 그 문장의 의미가 완전히 달라질 수 있기 때문에 데이터의 일부를 자르거나 바꾸는 방식의 방법론을 적용할 수 없다. 따라서 단어를 바꾸는 Data Augmentation 기법은 Word Embedding 모델을 기반으로 embedding된 공간에서 유사한 단어들로 대체하는 방식을 사용하기도 하고 또는 BERT 계열의 모델을 활용하여 바꾸고자 하는 단어의 마스크에 대한 확률값이 높은 단어들로 바꿔주는 방식을 사용하기도 한다.
연구실에서 프로젝트나 연구를 진행하다 보면 데이터가 부족하여 Augmentation 기법을 활용해야 할 때가 많은데, 정말 많은 방법론을 한 곳에 모아 발표를 해주어 한 눈에 Data Augmentation 기법의 흐름을 이해할 수 있었다. 다시 한 번 좋은 발표를 해 준 현구에게 감사를 표한다.
Data augmentation에 대한 주제로 세미나를 청취했다. 최근 이미지 분야를 필두로 데이터 증강 기법을 통해서 성능 향상을 이루는 연구가 많이 발표되고 있다. 비단 데이터의 수를 증가시키는 것 뿐만 아니라, 데이터의 분포를 좀더 robust하게 학습하기 위한 접근 방법이다. 심지어 데이터의 수가 매우 많은 ImageNet에서도 많이 사용되고는 한다. 이에 따라 이미지 분야에서는 데이터 증강 기법 자체에 대한 연구도 많이 이루어졌는데 가장 대표적인 것이 cutout, mixup, cutmix, puzzle mix 등이다. 이러한 기법을 만들기 위해서 가장 중요한 점은 semantically invariant transformation 이어야 한다는 것이다. 즉, 이미지에 변화를 가해도 본래 이미지가 갖고 있는 의미는 해치지 않아야 한다는 것이다. Semantic representation을 해치지 않는 한도내에서 얼만큼 강한 transformation을 가하는 것이 핵심이며 이러한 최적값을 찾는 연구가 AutoAugment, Fast AutoAugment, RandAugment 등이다. 이미지 분야를 넘어서 자연어처리, 오디오, 그래프 데이터 등에 알맞는 데이터 증강 기법들이 연구되고 있으며 연구실에서도 관심있는 사람들이 많은 것으로 알고 있다. 다들 의미있고 재밌는 연구를 할 수 있으면 한다.
이번 세미나는 현구의 "The Whys and Hows of Data Augmentation"을 주제로 진행되었다. 연구미팅에서 자기지도학습을 통해서 augmentation을 MoCo에서 활용하고 게임AI에서도 적용되는 케이스를 보면서 augmentation의 효과를 몸소 느꼈었다. 많은 연구가 다른 분야의 학습과 도메인을 넘어서 파급이 크게 되고 있는것 같다. 최근에 보고 있는 메타강화학습의 하나의 방법으로 이 테크닉이 활용되고 있다. 최근에는 시계열 데이터에도 augmentation하는것을 생각해보고 있는데 비젼에서 NLP로 왔을때 많은 케이스가 없는것처럼 이쪽은 더 블루오션이라고 생각이 들었다. GAN을 통해 합성하는 데이터를 만드는것은 Augmentation과 다르게 분류한것은 최근에 본 서베이에서는 좀 다르게 분류하는것 같았는데 이리 생각도 할 수 있다 생각 또한 들었다. 내가 좋아하는 켈리 클락슨의 노래의 가사를 그리고 니체의 말을 인용해서 "널 죽이지 못하는 것은 너를 강하게 만들 뿐이다"라는 말을 Augmentation의 설명으로 넣은건 나중에 기억하기 좋은 한마디의 정의가 될 것 같다. CV에서 Cutout, Mixup, CutMix(Cutout +Mixup), Augmix, PuzzleeMix등 다양한 기법들을 소개해주었고 PuzzleMix같은 경우는 참 재미난 발상인 것 같다. 이를 넘어서 이 또한 학습을 하자고 AutoAugment (2019), Population Based Augmentation (PBA), Fast AutoAugment (Fast AA, 베이지안, 카카오), RandAugment (RA)등이 나왔다고 하는데 잘 참고해서 봐야겠다 싶은데 AutoAugment는 CIFAR1000이 구글 컴퓨팅파워 기준인진 모르겠지만 5000시간이라고 하니 참고만 해야겠고 후속논문들을 한번 살펴봐야겠다. 자연어처리분야은 역시나 CV쪽과 다르게 제약사항이 많았지만 접근방법에 대해 새롭게 알게 되었다. 워드벡터 값이 가까운 것들을 대체, BERT같은 모델 여러 예측 결과를 가지고 대체 후보를 삼는다거나, Uninformative한 정관사같은것을 사전정보로 치환하거나, Back Translation과 같이 다른 나라 여러 언어들을 번역하고 다시 영어로 한걸 후보군으로 쓴다거나 문장이나 단어들을 임베딩한 것을 Mixup하는 등 많은 접근 방법을 들었지만 CV만큼은 쉽지 않고 직관적이지 못하다라는 생각이 들었으며 시계열 연구 또한 쉽지 않을 것 같다 생각이 들었다. 마지막으로 Augmentation을 CV, NLP에서 쉽고 깔끔하게 설명해준 현구에게 고맙다는 말을 전하고 싶다.
이번 세미나는 data augmentation을 주제로 진행되었다. Data augmentation 기법을 사용하는 가장 심플한 이유는 오버피팅을 방지하기 위해서이다. 오버피팅을 방지하는 방법은 크게 두 가지가 존재한다. 첫 번째는 모델 자체의 복잡도를 줄이는 방법으로 L2 normalization, dropout, ensembles, label smoothing 등의 방법들이 존재한다. 두 번째는 training data의 사이즈를 늘리는 방법으로 data augmentation은 이 부분에 해당하는 방법이다.
Traning data의 사이즈를 늘리는 방법에는 다시 양질의 데이터를 단순히 더 모으는 방법, 생성 모델을 사용하여 생성하는 방법 그리고 data augementation 방법 등이 존재한다. 앞서 언급한 두 방법은 비용이 많이 필요하고 시간이 많이 소요된다는 단점이 존재한다. 반면 data augmentation 기법은 두 방법 대비 쉽고 빠르다는 장점이 존재한다.
Data augmentation을 한 줄로 정의하면 의미상 변함없는 범위 내에서 데이터를 변형하는 방법이다. 즉, 머신러닝 관점에서는 augmention 방법은 데이터에 변형을 가해도 class의 label를 유지해야 된다. 물론 data augmention의 경우에도 원래 데이터의 class를 정보를 포함하지 못하는 데이터가 생성될 수 있다는 단점이 존재한다.
본 세미나에서는 CV 분야에서 사용되는 Cutout, Mixup, CutMix, Augmix, Puzzle Mix 등의 방법론을 소개시켜 주었다. 또한 augmentation 방법론 자체를 optimal할 수 있는 방법을 연구하는 Auto augment라는 방법을 소개하였다. 마지막으로는 NLP 분야에서 사용되는 data augmentation 방법인 Thesaurus-based Substitution,
Word Embedding-based Substitution, Masked Language Model, Back Translation, Word/Sent Mixup 등 다양한 방법론을 소개하였다.
이번 세미나를 통해 data augmention에 대한 기본적인 이해와 함께 CV, NLP 도메인에서 활용되는 data augmentation 기법을 이해할 수 있었다. 다양한 방법론들을 소개해준 현구 선배님께 감사의 말씀을 전하며 세미나 후기를 마무리한다.
본 세미나는 “The whys and hows of data augmentation”이라는 주제로 진행되었다. data augmentation은 overfiting 방지를 위한 data level solution 중 하나로, 데이터를 생성하여 학습 데이터의 수를 늘리는 방법이다. augmentation은 모델의 성능을 저하시키지 않는 선에서 강력하게 해줘야 하며, 중요한 점은 가령 이미지에 augmentation을 할 경우 그 이미지가 가지고 있는 고유한 class labels을 보존해야 한다.
computer vision에서 사용되는 간단한 data augmentation 방법으로는 cutout이 있다. 원본 이미지에서 임의의 영역을 떼어내고 그 부분을 노이즈로 대체한다. 그리고 대표적인 방법으로 mixup이 있는데, 두 샘플 이미지 간의 convex combination으로 새로운 이미지를 생성해낸다. 이때 인풋 이미지만 augmentation을 하는 게 아니라 같은 covex combination 비율로 클래스 레이블 또한 augmentation을 하여 학습 데이터로 활용한다. 위의 cutout과 mixup을 결합한 방법인 cutmix는 원본 이미지의 임의의 영역을 다른 이미지의 부분으로 대체하여 mixup 기법으로 생성된 이미지가 비현실적이라는 한계점을 극복하였다. 더 나아가 각기 다른 이미지들에 중요한 정보를 최대한 보존하면서 두 이미지를 섞는 puzzle mix 기법과, 하나의 이미지에서 여러 aumentation을 적용한 여러 이미지를 생성하고 이미지들과 원본 이미지를 다시 믹스업하는 augmix 기법도 제안되었다. 이렇게 다양한 기법들을 개별적으로 사용하는 것이 아니라 함께 사용하기 위해 최적의 조합을 찾아내는 방법론들도 존재한다. 강화학습을 이용한 autoaugment을 기반으로 속도가 개선된 population-based augmentation과 fastautoaugment 기법들이 제안되었으며, 특정한 조합을 찾기 보다는 랜덤성에 기반하여 매번 다른 augmentation 조합을 사용하는 것이 낫다는 철학에 기반한 randaugment기법도 제안되었다.
NLP 분야에서도 data augmentaion이 사용되는데, 유사어 사전에 기반한 thesaurus-based substitution 기법과 단어 벡터들 간의 유사도를 활용한 word embedding-based substitution 기법은 문장 내 단어들을 유사한 단어들로 대체하여 새로운 문장을 생성해낸다. 그리고 자연어 처리에도 mixup 기법이 도입되었는데, 개별 단어들끼리 mixup을 한 후 모델에 입력하는 방법과 문장 단위의 mixup을 하는 방법 두 가지가 제안되었다. 그 외에도 masked language model과 TF-IDF based replacedment, back translation 기법들도 있다.
본 세미나를 통해 computer vision과 NLP 분야에서 사용되는 data augmentation 기법들에 대해 알아 볼 수 있어서 좋았고, 자세한 예시와 함께 설명해주셔서 작동 원리를 이해하는데 큰 도움이 되었다.