Loading...
2022. 2. 20. 19:34

semantic segmentation task와 Fully convolutional network, deconvolution 간단하게 알아보기

1. semantic segmentation 이미지의 각 pixel이 어떤 class에 속할지 분류하는 문제 예를 들어 자율주행자동차의 경우 위 그림과 같이 자동차가 보는 이미지에서 어떤 부분이 자동차인지 차도인지 신호등인지 사람인지 인도인지 구별해야 운행이 가능할거다 2. Fully convolutional network 일반적인 CNN 구조는 convolution layer를 여러 층 쌓고 마지막에 flat 시킨 뒤에 fully connected layer를 구성한다 fully convolutional network는 마지막 dense layer를 없애고자 하는 모형이다 이것을 convolutionalization이라고 한다 flat은 reshape 과정이므로 Parameter 수는 변하지 않는다 3..

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. 9. 19:14

transfer learning이란 무엇일까?

1. motivation 지금까지 보지 못한 새로운 인공지능을 만들어야한다고 할 때 데이터부터 준비해야할 것이다. 기본적으로 인공지능은 어마어마한 데이터가 필요한데 입력데이터만 단순히 모으는 것이 아니라 데이터의 label도 필요함 이런 것은 단기간에 모으기 쉽지 않고 비용도 많이 나오고 외주업체에 맡겨도 사람이 하는 일이라 원하는 형태의 데이터보다는 질이 낮은 데이터가 얻어짐 만약 원하는 task와 연관된 어떤 task에 대해 미리 학습한 모델을 이용할 수 있다면? 적은 데이터로도 좋은 성능을 낼 수 있지 않을까? 2. definition 기존에 미리 학습시켜놓은 사전 지식으로 연관된 새로운 task에 적은 노력으로 높은 성능에 도달하겠다는 것이 목적 쉽고 경제적이며 어느 정도의 성능도 보장한다 직관적..

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을 출력한다는 것 더..

2022. 2. 4. 22:15

convolution 연산의 stride와 padding

1. stride filter가 매 스텝 convolution할 때마다 다음회에 얼마나 이동할지 2차원의 경우 stride는 2차원이다, (옆으로 얼마나 이동할지 * 아래로 얼마나 이동할지) 2. padding 일반적으로 input, output은 convolution 연산으로 크기가 서로 달라짐 보통은 output이 input보다 차원이 줄어든다 보통 convolution을 하면 input의 가장자리 빨간색 부분의 정보가 짤린다 그렇지만 input의 모든 정보를 가져오는게 좋지 않겠는가 그래서 input과 output의 크기가 동일했으면 하는 마음이 있다 가장자리 주변에 padding을 하여 모든 정보를 가져오도록 만든다 stride=1인 경우 적절한 크기의 패딩을 사용하면 반드시 input과 outp..

2022. 2. 1. 18:56

convolution 연산 이해하기 기본편

1. Fully connected 연산 기존의 MLP는 가중치 행렬에서 각 행마다 다른 가중치 행들이 각각 Hidden vector에 연결되는 구조다. 이게 단점은 parameter가 많아서 계산량이 많아진다. 2. Convolution 연산 고정된 가중치 행렬 kernel을 입력벡터상에 움직여가면서 모든 hidden vector에 연결시키는 전략은 어떨까? parameter 수가 엄청나게 줄어들어 계산이 쉬워진다. 심지어 행렬곱이니까 여전히 선형변환이다. 3. Convolution 함수 공식은 다음과 같다. 참고로 convolution은 변수변환을 시켜서 교환법칙이 성립한다는 것을 보일 수 있다. 커널을 이용해 신호를 국소적으로 증폭 또는 감소시켜 정보를 변환하거나 추출하는 방식으로 signal pro..