AI Fundamentals/LG Aimers 3기

[LG Aimers] Module 7.1(Deep Learning) : Introduction to Deep Neural Networks

Jae. 2023. 7. 19. 02:25
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도 문제없이 수행해낼 수 있는 능력

 

Input Layer는 기본으로 제공이 되므로 hidden layer과 output layer의 개수를 세어 n-layer Neural Network라 한다

 

 

 

 

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장

 

 

28^2개의 Input Feature을 바탕으로 Output Layer의 값을 손글씨가 각 digit에 해당할 확률로 반환 (by sigmoid)

 

 

 

Target Data: 실제 digit에만 1을 부여하고 나머지는 0부여 / Predicted Output: Output Layer의 값

 

 

  • MSE Error Loss 의 문제점
    • 특정 class에서의 target data - predicted output 의 값이 최대 1
      • 거기서 발생하는 gradient의 값이 크지 않을 수 있기에 학습이 느려질 수 있는 문제
    • Classification model에서 (가능한 class 중 특정한 하나의 class로 분류를 하고자 할 때)
      • 일반적으로 원하는 output의 형태는 합이 1이고 값이 [0,1] 사이의 확률 분포에 해당하는 vector를 얻는 것이 중요

 

 

 

 

 

 

 

 

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를 사용

 

Linear Combination의 값을 우선 지수함수에 통과시킨 후 해당 값의 상대적인 비율을 계산 = softmax layer의 최종 출력

 

  • 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의 형태로 주어짐

 

BCE Loss는 softmax Loss의 특별한 형태(class가 2개)

 

  

 

 

728x90