[인공지능] 4주차 | 선형분류 (이론)

dusruddl2·2022년 9월 21일

SJU_인공지능

목록 보기
11/23

이 관계를 정확하게 이해해야 한다.
Linear regression -> Logistic regression -> Binary classification -> multi class classification


✅ Review

다시 한번 linear regression에서 필요한 것이 뭐라고?
1. hypothesis 가설이 필요하고
2. 에러율을 측정할 cost function이 필요하고
3. 마지막으로 문제를 해결할 수 있는 optimizer GD가 필요하지!


💗 Today's goal 1: Binary Classification

범주형 데이터(카테고리 데이터): 종류를 표시하는 데이터


✅ Binary Label Encoding => '0' or '1'

범주형 데이터들은 숫자형 데이터처럼 특정 값이 아니기 때문에 이를 숫자로 바꿔주는 인코딩 과정이 반드시 있어야 한다!


✅ Example

예를 들어 다음과 같은 문제가 있다고 하자. 2,3,4시간 공부한 학생은 fail(0)이고 6,7,8시간 공부한 합생은 합격(1)하였다는 데이터
=> 이제 여기서 우리는 예측하고 싶은고지... 그러면 10시간 공부하면 합격합니까!!!

이를 linear regression으로 해결하면 어떻게 될까?
이렇게 설정해보자.
WX<0.5WX < 0.5: 불합격
WX>=0.5WX >= 0.5: 합격

🔅 Problem 1

이런 문제점이 발생할 수 있어.
만약 50시간을 공부해서 합격한 사람이 있다고 해보자.
그러면 합격을 했는데도 불합격한걸로 예상이 되는 데이터들이 생긴단 말이지 ㅠ.ㅠ

흐음.... linear regression 만을 이용해서 binary classification을 해결하기 어렵겠는걸....

🔅 Problem 2

또 다른 문제는 뭐가 있을까.
우리는 1인지 아닌지를 판별하고 있는데 예상값이 0보다 작아지거나 1보다 커질 수도 있단 말이지..? ㅠ.ㅠ
=> 이렇게, 0과 1 사이에서만 값이 되도록 우리가 바꿔줘야하지 않을까?


✅ Logistic Hypothesis: sigmoid

그렇게 찾아낸 것이 바로 이 'logistic hypothesis' !!! 0과 1사이로 모든 값을 bounding할 수 있따 :)
그래서 원래 linear regression에서 H(X) = WX + b로 했던 이 가설을 다음과 같이 바뀌게 된 것이다.


✅ Cost function for binary classification

기존 cost function 이용 못하겠고만..... 새로 만들어야겠다!
오케이. 가설설정 새로 만든 것처럼 우리가 cost function도 다시 설계하자!
(1) 왜 log를 이용했을까? e-z에서 구불거림을 없애기 위해!
(2) 왜 다음과 같이 설계했을까? 실제 값을 넣어보면 됨!

  • y = 1 일 때, H(x) = 1이라면
    예측을 잘했으므로 cost값이 작아야겠지
    => 위의 함수에 넣어보면 -log(1) = 0으로 아주 잘 나오고 있음
  • 그렇다면 만약에 y = 1일 때, H(x) = 0이라면
    예측을 아예 잘못했으므로 cost값이 커야겠지
    => 위의 함수에 넣어보면 -log(0) = infinite로 값이 매우 큰 것을 알 수 있음

위에서 y = 1 or y = 0으로 나눴던 cost function을 합쳐서 다음과 같이 표현할 수 있음 :)


✅ Summary


💗 Today's goal 2: multinomial Classification

꼭 class가 2개라는 법 없잖아 만약에 그 이상이면 이제 어떻게 할 수 있을까?
이제는 시험 P/F 2가지가 아니라 A/B/C 이렇게 성적을 매긴다고 생각해보자. binary classification 3개를 이용하면 이렇게 multinomial classification을 할 수 있겠지 :) 이를 그림으로 나타내면, 분류기 3개를 이용한다는거. (A분류기, B분류기, C분류기


분류기 3개를 쓰지 말고 어차피 중복되니까 합칠 수는 없을까?
이렇게 합칠 수 있다는 사실!

✅ sigmoid 했을 때 문제?

위의 그림을 보자. HA(X)H_A(X), HB(X)H_B(X), HC(X)H_C(X) 결과를 sigmoid함수로 넣었을 때 그 값은 1, 1, 0이 나온다. 하나의 값만 1이 나와야 하는데 이게 무슨 상황

어떻게 하면 하나의 class에만 1이 뜨게 할 수 있을까?

이렇게 해결하면 되지. sigmoid에 대입하지 말고 확률로 만들어서 다음과 같이 계산할 수 있음.

✅ softmax function

가장 큰 한가지의 숫자만 1로 바꾼다: one-hot encoding

👩🏻‍🏫 이 과정을 반드시 기억하라. softmax를 통과하여 확률로 만들고 그 다음에 one-hot encoding을 적용하자!


✅ Cost function for multinomial classification : cross entropy

cross entropy를 활용하자!
오른쪽이 실제값이고 왼쪽은 예측값
직접 구체적인 예시로 구해봐도 cost function을 잘 설계한 것을 알 수 있지
식을 보면 이렇게 되는거지.
먼저 예측값(y^\hat{y})을 softmax에 넣고 그리고 yy와의 cross entropy를 구하는 것이 바로 loss function!


✅ Logistic cost VS cross entropy ?

눈치 챘나 사실 둘은 같은 것이다!


본 게시물은 세종대학교 최유경 교수님의 인공지능 수업 내용을 정리하였습니다 :)

profile
정리된 글은 https://dusruddl2.tistory.com/로 이동

0개의 댓글