Softmax 함수를 tensorflow로 구현하기
Logit 함수가 정의되어 있다고 가정할 때, tensorflow를 이용해 softmax 함수를 구현하는 것은 간단하다.
def hypothesis(X):
return tf.nn.softmax(logit_fn(X))
비용함수 정의하기
Cross-entropy를 이용한 비용함수는 다음과 같이 코딩할 수 있다.
def cost_fn(X, Y):
logits = logit_fn(X)
cost_i = tf.keras.losses.categorical_crossentropy(y_true=Y, y_pred=logits, from_logits=True)
cost = tf.reduce_mean(cost_i)
return cost
tf.keras.losses.categorical_crossentropy()
만 사용하면 된다. 인자 중에 from_logits
라는 것이 있는데, 출력 배열의 값이 문제에 맞게 normalize 되었는지 여부이다. 쉽게 생각해서, 계산 과정에 softmax를 사용하고 싶으면 from_logits = True
로 해준다.
별도의 출처 표시가 있는 이미지를 제외한 모든 이미지는 강의자료에서 발췌하였음을 밝힙니다.
댓글남기기