Loading...
2022. 2. 13. 21:15

가장 좋은 data augmentation이 있을까?

1. random augmentation 하나의 train dataset에서도 여러가지 수많은 augmentation 방법을 사용할 수 있는데 사람의 욕심은 어떠한 augmentation 방법을 써야 가장 좋은 성능을 낼 수 있을지 찾고 싶음 그래서 가능한 후보 augmentation 기법 K개를 선정함 예를 들어 위와 같은 augmentation 기법만 사용하겠다고 후보군을 만들었고 그런데 여기서 연산량을 더욱 줄이고 싶어서 이 후보들 중 random하게 augmentation의 기법 N개를 선정하고 선정한 N개의 모든 augmentation 기법의 강도를 M이라고 하자. 이 때 개별 augmentation 기법 별로 서로 다른 강도를 적용하는 것이 아니고 모든 augmentation 기법 강도를 동일..

2022. 2. 12. 19:50

컴퓨터비전에서 사용하는 기본적인 data augmentation

1. motivation train data와 real data사이에는 분명한 gap이 있다 이 gap을 채우기 위해 더 많은 데이터를 획득하거나 bias가 안된 데이터를 획득하거나 그런데 이제 데이터 획득 비용에는 한계가 있다 그래서 손쉽게 학습데이터의 데이터들에 기본적인 operation으로 데이터를 여러장 늘리자는 것이 data augmentation이다. 기본적인 방법은 이미지의 기하학 변환이나 색깔 변환 등으로 real을 반영하지 못한 부분을 조금이라도 채워나가는것 2. brightness data들의 밝기를 조절하여 여러장 만들어내는 방법 호랑이 이미지는 어두워졌고 개 이미지는 밝아진게 느껴지나 image의 R,G,B 채널 pixel에 일정 숫자 pixel을 더하거나 random samplin..

2022. 2. 10. 18:59

ResNet의 핵심 아이디어인 skip connection과 Residual learning

1. deep neural network는 학습하기가 어렵다 overfitting이란 train error가 줄어드는데도 test error는 증가하는, 방향이 반대되는 현상으로 parameter 수가 늘어나면 일반적으로 발생한다. 일반적으로 deep한 neural network는 shallow한 network에 비해 학습하기가 어렵다. train error가 줄어들면서 test error도 어느정도 줄어드니까 위와 같은 경우는 overfitting은 아니다. 물론 test error가 너무 커지는게 문제다. 아무리 학습을 잘 시킨다고해도 결국엔 20-layer가 56-layer보다 나았음 왜 학습하기가 어려웠나? 깊을수록 gradient vanishing 문제가 발생했기 때문이다 ResNet은 skip..

2022. 2. 8. 18:49

1*1 convolution은 왜 중요한가?

1*1 크기의 kernel을 input에 적용시키면 input의 모든 pixel을 그대로 가져온다 1번 적용하면 output channel은 1이되므로 kernel 수를 적절하게 조절하면 spatial dimension은 그대로 가져오면서 channel만 줄이는 효과가 있다 왜 사용하는가? 그림에서 보이지만 spatial dimension인 256*256을 input에서 output 그대로 가져오면서 channel수를 줄이는 효과를 가진다 convolution을 깊게 만들면서 parameter 수를 줄이는 획기적인 아이디어

2022. 2. 8. 18:23

GoogleNet의 핵심 아이디어 inception module, auxiliary classifier, 1*1 convolution 알아보기

0. 개요 22층으로 구성됨 네트워크 안에 네트워크가 있는 구조인 Network In Network 구조 Inception block이라는 아이디어를 사용함 그림을 보면 값을 여러개로 분산시킨 것이 눈에 먼저 보이는 특징인데 물론 그러면서 얻는 효과도 있다. 5*5 CONV나 3*3 CONV에 들어가기 전에 1*1 CONV를 넣으면서 parameter 수를 감소시킨 것이 중요한 아이디어다. 1*1 conv는 spatial dimension을 그대로 가져오면서 channel수를 줄여 적절하게 사용하면 네트워크는 깊게 구축하면서 parameter 수를 줄일 수 있다 https://deepdata.tistory.com/202 1*1 convolution은 왜 중요한가? 1*1 크기의 kernel을 input에..

2022. 2. 7. 17:06

VGGNet는 왜 3*3 convolution을 사용했을까?

1. VGGNet 요즘도 많이 쓰인다 AlexNet보다 더 깊은 16층 19층 (11층도 있는듯?) 그런데 AlexNet보다 더 간단한 구조를 사용했다. 구체적으로 Local Response normalization을 사용하지 않았고 비교적 작은 3*3 convolution layer와 2*2 max pooling layer만 사용했다 작은 size의 filter를 더 깊게 쌓으면서 input image의 receptive field를 더욱 크게 가져갔다. 심지어 filter size가 작아지면서 AlexNet보다 parameter가 작아졌다 그런데 더 깊게 쌓으면서 더 복잡한 non linear 함수관계를 학습할 수 있게 되었다 이 말은 image의 많은 영역을 고려하여 output을 출력한다는 것 더..