일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- assignment1
- 딥러닝
- CNN
- computer vision
- Regularization
- 밑바닥부터 시작하는 딥러닝2
- BFS
- SQLD
- Adam
- cs231n
- marchine learning
- assignment2
- dropout
- CPP
- Machine Learning
- 밑바닥부터 시작하는 딥러닝
- deep learning
- do it! 알고리즘 코딩테스트: c++편
- Algorithm
- Baekjoon
- mask r-cnn
- Optimization
- Python
- C++
- Transformer
- Alexnet
- Multi-Head Attention
- DFS
- RNN
- Positional Encoding
- Today
- Total
newhaneul
[Stanford Univ: CS231n] Lecture 5. Convolutional Neural Networks 본문
[Stanford Univ: CS231n] Lecture 5. Convolutional Neural Networks
뉴하늘 2025. 4. 21. 20:26본 포스팅은 Stanford University School of Engineering의 CS231n: Convolutional Neural Networks for Visual Recognition을 수강하고 공부한 내용을 정리하기 위한 포스팅입니다.
https://youtu.be/bNb2fEVKeEo?si=8DNlIo7JHLY1WAf8
https://github.com/cs231n/cs231n.github.io
GitHub - cs231n/cs231n.github.io: Public facing notes page
Public facing notes page. Contribute to cs231n/cs231n.github.io development by creating an account on GitHub.
github.com
CNN의 구조와 작동 원리
- 입력 이미지 처리: CNN은 입력 이미지를 3차원 볼륨(가로 × 세로 × 채널)으로 처리한다. 예를 들어, CIFAR-10 데이터셋의 이미지는 32×32×3의 크기를 가진다.
- 합성곱 계층(Convolutional Layer): 필터(또는 커널)를 사용하여 입력 이미지에서 특징을 추출합니다. 각 필터는 입력의 작은 영역에만 연결되어 지역적인 특징을 학습하며, 필터는 학습 가능한 가중치와 편향을 가집니다.
Conv Layer의 parameter 개수를 구하는 방법은 (filter size x channel + bias) x number of filters이다. filter마다 bias가 있음을 잊지 말아야 한다.
일반적으로 필터의 개수는 2의 제곱배로 커진다. 그리고 Filter size와 stride, padding 같은 hyperparameter들은 일반적인 세팅이 존재하지만 직접 데이터에 따라 적절한 값을 한다.
- 활성화 함수(Activation Function): 비선형성을 도입하여 모델이 복잡한 패턴을 학습할 수 있도록 한다. 일반적으로 ReLU(Rectified Linear Unit)가 사용된다.
- 패딩 계층(Padding Layer): 합성곱 연산을 수행하면 계속해서 필터를 적용하기 때문에 입력 크기가 급격히 줄어들게 되는데, 이를 막기 위해 패딩을 통해 입력의 가장자리를 확장해준다.
- 풀링 계층(Pooling Layer): 특징 맵의 공간적 크기를 줄여 계산량을 감소시키고, 위치 변화에 대한 불변성을 제공한다. 일반적으로 최대 풀링(Max Pooling)이 사용되며, 학습 가능한 파라미터는 없다.
Pooling은 가중치를 downsampling하여 불필요한 세부 정보를 제거하고, 모델이 더 일반화된 특징을 학습하게 도와준다. 따라서 작은 위치 변화에 대해 model의 결과가 크게 바뀌지 않도록 만들어준다.(Translation Invariance) 그리고 일반화 능력이 향상되므로 과적합을 방지시키는데 도움이 된다.
- 완전 연결 계층(Fully-Connected Layer): 추출된 특징을 기반으로 최종 분류를 수행한다. 이 계층은 전통적인 신경망과 유사하게 모든 뉴런이 이전 계층의 모든 뉴런과 연결된다.
CNN의 각 Conv 입력은 원본 이미지가 아니라 이전 Layer에서 나온 edge maps과 같다. 이런 edge map을 가지고 더 복잡한 것들을 추론 하는 것이 CNN이다. 마지막 pooling layer를 거치기 전까지의 각 값들은 각 필터가 가진 templete이 얼마나 활성되었는를 표현한다. 그리고 이런 정보를 가지고 FC Layer를 거치게 되면, 그 정보들을 한데 모아 클래스 스코어를 계산한다.
즉, 각 값들이 의미하는 것은 필터의 Templete이 얼마나 활성화 되었는가를 의미하는 것이다.