꾸준히 성장하기

[D+56] 교육 | 딥러닝: 다중 분류 모델 본문

KT 에이블스쿨 5기/교육

[D+56] 교육 | 딥러닝: 다중 분류 모델

data.dohii 2024. 4. 16. 20:44

안녕하세요, 여러분! 이번에는 딥러닝에서 자주 쓰이는 또 다른 중요한 기법, '다중 분류'에 대해 배워보겠습니다.
다중 분류는 데이터를 두 개 이상의 범주로 분류하는 모델을 구축하는 방법입니다. 

예를 들어, 이미지를 여러 종류의 동물로 분류하거나, 음식 사진을 여러 음식 카테고리로 나누는 것이죠. 


1. 활성화 함수: Softmax

다중 분류의 아웃풋 레이어에서는 'softmax' 활성화 함수를 사용합니다. 

이 함수는 여러 클래스 각각에 대한 확률을 출력하여, 가장 높은 확률을 가진 클래스를 모델의 예측값으로 선택하게 합니다.

 

2.  손실 함수

1) 정수 인코딩: 손실 함수로 'sparse_categorical_crossentropy' 

범주형 라벨을 단순한 정수로 변환하는 방식입니다.

예를 들어, "고양이", "개", "말" 세 가지 범주가 있다면, 이를 각각 0, 1, 2와 같은 정수로 매핑할 수 있습니다. 

2) 원핫 인코딩: 손실 함수로 'categorical_crossentropy' 

원핫 인코딩은 각 범주를 벡터로 변환하는 방식입니다.

예를 들어, "고양이", "개", "말"을 원핫 인코딩으로 표현하면, 고양이는 [1, 0, 0], 개는 [0, 1, 0], 말은 [0, 0, 1]과 같이 표현됩니다. 

 

3. 데이터 스케일링

입력 데이터는 다중 분류 모델을 효율적으로 학습시키기 위해 스케일링 과정을 거치는 것이 좋습니다. 

이는 이진 분류에서와 마찬가지로 입력 특성들의 범위를 동등하게 맞추어 줍니다.

 

4. 코드와 요약

# 메모리 정리

clear_session()

# Sequential 모델 선언

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

                                           Dense(4, activation='relu'),

                                           Dense(10, activation='softmax')])

# 모델 요약

model.summary()

# 컴파일

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

구분 Hidden Layer Output Layer Compile
Activation Activation Node 수 Optimizer Loss
다중 분류 모델 relu softmax Class 수 adam sparse_categorical_crossentropy
categorical_crossentropy

다중 분류에 대한 기본적인 이해를 돕기 위해 간략하게 설명을 마치겠습니다. 
오늘도 여러분의 열정에 응원을 보내며, 다음 포스트에서 만나요🙌

반응형