이 글은 데이터 스테이션님의 딥러닝 신경망 알고리즘 이해하기 ! 강의를 듣고 작성되었습니다.
데이터 연산이 처리되는 각 층을 연결
층간 활성함수에 의한 연산으로 다양하고 복잡한 형태의 계산이 가능
점진적(Foward pass)
으로 데이터가 정제되어 처리될 수 있는 구조 형성
층(layer)에서 입력 데이터(input data)가 처리되는 정보는 Weight(해당 layer의 parameter)
라는 Vector에 저장되어 있음
딥러닝의 목표
: 예측을 정확하게 하기 위한 Weight를 찾는 것정답지가 연속형,이산형,카테고리형 등에 따라 어떤 방식으로 weight를 찾을지 결정.
Backpropagation(역전파) 알고리즘
을 구현한 Optimizer
를 이용해 Update
Training Loop를 통해, 최초의 부여받은 Random Weight
에서 Cost Function
이 가장 낮아지는 Weight를 도출
손실함수 (Cost Function or Objective Function)
- 예측값과 실제 값의 차이(오차)를 계산한 함수.
- 신경망 출력 제어의 지표가 됨.
- 신경망이 얼마나 잘 만들어졌는가, 잘만들어 지고 있는가를 파악할 수 있음
- 손실함수가 최소가 되는 방향으로 weight를 Update
처리 순서
- 여러개의 Batch를 나눠 학습 (몇 번 반복할 것인가 결정 : Epoch)
- 데이터가 각 층을 통과하며, Node에 있는 함수에 의해 처리 (Forward Pass)
- 실측값과 신경망에 의한 예측값을 비교해 오차 계산
- chain Rule을 통해 오차에 대한 각 Node에 있는 기여도를 계산 (Backward Pass)
- 오차가 감소하도록 Weight를 계산
Perceptron Model
Multi Layer Perceptron
Deep Neural Network, DNN
DNN의 2가지 종류
1. Convolutional Neural Network, CNN
- 합성곱신경망
- 사람의 시신경 구조를 모방한 알고리즘
- 데이터를 특정 차원으로 추출하여, 해당 차원의 패턴을 파악하는 구조
- 데이터 펼쳐져 있을때 특정 특징들을 추출해 모아 하나의 Convilution Layer를 만들고 그 안에서 데이터를 줄이며 학습하는 형태
- Convolution과정과 Pooling과정을 통해 진행
- 이미지 처리에 주로 사용되다가 자연어 처리에도 사용하기도 함
2. Recurrent Neural Network, RNN
- 순환신경망 알고리즘
- 반복적이고 순차적인 데이터를 순서대로 처리하는 형태의 알고리즘
- 알고리즘 내부의 순환구조가 존재하여, 과거의 학습을 Weight를 활용해 현재의 Node에 Weight를 반영하는 알고리즘
- 시계열 데이터 처리할 때 사용