- 2020년 10월 15일 오후 9:23
- 조회수: 2904
INFORMATION
- 2020년 10월 15일
- 오후 1시 ~
- 온라인 비디오 시청 (YouTube)
TOPIC
On-Line Video
OVERVIEW
요약: 현재 딥러능의 비약적인 발전으로 딥러닝 기반 Classifier는 많은 분야에서 우수한 성능을 보이고 있다. 하지만 기존의 Closed Set 기반의 Classifier는 학습단계에서 보지 않은 데이터에 대한 분류가 어렵다. 따라서 학습단계에 보지 못한 데이터를 'Unknown Class'로 분류할 수 있는 Open Set Recognition이 필요하다. 이번 세미나에서는 Open Set Recognition 알고리즘 중 Background Data를 사용하여 Unknown Class에 대한 가이드를 제공하여 학습되지 않은 클래스를 거부하는 알고리즘을 중점적으로 다루고자 한다.
참고문헌:
1. Dhamija, A. R., Günther, M., & Boult, T. (2018). Reducing network agnostophobia. In Advances in Neural Information Processing Systems (pp. 9157-9168).
2. Lee, K., Lee, H., Lee, K., & Shin, J. (2017). Training confidence-calibrated classifiers for detecting out-of-distribution samples. arXiv preprint arXiv:1711.09325.
발표자 후기
금일 세미나에서는 Open Set Recognition에 대한 기본 컨셉과 Background data를 활용한 Open Set Recognition 알고리즘의 기본 내용에 대하여 다루었다. 해당 방법론의 경우 Background data에 대한 추가적인 손실함수의 정의를 통해 이루어지기 때문에 Classification 문제의 기본적인 손실함수인 Cross Entropy부터 설명하였다. Background data를 사용한 Open Set Recognition 알고리즘 연구를 현재 수행 중인데 진행 중인 실험이 마무리되지 않아 이번 세미나 내용에 Background data의 선택에 따른 성능 향상에 대한 실험 결과를 포함하지 못해 아쉬웠다. 하지만 금일 소개한 방법론은 쉽게 이해할 수 있고 어느 모델에건 편리하게 적용해볼 수 있는 방법론이다. 따라서 세미나를 시청한 연구원들에게 각자의 연구 분야에서 금일의 세미나가 도움이 됐길 바란다.
청취자 후기
오늘 세미나는 관심 없는(non-target) class의 데이터를 background 데이터로 사용하여 open set recognition의 성능을 높이는 방법들에 대해서 김상훈 연구원이 진행해주었다. 보통 우리가 알고있는 분류 모델은 closed set을 가정하여 모델이 구축된다 즉, 모델은 항상 학습 단계에서 활용되었던 클래스 중 한 개로 분류하게된다. 하지만 open set 가정에서는 우리가 분류하길 목표하지 않던 클래스의 데이터가 모델에 입력될 수 있다는 가정을 한다. 이때 쉽게 생각할 수 있는 방법으로는 각 클래스의 확률 값이 모두 어떤 기준 값보다 낮다면 학습 당시 고려대상이 아니었던 클래스 (unknown class)라 분류하는 방식이다. 하지만 이를 세미나 앞 단에서 이해하기 쉽게 그림으로 반례를 소개하면서 open set recognition 방법론이 closed set classification 방법론과 어떻게 다르게 결정 경계를 만드는지 보여준 점이 인상깊었다. 더불어 오늘 세미나의 핵심이었던 결정 경계를 만들 때
background data를 활용하여 unknown class에 대한 검출 성능을 높이는 논문 3개를 소개해주었다. 오늘 세미나로 다시 한번 open set recognition이 무엇인지, 연구 동향이 어떠한지 들을 수 있는 기회였다.
이번 세미나의 주제는 'Open Set Recognition with Background Data'로 김상훈 선배님이 발표를 해 주셨습니다. 내용은 크게 Open Set Recognition에 대한 설명과 Background Data-based Methods에 대한 설명으로 나뉘어져 있습니다.
기존의 Multi-class Classification에서는 softmax 활성함수를 통하여 가장 높은 확률을 가지는 class를 아웃풋으로 반환합니다. 여기서 문제는 만약 기존 class에 존재하지 않는 새로운 unknown class가 들어오더라도 기존 class 중 확률값이 가장 큰 class를 반환한다는 것입니다(Closed Set Classification).
이를 해결하기위해 softmax 활성함수를 통해 나온 확률값에 Thresh hold를 부여해 모든 class의 확률값이 이 기준값보다 작으면 어떠한 class도 반환되지 않도록 합니다. 여기서 만약 unknown class가 들어온다면 모든 class에서 softmax의 값이 작게 나온다라는 가정을 가지고 갑니다. 이를 위해서 각 class별 decision boundary를 재구성해야 하는데 학습 Class로부터 정보를 추출하여 결정경계를 재구성하는 방법인 In-distribution과 Class가 아닌 Data를 모델의 학습에 반영시켜 결정경계를 재구성하는 Out-distribution(=Background Data)이 있습니다.
세미나에서 Background Data를 활용하는 방법론 중 'Reducing Network Agnostophobia'를 소개했습니다. 이 방법론의 매인 아이디어는 전체 데이터셋을 Known classes와 unknown classes로 나눈 뒤, 이를 Train data와 Target data로 나눠 총 4개의 데이터셋로 분할하는 것입니다. 이 때, unknown classes의 train dataset이 background data가 됩니다.
논문에서는 기존의 Cross Entropy Loss를 사용하면 성능이 좋지 않기 때문에 Entropic Open-Set Loss라는 새로운 Loss함수를 제안합니다. 이는 class가 background인지 target인지에 따라 손실함수를 다르게 정의했습니다. 이를 통해서 처음 가정했던 unknown class가 들어왔을 때, 모든 class에서 확률값이 작게 나오도록 유도합니다.
다른 방법론인 'Training Confidence-calibrated Classifiers'에서도 비슷하게 Confidence Loss를 새로 만들어 각각의 trainset에 적용될 수 있게 했습니다. 또한, GAN을 이용하여 기존 Train data를 모방한 Background data를 생성하여 결정경계를 더 잘 구성하는 방법을 제안했습니다. 결국 학습은 Classifier Network와 GAN Network를 번갈아 가며 진행되고 최종 손실함수는 각각의 손실함수를 더하는 식으로 나타납니다.
이번 세미나를 들으며 Classification에서 한번도 생각해 본 적이 없었던 Unknown class에 대해 생각할 수 있는 기회가 되었습니다. decision boundary를 직접 그림으로 볼 수 있어서 이해하는 것이 더 수월했습니다. 좋은 세미나를 해주신 김상훈 선배님에게 감사드립니다.
이번 세미나는 김상훈 연구원이 Open Set Recognition with Background Data 라는 주제로 진행해주었다. Open Set Recognition이 어떤 개념인지를 소개하고, 그에 대한 알고리즘 중 하나인 Background Data-based Method에 대해 소개해주었다. 처음에 기본적인 Standard Multi-class Classification에 대한 설명이 있었다. Closed Set Classification은 학습한 Class에 대해서만 확률을 출력할 수 있고, 학습하지 않은 Class에 대해서는 Threshold를 설정함으로써 모든 Class에 대해 속할 확률이 특정값보다 작을 경우 Unknown Class로 분류할 수 있을 것이다. 이는 Unknown Class의 Data들이 모든 Class에 대한 Softmax 점수가 고르게 낮을 것이라는 가정, 즉 결정경계면에 Unknown Data가 위치하고 있을 것이라는 가정을 전제로 한다. 하지만 실제로 Standard Multi-class Classifier는 Unknown Class의 Data에 대하여 높은 확률로 학습한 Class 중 하나라고 예측하게 되는데, 이를 그림으로 잘 설명해주어서 이해를 할 수 있었다. 이러한 Closed Set Classification의 한계를 극복하고자 Open Set Recognition 개념을 도입하게 되었다. 즉, 학습하지 않은 Unknown Class의 Data가 존재함을 가정하고 이를 Unknown Class로 잘 분류할 수 있도록 해야하는데, 이에 대한 방법으로 학습 Class로부터 정보를 추출하여 결정경계를 재구성하는 In-distribution 방법과 학습 Class가 아닌 Data(Background Data)를 학습에 반영시켜 결정경계를 재구성하는 Out-distribution 방법이 있다. 오늘은 이 중 Out-distribution 방법, 즉 Background Data 정보를 활용한 방법에 대해 좀 더 자세히 설명을 해주었다. Background Data를 활용할 경우, 모델의 학습시 학습하고자 하는 Class는 Class별로 잘 뭉치도록 하고, 학습하고자 하는 Class가 아닌 Background Data는 어떤 Class에도 속하지 않도록 밀어내며 학습을 하게 된다. 이와 관련된 3개의 논문이 소개되었는데 그 중 첫번째는 Reducing Network Agnostophobia 라는 제목의 논문이다. 우선 Data를 총 4가지로 구분을 하였는데, Data의 수집여부와 학습하고자 하는 Class인지 아닌지로 구분하여 Target Train Data, Target Test Data, Background Data, Unknown Data로 구분하였다. 이 중 Background Data, 즉 수집되었지만 학습하고자 아닌 Class의 Data를 학습에 사용함으로서 Unknown Data에 대한 Detection 성능을 향상하고자 하였다. 또한 이 Background Data에 대한 Loss 함수도 기존의 Cross Entropy Loss가 아닌 Entropic Open-Set Loss를 새롭게 정의하여 사용하였고 이를 통해 모든 Class에 대해 확률값이 고르게 작게 나오게 하여 Unknown Class로 분류할 수 있게 하였다. 이번 세미나를 통해 Classification 문제에 대한 Open Set Recognition이라는 중요한 개념을 배울 수 있었다. 마지막 적용예시에서 보여준 것처럼, 실제 현실에서는 모델에서 학습하지 않은 유형의 Data가 존재할 수 있을 것이며 이를 마치 학습한 유형으로 오분류하게 된다면, 큰 문제가 될 수도 있을 것이다. 앞으로 Classification 문제를 연구하게 된다면, 꼭 Open Set Recognition의 개념을 염두에 두고 있어야할 것 같다. 좋은 주제로 세미나를 진행해준 김상훈 연구원에게 감사의 말을 전한다.
Open set recognition은 기존에 정의된 class이외에 학습에 사용하지 않은 class가 inference시점에서 추가되었을 때, 이를 감지하고 ‘unknown’이라는 의사결정을 하고자 하는 것이 목표이다. 기존에 흔히 알고 있는 classification은 closed set의 class를 가정하고 있다. 따라서 전혀 미학습 데이터가 입력으로 주어지더라도 closed set내에 있던 값으로 분류가 될 수밖에 없다. 이러한 한계점을 가장 간단히 개선하여 미학습 데이터에 대해서는 unknown으로 규정할 수 있는 방안은 closed set class들에 대한 예측확률들이 기준 임계치보다 모두 작다면 불확실하다고 간주하여 unknown으로 분류할 수 있을 것이다. 하지만 이런 경우에도 여전히 대다수의 미학습 데이터들이 높은 확률로 오분류되는 한계점이 존재한다. 따라서, 전반적으로 decision boundary구성 매커니즘 자체를 개선하고자 하는 시도가 있어왔으며, 이런 방식의 접근을 open set recognition (OSR)이라고 한다. OSR내에서도 여러 방법론이 있지만 학습에 사용할 데이터를 활용하는 방법론에는 크게 학습 데이터의 분포를 활용하는 in-distribution information과 결정경계 구성에 기여하는 역할로 사용하는 out-distribution information (background data)으로 나눌 수 있다. 오늘 세미나에서는 out-distribution information을 활용하는 방법론들에 대해 설명을 들을 수 있었다. Open set recognition에 대한 전반적인 가정과 수식들에 대해 다시한번 상기될 수 있는 시간을 보낸 것 같아 유익하게 들을 수 있었다. 최근에 개인적으로 out-of-distribution과 관련해서 관심이 있었는데 다시한번 기저가 되는 연구들을 살펴봐야겠다는 생각이 들었다.
금일 오픈세미나는 상훈이 형이 Open set recognition with background data를 주제로 진행해주셨다. Standard Multi-class classification에 대한 개념부터 설명을 진행해주셨고, 이는 기본적으로 학습에 참여했던 이미지에 대해서만 분류가 가능함을 의미한다. 이때, 학습에 참여하지 못했던 데이터가 모델에 들어가면 모델은 이 것을 인지하지 못하고 학습에 참여하였던 class 중 하나로 예측을 하게 되는데, 이와 같은 문제점을 해결하고자 Open set recognition 개념이 도입되었다. Open set recognition은 학습에 참여하지 못했던 class를 모델이 인식할 수 있게 하는 알고리즘으로, 학습 클래스 데이터 정보를 활용하는 방법과 학습 클래스가 아닌 Background data를 활용하는 방법으로 나누어진다. 금일 소개된 알고리즘은 background data를 이용한 open set recognition으로, 학습에 참여한 target class는 class 별로 뭉치도록 학습하면서 동시에 background data는 어떤 class에도 속하지 않도록 밀어내는 학습 알고리즘이다.
금일 세미나에서는 총 세 편의 논문을 소개었고, 첫번째 논문 'Reducing Network Agnostophobia'는 Background data 클래스를 모델이 학습해야 할 클래스에 추가한 알고리즘이다. 이때, Background data 클래스에 대한 로스와 기존 학습 클래스에 대한 로스를 다르게 설정한 것이 핵심이며, Background data 클래스 로짓이 0에 가깝게 학습되도록 로스를 설정하는 것이다. 이를 통해 background class는 예측 확률이 전체적으로 낮아, 기존 학습 클래스와는 다른 결정 경계로 쉽게 분류할 수 있게 된다. 두번째 논문은 'Traning confidence-calibrated classifiers for Detecting Out-of distribution samples'로 첫번째 논문의 핵심 아이디어와 비슷한 아이디어를 갖고 있다. 이것은 background data에 대한 예측 확률이 전체적으로 균등해지게 하는 것으로, background data의 예측 확률 분포가 uniform distribution와 비슷해지게끔 KL divergence loss를 줄이는 학습 방법을 적용한 논문이였다. 추가적으로 background data가 학습 데이터 분포와 비슷할수록 학습 효과가 더 좋아져, Gan 모델을 통해 학습 데이터 분포와 비슷한 background data를 생성하면서 classifier를 함께 학습한 모델 구조를 제안하였다.
마지막으로 세번재 논문은 어떤 background data를 사용해야 open set recognition 성능 향상을 높일 수 있는지 연구한 논문으로 다양성이 높은 background 데이터를 사용할수록 더 좋은 성능을 향상시킬 수 있다고 보고하였다. 금일 세미나를 통해 open set recognition에 대한 다양한 연구 논문을 쉽게 이해할 수 있었고, 학습에 참여하지 않았던 open set data를 효과적으로 분류하고자 하는 여러 아이디어를 접목할 수 있었다. 복잡한 알고리즘이였지만 쉽게 전달해준 상훈이형에게 감사의 말씀을 전하고 싶고, 오늘 알게 된 open set 분류 아이디어를 본인 연구에 어떻게 접목시킬 수 있을지 고민해봐야 겠다. 이상으로 세미나 후기를 마치도록 하겠습니다.
금일 세미나는 'Open Set Recognition with Background Data'를 주제로 진행되었다. Open Set Recognition이란, 학습한 클래스에 대한 확률만 출력하는 Multi-class Classification과 달리, 학습하지 않은 데이터가 입력으로 들어왔을 때 특정 threshold보다 작다면 Unknown 클래스로 분류하는 것을 의미한다. 이는 Unknown 데이터가 들어왔을 때 모든 클래스에 대한 softmax 점수가 고르게 낮을 것이라는 가정 하에서, softmax 확률값이 동일한 경우에 생성되는 각 결정 경계를 재구성하는 방식으로 진행된다. 이번 세미나에서는 특히 학습 데이터가 아닌 Background 데이터의 정보를 추가적으로 활용하는 여러 알고리즘들에 대하여 알아볼 수 있는 시간이었다. Reducing Network Agnostophobia, Training Confidence-calibrated Classifiers for Detecting Out-of-Distribution Samples의 두 논문의 내용을 통하여는 Loss Function을 Objectosphere Loss, Joint confidence Loss로 설정하여 정답 label의 softmax 확률값은 1에 가까워지도록, background 데이터의 softmax 확률값은 특정 상수에 가까워지도록 설정하는 방법에 대하여 알아보았다. 마지막으로는 Target Test Data와 Background Data가 서로 유사할수록 정교한 분류 경계면이 잘 설정된다는 등의 주요한 특징들을 알 수 있었다. 매번 Open Set Recognition이라는 분야에 대한 세미나를 들을 때마다 흥미로운 주제라는 생각이 드는데, 이번에도 기초적인 내용을 다지고 어떻게 방법론들이 제안되는지 공부할 수 있어 큰 도움이 되었다. 기회가 된다면 해당 분야의 기초적인 연구들부터 살펴보고싶다.
금일 세미나는 “Open Set Recognition with Background Data”를 주제로 진행되었다. 처음 Standard Multi-class Classificaion에서는 미리 학습한 class 에대한 확률만 출력할수 있기에(closed set classification) 모든 class에 설정한 threshold보다 작으면 unknown class로 구분하고 이는 unknown이라는 데이터들이 모든 class엣대한 softmax점수가 고르게 낮을것이라는 가정하에 진행되는것이다. 하지만 standard Multi-class classifier는 unknown data 에 대해 높은 확률로 학습한 class중 하나라고 예측을 하게된다. 그래서 발전한것이 out-distribution(background data)정보 활용법이다. 이방법은 모델의 학습에 target classes가 아닌 class의 data를 포함하여 target classes별로 뭉치도록 non-target classes(background data)는 어떤 class에도 속하지 않도록 밀어내며 학습하는것이다. 이번에 세미나는 이와 관련된 논문중 하나인 "Reducing Network Agnostophobia"이다. 우선 Data를 총 4가지로 구분하여 모델이 학습해야 할 학습 class의 데이터 : Target Train Data, 학습된 모델이 분류해야 할 학습 class의 데이터 : Target Test Data, unknown classes의 집합 중 알고 있는 data : Background Data, unknown classes의 집합 중 known에 속하지 않는 data : Unknown Data로 구분하였다. 이 중 Background Data, 즉 수집되었지만 학습하고자 아닌 Class의 Data를 학습에 사용함으로서 Unknown Data에 대한 Detection 성능을 향상하고자 하였다. 두번째 논문은 "Training Confidence-calibrated Classifiers for Detecting Out-of-Distribution Samples"이다. 이 논문은 background data에 대한 모델의 softMax점수가 Uniform Distribution을 따르도록 학습시켜는데 이를 활용하여 GAN이 생성하는 data에 대한 softMax점수가 역시 Uniform distribution을 따르도록 학습하여 GAN이 생성하는 data가 기존 data와 비슷해 지도록 생성 모델을 학습(GAN Loss)시켰다. 그리고 마지막으로 classfier Network와 GAN Network을 번갈아 가며 학습하도록 하여 Joint confidence loss를 줄였다. 이번 세미나로 인해 open set recognition 부분에서 심화된 내용을 잘 알수 있었다. 좋은 세미나를 해준 상훈이에게 감사의 말을 전한다.
금일 세미나는 "Open Set Recognition with Background data"라는 주제로 상훈이형이 발표해주었다. Open Set Recgnition은 우리 연구실에서 상훈이 형이 꾸준하게 연구하고 있는 분야인 것으로 알고 있다. 그래서인지 발표에 들어 있는 내용들이 되게 자세하며 이해하기 쉽도록 설명해주었고, 무엇보다 다양한 Open Set Recognition 알고리즘의 특성을 잘 보여주는 그림들이 있어서 이해하는데 많은 도움이 되었다. Open Set Recgonition의 본격적인 설명에 앞서 우리가 흔히 분류 문제에서 이해하고 있는 Closed set 분류 모형에 대해 설명해주었고, Closed set 분류 모델은 Unknown class의 data에 대해서도 특정 클래스로 분류할 위험성을 갖고 있기 때문에 이러한 문제점을 개선할 수 있는 것이 Open Set Recognition이라는 것을 알 수 있었다. 그 중에서도 모델에 학습하는 동안 Background data까지 같이 학습하여 Decision Boundary를 생성하는 것이 이번 세미나 주제의 핵심 내용이었다. 개인적으로 이번 세미나를 통해 새롭게 알게된 용어는 Unknown class에 대해서 Background / Unknown data이다. 이전에는 Background data와 Unknown data는 둘다 클래스가 없는 데이터인줄 알았는데 이번 세미나에서 논문 설명을 해주는 과정에서 Background data는 학습을 위한 데이터이고, Unknown data는 검증을 위한 데이터이고 둘의 클래스는 다른 클래스를 갖는다는 것을 알게되었다. 그리고 각 논문 설명들을 통해 Unknown class에 대해 어떠한 방식으로 학습하는지에 대해서 자세히 알 수 있어서 좋았고, Confidence Loss 처럼 클래스가 존재하는 데이터는 해당 클래스에 대해 높은 softmax 점수를 갖도록 학습하고, Background data에 대해서는 모델의 softmax 점수가 Uniform Dist.를 따르도록 학습한다는게 인상깊었는데 이러한 학습 방식은 추후에 알아두면 좋은 학습 방식이라고 생각이 들었다. 오늘도 새로운 이론에 대해서 이해하기 쉽게 설명해준 상훈이형에게 감사하다고 전하고 싶다.
Openset recognition with background data를 상훈이형이 소개해주었다. Openset recognition 개념은 배우지 않은 클래스는 모른다(unknown)고 예측할 수 있도록 하는 기법이다. 각 클래스별 예측확률이 모두 애매하면 unknown class로 분류하는 게 기본적인 접근 방법으로, 최근 연구가 다방면으로 이루어지고 있다. 오늘 소개해준 연구는 background data를 활용하여 "unknown class"를 더, 잘, 분류하고자 접근한 대표적인 논문들을 소개해 주었다. 즉, 예측대상이 되지 않는데 수집된 labeled data를 활용하여, 모르는 클래스로 분류할 특징들도 학습에 사용하자는 게 핵심이다. 불과 1-2 년 전 삼성전기프로젝트에서 만약 학습되지 않은 클래스가 예측대상에 포함된다면 어떻게 처리해야 하는지 질문 받은 적이 있다. 그 당시에는 프로그래밍에서 예외처리로 수행하게 끔 가이드를 주었는데 Openset recognition 개념으로 이어지지 않았던 게 아쉽다. 상훈이형이 수행하고 있는 프로젝트에 활용방안도 같이 소개해 주었다. 세미나를 들으며 개인적으로는 background data를 Encoder-decoder 딥러닝 구조에 활용하면 어떨지 생각했다. Trasformer와 같이 Encoder-decoder로 특징추출한 다음 예측을 수행하는 모델을 적용한다고 할 때, encoder는 본래 잘 예측해야 하는 X, decoder에는 background data로부터 얻은 X를 적용한다면, openset 성능 뿐만 아니라 본래 예측대상에 대한 성능을 높이는 데 도움을 줄 것 같다.
이번 세미나에서는 김상훈 연구원이 Open-set recognition의 개념과 3가지 세부 방법론을 소개했다. Open-set recognition은 다중 분류 모델에서 기존 부류에 속하지 않는 데이터(unknown class)를 테스트할 때 unknown class로 분류되지 않고 임의의 한 클래스로 오분류되는 문제를 해결하고자 고안된 개념이다. 예를 들어 클래스가 3개인 문제에서 Unknown class 데이터는 세 클래스에 대한 확률값이 모두 낮게 나와야 정상이다. 하지만 실제 실험에서는 셋 중 한 클래스에 대해 높은 확률값을 가지는 문제가 빈발했다. 모든 클래스에서 낮은 확률값을 갖는다는 것은 기존 결정경계 위에 위치한다는 뜻으로, 결정경계를 재구성해 Unknown class에 대한 분류도 가능하게끔 만들어줘야 한다.
Open-set recognition이 이를 해결하는 방식은 다양하나, 그중에서도 학습 데이터에 Unknown class의 데이터를 '백그라운드 데이터'로 추가해 결정경계를 업데이트하는 방법이 주로 소개됐다. 첫번째 방법론은 백그라운드 데이터를 추가 학습시키되 기존 학습 데이터와는 다른 손실함수를 적용하는 방식이다. 백그라운드 데이터의 경우 모든 클래스에서 낮은 확률값이 나왔을 때 가장 작은 손실값을 갖도록 설정, 활성화 함수를 적용하기 전 로짓 벡터를 0에 수렴하게 만든다.
두번째 방법론도 기존 학습 데이터와 백그라운드 데이터에 다른 손실함수를 적용한다는 면에서 첫번째와 거의 유사하다. 다만 백그라운드 데이터에 대해 모든 클래스의 확률분포가 일양분포를 따르도록 학습시킨다는 차이가 있다. 또한 GAN을 사용해 기존 학습 데이터를 모방한 백그라운드 데이터를 생성해 학습시킨다.
세번째는 백그라운드 데이터를 선정하는 기준에 관한 방법론이다. 어떤 데이터를 백그라운드로 활용하느냐에 따라 Open-set recognition의 성능이 크게 달라지는데, 테스트 데이터와 유사하거나 데이터셋 자체가 다양할 수록 성능이 높아진다는 논지다.
오늘 세미나는 Open-set recognition을 처음 접한 사람도 개념을 쉽게 이해할 수 있게 해준 친절한 세미나였다고 생각한다. 많은 논문을 읽고 발표를 준비해준 상훈에게 감사인사를 전한다.
이번 세미나는 "Open Set Recognition with Background data"를 주제로 진행되었습니다. 딥러닝 기반의 classifier는 많은 분야에서 우수한 성능을 보입니다. 하지만 학습에 활용되지 않았던 클래스의 새로운 데이터가 인풋으로 들어오게 되면 해당 데이터를 기존에 학습되었던 클래스 중 하나라고 예측하게 됩니다. 이러한 문제는 기존의 모델에서 아웃풋이 일정 기준 이상을 넘을 때만 해당 클래스로 분류하고 그렇지 않은 데이터들을 'unknown'으로 구분하도록 해서 해결할 수 있습니다. 하지만 softmax 함수를 활용할 경우 새로운 클래스에 대한 데이터가 다른 클래스들에 비해 한 클래스에 근접하게 되면 해당 클래스로 강하게 확신하는 경향을 보이게 됩니다. 따라서 이러한 단점을 극복하기 위해서 decision boundary를 데이터들 주변으로 감싸주는 Open Set Recognition 알고리즘이 필요하게 됩니다. Open Set Recognition은 분류에 활용되는 데이터들만 활용하는 In-distribution 방법론과 분류에 필요하지 않은 background data까지 모두 활용하는 Out-distribution 방법론으로 나뉩니다. 이번 세미나에서는 Out-distribution 방법론에 대해 중점적으로 설명되었습니다. Out-distribution 방법론은 분류에 활용되는 데이터들은 해당 데이터들끼리 잘 뭉치도록 하고 어떠한 클래스에도 속하지 않는 데이터들은 모든 클래스에 속하지 않는 방향으로 학습이 진행됩니다. 먼저 소개된 알고리즘은 "Reducing Network Agnostophobia"라는 모델입니다. 해당 모델은 Entropic Open-Set Loss라는 새로운 손실함수를 정의하여 학습을 진행합니다. 분류에 사용되는 target train 데이터에 대해서는 기존과 동일한 cross entropy를 손실함수로 사용하고 background 데이터에 대해서는 모든 클래스에 대한 softmax 값에 평균을 손실함수로 사용합니다. 따라서 background 데이터의 손실함수는 모든 클래스에 대해 동일한 softmax 값을 가지게 될 때 최솟값을 가지게 됩니다. 또한, background 데이터의 손실함수에 logit 벡터의 크기가 0에 가까워지는 regularization term을 추가하면 unknown 데이터는 feature space 상에서 원점에 가까운 공간에 몰아넣을 수 있게 됩니다. 따라서 앞서 살펴봤던 thresholding 기법을 활용하여 unknown 데이터에 대해 잘 구분할 수 있는 모델을 학습시킬 수 있습니다. 두 번째로 소개된 방법론은 "Training Confidence-calibrated Classifiers for Detecting Out-of-Distribution Samples"라는 논문입니다. 해당 논문에서는 background 데이터가 학습하고자 하는 target train 데이터와 인접해 있으면 모델의 성능이 향상되는 것을 보였습니다. 따라서 GAN을 통해 target train 데이터와 유사한 background data를 생성하여 해당 데이터를 활용하여 학습을 진행하게 됩니다. 마지막으로 소개된 논문은 "Deep Anomaly Detection with Outlier Exposure"라는 논문입니다. 해당 논문은 Background 데이터를 활용한 알고리즘이 어떤 background 데이터를 활용하는지에 따라 성능이 많이 달라진다는 점을 지적하면 background 데이터에 대한 가이드라인을 제시합니다. 이번 세미나를 통해서 평소 관심이 있었던 Open Set Recognition 알고리즘들에 대한 이해가 한층 더 깊어져서 의미 있는 세미나였습니다. 세미나를 위해 고생해준 상훈이 형에게 감사에 뜻을 표하며 세미나 후기 마무리하겠습니다.
이번 세미나는 상훈이형이 background data를 활용한 open set recognition 논문 3가지를 소개해주었다. 지난 상훈이형의 세미나에서는 in-distribution information, 특히 각 클래스별 극단값 분포를 통해 결정 경계를 업데이트 하는 방식인 openmax 알고리즘을 리뷰해주었는데, 이번 세미나에서 다루는 내용은 out-distribution information을 사용하는 방식에 대한 리뷰였다. 세가지 논문의 공통적인 접근 방식은 classification 문제에서 흔히 사용하는 cross entropy loss function을 open set task에 맞추어 새롭게 디자인하는 것이다. 단순히 unknown class를 새로운 하나의 class로 정의하고 기존 loss를 사용하게 되면 unknown data의 특성에 따라 모델의 분류 경계 학습이 잘 되지 않기 때문이다. 따라서 known class와 unknown class에서 계산되는 loss를 동일하게 모델이 반영하는 것을 막기 위해서 loss의 수정이 불가피한 것으로 생각된다. 첫번째 논문인 Reducing Network Agnostophobia 에서는 background data의 logit을 작게 만들기 위해 class 개수로 나눠주는 loss function을 통해 known class로부터 분리될 수 있도록 하는 방식을 채택하고 있다. 두번째 논문에서는 GAN과 classifier을 결합하여 open set 분류를 수행하게 되는데, GAN이 생성하는 데이터를 background data로 사용하게 된다. GAN은 background data가 backgound data를 잘 생성할 수 있도록 학습되고 classifier은 이 데이터를 known data와 함께 학습하여 open set recognition을 수행하도록 하는 역할을 한다. Classifier와 GAN을 번갈아가며 학습하기 위해서 Joint Confidence Loss를 제안하였다. 마지막 논문에서는 background data와 known data의 특징에 따라 모델 학습이 어떻게 변하는지에 대한 실험 결과를 제안하고 있다. 뻔한 이야기일 수도 있지만 background data를 어떻게 선정하는지에 따라 모델 성능이 좌우되고 이는 background data 기반의 open set 방법론의 한계점이라고 할 수 있다.
Open set recognition 모델은 작년에 프로젝트를 진행하면서 한번 다뤄봤었는데 현업에서 데이터 분석을 할 때도 필요성이 높고 다양한 분야에서 활용도가 굉장히 높다고 생각되는 연구 분야이다. 개인적으로도 관심 있게 공부하고 싶은 분야이고 앞으로 현업에 가서도 기회가 된다면 프로젝트를 해보고 싶은 분야이다. 상훈이형이 이번에도 재밌는 논문들을 세미나로 다뤄주어서 고맙다는 말을 전한다. 개인 연구로도 좋은 성과를 달성하기를 응원한다.
이번 세미나는 상훈오빠가 ‘Open set recognition with background data’를 주제로 진행해 주셨습니다. 지난 open set 세미나는 In-distribution 정보를 활용한 방법을 중심으로 설명해 주셨다. 당시 생소했던 개념인 open set에 대해 알 수 있던 유익한 세미나로 기억하고 있었고 이번주 세미나는 out-distribution, 즉 background data를 활용한 방법론을 중심으로 진행되었다. 우선 open set recognition의 궁극적인 목표는 수집되지 않았고 학습 데이터로 사용되지 않은 unknown data에 대하여 ‘모른다’라는 답을 얻는 것이다. background data를 활용한 open set recognition 방법은 해당 목표를 위해 다음과 같은 4가지 데이터에 대한 개념이 선행된다.
- Target train data(train): 보통의 분류 문제에서의 Train data를 의미
- Background data(train): 수집은 되었지만 모델이 궁극적으로 학습해야 할 데이터가 아님
해당 데이터를 학습 과정에 추가함에 따라 학습과정에서의 unknown data 역할을 하여 실제 unknown data에 대한 detection 성능 향상을 도와주는 역할 (보조)
- Target test data(test): 보통의 분류 문제에서의 Test data를 의미
- Unknown data(test): 수집되지 않았고 모델의 학습에 사용되지 않은 데이터를 의미
Background data가 학습과정에 추가되었기 때문에 기존의 Cross-entropy를 변형한 형태를 loss를 사용한다. Target train data의 클래스와 background data 클래스에 각각 작용할 수 있는 loss로 변형하여 사용한다. Background data로 어떤 데이터를 사용해야하는 가에 대한 문제가 background data를 활용한 open set recognition 방법에서 중요한 이슈이다. 다른 논문에서는 GAN을 통해 background data를 생성하며 분류기를 학습하는 알고리즘이 소개되었고 해당 이슈를 풀기위해 다양한 알고리즘들이 연구되고 있다. 오늘 세미나를 통해 background data에 대해 개인적으로 헷갈렸던 개념을 이해할 수 있었고 전반적인 흐름을 익힐 수 있었다. 한 분야에 대해 깊게 연구하는 상훈오빠의 자세를 본받아야 한다고 생각했다.
금일은 Open Set Recognition with Background Data를 주제로 세미나가 진행되었다. 세미나는 먼저 Open Set Recognition에 대한 설명이 진행되었고 이어서 Background Data-based Methods에 대한 설명이 이어졌다. 마지막으로 실제 적용했던 사례를 설명해주며 세미나는 마무리되었다. Open Set Recognition이란 모델이 학습 과정에서 볼 수 없었던 Class에 대해서는 Unknown Class라고 예측해주는 Task를 말한다. 예를 들어 제조 공정에서 불량을 예측하는 딥러닝 모델을 구축한다고 하자. 이렇게 해서 구축된 불량 예측 모델은 과거 불량 이력이 있었던 유형에 대해서만 예측할 수 있게 된다. 실제 현업 문제에서는 과거 불량 유형에 더하여 새로운 불량 유형이 발견된다. 하지만 기존에 구축했던 불량 예측 모델은 이러한 새로운 유형은 예측할 수 없고 오히려 기존에 학습했던 Class 중 하나로 잘못된 예측을 하게 된다. 이처럼 학습 과정에서 보지 못했던 Class에 대해서는 모델이 오히려 모르는 Class라고 예측하게 해주는 것이 Open Set Recognition Task라고 말할 수 있다. 이 문제는 현실 문제에서도 매우 많이 발생하는 문제이므로 최근에 중요한 영역으로 대두되고 있다. 본 세미나에서 인상깊었던 것은 Entropic Open-Set Loss였다. 이 때 기존 Target Train data에 대한 Loss function에 더하여 Background data에 대한 Loss function을 다르게 정의해 구축했다. 이를 통해 기존 Class도 잘 구분하면서 Unknown Class에 대해서도 모델이 잘 예측할 수 있는 모델을 구축했다. 이 부분이 인상깊었던 점은 Unknown Class를 잘 찾아내기 어렵다는 문제를 해결하기 위해 수정해야할 부분을 명확하게 찾아 고쳐 어려운 문제를 잘 해결했다는 점이다. 이번 세미나를 들으면서 Loss function, Softmax function, Probability 등 딥러닝, 머신 러닝 모델의 기본이 되는 수학적 지식에 대해 더 잘 아는 것이 중요하다는 사실을 다시 한번 느꼈다. 기본 토대가 탄탄해야 이를 기반으로 어려운 문제 상황을 풀 수 있는 다양한 아이디어를 고민할 수 있겠다는 생각을 했다. 세미나를 예시 중심으로 잘 설명해준 상훈이에게 수고했다고 말해주고 싶다.
Standard Multi-class Classifier는 학습한 Class에 대한 확률만 출력할 수 있다(Closed Set Classification). 이때, Unknown Classes의 Data들이 모든 Class에 대한 SoftMax 점수가 고르게 낮을 것이라는 가정을 한다면 이때 특정 threshold 아래로 나온 입력에 대해서 Unknown class라고 해볼 수 있다. 하지만, 위 가정은 Unknown class가 결정경계면이 아닌 다른 곳에 위치한다면 SoftMax 함수의 특성상 특정 클래스의 값이 높게 나와버리는 한계를 지닌다. 이러한 기존 방법론의 한계로 근본적 부분을 해결하는 “Open Set Recognition” 이 나오게 되었다. Open Set Recognition은 학습 Class(Target Classes)로부터 정보를 추출하여 결정경계를 재구성하는 ‘In-distribution’ 정보 활용법과, 학습 Class가 아닌 Data(Background Data)를 모델의 학습에 반영시켜 결정경계를 재구성하는 ‘Out-distribution(Background Data)’ 방법론이 있는데 있다. 전자는 학습된 Classifier의 결정 경계에 각 Class별 학습 Data를 기반으로 각 Class별 극단 분포를 도출하고 극단 분포를 통해 결정 경계를 Update 하게 되며, 후자는 모델의 학습에 Target Classes가 아닌 Class의 Data (Background Data)를 포함하여 Target Classes는 Class별로 뭉치도록 Non-Target Classes (Background Data)는 어떤 Class에도 속하지 않도록 밀어내며 학습하게 된다. Open Set Recognition에 대해서 대략적으로만 알고, 그 중요성에 대해서 잘 인지하지 못했었는데, 본 세미나로 인해 돌아오는 PdM 프로젝트 및 개인연구에 적용해볼 수 있을 것 같아, 좋은 자료를 준비해준 상훈이형에게 감사의 말을 전한다.
이번주 세미나는 상훈이형이 ‘Open Set Recognition with Background Data’라는 주제를 가지고 진행하였다. 기존의 Multiclass classification의 경우 학습된 데이터에 있는 class에 한에서만 classification이 가능하다. 즉, 학습하지 않은 class가 들어오는 경우 학습된 데이터의 class중 하나로 분류하게 된다. Open Set Recognition은 이렇게 학습하지 않은 class가 들어오는 경우 기존의 학습된 class로 분류하지않고 unknown class로 분류하게 되는 것이다. Open Set Recognition에는 In-distribution정보를 활용하는 방법과 Out-distribution정보를 활용하는 방법 두가지가 존재한다. In-distribution의 경우 학습된 classifier의 결정 경계에 각 class별 학습data를 기반으로 각 class별 극단 분포를 구해 결정 경계를 업데이트한다. Background data정보를 활용하는 방법은 모델의 학습에 background data를 포함하여 target class들은 class별로 뭉치게 하며 그 외 class들은 어떠한 class에 속하지 않도록 밀어내면서 학습을 진행한다. Open Set Recognition에대해 깊이 생각해보지 않았지만 이번 상훈이형의 세미나를 통해 깊게 생각해 볼 수 있었으며 이해하기 쉽게 세미나를 준비해준 상훈이형에게 감사하다는 말을 전하고 싶다.
이번 세미나는 상훈이형이 “Open Set Recognition with Background Data”를 주제로 세미나를 진행하였다. 지난번 세미나에서 언급한 open set recognition 모델은 extreme value theorem을 가지고 진행한 in-distribution 정보를 활용한 방법이었다면 이번에 소개해준 모델은 Out-distribution 정보를 활용한 방법이다. 두 컨셉의 차이점은 in-distribution은 학습한 데이터의 class 별로 정보를 추출하여 결정 경계를 생성하는 것인 반면 out-distribution은 학습하는 class가 아닌 데이터를 모델 학습에 반영하여 결정 경계를 생성한다는 것이다. 따라서 out-distribution에서는 기존에 학습하고자 하는 대상의 class는 서로 뭉치도록 학습이 되는 반면 대상이 아닌 background 데이터는 대상의 class에 속하지 않게 밀어내도록 학습이 된다.
Unknown 데이터를 검출하기 위해서 먼저 생각해볼 수 있는 방법은 하나의 데이터에 대한 class를 추론할 때 각 class에 대한 모든 logit 값이 설정한 threshold를 넘기지 못할 경우 unknown 데이터로 처리하는 것이다. 하지만 관련 논문에서 실험을 통해 해당 기법만을 가지고는 좋은 성능을 내지 못한다는 결론을 지었다. 따라서 이를 보완하기 위해서 Reducig Network Agnostophobia라는 논문에서는 open set recognition에 적합한 손실함수가 제시되었다. 먼저 Entropic Open-Set Loss는 Target Train data와 Background data에 대하여 서로 다른 방법으로 loss 값을 계산하게 된다. Target Train data의 경우 기존에 사용하던 Cross Entropy Loss의 수식을 유지하므로 정답인 class에 대해서 softmax 확률값이 1이 되도록 학습이 된다. 반면 Background data이 경우 모든 class에서 softmax 확률값이 동일하게 계산되도록 학습이 된다. Objectosphere Loss는 계산한 Entropic Open-Set Loss에 Regularization Term을 추가한 것으로 최종적으로는 Background data의 각 class 마다 예측되는 logit 값이 0에 수렴하도록 한다. 결과적으로 모든 class에 대한 softmax 확률값이 비슷해지기 때문에 thresholding 기법으로 Background data를 분류해내기가 수월해진다. 이후에 소개한 Training Confidence-calibrated Classififers for Detecting Out-of-Distributin Samples에서는 GAN 모델을 사용하여 해당 모델이 생성하는 데이터를 Background data로 삼아 이에 대한 softmax 값이 균등하게 나오도록 학습을 진행한다. 생성 모델을 사용하여 그곳을부터 나오는 데이터의 loss을 활용한다는 아이디어가 매우 인상 깊었다. 마지막으로 소개된 논문은 Deep Anomaly detection with Outlier Exposure로 Backgrund Data 선정이 Open Set Recognition의 성능에 어떻게 영향을 미치는지를 연구하였다. 여러 논문에 대한 내용은 잘 이해할 수 있도록 열심히 세미나를 준비해준 상훈이형에게 감사의 말을 전한다.
금일 세미나는 background dat를 활용한 open-set classification에 대한 내용을 청취했다. Open-set classification이란 분류문제에 더해서 out-of-distribution을 한 것으로 multi-class classification + anomaly detection으로 볼 수도 있다. 또한 background data는 open-set classification을 효과적으로 할 수 있도록 도와주는 보조 데이터로 이해할 수있다. BG data를 선택하는데 있어서 다양한 방법이 제안되었었는데 가장 대표적으로는 GAN을 활용해서 decision boundary를 좀 더 강건하게 만드는 방법이 있다. 하지만 GAN의 특성상 파라미터에 민감하고 학습시키기가 어려우며, boundary에 데이터가 조금만 잘못 생성되면 분류 성능이 매우 저하되는 현상이 발생한다. 오늘 세미나에서 소개한 논문은 다양하고 많은 양의 BG data를 선정하는 것을 제안했다. 예를 들어 CIFAR10 분류문제에 Imagenet 데이터를 사용하는 것이다. 하지만 Background data는 '유사하면서도 달라야 하는' 애매한 특성을 가져야 한다는 것이 전제 조건이기 때문에 실제 상황에서는 이러한 데이터를 수집하기가 매우 어렵다고 생각된다. 관련 분야에 관심이 있어서 성능 재현을 몇번 시도해 봤었는데 확실히 BG data를 어떻게 사용하느냐에 따라서 성능 변화가 극심했다. 좀더 일반적인 방법론에 기반해서 모델 성능을 향상시키는 방향으로 연구를 하는 것이 개인적으로는 좀 더 맞다고 생각된다.