Deep Learning 

  • Data
  • Model
  • Loss Function
  • Optimizer (Algorithm)

Loss Function

  • Regression Task 
    • MSE(Mean Squared Error) 평균제곱오차
      • 선형문제에서는 타겟이 하나이기 때문에 평균제곱오차를 활용한 y 값과 predict y 값의 차로 loss를 계산

  • Classification Task 
    •  CE(Cross Enthrophy)
      • Classificaiton task에서는 라벨이 붙은 타겟이 3개 이상일 경우에 CE를 사용한다.
      • 라벨이 2개일 경우에는 Binary Cross Enthrothy를 loss 로 사용 가능
  • Probabilistic Task
    • MLE(Maximum Likelihood Estimation), 최대 우도법

 

Optimization

용어정리

  • Generalization(일반화)
    • 학습된 모델이 다른 새로운 데이터에서도 잘 작동한도록 하는 것이 일반화이다.
    • 학습이 많이 할 수록 training error는 줄어드는 반면 test error는 줄어들다가 다시 특정 시점 이후로는 늘어난다.
      • Why? 학습하고 있는 데이터에 대해서 Over-fitting이 발생
    • traing error 와 test error의 차이를 generalization gap이라고 한다.

 

출처 https://data-science-hi.tistory.com/96

  • Under-fitting vs Over-fitting
    • Over-fitting = 모델이 학습 데이터에 대해서 학습을 통해 training error는 최대한으로 줄였으나 test error가 늘어난 상태 
    • Under-fitting = 모델에 대해서 학습이 부족거나 데이터가 부족해서 학습이 잘 안된 상태
  • Cross-validation
  • Bias-variance trade-off

https://nvsyashwanth.github.io/machinelearningmaster/bias-variance/

  • Bootstrapping
  • Bagging and boosting

http://incredible.ai/machine-learning/2015/10/25/Bias-Variance-Tradeoff-Ensemble/

 

 

 


 

피어세션 중 학습내용에 대한 질문들

 

  1. 배치 정규화가 무엇이고 해야하는 이유는?
    • 학습 과정에서 각 배치 단위 별로 데이터가 다양한 분포를 가지더라도 각 배치별로 평균과 분산을 이용해 정규화하는 것이다.
      • 평균 0, 표준 편차 1로 데이터의 분포 조정
    • batch normalizatio을 왜 해야 하는가?
      • 일단 배치 단위로 나눠서 학습이 필요한 이유 :
        • 학습 데이터를 전부 넣어서 gradient를 구한다면 대용량의 데이터를 한번에 처리하지 못한다. 그래서 배치 단위로 나눠서 학습을 진행하는 것이 일반적이다.
      • 이제 여기서 배치 단위로 학습을 하게 되면 internal covariant shift 문제가 발생한다.
        • internal covariant shift : 학습 과정에서 계층 별로 입력의 데이터 분포가 달라지는 현상이다. → 즉 배치 간의 데이터가 상이하다.
      • 또한 small learning rate에서 좀 더 자유로워지고, reguularization effect까지 있어 오버피팅 문제를 완화시킬 수 있다.
    • 결론 : 대용량의 데이터를 학습하기 위해서 배치 단위로 나눠서 학습하는 것이 일반적인데, 그냥 배치 단위로 학습을 진행하게 되면 배치 간의 데이터가 상이해지는 문제점이 발생하여 배치별로 정규화 작업을 진행하는 batch normalization기법을 활용해 이를 해결한다.
  2. Regression Task와 Classification Task의 loss function이 다른 이유는 무엇인가요? 

Regression Task는 target이 y인 1차원의 값이기 때문에 MSE(Mean Squared Error, 평균제곱오차) 를 사용한다.n=2 일 경우에는 Binary Cross Entropy Loss 를 사용할 수 있다. 하지만 label이 3개 이상인 경우에는 CE를 사용한다.

Classification Task에서는 CE(Cross Entropy) 를 사용하는데 이 이유는 target or label이 n(n≥1)개이기 때문이다. 즉, n 차원의 벡터를 대상으로 loss function을 계산하기 때문에 주로 사용된다.

 

 

+ Recent posts