ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • (CS231n)Lecture 3: Loss Functions and Optimization
    CS/ML&DL 2025. 1. 2. 21:22
    반응형

    이번 강의에서는 손실함수와 손실함수를 최적화하는 방법에 대해서 다룬다

    이미지 선형 분류의 경우 가중치 W를 업데이트 해야한다.

    y = Wx + b 의 형태로 선형 분류가 구성되어 있을때 가중치 W 값의 갱신은 손실함수를 통해서 이루어질 수 있다.

     

    손실함수

    손실함수는 모델이 출력한 예측값과 실제값의 차이를 의미하며 여러가지 형태가 존재한다.

    우선 강의에서는 SVM 손실함수에 대해서 다룬다.

    다음과 같이 cat,car,frog 이미지가 있을때 SVM loss를 통해서 손실값을 구하면

    max(0, 예측값 - 정답레이블의 예측값 +1)의 형태로 구성된다.

    예를 들어, 고양이 사진에서는 5.1(car)-3.2(cat)+1 = 2.9 그리고 -1.7-3.2+1 에 대해 즉, frog에 대한 cat의 loss를 구하면 0이 된다.

    max함수이므로

    자동차를 예시로 계산할 경우 그 값은 0이 나온다. 왜냐하면 모델이 정확하게 자동차라고 예측하고 있기 때문이다.

    SVM loss를 구할떄는 정답 클래스의 loss는 구하지 않는다 왜냐하면 구해봤자 0이 나오기 때문이다.

    이러한 손실함수를 Hindge loss라고 한다. 정확하게 분류할 경우 손실함수가 0이 되고 그렇지 않을 경우는 loss가 증가한다.

     

    Q1.What happens to loss if car scores change a bit?

    저 이미지의 예시에서 car는 loss가 0으로 정확하게 예측하는 모습을 보이고 있다.

    질문 1번은 만약 저기서 모델이 car에 대한 scroe값을 더 높여서 나올 경우 손실함수는 어떻게 변화할 것인가인데

    손실함수는 똑같이 0이 나오므로 변화가 없다.

     

    Q2: what is the min/max possible loss?

    SVM loss는 최소값이 0 최대값이 무한대 값을 가진다.

     

    Q3: At initialization W is small so all s ≈ 0. What is the loss?

    만약 초기 W값을 매우 작은 0에 가까운 값으로 설정했을때 loss의 변화는 어떻게 되는가 인데

    이 경우 생각을 해보면 출력하는 score의 값또한 0에 가까운 값이 될 것이다 그러면 최종적으로 loss는 1에 가까워지고

    총 분류 레이블이 3개이므로 2를 출력할 것이다 (자기자신은 계산하지 않으니깐)

     

    Q4: What if the sum was over all classes? (including j = y_i)

    만약 정답 레이블에 대해서도 loss를 계산하면 1이 하나 더 더해진 Loss를 가진다.

     

    Q5: What if we used mean instead of sum?

    손실함수를 구할때 합 대신 평균을 내면 어떻게 되느냐 인데

    별 차이가 없다 그냥 손실함수가 rescale되기만 한다.

     

    Q6. 제곱을 사용하면?

    손실함수에 제곱을 사용하거나 선형함수를 사용하는 경우에 대한 질문이다.

    손실함수에 제곱을 사용하면 잘못 분류하는경우에 대한 패널티가 크게 증가하여 손실값이 커진다.

    즉, 제곱함수를 사용하냐 아니면 선형함수를 사용하냐는 개발자의 선택이다.

     

    이어서 이야기하는 내용은 정규화에 대한 이야기이다.

    만약 손실함수에 정규화를 적용하지 않은 경우 파란색 선처럼 훈련 데이터 셋에만 과적합이 되어서 훈련이 될 가능성이 있다.

    이후 초록색 박스라는 테스트 데이터 셋이 들어올 경우 예측을 제대로 못할 가능성이 존재한다.

    이를 방지하기 위해 R(W)를 적용하며 람다 값은 하이퍼파라미터로서 적절한 값을 설정해야한다.

     

    정규화는 여러가지가 존재한다.

    가장많이 사용하는 정규화는 L2 정규화이다.

    L2 정규화는 W 가중치의 제곱합을 더하는데
    만약 W 값이 커지게 되면 값이 크게 변화게 될 것이다. 그렇기에 모델은 적은 가중치 값을 가지는 것이 안정적일 것이다.

    그렇기에 가중치가 큰 경우 손실함수에 큰 값이 더해져서 모델이 적은 가중치 값을 가지도록 유도하게 된다.

    이러한 L2 정규화를 weight decay라고 부른다.

     

    반면 L1 정규화는 가중치를 희소행렬로 만들고자 한다.

    즉 W 가중치에 0이 많이 들어있도록 유도한다.

    이어서 소개하는 손실함수는 Softmax 손실함수이다.

    이전 손실함수의 경우 스코어 값에 별 의미를 두지 않았다.

    하지만 Softmax는 확률 값으로서 스코어에 의미를 둔다.

    스코어 값에 exp를 적용하고 평균으로 정규화한후 손실함수인 -log(x)에 값을 적용한다.

    -log를 넣으면 

    위 처럼 구성이 되고 x값이 작아지면 손실함수가 커지고 반대인 경우 손실함수가 작아진다.

     

    Optimization

    이어서 손실함수를 통해 최적의 W값을 구하고자한다.

    이를 최적화라고 하는데

    우선 Random Search 방식으로 랜덤하게 W값을 적용해가보면서 값을 찾아볼수 있다.

    하지만 이는 매우 비효율적이다.

     

    그 다음이 미분을 활용하는 것이다.

    Gradient Descent를 통해 방향을 구하고 해당 방향의 반대방향으로 이동하게 되면 손실이 최소화 되는 지점을 찾을 수가 있다.

    이때 step_size가 중요한데 이는 해당 방향으로 얼마나 이동할지를 의미한다.

    step_size가 작을 경우 천천히 이동하고 시간이 오래 걸리지만 만약 크게 설정할 경우 최소값을 지나치는 문제가 발생할 수 있다.

    이것을 학습률이라고 하며 최적의 학습률을 찾는 것이 하이퍼파리미터 조정이 되는 것이다.

    반응형

    'CS > ML&DL' 카테고리의 다른 글

    (cs231n) Assignment 1  (0) 2025.01.02
    (딥러닝) 경사하강법과 선형회귀  (5) 2024.09.23
    매우 간략히 요약한 Fast-RCNN  (1) 2024.09.04
    딥러닝 기초  (2) 2024.08.23
Designed by Tistory.