티스토리 뷰
1. What is Data Augmentation?
Image Augmentation 이란 무엇인가? 이것은 원본 이미지에 인위적인 변화를 주는 것이다. 그리고 인위적으로 변화를 준 이미지는 충분히 학습에 활용될 수 있는 데이터가 된다.
일단 Augmenation이라는 기술이 무엇을 위해 존재하는지, 그 이유부터 알아야만 한다.
Augmenation 기술은 사실 많이 활용되던 기술이 아니다. 이는 알고리즘적인 해결방법이 아니라, 순수한 공학적 접근을 통한 추론을 위한 전처리 기술 중 하나다.
이와 같은 내용으로 우리는 항상 Overfitting을 생각해야만 한다. 딥러닝의 고질적인 문제는 여러가지 있는데, 그 중 대표적인 문제가 Overfitting이다. 과거 Overfitting을 해결하기 위해 우리가 활용할 수 있던 방법으로는 익히 알고있는 모델링 수정이 있다. 우리는 이를 Regularization, Normalization이라고 이야기한다. 하지만, 이와 같은 Overfitting을 해결하기 위한 방법은 편향 학습 방향을 조금 죽이는 정도다. 따라서 결과적으로 우리가 원하는 Overfitting을 해결하는 기술이 되진 않았다.
이를 해결하기 위해 공학적 방법으로 학습의 방향성을 상하좌우 더 넓힐 수 있는 방법이 없을지 고민하게 된다. 단순히 편향된 학습은 오류를 발생시키지만, 여기서의 목적은 적당한 힘으로 학습 면적을 아주 조금 골고루 넓히자는 의미이다. 따라서 고유 정보가 학습될 때, 해당 정보가 맵핑된 공간의 영역이 조금 넓히면서 동시에 크게 벗어나지 않도록 학습하게 된다.
2. 그렇다면 Augmenation이 항상 좋은 결과만 제공할까?
딥러닝의 한계점을 명확하게 이해한다면 꼭 그렇지 않다라는 것은 상식적으로 이해할 수 있다.
그렇지 않더라도, 실제 딥러닝을 작업하면서 좀 더 상세하게 분석하다보면 생각보다 Augmentation의 결과가 매우 큰 효과를 가지고 오지 못하는 것을 알 수 있다.
어그먼테이션이라는 것은, 기존의 데이터의 정보량을 보존한 상태로 노이즈를 주는 방식이다. 이는 다시 말하면, 내가 가지고 있는 정보량은 변하지 않는다는 것이다. 단지 정보량에 약간의 변화를 주는 것으로, 딥러닝으로 분석된 데이터의 강력하게 표현되는 고유의 특징을 느슨하게 만들어는 것이다. 이는 결과적으로 오버피팅을 막아줄 수 있고, 예측 범위를 약간 넓혀줄 수 있다.
딥러닝은 가상의 특징 공간을 가진다. 그리고 해당 공간에 학습된 데이터가 하나씩 배치가 된다. 문제는 이러한 가상의 특징은 굉장히 넓다는 것이다. 우리 사람들 또한 현재 사는 세계의 모든 것을 알지 못 하고, 알 수 없다. 하지만, 우리는 뇌 속에 학습한 내용을 참고삼아 추측과 추론을 수행한다.
Augmenation의 역할은 학습될 수 있는 특징 공간을 조금이나마 더 넓혀 줄 수 있다는 점에 있다.
3. 왜 Augmenation을 정확하게 이해해야만 할까?
왜 Augmenation을 정확하게 이해해야만 할까? 단순한 이유로 데이터가 그 만큼 증가할 수 있는 방법이기 때문이다. 하지만 이건 다시 바꿔 말하면 학습의 필요한 시간이 길어지고, 자원의 소모가 더 커질 수 있다는 것을 알 수 있다. 하물며 위에서 언급했던 것 처럼 깨끗하지 못한 데이터가 있을 수도 있다.
이 기술의 가장 큰 핵심은 다름이 아닌 Scaling과 Rotation에 있다. 이 두 Method는 솔직히 말하면 극단적으로 변형을 진행하면 위험하기 때문에 적절하고 적게 조정해야만 한다.
예를들어 Rotation을 90도로 하면 이건 단순히 Flip에 지나지 않는다. 이미 Augmentation은 Flip도 추가로 진행한다고 가정하기 때문에 이를 제외한 새로운 데이터를 얻어야만 한다. 추가적으로 각도를 크게 설정할 경우 생각보다 좋지는 않다. 일반적으로 20도나 30도를 사용한다.
Scaling은 더욱 그렇다. 만약 비율을 50%로 진행해버리면 특수한 케이스가 아니라면 이건 이미 특정 개체로 분류할 수 있는 특징이 담겨진 영역을 한참 초과해버린다. 따라서 역효과가 날 수도 있다. 일반적으로 10, 20, 30의 비율 내에서 사용한다.
단순히 이런 과정만 거치는 경우 뿐만 아니라 Augmenation은 더 다양하게 사용될 수도 있다. 우리가 생각해야 할 부분은 다양한 Augmenation 데이터를 만들어두고, 어떤 것이 더 신속하고 좋은 결과를 가져오는 지 평가해야만 한다.
'Artificial Intelligence > Deep Learning' 카테고리의 다른 글
[DL] Regularization (L1, L2) (0) | 2022.08.02 |
---|---|
[DL] Word Embedding (0) | 2022.07.22 |
[DL] Data Augmentation(1) (0) | 2022.07.20 |
[DL] 모델 혼합 사용 by reshape (0) | 2022.07.15 |
[DL] bidirectional RNN 등장배경과 파라미터 카운팅 (0) | 2022.07.14 |