BraveTiger

CH6. 딥러닝_인공신경망 개요 본문

취업 준비/AIVLE SCHOOL

CH6. 딥러닝_인공신경망 개요

BraveTiger 2023. 4. 25. 09:28

인공신경망

  • 사람의 뇌 속 뉴런의 작용을 본떠 패턴을 구성한 컴퓨팅 시스템
  • 분류 및 예측이 가능
  • 입력층, 은닉층, 출력층 3개의 층으로 구성
    • Single Layer Perceptron(은닉층 없음)
      • SLP의 문제점은 XOR문제를 해결할 수 없다는 것!
        • XOR문제: 두 값이 같으면 1, 다르면 0을 출력하는 문제
    • Multi Layer Perceptron(은닉층 1개 이상)
  • 각 층(Layer)에 node가 여러 개 포함되어 있다.
  •  

출처: https://www.semanticscholar.org/paper/Neural-forecasting%3A-Introduction-and-literature-Benidis-Rangapuram/9f3eef3283597f9e5199897e8db6334b2d64a614/figure/2

 

인공신경망의 학습이란?

  • 입력에 대한 올바른 출력이 나오도록 가중치 Weight를 조절하는 것
    • 파라미터: 가중치 (Weight) -> 입력이 출력에 미치는 영향
    • 하이퍼 파라미터: 학습률(leaning rate), 배치 크기(batch size), hidden layer 수, hiden unit(node) 수

인공신경망의 학습 방법

: 다음과 같은 과정을 n번 반복하여 가장 오류가 적게 발생하는 parameter를 찾도록 학습한다.

1. Forward Propagation(순전파)

: 입력 데이터를 기반으로 신경망을 따라 입력층(Input Layer)부터 출력층(Output Layer)까지 차례대로 변수들을 계산하고 추론(Inference) 한 결과

  • 모든 weight의 임의값 초기화
  • 모델에 입력값(X)을 입력하여 순전파 연산 진행
  • 입력(X), weight를 사용하여 예측 값 구하기
  • 예측 값을 활성화 함수로 전달
  • 최종 활성화 함수에서 출력값 y^ 계산

2 손실/비용/에러 구하기

  • 예측 값 y^과 실제 값 y을 손실함수에 적용하여 오차를 구함

3. Backward Propagation

: 순전파 과정을 통해 나온 오차를 활용하여 각 layer의 가중치(weight)와 편향(bias)을 최적화하는 단계

  • 손실함수에 대한 기울기 미분이 발생(연쇄 법칙Chain Rule 사용: 미분과 관련)
  • 손실 함수 값을 최소화하는 파라미터를 구하는 과정인 최적화(Optimization)를 거쳐 오차를 최소로 줄일 수 있는 weight와 bias 업데이트

퍼셉트론(Perceptron)의 구조

: 생물학적 뇌의 뉴런을 모방하여 만든 인공신경망의 기본 단위

1. weighted sum

  • 입력값과 가중치 곱들의 전체 합 + bias

    $X_1W_1 + X_2W_2 + X_3W_3 ... +X_nW_n + bias$

2. Output = Activation Function(weighted sum)

  • 입력 신호의 총합을 출력 신호로 변환하는 단계
  • 활성화 함수는 네트워크 모델링 기능에 비선형성을 갖도록 함
    • Sigmoid
    • Hyperbolid Tangent
    • Relu
    • Leaky Relu
    • softmax

=> (X값이 -∞ ~ +∞을 가질 때 y값이 -∞ ~ +∞값을 갖지 않도록 조절하는 역할)

※ Activation Function의 Vanishing Gradient(기울기 소실) 문제

  • 다층신경망에서 역전파 알고리즘이 입력층으로 갈수록 Gradient가 점점 작아져 0에 수렴하여, weight가 업데이트되지 않는 현상
  • Activation Function으로 sigmoid 함수를 사용할 때 발생

출처: https://www.simplilearn.com/tutorials/deep-learning-tutorial/perceptron

