Part1. 심층신경망의 기본 동작 과정
[Deep learning ]
: 두뇌 속에 있는 뉴런 혹은 신경세포를 본 따서 그리고 그 신경세포들이 서로 연결관계에 있으면서 정보를 점점 더 고수준의 정보로 처리하고 여러 지능적인 task를 수행할 수 있도록 수학적인 알고리즘으로 만든 것.
- 기계 학습의 일종이 딥러닝
- 하나하나의 뉴런이 모여서 신경망을 구성
- 같은 계층의 뉴런들은 같은 정보를 받아서 각자 나름대로 정보를 처리하고 다음 계층의 뉴런에게 전달
- 계층이 매우 깊어진 것이 딥러닝
- 많은 학습 데이터 양 + 높은 사양의 하드웨어 + 진보된 알고리즘 필요
[Perceptron ]
: 뉴런의 동작 과정을 수학적으로 본 따서 만든 알고리즘
- f : 활성화함수
-> layer를 쌓으면 복잡한 task도 가능해짐 (XOR gate)
[Forward Propagation]
- 예시 - MNIST
[Softmax Classifier]
- sigmoid output 과 Mean-Squared Error Loss -> gradient 값이 작아 학습이 느리다는 문제
- Softmax Layer
- softmax loss(cross-entropy loss, negative log-likelihood)
- Logistic Regression : negative class에 해당하는 가중치는 0으로 가정하고 이에 대한 가상의 확률 값을 구하고 positive class에 해당하는 가중치만을 학습을 통해 최적화된 값으로 도출해낸다.
Part2. 심층신경망의 학습 과정
[Backpropagation]
- 간단한 logistic regression에서 나아가 multi-layer perceptron 그리고 다양한 neural network architecture들에 대해서 computational graph를 만들 수가 있음
- 여기에 data item을 입력으로 줘서 forward propagation 계산 과정을 수행하고 최종적으로 loss 값을 계산
- loss를 minimize할 수 있도록 backpropagation 과정을 통해 직접적으로 업데이트할 parameter에 대한 loss function의 gradient값을 구함
- 그 parameter들을 gradient descent 알고리즘을 통해 업데이트 수행
[Activation function]
- sigmoid activation : 0부터 1 사이의 수로 맵핑
-> 문제: gradient 값의 최댓값이 1/4 => 앞쪽으로 갈수록 gradient vanishing 문제 - tanh activation : -1에서 1사이의 수로 맵핑
-> 여전히 gradient vanishing 문제 - ReLU : 음수면 0, 양수면 그대로 맵핑 (많이 사용)
-> 양수에서는 gradient가 그대로이기 때문에 학습 빨라짐
[Batch Normalization]
: 값이 큰 gradient 입력값으로 제한을 두는 것
1) normalize - tanh 입력값의 범위를 0을 중심으로 하는 분포로 제한, 분모로 학습한 분산 값
2) ax+b, a^2 : 분산, b : 평균 -> 해당 데이터를 가지는 고유의 평균, 분산 복원
Part3. 합성곱 신경망 (CNN)의 동작 원리 및 이를 통한 이미지 분류
[ConvNet]
- Filtering
- filter와 image patch의 겹치는 부분 곱해서 다 더한 값으로 구성된 activation map 생성
- filter의 갯수만큼 activation map 생성
- 이미지의 갯수 -> 채널
2. Pooling
-> size를 줄여주는 효과
3. Fully Connected layer
4. 최종 모델
- trainable 가중치는 convolution에 존재 (filter의 coefficient, filter의 패턴)
5. Hyperparameters
- Convolution
- Number of filters
- size of filters
- Pooling
- window size
- window stride (window 옮기는 간격)
- Fully Connected
- number of layers
- number of neurons
[Residual Network]
- 많이 사용되고 있는 CNN구조
- 만드고 싶은 출력을 위해 입력 대비 얼마만큼을 더해 줄지 혹은 빼줄지 그 추가 값만을 layer에서 만들어줌
- skip connection - 필요할 때는 건너뛸 수 있음 ->f(x) 거의 0, x만 입력
=> layer의 파라미터들이 random initialization에서 순기능까지 시간이 오래 걸리는 단점 해결
- Revolution of Depth
강의 내용 정리 : LG Aimers AI Essential Course - Module6 by 카이스트 주재걸 교수님
'LG Aimers' 카테고리의 다른 글
Module 7. B2B 마케팅 (0) | 2024.01.21 |
---|---|
Module6. 딥러닝 (2) (0) | 2024.01.20 |
Module4. 지도학습(분류/회귀) (0) | 2024.01.16 |
Module2. Mathematics for ML (1) | 2024.01.11 |
Module3. Machine Learning개론 (1) | 2024.01.11 |