Performance evaluation


training set으로 evaluation을 한다면 100% accuracy를 가지게 될 것입니다.


이는 공정하지 않습니다.


보통 data set의 70%정도를 training set으로 학습에 이용하고


나머지 30% 정도를 test set으로 설정하여 evaluation을 수행합니다.



Training, validation and test sets


learning rate와 regularization strength를 tuning할 필요성이 있습니다.


이럴 경우 위의 traning set을 완전한 training set과 validation set으로 다시 나눕니다.


완전한 training set을 가지고 model을 학습을 시키고


validation set을 가지고 learning rate와 regularization strength를 tuning하게 됩니다.


이후 tuning을 마친 model을 가지고 


test set에서 evaluation을 수행하게 됩니다.



Accuracy


test set의 실제값(lable)과 model이 예측한 값이 얼마나 일치하는지를 계산합니다.



출처


Learning rate


learning rate가 너무 크다면 overshooting이 일어날 수 있습니다.


learning rate가 너무 작다면 학습 시간이 오래 걸리며 local minimum에 빠질 수도 있습니다.


적당한 learning rate는 학습의 중요한 요소입니다.


cost function값을 관찰하면서 실험적으로 learning rate를 정할 수 있습니다.



Data(x) preprocessing for gradient descent


data(x)의 데이터들 사이의 값의 차이가 심한 경우 overshooting이 일어날 수 있습니다.


그렇기 때문에 data에 대해 normalize를 할 필요가 있습니다.


Standardization

여기서 뮤는 평균, 시그마는 분산을 나타냅니다.



Overfitting


학습 데이터에 과도하게 fitting된 경우


overfitting을 줄일 수 있는 방법

  • training data를 늘린다
  • feature의 수를 줄인다
  • regularization(일반화) 시킨다



Regularization


weight를 너무 큰 값으로 가지지 않게 합니다.


cost function 이후에 regularization term을 추가합니다.


여기서 W는 w의 벡터로 각각의 element에 제곱의 합의 값이 작아질 수 있도록 cost function을 만듭니다.


여기서 람다는 regularization strength로 상수입니다.


0으로 둔다면 regularization을 사용하지 않겠다 라는 의미이고


1로 둔다면 regularization을 중요하게 생각하겠다 라는 의미입니다.


0.001이면 크게 중요하게 생각하지 않겠다 라는 의미입니다.


사용자가 정의할 수 있습니다.



출처


binary classification을 이용하여 여러 개의 class를 판별합니다.


3개의 class를 판별하는 binary classifier가 있습니다.


이 부분을 matrix multiplication 성질을 이용하여 간결하게 바꿔줍니다.


예측값을 0~1로 표현해주는 sigmoid function이 보이지 않습니다.


softmax는 예측값을 0~1로 표현해주는것 뿐만 아니라


예측값들을 다 더했을 경우 합이 1이 되는 확률로 나타내줍니다.


확률로 나타난 값들을 'one-hot encoding'을 통해 0과 1로 표현해줍니다.


이로써 hypothesis는 완성됐습니다.


cost function은 cross-entropy라는 algorithm을 이용합니다.


여기서 L은 실제 lable, S는 예측값 입니다.

는 softmax로 인해 0~1사이의 값을 가지게 됩니다. 가 1에 가까울수록 -log함수로 인해 0에 가까워지게 됩니다. 가 0에 가까울수록 -log함수로 인해 값이 커지게 됩니다.


예측값과 실제 lable이 일치하는 경우 cost function 값이 낮아지게 되고,

예측값과 실제 label이 다른 경우 cost function 값이 높아지게 됩니다. 



Logistic cost VS cross entropy


이 둘은 실제로 같습니다.


x(예측값)는 S이고, y(실제 lable)는 L입니다.


logistic cost에서 y가 1인 경우 -log(H(x))가 되며,

 가 1인 경우 가 되므로 동일합니다.


여러 개의 training set이 있을 경우 아래와 같이 표현할 수 있습니다.


cost function

여기서 i는 training set을 나타냅니다.


이 cost or loss function을 최소화하는 값, w벡터를 찾아내면 됩니다.



cost function을 미분함으로써 update할 수 있습니다.



출처


cost function에서 global minimun을 찾고 local minimun에 빠지지 않기 위함입니다.


New cost function for logistic



sigmoid function의 exponential term을 log를 이용하여 상쇄합니다.


위의 cost function을 이용하면,


실제 lable이 y=1이고 예측값이 H(x)=1로 맞았을 경우, -log(1)로 cost function 값이 0이 됩니다.

실제 lable이 y=1이고 예측값이 H(x)=0으로 틀렸을 경우, -log(0)로 cost function 값이 커지게 됩니다.


실제 lable이 y=0이고 예측값이 H(x)=0으로 맞았을 경우, -log(1-0)로 cost function 값이 0이 됩니다.

실제 lable이 y=0이고 예측값이 H(x)=1로 틀렸을 경우, -log(1-1)로 cost function 값이 커지게 됩니다.


y=1인 경우와 y=0인 경우의 if condition을 위의 수식을 이용하여 상쇄합니다.


y=1인 경우,

두 번째 term이 없어집니다.


y=0인 경우,

첫 번째 term이 없어집니다.



Minimize cost - Gradient decent algorithm


cost function의 기울기(미분)을 구해서 W를 update합니다.

는 learning rate입니다.



출처


Binary Classification or 0, 1 encoding


Spam Detection: Spam(0) or Ham(1)

Facebook feed: show(0) or hide(1)

Credit Card Faudulent Transaction detection: legitimate(0) or fraud(1)

Radiology: Malignant(0) or Benign tumor(1)

Finance: sell(0) or buy(1)


linear regression을 0과 1사이로 표현


logistic function or sigmoid function


z값이 커지면 g(z)값은 1에 가까워지고,

z값이 작아지면 g(z)값은 0에 가까워집니다.


Linear regression Hypothesis

H(X)=WX에서

logsistic function 추가


z=WX

H(X)=g(z)


Logistic Hypothesis


Transpose는 자료 행렬 형태에 따라 쓰입니다.



출처


+ Recent posts