| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |
- stride
- widget
- MAC
- UI
- gameplay tag
- gas
- gameplay ability system
- CTF
- unity
- Aegis
- animation
- gameplay effect
- linear regression
- photon fusion2
- Multiplay
- rpc
- 언리얼 엔진
- local prediction
- ability task
- C++
- 보안
- 언리얼엔진
- os
- 게임개발
- Unreal Engine
- Replication
- attribute
- 게임 개발
- 유니티
- listen server
- Today
- Total
Replicated
합성곱 신경망 (CNN, Convolutional Neural Network) 본문
합성곱 신경망의 전체 구조
Fully-connected Layer
- 앞에서 배운 Affine 계층과 같음
- 입력 뉴런과 출력 뉴런이 모두 연결된 층
- 간단한 2~3개층 짜리 모듈이나 최종 출력 직전 레이어에 주로 사용
- MLP (Multi Layer Perceptron) : Fully-connected Layer 여러 개로 구성된 네트워크
ex. Affine - ReLU -> Affine - ReLU -> Affine - ReLU -> Affine - ReLU -> Affine - Softmax =>
CNN으로 이뤄진 신경망의 예
- 합성곱 계층(Conv)과 풀링(Pooling) 계층이 새롭게 추가됨
- 풀링은 안 쓰는 경우도 있음
- Conv - ReLU - Pooling -> Conv - ReLU - Pooling -> Conv - ReLU -> Affine - ReLU -> Affine - Softmax =>
Fully-connected Layer의 문제점
- 데이터의 형상이 무시됨
- 입력 데이터가 이미지.. 세로, 가로, 채널(색상)의 3차원 데이터
- 완전 연결 계층은 형상을 무시하고 모든 입력 데이터를 펴서(flatten) 다루기에 형상에 담긴 정보를 살릴 수 없음
3차원 공간 정보는 의미를 담고 있음
- 공간적으로 거리가 가까운 픽셀들 사이에 값이 유사하거나 객체의 일부 구조를 나타냄
- RGB 채널 사이의 연관성
-> CNN은 공간 정보 유지 가능
특징 맵 (feature map)
- CNN 합성곱 계층의 입출력 데이터
- feature: 데이터의 특징. 머신러닝의 피쳐와 유사. 하지만 딥러닝에서는 중간 계층의 입출력도 feature라 부르고, 개발자가 직접 찾는 것이 아니라 학습에 의해 구해짐
- map: 보통 2차원 이상의 구조 정보를 가지는 것
합성곱 연산
Convolution
- 필터의 윈도우를 일정 간격으로 이동해가며 입력 데이터에 적용
- 입력과 필터에 대응하는 원소끼리 곱한 후 총합을 구함
- 기본적으론 입력값에 비해 출력 양이 줄어들게 됨
CNN에서는 필터의 매개변수가 그동안의 가중치에 해당
CNN에서의 편향
- 필터를 적용한 원소에 고정값(편향)을 더함
패딩(padding)
- 입력 데이터 주변을 특정값(ex. 0)으로 채우기도 함
- 합성곱 연산을 거칠 때마다 크기가 작아지기 때문에 출력 크기를 조정할 목적으로 사용
스트라이드(stride)
- 필터를 적용하는 위치의 간격
- ex. 스트라이드 2 -> 필터를 적용하는 윈도우가 2칸씩 이동

