Loading...
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. 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를 그..

2022. 1. 23. 18:44

Computer Vision을 어떻게 구현할까?

1. computer vision을 어떻게 구현할까 앞에서 설명한 아이디어를 바탕으로 computer vision을 구현하는 것은 machine visual perception을 구현하는 것 그 입력으로 실제 세상의 한 모습인 이미지나 비디오같은 visual data를 주는 것이다. visual perception의 종류는? 색깔 인지, 움직임 인지, 사회적 감각 인지 등등 많다 사람의 시각능력을 biological하게 이해하고 이것을 어떤 식으로 구현할지 알고리즘을 연구하는 것도 포함한다 2. 우리의 시각능력은 사실 불완전하다 우리 시각은 단순히 시력이 나쁜 것 말고도 평소에 느끼기 어려운 치명적인 불완전성이 있을 수 있다 이렇게 거꾸로 선 사람을 보면 못생겨보여도 큰 위화감이 안든다 근데 똑바로 세우..