본문 바로가기
Study/Deep Learning

Binary Classification

by 강렬한 스포트라이트 2024. 3. 21.

 

로지스틱 회귀는 이진 분류를 위한 알고리즘이다.

 

이진 분류 문제 예시)

사진이 입력으로 주어졌을 때, 두 범주 중 어떻게 분류했는지 출력하기를 원한다.

고양이 사진으로 판단하면 1을 출력하고, 아니라고 판단하면 0을 출력하기를 원한다.

 

 

1) y로 출력 레이블을 표시하고자 한다.

 

2) 사진은 어떻게 컴퓨터에 저장되는가?

   사진에서의 빨간색, 초록색, 파란색 채널과 일치하는  세 개의 행렬을 따로 저장한다.

   입력된 사진이 64*64 픽셀이라면, 세개의 64*64 행렬들이 사진의 빨간색, 초록색, 파란색 픽셀 강도 값을 나타낸다.

---> 이 픽셀 강도 값들을 특성 벡터로 바꾸려면, 모든 픽셀값을 입력된 특성 벡터 x의 한 열로 나열하는 것이다.

(ex: 64*64 픽셀의 경우, 벡터 x의 전체 차원은 64*64*3(=12,288)이다. 행렬들의 원소들을 모두 포함하고 있기 때문이다.)

 

3) 이진 분류의 목적: 입력된 사진을 나타내는 특성 벡터 x를 가지고 그에 대한 레이블 y가 1아니면 0으로

예측하는 분류기를 학습할 수 있는 것이다.

 


 

표기법 :

 

단 하나의 훈련 샘플을 한 쌍 (x,y)로 표시할 때, x는 n_x 차원 상의 특성 벡터이고, 레이블 y는 0 또는 1이다.

훈련 세트는 m개의 훈련 샘플을 포함한다.

첫 번째 훈련 샘플의 입력과 출력인 (x^(1), y^(1)), 두 번째  (x^(2), y^(2))로부터 마지막 샘플인  (x^(m), y^(m))까지

훈련 샘플의 개수를 m으로 표시한다. (m_train, m_test로 표시하고자 함)

 

더 간단하게 정의하면,

x^(1)은 행렬의 첫 열로 놓고, 그 다음은 두 번째 열, 마지막까지 n번째 열로 놓으면 행렬 X가 완성된다.

그러므로 m이 훈련 샘플의 개수일 때, n_x개의 행들로 이루어져 있다.

 

요약하자면, X는 n_x * m 행렬이고, 파이썬 명령인 X.shape로 행렬의 차원을 알 수 있다.

이 경우에는 (n_x, m)을 출력하게 되고, n_x * m 행렬인 것을 뜻한다.


 

이렇게  훈련 샘플들 x를 행렬로 묶을 수 있다. 출력될 레이블 Y는 어떨까?

신경망의 구현을 더 쉽게하기 위해 y의 값들을 열로 놓는 것이 편리하다.

 

그러므로 Y는 y^(1) 부터 y^(m) 으로 이루어진 1 * m 행렬로 정의한다.

파이썬 문법을 사용해 Y.shape을 이용하면, Y의 차원이 (1,m)임을 알 수 있다.

 


 

추후 신경망을 구현할 때, 여기서 X와 Y를 정의한 것 처럼

x나 y 또는 나중에 볼 여러 훈련 샘플에 관한 데이터를 각각의 열로 놓는 것이 유용할 것이다.

 

 

 

 

* 아래의 영상을 참고하여 정리한 내용입니다.

https://www.youtube.com/watch?v=eqEc66RFY0I&list=PLkDaE6sCZn6Ec-XTbcX1uRg2_u4xOEky0&index=7

 

반응형
SMALL

'Study > Deep Learning' 카테고리의 다른 글

More Derivative Examples  (1) 2024.03.23
Derivatives  (1) 2024.03.23
Gradient Descent  (2) 2024.03.23
Cost Function  (0) 2024.03.22
Logistic Regression  (0) 2024.03.21