입력크기 (H, W)
필터크기 (FH, FW)
출력크기 (OH, OW)
패딩 P
스트라이드 S
| 1 | 2 | 3 | 0 | ||
| 0 | 1 | 2 | 3 | ||
| 3 | 0 | 1 | 2 | ||
| 2 | 3 | 0 | 1 | ||
입력 데이터, 패딩 1 스트라이드 1
| 2 | 0 | 1 |
| 0 | 1 | 2 |
| 1 | 0 | 2 |
OH = (4 + 2 - 3) / 1 + 1 = 4
OW = (4 + 2 - 3) / 1 + 1 = 4
| 7 | 12 | 10 | 2 |
| 4 | 15 | 16 | 10 |
| 10 | 6 | 15 | 6 |
| 8 | 10 | 4 | 3 |
출력 데이터
| 1 | 2 | 3 | 0 | 1 | 2 | 3 |
| 0 | 1 | 2 | 3 | 0 | 1 | 2 |
| 3 | 0 | 1 | 2 | 3 | 0 | 1 |
| 2 | 3 | 0 | 1 | 2 | 3 | 0 |
| 1 | 2 | 3 | 0 | 1 | 2 | 3 |
| 0 | 1 | 2 | 3 | 0 | 1 | 2 |
| 3 | 0 | 1 | 2 | 3 | 0 | 1 |
입력 데이터, 패딩 0 스트라이드 2
| 2 | 0 | 1 |
| 0 | 1 | 2 |
| 1 | 0 | 2 |
필터
OH = ( 7 + 2*0 - 3 ) / 2 + 1 = 3
OW = ( 7 + 2*0 - 3 ) / 2 + 1 = 3
3차원 데이터의 합성곱 연산
- 가로 x 세로 x 채널(R, G, B)
- 3차원 합성곱 연산에서 주의할 점은 입력 데이터의 채널 수와 필터의 채널 수가 같아야 한다는 것
- 입력 데이터와 필터의 합성곱 연산을 채널마다 수행하고, 그 결과를 더해 하나의 출력을 얻음
블록으로 생각하기
- 3차원 데이터와 필터를 직육면체 블록이라 생각
- (채널, 높이, 너비) 순서로 쓰면
- 입력(C, H, W), 필터(C, FH, FW), 출력(1, OH, OW)
- 출력의 채널은 1. 다수의 채널로 내보내려면 => 필터를 여러 개 사용
필터를 여러 개 사용하는 경우
- 입력(C, H, W), 필터(FN, C, FH, FW), 출력(FN, OH, OW)
- 편향(FN, 1, 1)
배치 처리
- 학습 시 입력 데이터를 묶어 한 번에 처리. 합성곱 연산도 마찬가지로 배치 처리
- 입력(N, C, H, W), 필터(FN, C, FH, FW), 출력(N, FN, OH, OW)
- 편향(FN, 1, 1)
- 필터, 편향은 모든 데이터의 그대로 적용되니까 그대로임
풀링 계층
풀링은 가로, 세로 방향의 공간을 줄이는 연산
- feature map을 축소하면서 중요한 정보만 남기는 연산
Max pooling: 윈도우 내 최대값을 구하는 연산
Average pooling: 윈도우 영역의 평균을 계산
풀링의 특징
- 학습해야 할 매개변수가 없음
- 채널 수가 변하지 않음 (채널마다 독립적 계산하기 때문)
- 입력의 변화에 영향을 적게 받는다 (강건하다)
CNN 시각화
학습 전 필터는 무작위로 초기화
학습 후 필터는 규칙성이 있는 이미지
MNIST를 학습한 합성곱 계층의 가중치
- 규칙성 있는 필터의 이미지는 어떤 것을 보는 것?
- 엣지 (색상이 바뀌는 경계선), 블롭 (국소적으로 덩어리진 영역) 등의 원시적인 정보 추출 가능
소벨 필터
| -1 | 0 | +1 |
| -2 | 0 | +2 |
| -1 | 0 | +1 |
Gx
| +1 | +2 | +1 |
| 0 | 0 | 0 |
| -1 | -2 | -1 |
Gy
이미지 경계 감지
대표적인 CNN
LeNet(1998)
- CNN의 원조. Yann Lecun 연구팀 개발
- 손글씨 숫자를 인식하는 신경망 제안
- 합성곱 계층과 풀링 계층을 반복, 마지막으로 fully-connected layer 계층을 거치며 결과 출력
- 최근 CNN과 다른 점: sigmoid 함수 사용. 현재는 주로 ReLU 사용
AlexNet(2012)
- Geoffery Hinton
- 당시 딥러닝 침체기, 이미지 인식 대회에서 딥러닝으로 10% 이상의 차이를 벌리며 압도적 우승을 하고 딥러닝 열풍
- 구성은 LeNet과 비슷
- 활성화 함수로 ReLU 사용
- 국소적 정규화 계층 사용 (현재는 배치 정규화가 더 좋음)
- 드롭 아웃 사용
- GPU를 사용해 병렬 학습 수행
'학부 > 빅데이터마이닝' 카테고리의 다른 글
| 생성 모델 (0) | 2025.06.08 |
|---|---|
| 순환 신경망 (RNN, Recurrent Neural Network) / LSTM (0) | 2025.06.08 |
| 신경망 학습 관련 기술들 (0) | 2025.06.08 |
| 오차 역전파법 (Backward Propagation) (0) | 2025.06.08 |
| 신경망 학습 / 수치미분 (0) | 2025.06.08 |