본문 바로가기

전공공부

[Deep Learning] Logistic Regression

Logistic Regression

logistic regression은 linear regression에서 input 과 predict가 논리 값인 0 ,1 로만 이루어진 것이다.

x1과 x2의 and gate를 시각화

이렇게 input이 들어 올때, linear algebra를 사용하여 예측 값인 Y의 0 과 1 영역을 다음 그림과 같이 나눌 수 있다.

linear algebra를 통한 영역 구분

여기서 w1 , w2값을 그때 그때 사람이 구하지 않고, 알고리즘을 통해 값을 구해내는게 Logistic regression이다.

Sigmoid

위에서 선정한 linear algebra를 통해 논리 값인 0 , 1 에 어느 쪽에 더 가까운지 판단하는 수식이며, 식은 다음과 같다.

sigmoid function

여기서 w·x에 따라 sigmoid의 그래프 개형을 살펴보면 다음과 같다.

sigmoid graph

Loss Function

이제 Sigmoid와 linear algebra까지 준비 되었으니 linear algebra가 얼마나 정확한지 판단할게 필요하다.

그에 따른 현재 오차를 나타내는 지표를 Loss Function이라 하고, 식은 다음과 같다.

loss function

여기서 ŷ은 sigmoid function에 의해 예측된 값이며 , y는 실제 값이다.

Cost Function

Cost function은 현재 내가 가지고 있는 data들에 대하여 loss function의 합이다. 식으로 나타내면 간단히 다음과 같다.

cost function J

Gradiant Descent

Cost를 감소 시키기 위해 사용되는 방법으로 ,  w와 b의 변화량에 대한 J(w,b)변화량을 측정하여 다음 w,b를 선정하는 방법으로 식은 다음과 같다.

Gradiant Descent 수식

Logistic regression 에서의 Gradient Descent

Logistic resgression에서 Gradient Descent를 하면 다음과 같다.

Logistic regression 구현하기

위의 내용을 토대로 Logistic regression을 구현하면 다음과 같다. (python3 , numpy 사용)

결과 확인

위에서 구현한 Logistic regression을 통해 AND, OR gate를 학습시킨 결과는 다음과 같다.

AND gate
OR gate

단, XOR gate같은 경우는 ab' + a'b으로 표현되기 때문에 logistic regression으로는 판단이 불가능하다.

'전공공부' 카테고리의 다른 글

[Deep Learning] Shallow Neural Network  (0) 2021.03.29