[ML] 딥러닝의 깊이 있는 이해를 위한 머신러닝 13-2 (K-MOOC)

daeungdaeung·2021년 8월 27일
0

Machine-Learning

목록 보기
24/25

학습내용

  • DNN 학습 진행 방법

  • 각 구성요소에 대한 학습 방법

학습목표

  • DNN 의 학습 방법 이해

  • 각 구성요소의 학습 방법이 간단함을 이해

DNN

  • Supervised classification 딥러닝

    • Cross-entropy Loss 를 많이 활용

      • Cross-entropy Loss

        • fCE(y~,y,x)=c=1Ncyc~logp(yc^x,y)f_{CE}(\tilde{\bold{y}}, \bold{y}, \bold{x}) = -\sum_{c=1}^{N_c} \tilde{y_c} \text{log}p(\hat{y_c} | \bold{x}, \bold{y})

        • y~\tilde{\vec{y}}: One-hot vector of label (GT)

    • Softmax 로 각각의 출력 값이 확률이 도도록 변경

      • Softmax: p(yi)=eyij=1Neyjp(y_i) = \frac{e^{y_i}}{\sum_{j=1}^{N} e^{y_j}}
  • Gradient Descent 방법론

    1. 랜덤하게 파라미터 지정

      • Gaussian random (Xavier's initialization)
    2. loss function 기울기 값을 활용해서 반복적으로 파라미터 w 값 업데이트

      • wLtfCE(y~,y,x)=wLt(yc=GT)=wLt(wctTxL1)wLtfCE(y~,y,x)=xL1\nabla_{w^t_L}f_{CE}(\tilde{\bold{y}}, \bold{y}, \bold{x}) = \nabla_{w^t_L}(-y_{c=GT}) = \nabla_{w_L^t}(-{\bold{w}_{c}^{t}}^T \bold{x}_{L-1}) \rarr \nabla_{w^t_L}f_{CE}(\tilde{y}, y, x) = -x_{L-1}

      • 마지막 layer 는 위처럼 loss를 기준으로 계산할 수 있지만 hidden layer 는 어떻게 해야 할까?

      • 마지막 layer 를 제외한 layer 들은 타겟 값이 있지만 모름 (Latent Feature 혹은 Hidden feature 라고 불림)

      • 이를 해결하기 위해 Chain Rule 을 활용

    3. 더 이상 loss 값이 변하지 않는다면 학습 멈춤

  • Least Square Error 를 사용하지 않는 이유?

    • Gradient가 0이 되는 부분에서 더 이상 업데이트가 일어나지 않습니다.

    • 따라서 Cross Entropy 를 사용합니다. (지속적 업데이트 가능)

  • 딥러닝 3개의 키포인트

    • GPU 를 통한 병렬 처리

    • 수많은 데이터 필요 (빅데이터)

    • Xavier's Initialization (gradient vanishing 혹은 exploding 문제 해결)

Chain Rule

wL2tfCE(y~,y,x)=fCEwL2t=xL2twL2txL1txL2tfCExL1t\nabla_{w_{L-2}^t} f_{CE} (\tilde{\bold{y}}, \bold{y}, \bold{x}) = \frac{\partial f_{CE}}{\partial \bold{w}^t_{L-2}} = \frac{\partial \bold{x}^t_{L-2}}{\partial \bold{w}^t_{L-2}} \frac{\partial \bold{x}^t_{L-1}}{\partial \bold{x}^t_{L-2}} \frac{\partial f_{CE}}{\partial \bold{x}^t_{L-1}}

fCExL1t=xL1(wctxL1)=wct\frac{\partial f_{CE}}{\partial \bold{x}^t_{L-1}} = \frac{\partial}{\partial \bold{x}_{L-1}}(-\bold{w}^t_c \bold{x}_{L-1}) = -\bold{w}^t_c

xL1xL2=xL2(h(wxL2t))=xL2t(wxL2t)h(wxL2t)wxL2t=wh(wxL2t)wxL2t\frac{\partial \bold{x}_{L-1}}{\partial \bold{x}_{L-2}} = \frac{\partial}{\partial \bold{x}_{L-2}}(h(\bold{w}\bold{x}^t_{L-2})) = \frac{\partial}{\partial \bold{x}^t_{L-2}}(\bold{w}\bold{x}^t_{L-2})\frac{\partial h(\bold{w}\bold{x}^t_{L-2})}{\partial \bold{w}\bold{x}^t_{L-2}} = \bold{w} \frac{\partial h(\bold{w}\bold{x}^t_{L-2})}{\partial \bold{w}\bold{x}^t_{L-2}}

xL2twL2t=wL2t(wL2txL3t)=xL3t\frac{\partial \bold{x}_{L-2}^t}{\partial \bold{w}_{L-2}^t} = \frac{\partial}{\partial \bold{w}^t_{L-2}}(\bold{w}^t_{L-2}\bold{x}^t_{L-3}) = \bold{x}^t_{L-3}

profile
개발자가 되고싶읍니다...

0개의 댓글