📍 강의 자료 출처 : LG Aimers
: 시각적인 데이터를 처리하기 위해 고안된 구조로, Convolution 연산을 통해 이미지로부터 필요한 특질(feature)를 스스로 학습할 수 있는 능력을 갖춘 심층 신경망 구조
아래 4가지 경우에 대해 사용될 수 있다.


컬러 이미지는 3차원 Tensor ( X X (RGB))로 표현된다. 컴퓨터가 이미지를 인식할 때 모든 픽셀을 각각 하나의 입력 노드로 간주하고 서로 다른 가중치로 연결하게 되면 학습해야 할 parameter가 너무 많아지는 문제가 발생한다.
→ filter을 사용하여 특정 속성을 탐지하는 과정(Feature Learning)을 여러 번 반복하고 Flatten 과정을 통해 이미지를 1차원 벡터로 변환다.
Feature Learning
: Convolution 연산, Activation 연산(주로 ReLU), Pooling 연산의 반복
CNN은 스스로 입력 데이터로부터 filter를 학습할 수 있다.
⇒ end-to-end
이러한 2가지 특징을 반영하고자 합성곱 연산을 진행한다.
Sparse connection
: 전체 픽셀이 아닌 일부 픽셀만 가중치로 연결하여 연산 수행
Shared weight
: 동일한 filter는 대상 영역에 상관없이 같은 가중치를 사용하여 연산 수행
1. Convolution



Filter
: 특정 속성을 탐지하는 데 사용하는 matrix
→ 입력 이미지에 를 걸어 edge를 딸 수 있다. (= 이미지의 특징 추출)
Stride
: 한 번에 한 칸씩만 filter가 이동하게 된다면 학습 시간이 너무 오래 걸릴 수 있기 때문에 filter가 여러 칸 이동할 수 있도록 설정하는 변수
Padding
: 원래 이미지 데이터의 테두리에 0의 값을 갖는 pad를 추가하는 과정
→ 가장자리에 있는 픽셀들이 중앙에 위치한 픽셀들에 비해 convolution 연산이 적게 수행되는 문제를 해결할 수 있다.
2. Activation

: convolution을 통해 학습된 값들의 비선형 변황을 수행하는 과정으로, 대부분 ReLU 함수를 사용한다.
3. Pooling

: 일정 영역의 정보를 축약하는 과정
고차원의 tensor를 max pooling, average pooling 등을 통해 축약할 수 있다.
cf> Average Pooling은 Strided Convolution의 특수한 케이스이다.
4. Flatten

: 평탄화 과정으로, 2차원/3차원 matric/tensor를 1차원의 vector로 변환해준다.
+) convolution filter의 크기, filter의 수, Stride의 크기, zero padding의 크기는 모델을 학습시키기 전 미리 설정해야 하는 하이퍼 파라미터이다.
Time-Series Data 가정
: 모든 변수는 동일한 주기(초, 분, 시간 등)로 수집되고 있다.
시계열 데이터를 사용하여 Classification, Regression, Anomaly Detection 등의 task를 수행할 수 있다.
시계열 데이터는 이미지 데이터와 달리 변수들 사이의 Spatial Correlation이 존재하지 않는다.
→ 시간축으로 움직이는 합성곱 연산은 의미가 있지만 변수축으로 움직이는 합성곱 연산은 의미를 가지지 못한다.


: 시계열 데이터에 대해 합성곱 연산을 띄엄띄엄 수행하는 방식
기존 합성곱 연산은 stride를 적용해도 항상 연속된 시점의 데이터에 대해 수행되기 때문에 데이터의 개수가 많아지면 filtering 과정이 비효율적일 수 있다.
→ Dilated Convolution을 통해 보다 긴 길이의 시계열 데이터를 효율적으로 처리할 수 있다.
