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주차 : 경사하강법 / SGD
논문 리뷰 과정에서 접한 경사하강법에 대해 학습해본다. 1. 경사하강법 1) loss function 2) 경사하강법 3) 수식 표현 4) 경사하강법의 문제점 2. Epoch, Iteration, Batch 3. 배치 경사하강법 4. 확률적 경사
working-helen.tistory.com
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 |