개발일기

딥러닝, 머신 러닝 - 손실 함수(Loss Function) 본문

Deep Learning, Machine Learning

딥러닝, 머신 러닝 - 손실 함수(Loss Function)

Flashback 2023. 12. 30. 16:12
728x90
반응형

손실 함수(Loss Function)

모델의 손실 함수는 출력 층에 따라 달라진다. 모델에 따라 올바른 손실 함수를 사용해야 정상적으로 훈련이 가능하다.

 

  • Binary Classification(이진 분류): 두 가지를 분류하는 경우(이것이 망고인가 아닌가)
  • Multi-Class Classification(다중 분류): 세 가지 이상을 분류하는 경우(이 과일이 무엇인가요? - 망고, 오렌지, 바나나, 사과, 멜론 등)

텐서 플로에서는 Binary Classification(이진 분류)를 위해 binary_crossentropy 손실 함수를 사용한다. Multi-Class Classification(다중 분류)의 경우는 categorical_crossentropy 또는 sparse_categorical_crossentropy를 사용한다.

출력층 손실 함수
출력 노드: 1개 / Activation: sigmoid binary_crossentropy
출력 노드: 2개 이상 / Activation: softmax / One hot Vector(O) categorical_crossentropy
출력 노드: 2개 이상 / Activation: softmax / One hot Vector(X) sparse_categorical_crossentropy

 

원 핫 벡터(One-hot vector / One-hot encoding)

데이터를 중복없이 표현하고자 할 때 사용하는 형식이다. 인덱스로 표현하는데 표현하고자 하는 단어의 인덱스에 1을 부여하고 나머지 인덱스는 0으로 통일한다.

망고: [0, 0, 0, 0, 1]

딸기: [0, 0, 0, 1, 0]

포도: [0, 1, 0, 0, 0]

원 핫 벡터가 아닌 경우는 [’망고’], [’딸기’], [’포도’]와 같이 표현한다.

 

이와 같이 각 단어에 고유 인덱스 하나만 부여함으로 원 핫 벡터로 데이터를 생성할 수 있다.

 


참고 사이트:

https://www.tensorflow.org/api_docs/python/tf/keras/losses

728x90
반응형
Comments