
📍 강의 자료 출처 : LG Aimers
cf> MLP
: 입력 노드가 출력 노드 모두와 특정한 가중치의 형태로 연결이 된 Fully-connecnted layer로 구성
다양한 변화 요소들이 한 이미지 내에 존재할 수 있는 가운데에 특정한 하나의 물체를 규정 짓는 부분, 부분의 요소 패턴들이 있다는 것을 활용하여 요소 패턴들을 검출하고 인식하는 과정을 통해 CNN이 동작하게 된다.

→ 특정 class에 존재할 수 있는 작은 특정 패턴들을 정의하고 패턴들이 주어진 이미지 상에 있는지를 판단한다.
특정한 패턴의 이미지 패치(= )를 특정 위치에 오버랩 시켰을 때,
해당하는 위치에서 주어진 패턴과의 매칭되는 정도를 정량적으로 정의할 수 있다.



→ 패치와 입력 이미지 상 같은 위치에 있는 숫자를 곱한다.
⇒ 두 값이 일치하다면 / 일치하지 않다면 이 나올 것
(아래 과정은 생략 가능)
위에서 구한 곱을 모두 합하고 패치의 pixel 수(3x3 크기의 패치라면 pixel 수=9)로 나누면 총 매칭된 정도를 구할 수 있다.
+) activation map(활성화 지도)
: 전체 입력 이미지의 모든 위치에 대해 주어진 패턴(= )과의 매칭 정도를 나타낸 이미지
filter
입력 channel 각각에 대응하는 패턴 이미지 패치들이 하나의 convolution filter를 이루게 된다.
⇒ Convolution Layer에서의 depth = filer에서의 depth = output activation map의 channel 수
channel (= depth)
컬러 이미지의 경우 빨강, 초록, 파랑 3개의 channel로 이루어져 있고
흑백 이미지의 경우 하나의 channel로 이루어져 있다.
→ 하나의 입력 이미지를 3개의 channel로 분리시켜 convolution을 진행한다.
번째 conv layer는 번째 conv layer에서 추출된 특정한 패턴(activation map)을 입력 이미지로 보고 조금 더 복잡한 패턴을 정의할 수 있게 된다.
예) 1번째 층 : edge 추출 → 2번째 층 : 눈/코/입 등 특정 부위 추출 → 3번째 층 : 표정 등 전반적인 패턴 추출
+) Convolution laye에서 filter의 coefficient 혹은 filter 패치 자체는 convolution filter의 가중치 값으로, trainable한 parameter이고 경사하강법을 통해 최적 값을 도출한다.
Convolution Layer도 마찬가지로 선형연산의 형태를 나타내기 때문에 이러한 선형연산 이후에 활성화 함수를 통과시켜줌으로써 함수를 보다 유연하게 다양한 패턴을 표현하게끔 만들어준다.
convolution layer의 output인 activation map을 ReLU layer에서는 입력으로 받아 각각의 값에 ReLU 함수를 적용한다.
→ 양수인 값 = 그대로 / 음수인 값 = 0 으로 변환
+) ReLU layer에는 Trainable한 parameter가 없다.
Convolution layer와 ReLU layer를 여러 번 거친 후 해당 정보를 축약하기 위해 Pooling layer를 거친다.
Convolution Layer에서 구한 output인 activation map에서 pooling window를 옮겨가며 (max pooling 등의 방식으로) 값을 추출하여 새로운 activation map이 생성된다.
→ 대략적으로 해당 위치에 패턴이 나타난다고 정보를 축약하는 과정을 통해 정보를 변환해준다. (학습 X)
pooling은 주어진 입력에 대해 channel별로 각각 진행하여 가로x세로 크기가 줄어든 새로운 ouput을 만든다. 이때 새로운 activation map은 만큼 줄어든다.
+) Pooling layer에는 Trainable한 parameter가 없다.
여러 번의 conv layer - ReLU layer - pooling layer를 거쳐 작아진 activation map(채널 수는 변함X)을 모두 한 줄의 vector로 펴서 연결한다.
⇒ 만큼의 dimension을 가지는 vector 생성
이 vector로 구성된 FC Layer를 통해 결과 Label (O/X 또는 고양이/강아지)에 대한 score를 계산한다.
+) FC Layer의 가중치는 학습 과정에서 최적값을 구한다.
여러 층으로 이루어진 FC layer 혹은 MLP를 vector 뒤쪽에 배치시킬 수 있다.


핵심 : 각각의 convolution layer에서 사용하는 filter의 가로, 세로 크기를 무조건 3x3으로 지정하자
filter의 크기가 작아 추출할 수 있는 정보가 제한적일 수 있는 단점을 layer를 깊게 쌓음으로써 단점을 극복하였다.

핵심 : skip connection
전체 Layer 중 일부 layer는 학습을 진행하지 않고 건너뜀으로써
layer를 여러 개 쌓아도 학습이 잘 안된다거나 결과적으로 parameter 수가 너무 많아 오히려 성능이 안좋아지게 되는 단점을 극복할 수 있다.