10. Logistic Classification의 가설 함수 정의 (lec 05-1)
이번 글부터 2주차에 해당한다. 1주차에 너무 고생을 해서 2주차는 쉽겠거니 했는데, 여전히 새로운 것들은 이해가 되지 않는다. 그래도 아는 만큼 정리해 본다.
이전에 다룬 내용은 좌표상에 위치한 데이터를 가로지르는 직선을 그어서 새로운 데이터의 위치를 예측하는 Linear Regression 모델이었다. 물론 feature가 여러 개인 multi-variables인 경우에는 당연히 직선으로 표시되지 않겠지만, 나에게는 이 정도의 설명이 딱 좋은 것 같다.
이번에 공부한 내용은 Linear Regression을 활용해서 데이터를 분류하는 모델이다. 이름은 Logistic Classification이라고 부른다. 분류에서 가장 단순한 모델로 2가지 중에 하나를 찾는 모델이다.
두 가지 분류를 활용할 수 있는 몇 가지 예제를 설명하고 있다. 스팸 메일 탐지, 페이스북 피드 표시, 신용카드 부정 사용은 두 가지 값 중의 하나를 선택하게 된다. 프로그래밍에서는 이 값을 boolean이라고 부르지만, 여기서는 쉽게 1과 0으로 구분한다. 1은 spam, show, fraud에 해당한다. 1과 0에 특별한 값을 할당하도록 정해진 것은 아니다. 다만 찾고자 하는 것에 1을 붙이는 것이 일반적이다. 이번 그래프는 학생들의 성적을 선처리(preprocessing)해서 모든 점수를 0 또는 1로 변환했단는 것을 전제로 한다. linear regression은 Wx+b 공식을 통해서 직선을 긋고 이걸 토대로 결과를 예측하는 방식이다. 교수님께서는 기존 그래프에 공부를 많이 한 학생이 등장하면 기울기가 달라지기 때문에 문제가 발생한다고 말씀하셨다. 이걸 풀어보자. 예측을 한다는 것은 학습된 모델에 새로운 데이터를 전달한 결과를 가져온다는 뜻이다. 한 번 학습된 모델을 지속적으로 사용하면서 활용하는 것이 일반적이다. 그럴려면 학습된 모델을 수정하면 안 되는데, 너무 많이 공부한 학생이 발견되어서, 즉 기존 모델로 예측에 실패해서 모델을 수정하게 되었다는 것을 의미한다.
1. 학습된 모델을 수정하는 것은 옳지 않다.
시그모이드(sigmoid) 함수는 앞에서 배운 공식(Wx + b )이 만들어 내는 값을 0과 1 사이의 값으로 변환한다. 어떤 값이든지 sigmoid 함수를 통과하기만 하면 0과 1 사이의 값이 되는 놀라운 기적을 보여준다. 그림과 공식을 보면 그냥 겁먹게 되는데, 그럴 필요 없다. 소스 코드를 보면 진짜 간단하다. 왼쪽 그림의 공식을 보자. e로 시작하는 계산식이 0일 때, 1/1이 되어서 최대값인 1이 된다. e로 시작하는 공식이 복잡해 보이지만, 실제로는 전혀 복잡하지 않다. e는 자연상수(mathematical constant) 또는 오일러 상수라고 부르고, 2.718281828459로 시작하는 무한 소수. 결국 이 식은 e의 지수(exponent)일 뿐이다. Wx+b를 그래프에서 표현하는 것처럼 z라고 부르자. z가 음수가 되면 e의 z승은 엄청나게 작아지고, 양수가 되면 엄청나게 커진다. z 앞에 음수 기호가 있기 때문에 z가 음수일 때 오히려 양수가 되어 e의 z승은 큰 값이 되고, 분모로 사용되었기 때문에 전체 값을 0에 가깝게 만들어 버린다. 어찌 됐든 이 공식은 z가 무한히 작거나 무한히 커도 잘 동작한다는 것은 기억하자. 아주 중요하니까, 다시 한번 강조한다. |
'딥러닝_김성훈교수님' 카테고리의 다른 글
12. TensorFlow로 Logistic Classification의 구현하기 (lab 05) (0) | 2016.07.27 |
---|---|
11. Logistic Regression의 cost 함수 설명 (lec 05-2) (0) | 2016.07.27 |
09. 1주차 스터디 정리 (0) | 2016.07.25 |
08. multi-variable linear regression을 TensorFlow에서 구현하기(lab 04) (0) | 2016.07.25 |
07. multi-variable linear regression (lec 04) (0) | 2016.07.25 |