티스토리 뷰

image

> X(이미지)와 W(가중치)를 통해 Y(label)를 예측하는 것이 주 목적,

> Loss function을 통해서 가중치 W를 조절하고 Loss를 최소화하는 정확한 모델을 만든다. (최적화 과정)


Multiclass SVM loss

image

> Max(True category - False category + 1(margin)) , margin 1은 임의로 설정 한 값이다.


image

Q1) car score가 조금 변하게 되면 loss에는 무슨 변화가 생기게 될까요?

> car의 score는 매우 높기 때문에 스코어를 바꾸더라도, loss값은 변하지 않는다.


Q2) loss의 최솟값은 0, 최대값은 무한대이다.


Q3) 스코어 S들이 모두 0에 가까울 때 Multiclass SVM의 Loss는?

> class수 – 1 ex) 3 - 1 = 2, 스코어를 0으로 맞추면 debug할 때 유용하다.


Q4) 정답 class를 포함해서 loss를 구하게 된다면?

> Loss가 1씩 증가한다.


Q5) loss function을 구할 때 sum 대신 mean을 사용한다면??

> 답에는 큰 영향을 미치지 않는다.


***Loss function을 0으로 만들어 줄 수 있는 W(가중치)는 unique하지 않으며 여러 개가 될 수 있다.


Regularization

image

> 파란색 선은 train data를 완벽하기 분류하기 위해서 그려진 선, overfitting된 모습을 보이고 있다. test data의 성능은 좋지 못한다, 좋은 모델은 아니다.

> Regularization항을 추가하여서 test data에서도 잘 동작 할 수 있게 만들어준다.

> Regularization 항은 모델이 복잡해지지 않도록 하기 위해서 soft penalty를 추가한다.


image

> L2 Regularization은 w2를 선호, norm이 더 작다. X의 모든 요소가 영향을 주었으면 한다.

> L1 Regularization은 w1를 선호, 0이 다수 포함되어있는 sparse한 모델을 선호한다.


Softmax classifier

image

> softmax함수를 이용해서 Class별 확률 분포를 계산한다. 확률범위는 0~1, 모든 확률의 합은 1

> softmax함수에 log를 씌워준다. Log를 최대화하는 것이 확률값을 최대화시키는 것 보다 쉽기 때문이다.

> 정답class에 해당하는 class의 확률을 1에 가깝게 하여서 loss를 0에 가깝게 해준다. (–log1 = 0)


image

Q1) Loss의 최대값, 최소값은? (0, ∞)

Q2) 스코어 S들이 모두 0에 가까울 때 softmax의 Loss는? –log(1/C) = logC

Softmax vs SVM

SVM: 둔감하다. 일정 선을 넘기만 하면 더 이상 성능 개선에 신경 쓰지 않는다.

Softmax: 민감하다. 정답class의 score를 높이려는 노력을 한다. 성능을 항상 더 좋게 만든다.


Optimization

image

  1. Random search : W들을 전부 모아 놓고 Loss를 계산해서 어떤 W가 좋은지를 살펴본다. 권장하는 방법은 아님

image

  1. Follow the slope : function를 미분하여서 Loss값을 줄여줄 수 있는 최적의 gradient을 찾아서 Loss값을 줄여준다.

    (Analytic gradient) <-> Numerical gradient : 극한 식을 이용하여서 point를 조금 이동시킬 때 마다 gradient 하나하나 구해서 최적 값을 찾는 과정


Stochastic Gradient Descent (SGD)

image

> Data가 많아지면 전체 데이터 loss를 구하는 과정은 계산이 오래 걸린다.(연산량이 많아서 느려진다.)

> 전체 dataset의 gradient와 loss를 계산하기 보다 Minibatch라는 작은 트레이닝 샘플 집합으로 나눠서 학습하는 방법, Minibatch는 2의 승수(32, 64, 128…..)


스터디 질문 모음


1) softmax의 수식에 왜 log와 지수를 사용하는지?
> 지수함수를 사용했기 때문에 큰 값은 상대적 커지게 되고 작은 값은 상대적으로 작아진다. 또한 softmax함수를 거친 K개 값의 합은 1이 되기 때문에 각각의 값들은 상대적인 중요도로 나타낼 수 있다. (딥러닝의 마지막 출력단에 사용하는 이유)


2) Regularization - 왜 고차다항식을 상쇄하도록 하는지?
> Regularization term 앞의 감마값이 커지게 되면 Regularization term이 y값에 큰 영향을 미치게 되어 계수값들을 작게해주는 결과가 나타나게 된다. 그로인해 다항식의 차수가 줄어든다.


3) 왜 L1 regularization- sparse한 W를 선호, L2 - small norm한 W를 선호?
>L1은 W값이 0이 되는 부분이 발생(sparse), L2는W값이 0으로 점근적으로 다가가는(0이 되지는 않는) 양상을 띄기 때문에.


<참고자료>

[1] https://bskyvision.com/427

[2] https://ratsgo.github.io/machine%20learning/2017/05/22/RLR/

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함