Neural Network / Cost Function / Gradient Descent

임정민·2024년 5월 18일
1

딥러닝 개념

목록 보기
3/13
post-thumbnail

*본 게시글은 유튜브 '김성범[ 교수 / 산업경영공학부 ]' [ 핵심 머신러닝 ]뉴럴네트워크모델 1 (구조, 비용함수, 경사하강법) 자료를 참고한 점임을 알립니다.

Neural Network

1. 선형 회귀 모델

  • 입력변수(xx)의 선형 결합을 통해 출력변수(yy)를 표현
  • 출력변수(yy)는 실수의 범위 내에서 연속적인 값 => '연속형'

2. 로지스틱 회귀모델

  • 입력변수(xx)의 선형 결합값을 로지스틱 함수에 입력하여 비선형 결합(σ\sigma)을 통해 출력변수(yy)를 표현

  • 출력변수(yy)는 특정 범주 및 카테고리 중 하나의 값 => '범주형'

  • 이진 범주형 : 0 또는 1 (True or False)

  • 다중 범주형 : 맑음 또는 흐림 또는 비 또는 눈

  • 그림으로 표현

3. 다중 퍼셉트론(Multi-Layer Perceptron)

  • 입력층 : 입력변수의 수 = 입력노드의 수
  • 은닉층
  • 출력층 : 출력노드의 수 = 출력변수의 범주 개수(범주형), 출력 변수의 갯수(연속형)
  • MLP(Multi-Layer Perceptron) == ANN(Artifical Nerural Networks)

4. 선형 회귀 / 로지스틱 회귀 / 뉴럴 네트워크 비교

  • 선형 회귀 모델

    f(x)=w0+w1X1+w2X2f(x) = w_{0} + w_{1}X_{1} + w_{2}X_{2}
  • 로지스틱 회귀 모델

    f(x)=11+e(w0+w1X1+w2X2)f(x) = \frac{1}{1 + e^{-(w_0 + w_1X_1 + w_2X_2)}}
  • 뉴럴 네트워크

    f(x)=11+e(z01+z11(11+e(w01+w11X1+w21X2))+z21(11+e(w02+w12X1+w22X2)))f(x) = \frac{1}{1 + e^ {-\left( z_{01} + z_{11} \left( \frac{1}{1 + e^{-(w_{01} + w_{11}X_{1} + w_{21}X_{2})}} \right) + z_{21} \left( \frac{1}{1 + e^{-(w_{02} + w_{12}X_{1} + w_{22}X_{2})}} \right) \right) }}

5. 활성화 함수(Activation Function)

6. 비용 함수(Cost Function)

  • MSE
    L=1ni=1n(yiy^i)2L = \frac{1}{n} \sum_{i=1}^{n} (y_i - \hat{y}_i)^2
  • CrossEntropy
    L=itilogpiL = - \sum_{i} t_i \log p_i
    ex) 3 Classes에 대해 계산

i=14tilogpi=[ln(0.3)+ln(0.8)+ln(0.6)+ln(0.4)]=2.85-\sum_{i=1}^{4} t_i \log p_i = -[\ln(0.3) + \ln(0.8) + \ln(0.6) + \ln(0.4)] = 2.85
CrossEntropy값을낮추는wegiht,bias을탐색하는과정이Training과정*\,CrossEntropy \,값을\,낮추는\,wegiht,\,bias을 탐색하는\,과정이\,Training \,과정

7. 경사하강법 (Gradient Descent)

  • Gradient Descent Method: First-Order Optimization Algorithm
  • Optimization : 함수의 최솟값 혹은 최댓값을 찾는 과정
  • Turning Points의 개수는 함수의 차수에 의해 결정
  • 모든 Turning Point가 최솟값 혹은 최댓값은 아님
  • 전역 최솟값(Global Minimum) : 최솟값들 중 가장 작은 최솟값
  • 지역 최솟값(Local Minimum) : 지역적인 최솟값

  • 경사하강법(Gradient Descent Method)

  • 비용함수를 최소화하는 weight들을 찾고자할 때 활용하는 방법론

  • gradient가 줄어드는 방향으로 weight들을 찾다보면 최솟값을 찾을 수 있음

    wτ+1=wταL(wτ)w_{\tau+1} = w_{\tau} - \alpha \cdot L'(w_{\tau})
    (wτ+1:이전weight,wτ:현재weight,learningrate:학습률(0<α<1))(w_{\tau+1} : 이전\,weight,\,w_{\tau} : 현재\,weight\,,\, learning \,rate : 학습률(0 < \alpha < 1))
  • wτw_{\tau}에 따라 wτ+1w_{\tau+1}가 증가 혹은 감소

참고 자료

profile
https://github.com/min731

0개의 댓글

관련 채용 정보