working_helen
[CNN] Fully-Connected Layer 본문
CNN의 구성 요소
- Convolution Layer
- Pooling Layers
- Fully-Connected Layer
- Activation Function
- Normalization
CNN의 구성 요소 중 'Fully-Connected Layer'에 대해 공부해본다.
1. Neural Network
2. Neural Network Optimization
3. BackPropagate
1. Neural Network
: 인간의 신경망 구조를, 노드 간 연결을 통해 모방한 인공 네트워크 구조
- 인간의 뇌는 연결된 뉴런들로 구성 + 뉴런에서 뉴런으로 전기적 신호 전달
+ 이때 전기적 신호의 크기가 충분히 크지 않으면 해당 신호는 전달되지 않음
- 인공신경망은 연결된 노드들로 구성 + 노드에서 노드로, layer에서 layer로 정보 전달
+ 이때 output 값의 크기가 충분히 크지 않으면 정보는 전달되지 않음
1) Neural Network 구조
- input layer + hidden layer + output layer 구조
- hidden layer = 처음 input과 최종 output layer를 제외한 내부 layer
- 한 layer에서의 output 값이 다음 layer의 input 값으로 사용
- Fully-Connected Layer = Multi-Layer Perceptron : hidden layer가 여러개 존재하는 Neural Network
2) 각 layer 구조
- transfer fucntion : 각 노드에서 오는 입력값에 가중치를 곱해 더한 값을 계산 (입력값들의 선형합)
- activation function : transfer function의 계산 결과를 받아 임계값과 비교하여 출력 여부를 판별
- 각 input 데이터마다 가중치 weight가 존재
- weight가 크면 해당 input이 결과에 크게 반영되고, 작으면 적게 반영
- 출력 결과가 실제값과 같도록 weight를 조정하는 방식으로 training 진행
3) activation function 활성함수
- transfer fucntion의 결과값이 임계값을 초과하는 경우 노드를 활성화하고 다음 노드로 데이터를 전달
- linear classifier 상태인 모델에 non-linearity를 부여 → 더 복잡하고 일반화된 모델 생성
- 대표적인 activation function 종류
Sigmoid | ReLU | tanh |
input -> (0, 1) 범위로 변환 | input -> ignore negative input | input -> (-1, 1) 범위로 변환 |
2. Neural Network Optimization
- W : input에 따른 weight 행렬
- L(W) : output 값과 실제값 사이 Loss
- Neural Network training = Loss를 최소화는 방향으로 weight 행렬 W를 조정
기본적으로 Gradient Descent (BGD, SGD 등) 방법을 사용
2023.08.24 - [deep daiv./추천시스템 스터디] - [추천시스템 논문 리뷰] 3주차 : 경사하강법 / SGD
3. BackPropagate
- Neural Network를 학습시키는 알고리즘의 일종
- Optimization 과정에서 어떻게 각 가중치의 Gradient Descent를 계산할 것인지에 대한 방법
1) Feed-Forward (Forward Propagation, 순전파)
- input에서 output layer 방향으로 이동하며, 초기 W와 input 값으로 output 값을 계산하는 과정
- transfer fucntion을 통한 input 값들의 가중합 → activation function을 통해 비선형성 부여
2) BackPropagate (역전파)
- output에서 input layer 방향으로 이동하며, 각 input에 대한 weight의 Gradient Descent를 계산하는 과정
- 계산한 Gradient Descent로 weight 값을 업데이트함으로써 모델이 training
- Computational Graph + Chain Rule(미분의 연쇄법칙)을 이용한 gradient 계산
Downstream gradient = local gradient x Upstream gradient
- 역전파 derivatives 계산 과정 예시
3) BackPropagate 계산 예
ⓛ Computational Graph 그리기
② Feed-Forward : output 계산하기
③ BackPropagate : output layer부터 derivatives 계산하기
Reference
[Neural Network]
https://blog.naver.com/laonple/221166694845
https://www.educba.com/what-is-neural-networks/
https://en.wikipedia.org/wiki/Artificial_neural_network
https://en.wikipedia.org/wiki/Sigmoid_function
[BackPropagate]
https://wikidocs.net/37406
https://evan-moon.github.io/2018/07/19/deep-learning-backpropagation/
https://sean-parkk.github.io/study/DLscratch_Backpropagation/
'교내 수업 > 인공지능' 카테고리의 다른 글
[NLP] Language Model / n-gram, NNLM, RNNLM (1) | 2024.01.30 |
---|---|
[NLP] Word2Vec / Skip-gram, CBOW (0) | 2024.01.29 |
[CNN] CNN 모델의 발전 (1) | 2024.01.21 |
[CNN] Convolution Layer / Pooling layer (1) | 2024.01.21 |
[Linear Algebra] SVD를 이용한 image compression (1) | 2024.01.19 |