Deep Learning 방법 중 많이 쓰이는 CNN(Convolution Neural Network)에 대해 알아보겠습니다.
1. CNN 이란?
- 합성곱이라는 연산을 사용하는 신경망을 일컫는다.
- 합성곱이란 쉽게 말해서 두 개의 합수를 곱해서 합하는 것이라고 보면 된다.
위의 수식은 합성곱을 나타낸 수식이다.
여기서 f(), g() 함수를 합성곱 하였으며, 이때 g() 함수의 경우 반전(-τ), 그리고 t만큼 이동시켰다.
그리고 이를 타우가 변화하면서의 결과를 저장하는 것을 합성곱(Convolution)이라고 한다.
- 합성곱을 사용하는 이유!
함수 f()는 우리가 가지고 있는 본래의 신호, 행렬, 이미지 등으로 보면 됨.
이때 함수 g()는 필터, 가중치, 커널 등으로 볼 수 있다.
이를 합성곱 하면, 주어진 신호 f()를 우리가 원하는 함수로 만들어 낼 수 있게 된다.
즉 g()를 이용해서 f()를 분해, 변환, 필터링 등을 할 수 있기 때문에 사용한다.
cnn에서 g(t-τ)를 플립(filp)이라고 한다.
2. CNN의 구조
3. 합성곱 계층 (Convolution Layer)의 연산
입력 데이터에 커널(필터, 가중치)을 적용해 일정 간격으로 이동해 가며 입력 데이터에 적용함.
이때 이동하는 간격을 스트라이드(Stride)라고 함.
4. 패딩(Padding)
- 신경망에 커널을 적용하면서 층이 깊어지면 데이터의 차원이 점차 줄어들게 된다.
그런데 이때 차원이 줄어드는 현상을 방지하기 위해 PADDING이라는 방법을 사용한다고 한다.
(왜!??!! 인지는 아직 잘 모르겠다.ㅠㅠ)
5. Pooling Layer
- 일정 영역의 정보를 축약하는 역할
- sub_sampling을 이용해 특징 맵(feature-map)의 크기를 줄이고, 위치나 이 동에 좀 더 강인한 성질을 갖는 특징을
추출할 수 있게 됨
- 최대(Max), 평균(Average), 평탄화(Flatten) Polling이 있다.
6. 채널(Channel)
- CNN을 이미지에 많이 사용되는데 이때 흑백과 컬러는 표현이 조금 다르게 된다.
이때 컬러는 RGB(Red, Green, Blue)의 실수로 표현한 3차원 데이터로 3개의 채널(Channel)로 구성
7. 완전 연결(Fully-connected) 계층
CNN이 총 100이라면... 난 이제 20 정도 이해된 거 같다...
============================================================================
'데이터 및 Programing > Part1. Basic Knowledge' 카테고리의 다른 글
[기본개념] 기댓값과 분산 그리고 공분산 (0) | 2023.03.01 |
---|---|
[ML Algorithm] 전이 학습(Transfer Learning) (0) | 2022.04.14 |
[ML Algorithm] Clustering (머신러닝, 군집화, 군집 분석, 두 점사이의 거리, 최소연결법, 최장연결법, 중심연결법, 평균연결법, 덴드로그램, K means, DBSCAN) (0) | 2022.02.02 |
[ML Algorithm] Decision Tree (머신러닝, 의사결정나무, 엔트로피, 가지치기) (0) | 2022.01.29 |
머신러닝, 딥러닝 학습 , 최적화(Optimization)에 대해서 (SGD, Momentum, RMSProp, Adam) (0) | 2022.01.15 |