Activation Function

  • 입력 신호의 총합을 출력 신호로 변환하는 함수
  • 가중치 값을 학습할 때 에러가 적게 나도록 돕는 역할
  • 풀고자 하는 문제에 따라 활성화 함수의 선택이 다르며 Layer마다 다르게 사용할 수 있다.
    • 항등함수
      • y = x
    • 계단함수
      • y = if x >= 0: 1 x < 0: 0
    • 부호함수
      • y = if x >= 0: +1 x < 0: -1
    • Sigmoid
      • $1 \over {1 + e{-x}}$
      • Logistic 함수라 불리기도 함
      • 선형적인 MLP에서 비선형 값을 얻기 위해 사용
    • Hyperbolid Tangent
      • sigmoid의 중심값을 0으로 이동한 것
      • -1 <= x <= 1
    • Relu
      • y = if x >= 0 : 1 x < 0 : 0
      • 학습이 빠르고 자원 소모가 적은 일반적인 함수
      • x < 0인 경우 Dying Relu 현상이 발생
    • Leaky Relu
      • x < 0인 경우 Dying Relu 현상이 발생을 보완한 방법
    • softmax
      • $exp(x_i) \over \sum_j{{exp(x_j)}}$
      • 각 클래스에 속할 확률 값을 출력
      • 모든 출력의 합이 1이 되도록 output을 정규화한 것
      • sigmoid의 일반화된 형태로 각 범주에 속할 사후확률을 제공하는 함수

※ 활성화 함수로 비선형 함수를 사용해야 하는 이유

활성화 함수에는 크게 이진 활성화 함수, 선형 활성화 함수, 비선형 활성화 함수가 있지만, 활성화 함수로 비선형 함수를 사용하는 것이 일반적이다.

  • 은닉층에서 이진 활성화 함수를 활성화 함수로 사용할 경우
    • 다중 출력이 불가능하다는 문제점이 존재한다.
  • 은닉층에서 선형 활성화 함수를 활성화 함수로 사용할 경우
    • 역전파가 불가능하고 층(layer)을 깊게 쌓는 의미가 사라진다는 문제점이 존재한다.

Loss Function(Cost Function)

LOSS/COST: 실제 값과 예측 값의 차이로 오차를 구하는 기준을 의미, 손실함수의 궁극적인 목표는 최소가 되도록 하는 weight와 bias를 구하고자 한다.

1. Binary crossentropy(이항 교차 엔트로피)

  •  클래스가 2개인 이진 분류기를 사용할 때 사용되는 손실 함수
  • 활성화 함수로 Sigmoid를 사용

2. Categorical crossentropy(범주형 교차 엔트로피)

  • 출력을 클래스 소속 확률에 대한 예측으로 이애할 수 있는 문제에서 사용(클래스가 2개 이상인 멀티 클래스인 경우)
  • 활성화 함수로 Softmax 사용
  • Lable이 One_Hot_Encoding 형식으로 제공될 때 사용된다.

3. Sparse Categorical crossentropy(범주형 교차 엔트로피)

  • 출력을 클래스 소속 확률에 대한 예측으로 이애할 수 있는 문제에서 사용(클래스가 2개 이상인 멀티 클래스인 경우)
  • 활성화 함수로 Softmax 사용
  • Lable이 Integer_Encoding 형식으로 제공될 때 사용된다.

4. MSE

  • 타겟이 연속값인 회귀 문제에서 사용하는 손실함수
  • MAE, RMSE등 다른 회귀 손실 함수도 사용 가능하다.

최적화, Optimization

: 손실함수를 최소화할 수 있는 파라미터를 찾는 것. 즉, 딥러닝 학습단계에서 최적의 파라미터를 찾아내는 것.(최적 = 손실함수의 최소)

손실함수를 최소화할 수 있는 최적의 weight와 bias를 찾는 것.

하지만, 현실을 반영하는 함수는 매우 복잡한 형태이기 때문에 여러 문제점이 있다.

  • Learning rate 및 Gradient 부분 값을 적절하게 수정하여 학습 속도를 높이고 안정적인 결과를 얻도록 한다.
  • Plateau(평지) 문제를 해결
  • zig zag 현상을 해결: w 갱신 행렬의 부호가 동일하여 w 목표점을 지그재그로 찾아가는 현상(미분 값이 양수인 sigmoid, relu 사용시 발생)
  • 극소점(Local minimum)을 찾은 뒤 더 이상 학습하지 않는 문제 해결

종류

  1. Gradient 수정: Momentum, NAG
  2. Learning rate 수정: Adagrad, Adadelta, RMSProp
  3. Gradient, Learning rate 수정: Adam, Nadam

인공신경망의 장단점

  • 장점
    • 변수의 수가 많거나 입/출력변수 간 복잡한 비선형 관계에 유용
    • 이상치에 대해 민감하지 않다.
    • 입출력변수가 연속형, 이산형인 경우 모두 처리 가능
  • 단점
    • 결과 해석이 쉽지 않다.(모델 내에서 feature selection과 모델링이 이뤄짐)
    • 모델이 복잡하면 시간이 많이 소모되고 과적합에 빠지기 쉬움
    • 데이터를 정규화하지 않으면 Local minimum에 빠지기 쉬움
 
 
Comments