6 - 1. Introduction to Deep Neural Networks (Deep Learning, Forward Propagation, Back Propagation, Perceptron)
Perceptron
Neural Network 모델 구성하는 기본 알고리즘
입력값과 가중치 연산을 통해 가중합을 만들어내고 활성함수를 거쳐 최종 출력결과 전달한다
가중합의 값이 0보다 크다면 1, 0보다 작다면 0이 된다
Multi - Layer Perceptron ( Fully Connected Neural Network )
선형모델로는 분류하기 힘든 복잡한 문제, XOR 문제를 Multi - Layer Perceptron 을 통해 해결할 수 있다. 그리고 입력노드와 출력노드 모두와 특정한 가중치 형태로 연결된 network
딥러닝 모델 구조
Forward Propagation
input vector 를 column vector로 만들고 뉴런의 가중치를 row vector로 만들어 가중합을 연산, 활성화 함수를 통과한다
Softmax Classifier
binary가 아닌, multi-class classification을 목적으로 하는 분류기
확률 합이 1인 확률분포 벡터로 변환하기 위해 먼저 지수함수에 통과시켜 양수로 만들 상대적 확률 계산
softmax loss(cross-entropy loss) 은 정답 클래스(x=1)인 경우 0, 틀린 클래스(x=0)인 경우 상승
Logistic regression 또한 softmax classifier 중 하나의 case이다. 기존 사용되던 cross-entropy loss에서 class 개수가 binary한 특수case 이다.
Training Neural Network
gradient descent 알고리즘을 통해 예측값과 실제값의 차이를 최소화하여 모델을 업데이트한다
(gradient descent 알고리즘 종류 참고 : https://kind-door.tistory.com/9)
4 - 2. Linear Regression + Optimizer (경사하강법, Gradient Descent, Momentum, RMSProp, Adam)
Linear Model 의 장점 모델이 단순하며 해석 가능성이 있고 다양한 환경에서 일반적으로 안정적인 성능을 제공할 수 있다 Optimizer 종류 0) Normal Equation (벡터연산) 한번에 계산이 되지만 Feature(Dimension)
kind-door.tistory.com
Back Propagation(역전파)
gradient descent를 통해 Loss를 최소화하는 과정에서 parameter를 update하기 위한 편미분 값이 필요하다. Back Propagation을 통해 편미분 값을 구하면 parameter update, 최적화가 반복적으로 진행된다
마지막 노드 편미분값은 최종함수를 함수 값 자체로 미분했을 떄의 결과로써 항상 1로 설정한다. Upstream Gradient 에 대해 Down stream Gradient 를 미분했을 때 Local Gradient 함수가 나오고 Forward Propagation 결과값 1.37 을 대입하면 -0.53이 결과값으로 도출되고 편미분 값 1과 곱하여 -0.53이 된다. 이러한 방식을 반복하여 Back Propagation을 연산한다
위 사진과 같이 노드가 2개인 경우 마찬가지로 각 노드를 x, y라고 생각하여 연산 가능하다. w0 의 현재 값은 2, gradient 값은 -0.2 인 것을 확인할 수 있고 만약 learning rate 가 0.1 이라면 2 -0.1*(-0.2) = 2.02 로 업데이트 된다. 위 사진에서는 모든 노드에 대해 gradient 가 계산되었지만 학습에 직접적으로 사용되는 parameter는 w에 대한 gradient 값이다
그리고 네모칸 과정이 sigmoid 함수 과정을 하나의 노드로 취급하여 gradient 연산이 가능하다.
하지만 sigmoid local gradient 식에서 보는 2차식에서 알 수 있듯이 최대값이 1/4 로 bakcpropagation을 반복하면 gradient가 0으로 수렴하는 gradient vanishing 문제가 발생한다. 그 결과, parameter 들의 update가 거의 일어나지 않고 학습이 매우 느려진다. 이를 해결하기 위해 다양한 Activation Function 들이 발전하고 생겨났다.
( Activation Function 종류 참고 : https://kind-door.tistory.com/11)
4 - 4. Support Vector Machine(SVM), Neural Network (NN), Activation function
SVM 기초지식 Linear Classification 에서 다양한 종류의 hyper plane 이 존재해 hyper plane 에 따라 다른 성능을 보임 w1 은 대부분 잘 분류하는 것처럼 보이지만 새로운 데이터가 나타났을때 거리가 positive cl
kind-door.tistory.com
하지만 발전된 Activation 함수를 사용할때 특정 범위를 벗어난다면 된다면 gradient 가 0이 되어 학습이 불가능하다. 이 문제점을 해결하기 위한 방법 Batch Normalization에 대해 알아보자
Batch Normalization
각 레이어의 입력 데이터를 정규화하여 gradient vanishing 문제를 해결하여 학습과정을 안정화시키고 속도를 향상시키는 기법
2번째 단계로는 정규화 과정에서 neural network가 잘 추출한 정보를 잃지 않기 위해 다시 복원하는 작업을 수행함으로써 gradient vanishing 문제를 효과적으로 해결하고 안정성을 높이는 방법이다