tensorflow - 분류 문제에서 활성 함수와 손실 함수 설정

반응형

분류 문제에서의 활성함수 (Activation Function)

Sigmoid

  • 2개의 분류 문제를 다룰 때 쓰는 활성 함수
  • 알려지지 않는 파라미터를 데이터로부터 추정해 0과 1로 분류하는 것

 

Softmax

  • 3개 이상의 분류 문제를 다룰 때 쓰는 활성 함수
  • 데이터를 0~1사이의 값으로 정규화하여 출력되는 값들의 총 합이 1이 되는 함수

 

분류 문제에서의 손실함수(Loss Function)

binary_crossentropy

  • 2개의 분류 문제를 다룰 때 쓰는 손실 함수

 

categorical_crossentropy

  • 3개 이상의 분류 문제를 다룰 때 쓰는 손실 함수
  • 원핫 인코딩되어 있는 카테고리컬 데이터에 적용

 

sparse_categorical_crossentropy

  • 3개 이상의 분류 문제를 다룰 때 쓰는 손실 함수
  • 레이블 인코딩되어 있는 카테고리컬 데이터에 적용

예시) 분류 문제의 인공신경망 모델링

      • 3개 이상의 분류 모델링 - 활성함수 softmax, 손실함수 sparse_categorical_crossentropy 사용
# 인공지능 생성
model = tf.keras.models.Sequential()

# 플래튼 작업 : 다차원 행렬 1차원화
model.add(tf.keras.layers.Flatten())
model.add(tf.keras.layers.Dense(128, 'relu'))

# 활성함수 소프트맥스로 분류 문제로 출력
model.add(tf.keras.layers.Dense(10, 'softmax'))

# 분류 작업을 하는 손실함수를 이용하여 컴파일
model.compile('adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])

# 인공지능 학습
model.fit(training_images, training_labels, epochs=5)
반응형