JH 개발자의 성장일지

이준석 교수님 - Deep Learning, Machine Learning 강의 정리 (2) / 24.09.27 본문

Deep Learning

이준석 교수님 - Deep Learning, Machine Learning 강의 정리 (2) / 24.09.27

JHDeveloper 2024. 9. 27. 11:35

참고 영상 : [딥러닝] Lecture 2. Linear & Softmax Classifiers - YouTube

Linear & Softmax Classifiers

이미지를 input해서 어떤 함수 f 거쳐서 라벨 을 분류하게 하는 것 → 함수 f 의 예시 Linear Classifier, Softmax Classifier

Linear Classifier

input된 이미지에서 가중치 부여하기 (활성화 함수) : 가중치 Wx + 편향값 b

*편향값 b = 아리까리 한 경우나 결정을 못하겠는 경우에 영향을 미치는 값

f(x,W) = Wx + b = (b가 번거로우니까 생략하기 위해) 아래와 같이 과정 단순화

f(x,W) = W’x’ (b가 단순화 되어 있는 거임) → 간편하게 Wx로 표현

지난 시간에 했던 건 계산 자체가 엄청 큼 (3072*3072끼리 10번 비교해야 하는 거일걸…?) 반면, linear는 더 적게 계산함.

이미지 input에 다양한 W 곱해보고 가장 비슷한 거 정답으로 == kNN과 비슷

단, knn에서는 데이터 개수를 곱하고, 여기서는 클래스 개수를 곱함. ⇒ 곱해서 비교해야 하는 개수가 줄어듬

*이미지 input에 곱해지는 W(템플릿 역할)를 그림으로 나타내면 실제 비스무리하게 그려짐

Softmax Classifier

각 클래스가 될 확률이 범위가 무한이면 비교하기 어려우니까 0-1 사이의 값으로 표현 (가장 가까운 클래스에서는 1에 가까운 값이 나옴 ⇒ Sigmoid function

*확률의 조건 ⇒ Sigmoid function은 만족시킴

  1. 확률은 0-1 사이에 있어야 함
  2. 모든 케이스에 대한 확률을 다 더 하면 1이 나와야 함.

Weight(파라미터)는 어떻게 찾는가?

  • 머신러닝 = 데이터 기반 접근 (사람은 모델 형태만 정해줌. 들어가는 파라미터 W 처음에는 랜덤으로 설정 → 여기에 대한 답 추출해서 정답과 비교 = loss function → 오차 계산해서 그 만큼 W 업데이트 = opimization)
  • Loss function : 현재 모델의 성능을 점수로 내줌. 못할 수록 높은 값
    1. discriminative setting :
    • 1은 정답, -1은 오답 (이진 분류)
    • margin 기반 손실 값 : 정답*예측값 (부호가 같으면 양수값 = 맞힌 거, 부호가 다르면 음수값 = 틀린거)
    → x축은 margin (정답*예측값) y축은 loss값
    1. probablistic setting :
    • 0-1 사이에 정답 (다중 분류까지 확장 가능), 정답값과 예측값은 확률 분포를 띄고 있음. ⇒ 확률분포간의 비교
  • Cross Entropy → loss function 종류에 포함되어 있음.
    • 우리가 정답이라고 예측한 확률에 -log를 취한 것들의 합
    *왜 -log를 씌웠나? 1(정답)에 가까울수록 loss값은 0이 됨. 0(오답)에 가까울수록 loss값은 무한대로 증가함.
  • Optimization (최적화)기본 식 : 새로운 가중치 = 기존 가중치 - 가중치에 대한 손실함수의 미분값*상수(이동정도)
    • 문제점
      1. 지역 최솟값에 빠져서 글로벌 최솟값을 찾지 못함.
      2. 미분이 불가능하면 애초에 할 수가 없음.
      3. 현재 가중치 값이 어느 방향으로 움직여야 할 지를 여러 개의 example에 대한 평균을 보고 판단해야 함 → 시간 대빵 오래 걸림
      4. ⇒ 샘플링하기 (미니 배치 수준)
  • : 경사하강법을 이용해 손실값 최소로 할 수 있도록 가중치 업데이트하기

정리

  1. 현재 가중치를 가지고 예측
  2. 예측값과 정답을 이용해 loss 값 구하기
  3. w를 얼마나 업데이트 해야 할 지 optimization 작업 해주고 업데이트 하기 (미니 배치 기준으로 연산)

미니 배치가 전체 데이터를 잘 대표할 수도 있고, 아닐 수도 있고…. (미니 배치 사이즈가 작으면 그래프 노이즈가 심함, 크면 월씬 더 완만) ⇒ 근데 전체적으로 어쨋든 loss가 줄어듬