꾸준히 성장하기

[D+55] 교육 | 딥러닝: 이진 분류 모델 본문

KT 에이블스쿨 5기/교육

[D+55] 교육 | 딥러닝: 이진 분류 모델

data.dohii 2024. 4. 15. 18:10

안녕하세요, 여러분! 오늘은 딥러닝에서 자주 사용되는 기법 중 하나인 '이진분류'에 대해 알아보겠습니다. 

이진분류는 말 그대로 데이터를 두 가지 범주, 즉 0과 1로 분류하는 모델을 만드는 방법입니다. 

이 과정에서는 특정 활성화 함수와 손실 함수를 사용하는데, 왜 그런지 함께 살펴볼게요.


1. 활성화 함수: Sigmoid

이진분류 모델의 아웃풋 레이어에서는 주로 'sigmoid' 활성화 함수를 사용합니다. 

이 함수는 모델의 출력값을 0과 1 사이의 확률로 변환해줍니다. 

즉, 어떤 데이터가 특정 범주에 속할 확률을 계산하는 역할을 하죠.

 

2. 손실 함수: Binary Crossentropy

회귀 모델에서는 'MSE(Mean Squared Error)'를 손실 함수로 사용하지만, 

이진분류에서는 'Binary Crossentropy'를 사용합니다. 

이 함수는 실제 값(y)과 예측 값(𝑦̂) 사이의 오차를 계산하여, 모델이 얼마나 잘 예측하고 있는지를 평가합니다. 

예측 값과 실제 값 사이의 차이가 클수록 손실이 커지므로, 모델 학습은 이 손실을 최소화하는 방향으로 진행됩니다.

 

3. 데이터 스케일링

모델을 선언하기 전에 데이터를 스케일링(정규화 또는 표준화)하는 것이 권장됩니다. 

스케일링은 모든 입력 변수의 범위를 비슷하게 조정해줌으로써 학습 과정에서의 안정성과 속도를 개선할 수 있습니다.

 

4. 코드와 요약

# 메모리 정리

clear_session()

# Sequential 모델 선언

model = Sequential([ Dense(8, input_shape=(nfeatures,), activation='relu'),

                                  Dense(4, activation='relu'),

                                  Dense(1, activation='sigmoid')])

# 모델 요약

model.summary()

# 컴파일

model.compile(optimizer=Adam(0.01), loss='binary_crossentropy')

구분 Hidden Layer Output Layer Compile
Activation Activation Node 수 Optimizer Loss
이진 분류 모델 relu sigmoid 1 adam binary_crossentropy

이진분류에 대한 이해가 더욱 깊어지셨기를 바랍니다. 다음 시간에는 다른 종류의 분류 기법들을 더 자세히 다루어 보겠습니다.

오늘도 여러분의 학습에 응원을 보내며, 다음 포스트에서 만나요!

반응형