728x90
1. Deep Neural Network의 기본 동작 과정
- 인공지능 : 지능형 기계를 만드는 과학이나 공학의 분야 / 인간의 지능(지적능력, 사고방식) 을 인공적으로 만든 것
- 머신러닝 : 기존의 데이터를 알고리즘을 사용해 모델을 만들어내고, 새로운 데이터에 해당 모델을 적용시켜 예측을 하는 방법
- 딥러닝 : 머신러닝의 방법론 중 하나 (비선형 정보처리를 수행하는 계층을 여러 겹으로 쌓아서 학습모델을 구현하는 머신러닝의 한 분야)
-> 엄청나게 많은 데이터에서 중요한 패턴을 잘 찾아냄, 규칙도 잘 찾아내고, 의사결정을 잘하게 됨
- Artificial Neural Networks
- linear combination with model parameters & input features
- Activation Function application
- Neural Network 형성 (선형 모델 + 활성화함수 합성)
- DNN : Deep Neural Network
- Neural Network에서 비선형 정보처리를 수행하는 Hidden Layer들을 겹으로 쌓아서 학습모델을 구현
- Deep Learning이 좋은 성능을 보이기 위해서는 :
- 많은 수의 Training Data가 필요
- DL Algorithm을 학습시킬 수 있는 높은 사양의 GPU 필요
- DL Algorithm들을 잘 학습시킬 수 있고, 주어진 환경 내에서 최대한의 성능을 끌어올릴 수 있는 Algorithm 필요
- Application of Deep Learning
- Computer Vision: 컴퓨터비전
- Natural Language Processing: 자연어처리
- Time-Series Analysis: 시계열 분석
- Reinforcement Learning: 강화학습
2. Perceptron and Neural Networks
- Perceptron
- Input Features: $x_{1}, x_{2}$
- Model Parameters(Weight): $w_{0}, w_{1}, w_{2}$
- Linear Combination: $w_{0} + w_{1}x_{1} + w_{2}x_{2}$
- Activation Function: $f(x)$
- Output: $f(w_{0} + w_{1}x_{1} + w_{2}x_{2})$
- AND, OR Gate 구현 (single layer perceptron)
- Model parameter (가중치 weight)을 적절하게 조정하여 AND, OR Gate 모두 설계가능
- Single layer perceptron은 only linear problem만 해결가능
- Decision Boundary
- $Linear \: Combination(Score) =0$ 인 Hyper Plane
- $w_{0} + w_{1}x_{1} + w_{2}x_{2} = 0$
- XOR Gate 구현 (multi-layer perceptron)
- Multi-Layer Perceptron을 이용하면 해결가능
- 중간 hidden layer에 AND, OR Gate 생성 -> Output을 다시 입력으로 받아서 perceptron에 input
- Hidden Layer
- Input Layer과 Output Layer 사이의 계층
- 순차적으로 연결하여 정보를 처리하는 neural network를 구성
- 굉장히 복잡한 task도 문제없이 수행해낼 수 있는 능력
3. Forward Propagation
- $a_{j} ^{(i)}$: $j$번째 Layer에 있는 $i$번째 노드의 Output (Activation Function의 결과값)
- $W^{j}$: $j$번째 Layer에서 $j+1$번째 Layer으로 mapping하는 Weight Matrix
- Linear Combination (Input Feature & Model Parameter) -> Activation Function에 합성
- Output $a_{j} ^{(i)}$는 다시 Input Feature로 작용
- Multi-Layer Perceptron의 각 layer별로 일어나는 계산과정을 이렇게 compact한 표현으로 나타냄
- MNIST
- 사람이 수기로 쓴 0~9까지의 digit data
- 각 한장의 이미지는 28 x 28 size
- train data = 55,000장
- test data = 10,000장
- MSE Error Loss 의 문제점
- 특정 class에서의 target data - predicted output 의 값이 최대 1
- 거기서 발생하는 gradient의 값이 크지 않을 수 있기에 학습이 느려질 수 있는 문제
- Classification model에서 (가능한 class 중 특정한 하나의 class로 분류를 하고자 할 때)
- 일반적으로 원하는 output의 형태는 합이 1이고 값이 [0,1] 사이의 확률 분포에 해당하는 vector를 얻는 것이 중요
- 특정 class에서의 target data - predicted output 의 값이 최대 1
4. Softmax Layer (Softmax Classifier)
- Multi-Class Classification에서 output vector의 형태가 총합이 1인 확률분포를 뜻하는 activation function을 softmax layer
- 소프트맥스(softmax) 함수는 모델의 출력을 확률로 해석할 수 있게 변환해 주는 연산
- 분류 문제를 풀 때 선형모델과 소프트맥스 함수를 결합하여 예측
- Input Node: 5
- Output Node: 3
- Weight Matrix
- 각 Row 마다 하나의 Output Node에 대응
- # Output Node X # Input Node (행 X 열)로 구성
- Input Feature, Model Parameter 간의 linear combination을 Softmax Layer이라는 활성함수에 통과시킨다
- Softmax Layer의 input은 실수 전체의 범위를 가지기 때문에 합이 1인 형태의 확률 분포에 해당하는 vector로 변환
- Softmax의 output vector에 loss function을 적용할 때, Cross-Entropy Loss를 사용
- Cross-Entropy Loss
- 확률 분포에서 정답 class에 해당하는 확률 값이 최대한 1이 나오도록 하는 loss function을 설계
- $\hat{p_{c}}$: 내가 예측한 확률 vector (빨간색 숫자)
- $y_{c}$: ground truth vector
- 해당하는 class면 1, 해당하지 않는 class면 0을 반환
- one-hot vector의 형태로 주어짐
- $- \sum_{c=1}^{C} y_{c}log(\hat{p_{c}}) = -log(\hat{p_{y_{i}}})$
- $y_{c} = 0$ 인 항들은 전부 제거, $y_{c} = 1$ 인 항만 살아남음
- $\hat{p_{y_{i}}}$: i번째 training data item의 확률
- $-log(\hat{p_{y_{i}}})$: 확률이 0에 가까워질수록 loss가 커진다
- Softmax loss는 다른 class에 부여된 확률 값은 전혀 고려하지 않음
- 그 이전에 지수함수를 통과하고 값들의 상대적인 비율을 따질 때 $\hat{p_{y_{i}}}$에 선반영됨
- 정답 class에 해당하는 확률이 증가하면 해당하지 않는 class의 확률은 작아짐: 상호의존적
- Logistic Regression
- softmax layer의 특별한 형태
- Binary Classification (class가 2개만 있을 때) 일 때 많이 사용
- Output Node가 하나로만 구성된다: Weight Matrix가 1 row만을 가짐
- 가상의 class를 생성하고 logic 값을 default(0)으로 설정
- 가상의 class는 weight matrix에서 하나의 row에 해당하는 모든 entry = 0
- Positive Class: 기존의 class
- Negative Class: 가상의 class
- positive class에 해당하는 가중치만을 학습을 통해 최적화된 값으로 도출해낸다
- $\hat{p_{i}}$: 내가 예측한 positive 확률 vector (빨간색 숫자)
- $y_{i}$
- positive class면 1: $y_{i}=1$ 이므로 앞항만 남음 & softmax loss와 동일
- negtaive class면 0: $y_{i}=0$ 이므로 뒷항만 남음 & softmax loss와 동일(negative 일 때 해당하는 항들 부여)
- one-hot vector의 형태로 주어짐
728x90