[딥러닝] 목적/손실 함수(Loss Function) 이해 및 종류

    목적/손실 함수(Loss Function) 이란?

     

    딥러닝 혹은 머신러닝은 컴퓨터가 가중치를 찾아가는 과정이다. 

    일단 아래 예를 보도록 해보자.

     

    4 = 2a + b
    6 = 3a + b

     

    이와 같은 문제가 있다고 가정을 해보자, 사람들에게 a와 b에 들어가야 되는 답은 무엇인가? 라고 물어본다면

     

    1. 값을 대입해서 문제를 풀어본다던지
    2. 직관적으로 풀어본다던지
    3. 아니면 여러가지 공식을 써서 풀어본다던지

    할 것이다. 2번과 3번과 같은 경우 컴퓨터에게 시키기에는 매우 힘든 작업이다. 반대로 값이 엄청 많을 경우 1번은 인간에게 힘들 수 있다. 물론 위의 문제는 너무 쉽기 때문에 값을 대충 대입해서도 충분히 맞출 것이다.

     

     

    컴퓨터는 기본적으로 첫번째 방법인 값을 대입해서 문제를 풀어본다. 그래서 대입한 결과와 실제 정답간의 간격 즉, 차이를 최대한 줄이는 방향으로 값을 대입하게 된다. 이 값의 차이를 loss라고 하며, 이 loss를 줄이는 방향으로 학습이 진행이 된다.

     

    손실함수의 종류

     

    MSE(Mean Squared Error)

     

    예측한 값과 실제 값 사이의 평균 제곱 오차를 정의한다. 공식이 매우 간단하며, 차가 커질수록 제곱 연산으로 인해서 값이 더욱 뚜렷해진다. 그리고 제곱으로 인해서 오차가 양수이든 음수이든 누적 값을 증가시킨다.

     

    RMSE(Root Mean Squared Error)

    MSE에 루트(√)를 씌운 것으로 MSE와 기본적으로 동일하다. MSE 값은 오류의 제곱을 구하기 때문에 실제 오류 평균보다 더 커지는 특성이 있어 MSE에 루트를 씌운 RMSE 은 값의 왜곡을 줄여준다.

     

     

     

    Binary Crossentropy

    MSE와 RMSE와 다르게 Crossentropy는 개념을 이해하기에 좀 시간이 걸릴 수 있고, 여기에 Crossentropy를 설명하는 것을 적어봤자. 갑자기 흥미가 뚝떨어질 수 있기 때문에 언제쓰며, 어떻게 사용하는지만 적도록 한다.

     

    실제 레이블과 예측 레이블 간의 교차 엔트로피 손실을 계산한다. 2개의 레이블 클래스(0, 1로 가정)가 있을 때 Binary Crossentropy를 사용하면 좋다. 

     

    BinaryCrossentropy class

    tf.keras.losses.BinaryCrossentropy(
        from_logits=False, label_smoothing=0, reduction="auto", name="binary_crossentropy"
    )

     

    Categorical Crossentropy

    레이블 클래스가 2개 이상일 경우 사용된다. 보통 softmax 다음에 연계되어 나온다고 하여 softmax 활성화 함수 다음에 나온다고 하여 softmax loss 라고도 불린다.

     

    CategoricalCrossentropy class

    tf.keras.losses.CategoricalCrossentropy(
        from_logits=False,
        label_smoothing=0,
        reduction="auto",
        name="categorical_crossentropy",
    )

     

    그외 손실함수들

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

     

    모듈 : tf.keras.losses  |  TensorFlow 코어 v2.3.0

    내장 손실 기능. 보기 별칭 주 별칭 tf.losses 클래스 class BinaryCrossentropy : 계산하여 진정한 라벨과 예측 라벨 사이의 교차 엔트로피 손실. class CategoricalCrossentropy : 레이블과 예측 사이의 crossentropy ��

    www.tensorflow.org

    에 들어가면, keras에서 사용하는 loss function 들을 확인할 수 있다.

     

     

    #목적함수 #손실함수 #lossfunction

     

    댓글

    Designed by JB FACTORY