loss function

손실함수?

내 모델을 통해 생성된 결과 값과 실제로 발생하기를 원했던 값간의 차이를 계산하는 함수. 목적에 따라 여러 종류의 함수가 존재할 수 있다.

1. Mean Squared Error

(관찰되지 않은 양을 추정하기 위한 절차에 대한) mean squred error(MSE) 또는 mean squared deviation(MSD)는 오류 또는 편차의 제곱의 평균을 측정한다.
즉, 추정한 값과 기대했던 값간의 차이를 측정한다. MSE는 리스크 함수이며, 제곱된 에러 값 또는 이차 손실에 대응된다.
차이는 임의성 또는 측정기가 좀더 정확하게 측정하지 못해서 발생한 정보의 누락에 의해 발생한다.

\operatorname {MSE}={\frac {1}{n}}\sum _{{i=1}}^{n}({\hat {Y_{i}}}-Y_{i})^{2}

값이 적을 수록 원본과 추측한 값의 차이가 적어지는 것으로
추측한 정확성이 높아 지는 것을 의미한다.
MAE 에 비해 제곱값이므로 차이에 따는 값 변화가 커서 눈에 잘 띄는 점이 좋을 것 같음.

 

2. Mean Absolute Error

통계에서 mean absoulte error(MAE)는 결과값과 예측값이 얼마나 비슷한지를 평가하는 함수이다.
mean absolute error의 식은 다음과 같다.

{\mathrm {MAE}}={\frac {1}{n}}\sum _{{i=1}}^{n}\left|f_{i}-y_{i}\right|={\frac {1}{n}}\sum _{{i=1}}^{n}\left|e_{i}\right|.

3. Mean Absolute Percentage Error

mean absoulte percentage error(MAPE) 또는 mean absoulte percentage deviation(MAPD)는 통계에서 예측치의 정확성의 측정법이다.
정확도는 보통 퍼센트로 표현되고 다음과 같은 식으로 표현된다.

{\displaystyle {\mbox{M}}={\frac {100}{n}}\sum _{t=1}^{n}\left|{\frac {A_{t}-F_{t}}{A_{t}}}\right|,}

4. Mean Squared Logarithmic Error

 

5. Hinge

V(f({\vec {x}}),y)=\max(0,1-yf({\vec {x}}))=|1-yf({\vec {x}})|_{{+}}.

6. Categorical Cross Entropy

카테고리 문제에서 자주 사용하는 로스 함수로, 실제 라벨과 예측 라벨의 두 확률 분포 사이 유사성을 측정합니다. 여기서 예측 라벨은 보통 소프트맥스 방법으로 계산합니다.
Also known as multiclass logloss. Note: using this objective requires that your labels are binary arrays of shape (nb_samples, nb_classes).

7. Sparse Categorical Cross Entropy

As above but accepts sparse labels. Note: this objective still requires that your labels have the same number of dimensions as your outputs; you may need to add a length-1 dimension to the shape of your labels, e.g with np.expand_dims(y, -1).

8. Binary Categorical Cross Entropy

Also known as logloss.

9. Kullback Leibler Divergence

쿨백-라이블러 발산(Kullback–Leibler divergence, KLD)은 두 확률분포의 차이를 계산하는 데에 사용하는 함수로, 어떤 이상적인 분포에 대해, 그 분포를 근사하는 다른 분포를 사용해 샘플링을 한다면 발생할 수 있는 정보 엔트로피 차이를 계산한다. 상대 엔트로피(relative entropy), 정보 획득량(information gain), 인포메이션 다이버전스(information divergence)라고도 한다. 정보이론에서는 상대 엔트로피, 기계학습의 결정 트리에서는 정보 획득량을 주로 사용한다.

쿨백-라이블러 발산은 비대칭으로, 두 값의 위치를 바꾸면 함수값도 달라진다. 따라서 이 함수는 거리 함수는 아니다.

두 확률변수에 대한 확률분포 {\displaystyle P,Q}P,Q가 있을 때, 두 분포의 쿨백-라이블러 발산은 다음과 같이 정의된다.

  • 이산확률변수의 경우
    D_{{{\mathrm {KL}}}}(P\|Q)=\sum _{i}P(i)\log {\frac {P(i)}{Q(i)}}
  • 연속확률변수의 경우
    D_{{{\mathrm {KL}}}}(P\|Q)=\int _{{-\infty }}^{\infty }p(x)\log {\frac {p(x)}{q(x)}}dx
  • 여기에서 p,q는 두 확률분포의 확률 밀도 함수를 의미한다.

10. Poisson Loss

Mean of (predictions – targets * log(predictions))

 

11. Cosine Proximity

The opposite (negative) of the mean cosine proximity between predictions and targets.

 

 

hyper parameters (머신러닝)

Hyper Parameter란

신경망 학습을 통해서 튜닝 또는 최적화 해야하는 주변수가 아니라,
학습 진도율이나 일반화 변수처럼,
사람들이 선험적 지식으로 설정을 하거나 또는 외부 모델 메커니즘을 통해 자동으로 설정이 되는 변수를 말한다.

사례

  1. Learning Rate

    학습진도율은 “gradient”의 방향으로 얼마나 빠르게 이동을 할 것인지를 결정한다. 학습진도율이 너무 작으면 학습의 속도가 너무 느리게 되고, 반대로 너무 크면 학습이 안되고 진동할 수 있다. 학습 진도율도 학습 대상이나 망에 따라 적절히 조절해야한다.

  2. Cost function

    일반적인 최소자승법을 사용할수 도 있고, cross-entropy 함수를 사용할 수도 있다.

  3. Regularization parameter

    overfitting 문제를 피하기 위해 L1이나 L2 regularization 방법을 사용할 수도 있고 거기서 사용하는 일반화 변수는 weight decay의 속도를 조절하기 위한 용도로 사용할 수가 있다.

  4. Mini-batch 크기

    Mini-batch크기가 큰 경우 병렬연산 구조를 사용할 때 효과적일 수 있으며, 크기가 작으면 더 많은 update를 할 수가 있다.

  5. Training 반복횟수

    학습의 조기 종료를 결정하는 변수가 된다.

  6. Hidden Unit의 개수

    Hidden Layer가 많아질수록 특정 훈련 데이터에 더 최적화 시킬수가 있다. 또한 모든 hidden layer의 뉴런의 개수를 동일하게 유지하는 것이 같은 hidden layer의 개수에 뉴런의 개수를 가변적으로 하는 것보다 효과적이다. 또한 첫번째 hidden layer에 있는 뉴런의 개수가 input layer에 있는 뉴런의 개수보다 큰것이 효과적인 경우가 많다.

  7. 가중치 초기화(Weight initialization)

    바이어스는 일반적으로 0으로 초기화가 만히 된다. 하지만 가중치의 경우는 초기화가 하습결과에 큰 영향을 미치기 때문에 주의가 필요하다. 가중치는 보통 [-r, r]의 범위를 가진다. 이때 r은 input layer에 있는 뉴런의 개수 제곱의 역수가 된다. 가령 뉴런의 개수가 6이라면, [-1/36, 1/36] 범위 내에서 무작위로 설정을 한다.

 

이 외에도 많다.