NLP-kr / tensorflow-ml-nlp-tf2

텐서플로2와 머신러닝으로 시작하는 자연어처리 (로지스틱회귀부터 BERT와 GPT3까지) 실습자료
Apache License 2.0
276 stars 135 forks source link

SparseCategorical Accuracy 사용 시 activation function 문의 #11

Closed karlie38 closed 3 years ago

karlie38 commented 3 years ago

안녕하세요.

텍스트 분류 모델 중에 비슷한 테스크(감정분류 (0/1)))를 푸는 텍스트 분류 모델을 만들때,

앞에 CNN, RNN 기반 모델들은 마지막 레이어에 activation function을 sigmoid로 따로 지정해주었는데, 뒤의 BERT, GPT2 기반 모델들은 마지막 레이어에 activation function을 따로 지정해주지 않아서 문의 드립니다. 뒤의 BERT, GPT2 기반 모델은 tf.keras.initializers.TruncatedNormal이 softmax의 역할을 해주는 거 맞나요?

Taekyoon commented 3 years ago

안녕하세요.

말씀하신 CNN, RNN과 BERT, GPT2에서 sigmoid가 있고 없는 점에 대한 차이를 말씀해주셨는데요.

CNN, RNN에서 마지막 레이어에 activation function이 sigmoid가 되어있는 역할을 BERT와 GPT2에서는 SparseCategoricalCrossentropy 함수에 from_logits에서 설정을 합니다. 해당 값이 True로 되어있는 경우 probablistic distribution으로 표현을 해줍니다. 함수 명칭이 Categorical이라는 이름이 명시되어있는 것을 보아 softmax 함수를 사용할 것으로 보입니다.

CNN, RNN 모델에서도 마찬가지로 BinaryCrossentropy 함수에서도 마찬가지로 from_logits설정을 True로 해주시면 마지막 레이어에 sigmoid를 지정할 필요가 없습니다.

더 궁금한점이 있으시면 커멘트를 남겨주세요.

Taekyoon commented 3 years ago

더 이상 진행하는 내용이 없어 close 합니다.