Loading...
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. 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. 6. 19:58

AlexNet의 핵심 아이디어

1. LeNet 1998년 Yann LeCun이 간단한 CNN구조를 소개했다 convolution layer 2번과 fully connected layer 2번을 반복했다 한글자 단위 특히 우편물 번호 인식에 크게 성공하여 우편 운송의 혁신에 기여했다고 함 2. AlexNet LeNet의 기본 구조에서 아이디어를 가져왔다 그런데 hidden layer를 7층으로 쌓고 6000만 parameter를 사용 학습데이터도 ImageNet에서 어마어마하게 큰 120만 dataset을 사용했다 ReLU와 dropout이라는 지금도 사용하는 강력한 기법을 사용했다 재미있는 점은 첫번째로 두개의 pass로 나눴다는 것인데 당시 GPU가 부족해서 2개의 forward pass로 나눠서 올렸다 중간에 activation이..

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. 3. 21:00

convolution 연산 이해하기 중급편

1. convolution signal processing에서 먼저 나왔다 수학적 정의는 다음과 같다. 변수변환을 이용하면 교환법칙이 성립한다 2. convolution의 실제 계산법 커널을 이미지 상에서 stride만큼 움직여간다 찍은 부분에 대해 element wise product를 수행 이미지에 filter를 찍으면 convolution에 의해 filter의 효과에 따라 픽셀의 조정이 이루어지면서 사진이 흐려지거나 밝아지거나 하게 된다 ' 3. convolution의 기본적인 특징 커널과 input의 channel은 크기가 같아야한다 보통 커널은 5*5같이 크기만 제시되는데 input의 channel에 맞춰서 생각하면 된다. input 하나가 kernel 하나에 맞춰 convolution하면 ou..

2022. 2. 1. 18:56

convolution 연산 이해하기 기본편

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