인프런 커뮤니티 질문&답변

유영재님의 프로필 이미지
유영재

작성한 질문수

TensorFlow 2.0으로 배우는 딥러닝 입문

오토인코더 acc, precision, recall metric은 어떻게 설정할 수 있나요?

작성

·

357

0

안녕하세요. 제가 오토인코더 loss를 ssim나 mse로 설정해서 훈련을 하습니다

오토인코더가 binary_crossentropy 혹은 categorical_crossentropy와 같은 기본 분류가 아니다보니 metric을 아래와 같이 그냥 적으면 이게 맞는 것인지 모르겠습니다

metrics=['mae'] if loss == 'mse' else ['mse']
metrics.append(['acc', Precision(name='precision'), Recall(name='recall'), AUC(name='auc')])

 

일정 threshold가 있어야, 정상 혹은 비정상으로 분류한 것인지 알아야 하는데 헷갈리네요

답변 3

0

AISchool님의 프로필 이미지
AISchool
지식공유자

넵. 정상이미지로 돌리고 나서 적당한 threshold값을 설정하시면 될 것같습니다~.

0

유영재님의 프로필 이미지
유영재
질문자

훈련할 때 정상 이미지만 가지고 하는데, 그러면 한 번 루틴을 돌고 나서 threshold를 잡으면 되는 것인가요?

0

AISchool님의 프로필 이미지
AISchool
지식공유자

네. 안녕하세요~. 반갑습니다.

1. 오토인코더의 로스는 위에 말씀해주신대로 mse나 mae로 설정해주시면 됩니다.

2. 오토인코더를 이용한 정상 비정상은 말씀해주신대로 threshold를 지정해서 사용하시면 되는데요. 이때 정상/비정상 이미지를 넣어서 hidden layer의 output으로 나온값들을 이용해서 정상 이미지일 경우에 대한 일정한 기준 threshold를 설정하고 새로운 이미지를 넣었을때 hidden layer의 output으로 나온값이 일정한 threshold를 벗어나면 비정상이라고 판단하는 형태로 작업하시면 됩니다. 적절한 threshold에 대한 공식이 딱 정해져 있는 것은 아니라서 직접 데이터로 실험해보시면서 설정하시면 될 것 같습니다.

감사합니다~.

유영재님의 프로필 이미지
유영재

작성한 질문수

질문하기