Loading...
2022. 5. 2. 21:15

fully convolutional network와 비슷했던 hypercolumn

FCN은 end-to-end구조로 학습이 가능하며 GPU 병렬처리도 가능하여 빠른 학습이 가능 end-to-end로 학습한다는 것은 model이 해당 task에 대해 분할하는 것이 아니라 한번에 학습한다는 것으로 성능도 보통 올라감 심지어 fully convolutional network는 low level, high level을 모두 고려하여 더욱 정교하게 (경계선도 잘 구별할정도로) semantic segmentation을 수행함 비슷한 시기에 semantic segmentation용으로 hypercolumn이라는 구조가 등장했다 저자가 같은 학교 다니면서 1*1 fully convolutional layer도 설명했고 layer를 융합하는 것도 설명했고 아무튼 비슷하다는 점에서 약간 뭐 그런게 있는..

2022. 4. 26. 02:21

fully convolutional network에서 Upsampling이란 무엇인가 + interpolation 기본

1. motivation fully connected layer를 1*1 convolution layer로 대체하여 여러번 쌓으면 필연적으로 input size가 줄어들면서 정보들이 압축된다 단 1pixel의 classification의 결론을 내리기 위해 더욱 넓은 영역을 참조할 수 있다(receptive field가 크다)는 좋은 점은 있다. receptive field는 커지지만 output이 너무 작아진다 그래서 이 너무 작아진 output을 크게 만들기 위해 upsampling 기법을 사용한다 그런데 여기서 의문을 가질 수 있는 것은 그러면 중간에 stride나 pooling등을 제거하거나 convolutional layer 등을 일부 제거하면 조금 더 고해상도 output을 얻겠지만 recep..

2022. 4. 19. 17:37

semantic segmentation을 할 수 있는 fully convolutional network의 특징

1. semantic segmentation의 기본 image classification은 이미지 단위로 category를 분류했다면 이번에는 이미지 내 존재하는 pixel단위로 classification을 한다 구체적으로 이미지 내 pixel이 사람에 속하는지 자동차에 속하는지 오토바이에 속하는지 구분한다 이미지 속에서 물체의 마스크를 만들어 색으로 구분함 A라는 pixel은 사람에 속하고 B라는 pixel은 자동차에 속하고 C라는 pixel은 오토바이에 속하고 의문이 생기는 점은 서로 다른 사람들이나 서로 다른 물체도 구분해주느냐인데 semantic segmentation은 서로 다른 물체인 instance는 구분하지 않고 물체의 본질인 class만 구분한다(파이썬 class, instance 개념이..

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. 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. 1. 31. 20:37

CNN(Convolutional Neural Network)은 왜 등장했을까?

1. Fully connected layer Neural network는 방대한 데이터를 모두 활용할 수 있도록 제한된 복잡도의 system에 압축하여 넣는 것 가장 간단한 single layer로 Perceptron이라고 부르는 Fully connected layer를 생각했다. input image에 대해 하나의 feature를 뽑기 위해 모든 pixel을 각각 서로 다른 가중치로 연결한 것이다 모든 pixel을 서로 다른 가중치의 sum을 하여 nonlinear activation function을 넣어 하나의 classification score를 뽑아낸다 2. Perceptron의 첫번째 문제점 이 간단한 모델을 먼저 matrix 형태로 바라본다면? 각 이미지 pixel 구조에 weight를 그..