본문 바로가기

[모두를 위한 딥러닝/시즌2] Lab-05 Logistic Regression

Lab-05 Logistic Regression

 

다음은 모두를 위한 딥러닝 시즌 2의 Lab-05 Logistic Regression를 학습하고 요약정리한 내용입니다. 강의 내용을 기반으로 요약하되, 보충 설명이 필요한 경우 부스트코스 위키독스를 참고했습니다.

학습 목표

로지스틱 회귀(Logistic Regression)에 대해 알아본다.

핵심 키워드

로지스틱 회귀(Logistic Regression), 가설(Hypothesis), 손실 함수(Cost Function), 평가(Evaluation)

1. Reminder


 • 이진 분류(Binary Classification): 둘 중 하나를 결정하는 문제
 • 로지스틱 회귀(Logistic Regression): 이진 분류를 풀기 위한 대표적인 알고리즘, 이름은 회귀이지만 실제로는 분류(Classification) 작업에 사용

 • 이진 분류에서 비용 함수

 • 이진 분류에서 경사 하강법(★★★★★)

library import 및 random seed 설정
training data 구성

2. 가설 계산하기(Computing Hypothesis)


 • 시그모이드 함수(Sigmoid function)

1) W가 1이고 b가 0인 그래프

https://wikidocs.net/57805

2) W값의 변화에 따른 경사도의 변화

W의 값이 커지면 경사가 커지고 W의 값이 작아지면 경사가 작아진다.

3) b값의 변화에 따른 좌, 우 이동

b의 값이 커지면 왼쪽으로 이동하고 b의 값이 작아지면 오른쪽으로 이동한다.

4) 시그모이드 함수를 이용한 분류

시그모이드 함수의 출력 값은 0과 1 사이의 값을 가지는데 이 특성을 이용하여 분류 작업에 사용한다.

3. 비용 함수 계산하기(Computing Cost Function)


https://wikidocs.net/57805

실제값이 1일 때의 그래프가 주황색 선이고, 실제값이 0일 때의 그래프가 초록색 선이다. 실제값이 1(주황색 선)이라고 하면 예측값인 $H(x)$의 값이 1이면 오차가 0이므로 당연히 cost는 0이 된다. 반면, $H(x)$가 0으로 수렴하면 cost는 무한대로 발산한다. 실제값이 0인 경우 그 반대로 이해하면 된다. 이를 수식으로 표현하면 다음과 같다.

 

 

$y$의 실제값이 1일 때 $−logH(x)$ 그래프를 사용하고 $y$의 실제값이 0일 때 $−log(1−H(X))$ 그래프를 사용해야 하므로 이를 통합하면 cost function은 다음과 같다.

 

이렇게 일일이 계산할 수도 있지만

pytorch에서 제공하는 F.binary_cross_entropy() 이용하면 된다!

전체 코드

4. 평가(Evaluation)


예측값(hypothesis) 5개 출력
prediction: 임계값 0.5보다 크면 1, 작으면 0
예측값(hypothesis)과 실제값(y_train) 5개씩 출력
correct_prediction: 예측값과 실제값이 맞으면 1, 다르면 0

5. Higher Implementation


이전 슬라이드까지는 naive한 형태로 구현했다면, 실전에서는 class로 구현한다!

전체 코드