- 2020년 2월 15일 오후 6:33
- 조회수: 7729
INFORMATION
- 2020년 2월 21일
- 오후 1시 ~
- 고려대학교 신공학관 221호
TOPIC
OVERVIEW
현재까지 Deep Networks에서 Classification/Recognition에 대한 연구는 활발히 진행되어 왔다. 하지만 기존의 Closed Set 기반의 Deep Networks는 학습단계에서 학습되지 않은 테스트 데이터가 들어와도 학습된 클래스 중 하나로만 분류할 수 있다. 금일 세미나에서는 학습되지 않은 데이터를 “unknown”으로 인식할 수 있는 Open Set Recognition의 전반적인 내용과 Open Set Recognition 방법론을 Deep Networks에 적용한 모델에 대한 간략한 소개하고자 한다.
아래는 참고한 자료들을 모아둔 페이지입니다.
발표자 후기
금일 세미나에서는 Open Set Recognition에 대한 기본 컨셉과 Open Set Recognition을 Deep Learning 모델에 적용한 OpenMax 알고리즘의 기본 내용에 대하여 다루었다. Open Set Recognition에 대한 직관적인 이해를 돕기 위해 Open Set Recognition의 기본 가정에 대한 이론 중심의 발표보다는 실제 적용 방식에 초점을 맞추어서 준비하였다. 개인적으로 세미나 경험 부족으로 인해 발표에서 준비한 내용을 100% 전달하지 못했던 것이 아쉬웠다. 하지만 부족한 설명에도 이해를 잘 해준 청취자들의 수준 높은 질문들이 기존 학습 방식에 큰 자극을 주었다. 그동안은 논문을 읽으며 공부할 때 해당 논문에서 다루고 있는 알고리즘의 로직 이해에 집중했기에, 해당 연구의 한계점이나 당위성, 실험 세팅에 대한 부분은 다소 소홀히 했었다. 하지만 연구자로서의 시각을 갖추기 위해서는 이러한 부분들이 굉장히 중요한 부분임을 이번 발표의 질문을 통해 다시금 느낄 수 있었다. 개인적으로는 세미나 준비 과정보다 더 많은 것을 배운 세미나였다.
청취자 후기
금일 세미나는 상훈이형이 Open Set Recognition in Deep Learning을 주제로 진행해주었다. 전반적인 open set classification 컨셉과 함께 이 분야의 deep learning을 적용한 최초격인 모델인 Openmax 알고리즘에 대한 세미나였다. Openmax는 train set으로 분류기를 잘 생성한 후, 정분류된 데이터를 필터링하여 average logit vector를 계산한 후 클래스별 데이터와의 거리를 계산하여 거리가 큰 데이터를 상위 n개 sampling하여 이상치 분포를 추정하게 된다. 이 때 이상치 분포를 weibull 분포를 가정할 수 있다. Test 단계에서 unknown data가 input되었을 때, 각 클래스별 weibull 분포의 CDF를 통해 unknown data가 각 클래스별로 얼마나 극단으로 떨어져있는지에 대한 확률을 계산할 수 있고, 해당 확률을 logit에 대한 가중치로 사용하여 unknown class에 대한 logit을 계산할 수 있게 된다. 실제 Openmax 알고리즘이 처음 제안된 논문을 읽어보면 위에 서술한 알고리즘 설명이 아주 불친절하게 되어있어 논문을 읽으면서도 이해가 어려운 부분들이 있었는데, 상훈이형이 step by step으로 친절하게 잘 설명해준 것 같다. 개인적으로는 Openmax 보다는 세미나 초반에 소개해준 Adversarial based learning 방식이 더 관심이 가서 따로 공부해보고 싶다는 생각이 들었다. 첫 발표라 긴장되었을텐데 좋은 세미나를 진행해준 상훈이형에게 감사하다는 말을 전한다.
기존의 DNN Classifier로는 주어진 클래스의 이미지가 아니어도 주어진 클래스 중 하나로 분류하는 단점이 있었다. 예를 들어 개와 고양이 이미지를 분류하는 classifier에 다른 이미지를 넣으면 무조건 둘 중 하나로 분류하는 것이었다. 이를 극복하여 학습데이터에 없는 클래스는 unknown으로 잡아 오분류를 잡아주는 것이 OpenMax 알고리즘이다. 기존의 다른 세미나 주제들도 좋았지만, 오늘 주제는 학부생 수준에서도 딥러닝 classifier를 접해봤다면 쉽게 이해할 수 있어서 더 좋았던 것 같다.
그림을 부연한 설명이 직관적으로 이해하기 좋았다. linear decision boundary(linear하지않고 고차원일수도 있지만) 안쪽에 있으면 이상치라도 class를 분류해버리는 것이 기존의 방법이었다면 boundary를 tight하게 잡아줌으로써 unknown class로 할당하는 것이다. 장점은 일단 기존에 built된 classifier에서 더 tuning이나 tranining을 시킬 필요 없이 개선이 가능하다는 것이고, 단점이라면 한샘이형이 말했던 것처럼 generalization을 일부 포기한다는 것이다.
distance 기반으로 weight을 줄 때 L2 Distance로 하면 데이터의 variance를 고려하지 못하지 않을까가 궁금했는데, 형록이형이 cosine similarity나 기타 다른 distance( ex. Mahalanobis, Bhatachaya)를 써도 된다고 답변해주셨다. 데이터의 분포나 개수에 따라 distance distance와 max_n hyperparameter만 바꿔주면 되니까 어렵지 않게 구현할 수 있을 것 같다.
최근 세미나 주제가 아직 학부생 수준에서는 어렵기도 하고 멀게 느껴지도 하였지만, 오늘 주제는 잘 이해되서 좋았다. 발표 준비한다고 고생하신 상훈이형께 감사를 드린다.
금일 세미나는 상훈이형이 ‘Open Set Recognition in Deep Networks’라는 주제로 진행하였다. 기존 Deep Networks에는 학습 데이터에 없는 클래스가 들어오게 되면 기존에 존재하는 클래스로 분류하게 된다. 하지만 Open Set Recognition의 분류는 새로운 클래스의 데이터가 들어오게 될 때 기존의 클래스로 분류하는 것이 아니라 새로운 클래스에 대해 unknown으로 분류하게 된다. Open Max알고리즘은 기존의 Logit값에 잘못된 분류했을 경우의 확률에 대응하는 가중치를 빼주고 그 값을 unknown의 Logit값에 더해준다. 여기서 가중치는 Extreme Value Theorem에 기반한 극단값 분포를 통해 정의한다. Unknown data가 얼마나 극단으로 떨어져 있는지에 대한 확률을 가중치로 상용하게 된다. 향후에는 Unknown 클래스로만 분류하는 것이 아닌 Unknown 클래스들도 분류할 수 있는 연구를 해보면 어떨까 라는 생각을 했다. Open Set Recognition에 대해 잘 설명해준 상훈이형에게 감사한 마음을 전하고 싶다.
금일 세미나는 Open Set Recognition in Deep Networks에 대한 주제로 상훈이 형이 발표했다. 기계학습 분야에서는 특정 클래스에 대해 분류하기 위해 많은 분류 모델이 존재한다. 최근에는 딥러닝이 도입되면서 정형, 비정형, 이미지 등 다양한 형태의 데이터를 분류할 수 있게 되었다. 이번 세미나에서는 특정 클래스에 대해 잘 학습된 분류 모델이 알지 못하는 클래스가 입력되었을 때 잘못 분류되는 문제에 대해 어떻게 해결하는지 설명했다. 보통 분류 모델은 마지막 레이어에 특정 클래스의 개수만큼 노드를 구성하여 소프트 맥스로 확률값을 도출한다. 이 때 학습되지 않은 클래스가 입력되었을 때 Unknown으로 분류하기 위해 OpenMax 알고리즘을 적용하는 것이 핵심이다. OpenMax 알고리즘은 거리 기반으로 하여 값을 구하게 되고 가정한 분포 내에서 CDF를 통해 거리의 극단 확률을 계산한다. 구한 확률은 학습된 특정 클래스가 ‘아니다’라는 지표로써 Unknown 클래스의 값을 도출하는데 사용된다. 오늘 발표 내용을 통해서 강화학습으로 적용한 사례가 있지 않을까라는 생각이 든다. 사전에 학습된 분류 모델과 분류 모델로부터 출력된 값을 새로운 예측 모델을 구축하여 예측 결과를 도출하는 모델과의 강화학습을 적용한다면 재미있는 연구가 되지 않을까 생각한다.
Open Set Recognition 을 주제로 세미나가 진행되었다. Open set 은 알려지지 않은 class (Y)을 Unknown class 로 보는 데이터를 말한다. 우리는 신경망에 softmax 함수를 적용하여 클래스별 정답일 수치를 확률적으로 도출한다. 주어진 클래스에는 정답이 없다는걸 인식하기 위해선 예측확률이 애매해한 점을 활용한다. 여기서 클래스별 평균 logit vector와 거리를 기반으로 상위 거리 값을 극단치분포(weibull 등)를 생성하고 , 이 극단분포의 CDF를 해당 클래스가 아닐 확률로 본다. 그 값을 logit vector에 적용(곱한값을 다시 그 값에 빼줌)하고, softmax에 적용하여 Unknown class를 예측한다. Open set recognition 분야가 요즘 활발히 연구되고 있는 것 같다. 오늘 세미나는 그에 기초적인 내용을 짚어주었다.
오늘 세미나는 상훈 오빠가 Open Set Recognition In Deep Networks라는 주제로 진행해주었다. 상훈 오빠의 꼼꼼한 성격이 묻어나는 세미나였다. 평소에 같이 스터디를 하면서 상훈 오빠가 얼마나 설명을 잘하는지 알기 때문에 긴장한 오빠의 모습에 스멀스멀 웃음이 나서 참으면서 들었던 것 같다. 한샘이와 종국이의 날카로운 질문들도 들으면서 한편으로는 든든하고 한편으로는 다시 내 마음가짐을 다잡고 긴장하게 했다. OpenMax 알고리즘은 지난번 승호오빠의 DOC 알고리즘보다 이론적 통계적 background가 탄탄하고 더 복잡한 프로세스로 진행된다. 하지만 DOC보다 좋은 성능이 나오지 않는다는 형록오빠의 말이 기억이 난다. 이런 부분에서 아이러니함을 느낀다. 과연 좋은 연구란 무엇인가 고민하게 한다.
금일 세미나는 상훈이형이 'Open Set Recognition In Deep Networks'에 대하여 세미나를 발표해주었다. 클래스가 부여되어있는 학습 데이터셋을 통해 분류기 모델을 생성한 후 클래스 집합에 들어 있지 않은 새로운 샘플이 분류기에 들어왔을 때 보다 합리적인 분류 결과를 도출하기 위한 여러 방법론 중 Distance-based OpenMax Algorithm에 대한 설명을 해주었다. OpnMax 이론 설명에 앞서 심층신경망 분류 모델의 한계에 대한 자세한 설명 덕분에 심층신경망의 문제가 무엇이고 문제가 발생하는 이유, 개선해야할 부분에 대하여 정확하게 알려주고 이 후 설명을 진행해주다보니 보다 핵심 설명의 이해를 돕는데 큰 도움이 되었던 것 같다.
나는 OpenMax 알고리즘의 주요 아이디어가 Neural Network Classifier를 통해 최종적으로 도출되는 Logit 값에 분류기가 특정 클래스로 잘못 분류했을 확률에 대응하는 가중치를 곱한 값을 이용하여 unknown class에 대응되는 Logit 값을 찾아내는 것이라고 이해했다. 그 중 흥미로웠던 부분은 분류기가 특정 클래스로 잘못 분류했을 확률에 대응하는 가중치를 정의하기 위해 학습하고자 하는 클래스 별 평균 Logit Vector로부터의 거리에 대한 극단값의 분포를 정의하는 것이였다. 처음에는 클래스가 부여되지 않은 샘플의 데이터를 이용해 나온 Logit 값을 학습하는 동안 나온 Logit값이 정규분포를 따른다고 가정하고 평균으로부터 떨어진 거리만 이용하면 되지 않을까? 하고 생각했었는데, 알고보니 잘못 분류한 Logit 값이 각 클래스별 극단값 분포의 누적분포함수 값을 이용해서 평균 Logit Vector와의 거리의 극단 확률 계산을 하는 것을 보고 상당히 인상 깊었다. 이러한 극단 분포를 나타내는 Weibull분포나 Frechet 분포, Gumbel분포는 기억해두었다가 다음에 극단값의 분포를 사용해야 하는 적용 부분이 있을 때 꼭 한번 써보고 싶다는 생각이 들었다.
추가적으로 Open Set Recognition을 분류하는 점에서 Adversarial Learning-based와 오늘 설명한 Distance-based 에서 Adversarial Learning-based에 관련된 해결방법 이론에 대해 논문을 찾아보고 싶었다. GAN 등의 생성모델을 통해 어떠한 식으로 새로운 클래스를 학습하는 과정을 거치는 것인지 흥미롭다고 생각했고, 이러한 여러 유용한 정보를 알려주시고 준비해주신 상훈이형에게 감사하다.
금일 세미나 주제는 'Open Set Recognition in Deep Networks' 에 관한 주제로 진행되었다. 기존의 기계학습의 분류는 훈련 데이터의 형태에 따라 비지도학습/지도학습으로 나누고 또 지도학습에서도 Y변수의 형태에 따라 회귀모델/분류모델로 구분한다. Open Set Recognition 에서는 보통 분류모델에서 많이 사용하며 잘 훈련된 모델로 얻은 Logits 를 SoftMax Activation 을 잘 시키는 분류기를 생성하여 잘 구분시키는 것이다. 여기서 분류모델의 한계가 존재하게 되는데 첫번째는 결정경계에 가까운 데이터가 들어올 경우 분류를 잘 하지 못하는 것과 두번째로 학습되지 않았던 데이터가 들어오면서 이를 오분류하게 되는 것이다. 이를 해결하기 위해 Open Set Recognition 이 생기게 되었다. 기존과 같이 학습하되 Test 에서 새로운 class 가 들어올 경우 unknown class 로 따로 분류되도록 OpenMax 알고리즘을 이용하여 구분하는 것이다. 각 클래스의 평균 Logit Vector 와의 거리를 기준으로 가장 거리가 큰 20개(상황에 따라 다를수 있음)샘플을 각 클래스 별로 추출하고 각각의 극단분포의 CDF를 통해 각 클래스 평균 Logit Vector와의 거리의 극단 확률을 계산하고 그 값을 w로 두어 Logit vector를 업데이트 한다. 이로인해 만약 지금까지 학습했던적이 없는 데이터가 들어올 경우 unknown class로 구분이 된다. 매우 어려운 논문을 알기 쉽게 설명을 해주어 직관적으로 잘 이해할 수 있었다.
오늘의 세미나 주제는 Open Set Recognition, 즉 알수없는 클래스를 분류하는 방법에 대한 내용이었습니다.
예전에 이러한 비슷한 문제로 필요로 하는 이미지 외의 것들에 대한 필터링을 위해 고민했던 경험이 생각나면서 흥미로운 주제로 다가왔습니다.
소개된 논문에서 제시한 해결법은 OpenMax라는 기법으로 학습이 완료된 모델의 결과값인 Logit 값들의 평균과 그로부터의 거리 계산, Weibull분포생성 등의 통계적인 기법들을 통하여 각 클래스의 경계를 명확히 하고, 그 경계 밖에 것들은 미상 클래스로 분류하는 것이었습니다.
저렇게 명확해진 경계로 인해 정규화되지 않은 오버피팅된 결과가 나올수도 있지 않겠냐는 의견도 나왔지만, 개인적으론 데이터 확보 관점에서 부족한 데이터 유형을 확인하는데 유용한 힌트로서 활용할 수 있지 않을까란 생각도 들었습니다.
2016년도에 나온 논문이지만 앞으로 활용할데가 많은 내용이라 참 좋았고, 심플한 자료와 간결한 설명으로 이해하는데 큰 도움을 주신 김상훈 연구원님께 감사드립니다.
금일 세미나는 “Open Set Recognition in Deep Learning” 이라는 주제로 김상훈 연구원님께서 발표해 주셨다. 최근 Deep Learning 모델의 발달로 사용분야가 늘어남에 따라 중요한 토픽으로 자리잡고 있는 분야인 만큼 집중도가 있는 세미나였다. 금일 세미나에서는 Open Set Recognition의 개념 정의를 시작으로 Open Set에서 Unknown 샘플을 구별하는 원리를 탐구하는 방식으로 이루어 져서 듣기에 아주 편안했던 것 같다. Deep Learning을 이용한 Classification은 각 Class에 대한 확률을 기반으로 분류를 진행하게 된다. 예를 들어 고양이/강아지/토끼 3가지의 클래스를 가지고 있는 분류 모델을 학습시키면 고양이를 Input으로 넣었을 때 고양이에 대한 Logit Vector는 아주 커지게 되고, 강아지와 토끼에 대한 Logic Vector는 아주 작게 표현되어 고양이를 맞추는 방식이다. 오늘 세미나는 이러한 Deep Learning의 특성을 이용하여 우수한 성능으로 Unknown 샘플을 구별할 수 있는 OpenMax 알고리즘을 자세한 예시를 들어 설명해 주었다. 핵심 방법은 1)학습데이터의 Class별 Logit Vector 평균값을 계산하고 2)계산된 Logit Vector의 평균값과 각 샘플의 거리를 계산하여 List-up한 다음 3)극단에 있는 Logit Vector들을(개수는 Hyper para) 이용하여 각 Class 평균 Logit Vector와의 거리 극단 확률을 계산 4)실험 샘플의 Logit Vector와 함께 확률을 계산하여 Unknown여부를 확인하는 알고리즘을 이용한다. 기존에 Open Set관련 연구를 진행하며 Softmax의 확률 값을 이용한 Naïve한 Unknown 검출 알고리즘을 사용 했었는데 OpenMAX를 알게 되어 조금 더 성능을 높여볼 수 있을 것 같다는 생각이 들었다. 어려운 논문을 깊게 공부해서 쉽게 알려준 김상훈님에게 감사하다는 말을 전하고 싶다.
오늘 세미나는 Open Set Recognition in Deep Networks를 주제로 진행되었다. 심층 신경망의 배경지식부터 OpenMax 알고리즘까지 차근차근 설명해주셔서 아직 여러 이론들을 알지 못하는 나 역시도 쉽게 이해할 수 있는 세미나였다. OpenMax 알고리즘은 Open Set Recognition의 분류에서 사용되는 방식으로, 심층신경망의 분류 모델에서 학습 데이터에 없는 클래스가 들어올 때 이를 Unknown으로 분류해내는 알고리즘이다. 기존 분류기의 학습은 결정경계의 학습이기 때문에 단순히 주어진 데이터를 클래스 개수만큼 구분 짓는 역할을 하였다. 반면에 Open Set Recognition은 기존 분류기와는 달리 각 class를 감싸는 형태의 결정경계로 학습하는 과정이다. 이를 Distance-based로 계산하는 OpenMax 알고리즘은 Logit Vector에 잘못 분류했을 확률에 대응하는 가중치를 곱한 값으로 unknown class에 대응되는 새로운 Logit값을 계산하여 그 결과를 활용한다. 명확하게 이해되는 피피티 자료를 바탕으로 OpenMax알고리즘이 Unknown 클래스의 오분류를 잘 잡아내는 과정을 알아볼 수 있었다. 개인적으로 관련 논문을 읽으면서 더 깊이있게 공부해보고 싶다는 생각이 들었던 세미나였다.
오늘은 "Open Set Recognition"을 주제로 세미나가 진행되었습니다. 기존의 머신러닝 알고리즘들은 학습되지 않은 클래스에 대해 인식할 수 없다는 단점을 가지고 있습니다. 따라서 학습되지 않은 클래스의 데이터가 들어오게 되면 기존에 학습된 클래스 중 하나로 예측을 하게 됩니다. 이러한 단점을 극복하고자 제안된 방법이 Open Set Recognition 입니다. Open Set Recognition의 decision boundary는 training data 근처를 감싸는 형태로 학습을 하고 학습된 decision boundary 이외의 영역은 unknown class로 인식하게 됩니다. Open Set Recognition의 방법론은 생성모델을 통해 기존과 비슷한 데이터를 생성한 후 새로운 클래스로 정의하여 학습시키는 Adversarial Learning-based와 평균으로부터 떨어진 거리, 다른 클래스와의 마진등을 활용하는 Distance-based 방식으로 크게 나뉩니다. 이번 세미나에서는 Distance-based 방식의 알고리즘 중 하나인 OpenMax에 대해 살펴보았습니다. OpenMax는 unknown class에 대응되는 logit 값을 새로 정의하여 기존의 logit vector와 함께 softmax function을 적용하는 방식으로 동작합니다. Unknown class에 대응하는 logit을 새롭게 정의하기 때문에 OpenMax는 학습되지 않은 클래스를 unknown class로 인식할 수 있게 됩니다. 이번 세미나를 통해서 Open Set Recognition이라는 새로운 개념을 접하고 학습할 수 있는 기회가 되어서 의미있는 시간이었습니다. 특히 기존의 머신러닝과 다르게 unknown class에 대해 예측하겠다는 개념이 흥미로웠습니다. 어려운 개념을 쉽게 잘 설명해준 상훈이형에게 감사하는 인사를 전합니다.
이번 세미나는 고려대학교 신공학관 221호에서 김상훈 연구원님이 ‘Open Set Recognition In Deep Networks’라는 주제로 한시간 가량 발표를 진행해주었습니다. 제가 작성하였던 기존의 후기들은 발표를 진행하였던 세미나의 주제들에 대해 잘 모르기 때문에 그 주제에 대해 이해하는 데 초점을 맞추어 작성하였습니다. 다행스럽게도 이번 세미나는 연구실 인원들과 소규모로 스터디를 진행하고 있는 분야(open set recognition)여서 좀 더 수월하게 세미나 내용을 이해할 수 있었습니다. 따라서 이번 후기는 간단하게 세미나를 통해 느낀 점을 서술하고 마치도록 하겠습니다.
발표가 진행되는 동안 가장 크게 느꼈던 점은 ‘내가 발표자라면 주어진 여러 질문들에 김상훈 연구원님처럼 잘 대답할 수 있을까?’ 였습니다. 강현구 연구원님, 곽민구 연구원님을 포함한 여러 연구원분들의 질문이 수준 높아서 앉아있는 저 스스로 질문에 대한 답을 생각해보았을 때 선뜻 답이 떠오르지 않거나 헷갈리는 부분이 많았기 때문입니다. 따라서 논문을 읽으면서 이해했다고 생각하고 넘어간 부분들이라도 다른 사람들에게 설명하고자 할 때는 좀 더 확실하게 이해하고 있어야 한다는 것을 체감하였습니다. 또한, 많은 분들이 한 번에 세미나 내용을 한번에 이해하는 것을 보고 스스로 자극도 받았습니다. 제가 처음 이 주제를 접했을 때 아무것도 이해못하던 것이 기억났기 때문입니다. 이러한 느낀 점들을 바탕으로 다음 저의 세미나를 준비해야겠다는 생각을 하였습니다. 첫 발표임에도 자료를 잘 준비해서 성공적으로 발표를 해준 김상훈 연구원님에게 감사하다는 말 전하며 후기 마치겠습니다.
금일 세미나 주제는 'Open Set Recognition In Deep Networks'으로 Open set 데이터에서 Unknown class를 식별하는 방법론에 관한 세미나였다. Unknown class를 판별하려면 먼저 분류 모형에 대한 기본 이해가 되어있어야 하는데 심층신경망 분류 모델, logit과 Softmax 설명이 있어서 걱정 없이 들을 수 있었다. 심층신경망 분류 모형은 Softmax 확률값을 기반으로 클래스를 구분 짓게 된다.이 때, 세미나에서 소개된 Open Max 알고리즘은 출력층에 Unknown class에 대한 노드를 추가하고, Unknown class에 대한 새로운 logit값을 설정하여 이를 구분할 수 있게 된다. Unknown class logit을 정의하는 과정은 distance-based이며 각 클래스별 평균 Logit Vector를 통해 구한다. 클래스별 평균 Logit vector와 떨어진 상위 20개의 데이터로 Weibull 분포에 피팅시키게 되면, 클래스 개수만큼의 Weibull 분포가 생성되게 되고 이 때, Weibull 분포의 CDF값들을 조합하여 Unknown class logit값을 정의하게 된다. 결국, Unknown class라는 새로운 클래스 하나가 추가되어 recognition을 수행할 수 있게 된다. 이 과정을 자세하고 꼼꼼하게 설명해준 상훈이 형에게 감사드리며, Open set Recognition은 어려운 주제로만 생각했는데 쉽게 이해할 수 있어서 뿌듯한 세미나였다.
Open Set Recognition의 알고리즘 중 하나인 OpenMax를 중점적으로 다루는 세미나를 청취했다. Open Set Recognition이란 모델을 학습할 때 없었던 클래스가 평가 데이터에서 나타났을 때, 학습 클래스 중 하나가 아닌 'Unknown'으로 분류를 할 수 있는 기능을 수행하는 알고리즘을 연구하는 분야이다. 예전에 승호형이 진행했던 Deep Open Classification도 이 분야의 알고리즘에 해당된다. 실제 상황에서 자주 일어날 수 있는 문제점이기 때문에 이 분야에 대한 연구가 필요하다고 개인적으로도 생각하고 있다. 오늘은 OpenMax 알고리즘이 실제로 수식적으로 어떻게 작동이 되는지에 대한 설명을 위주로 진행되었다. 논문을 살펴보면 글로 설명이 되어 있는 것보다 pseudo code를 보는 것이 이해가 더 쉬울 정도로 불친절하게 설명이 되어 있는데, 이를 각 단계별로 풀어서 잘 설명을 했다고 생각한다. 차근차근 스텝을 따라가게 되면 OpenMax operation을 이해할 수 있게 설명해주었다.
금일 세미나는 Open Set Recognition in Deep Networks 라는 주제로 상훈이 형이 진행했다. 지난 승호형의 세미나 주제였던 Open Set Recognition의 연장선에서 금일 세미나를 들어 이해하기 쉬웠다. 세미나 내용의 핵심은 기존 심층 신경망에서 다중 분류 수행시 사용하는 Softmax의 한계점과 이를 극복하여 'Unknown' 범주를 분류할수 있는 Openmax 였다. Softmax에 입력되는 logit값을 확률로 변환하여 기존에 알고 있는 'Known' 범주에 대한 성능을 유지하며 'Unknown' 범주에 대해서도 예측 가능하다는 것이 인상적이었다.
본인의 연구 분야인 Image Segmentation 분야에서는 어떻게 활용할 수 있을까라는 고민이 생겼다. 또한, 발표 장표 내 그림을 보고 Support Vector Data Description과 유사하다는 생각이 들었는데, 고민하여 어떻게 차이가 있는지에 대한 결론도 내어야 겠다. 마지막으로 멘토링 진행 시 해결하고자 하는 문제에 이를 적용하여 인공지능 모델 사용자의 편의를 높일 수 있을것이라는 생각이 들었다. 상훈이형에게 있어 자신이 진행하는 첫 세미나였던터라 많은 부담이 되었을텐데, 모든 청중들에게 알기 쉽게 자료와 설명을 준비해주어 감사하다는 말을 전하고 싶다.
금일 세미나에서는 김상훈 연구원님께서 Open Set Recognition in Deep Networks라는 주제에 대해 진행해주셨다. 처음 듣는 초보자들도 쉽게 이해할 수 있도록 배경지식부터 개념 및 한계점 등 자세히 알기 쉽게 설명해주셨다. Unknown class를 잡아낼 수 있는 OpenMax알고리즘에 대해서도 각 STEP별로 구분하여 친절한 설명을 해주셨다. 최근에 온라인 인강을 들으면서 궁금했던 Unknown class도 이렇게 분류하는 방법이 있다는 것을 새롭게 알게되었고 이를 챗봇에 적용하면 어떨까라는 생각이 들었다. 챗봇 사용자의 발화 의도는 항상 정해진 카테고리(Known) 내에 있는것이 아니기 때문이다. 오늘의 세미나도 유익한 시간이었고 이해하기 쉽게 설명 주신 김상훈 연구원님께 감사의 말씀 드리고 싶다.
금일 세미나는 상훈이형이 Open Set Recognition in Deep Networks라는 주제로 세미나를 진행하였다. 기존의 Classification 알고리즘은 학습할 때의 Label을 기준으로 Test 데이터를 분류한다. 그렇기 때문에 가지고 있는 Label세트가 제한된 상황에서 훈련되지 않은 데이터를 엉뚱하게 분류하게 된다. 예를 들어 강아지, 고양이, 토끼만을 학습한 모델이 너구리 이미지를 입력 받았을 때 강아지라고 답할 수도 있다. 상식적으로는 이를 Unknown으로 처리하는 것이 옳다. 따라서 이번 세미나에서 소개한 OpenMax 모델은 Unknown 분류를 하도록 분류기를 만든다. 이번에 소개된 방법은 Distance-based로 유사한 데이터들 주변에 닫힌 모양의 결정경계를 정하고 결정경계에서 벗어난 지역에 있는 데이터는 Unknown으로 분류하게 된다. OpenMax 알고리즘은 기존 분류기처럼 가지고 있는 클래스별 데이터셋으로 학습을 진행하고 각각의 logit vector를 생성한다. 이후 생성된 클래스별 logit vector셋 각각의 평균을 구한 뒤 평균logit vector와 logit vector셋 간의 차이를 구한다. 계산된 차이 값 중 상위 n개의 값을 사용하여 극단치 분포를 생성한다. 이 극단치 분포가 처음 보는 이미지 데이터가 들어왔을 때 이를 outlier라고 구분해주는 역할을 하게 된다. 따라서 너구리 이미지로 생산된 logit vector를 계산하고 이와 각각의 기존 정답 클래스 평균 logit vector 값의 차이를 가지고 극단 확률의 계산한다. 여기서 나온 확률값으로 Unknown 클래스가 포함된 logit vector를 업데이트하여 분류를 진행한다.
생소한 주제였지만 설명을 쉽게 잘 풀어주셔서 이해하는데 많은 도움이 되었습니다. 세미나를 열심히 준비해주신 상훈이형께 감사드립니다!
오늘은 상훈오빠가 ‘Open Set Recognition in Deep Netsorks’라는 주제로 세미나를 진행해주셨다. Open set recognition은 train set에 존재하지 않았던 새로운 test set에 대해서 ‘unknown’으로 구별해주는 것을 목적으로 한다. 초기 연구들은 closed set classifier의 softmax값을 기준으로 임계값을 설정하기 위한 연구들이 제안되었다. 하지만, open set recognition연구는 기존 softamx값에 대해 한계를 지적한다. Classifier를 학습시킨다는 것은 decision boundary를 생성하는 것을 의미하는데, 이런 decision boundary에 가까운 ‘unknwon’범주에 대해서는 softmax값을 기준으로 임계값을 통해 탐지해내는 것이 상대적으로 타당할 수 있지만, 그렇지 않은 ‘unknown’범주에 대해서는 높은 confidence score로 오분류할 가능성이 크다. 따라서 이러한 한계점을 극복하기 위해 decision boundary를 범주들을 타이트하게 bound하는 것을 목표로 한다. 오늘 소개한 open max는 true positive samples들을 범주별로 구분하고, 가장 평균과 먼 samples을 일종의 이상치로 구분하여 극단분포(Weibull, Gumbel, Frechet분포 등으로 추정 가증)를 생성한다. 해당 분포의 누적분포함수(CDF)를 통해 각 범주 별 평균 logit vector와의 극단에 대한 확률을 계산한다. 최종적으로 inference 단계에서 ‘unknown’범주에 대한 logit vector를 정의하게 되며, 이때 정의된 logit vector는 각 범주들이 아닐 확률을 기반으로 정의된다. 이때 정의되는 ‘unknown’범주에 대한 logit vecotr가 갖는 의미는 기존의 ‘known’범주들이 아닌 정도로 해석할 수 있다. 오늘 상훈오빠가 소개해준 논문을 읽어볼때 수식적으로나 의미적으로나 내용을 이해하는데에 어려움이 많았다. 따라서 오늘 상훈오빠가 전달한 자료는 그러한 고민들을 잘 녹여내주어 의미전달이 명확히 될 수 있었던 것 같다. 또한 해당 저자들이 꾸준히 open set recognition문제들을 주도하고, 본인들의 연구를 발전시켜나가는 과정을 보면서 느끼는 바가 많았다. 여러모로 좋은 귀감이 되어준 상훈오빠에게 감사하다.
이번 세미나는 open set recognition in deep networks라는 주제로 진행되었다. 기계학습에서 분류 문제는 사전에 정의된 (특히, 학습 데이터셋에 포함된) 클래스를 잘 분류하는 문제로 정의된다. 하지만 현실 문제에서는 테스트 단계에서 사전에 정의되지 않은 클래스가 발견될 수 있으며, 일반적으로 사전에 정의되지 않은 클래스가 사전 정의된 클래스 중 하나로 분류되기를 원하지는 않는다. Open set recognition에서는 이를 해결하기 위해 사전에 정의된 클래스들에 대해서는 잘 분류를 하는 동시에, 사전에 정의되지 않은 알 수 없는 클래스 (unknown class)에 대해서는 unknown이라는 판단을 할 수 있는 분류기를 만드는 것을 목표로 한다. Open set recognition을 위해서 다양한 알고리즘들이 연구되어 왔고, 최근에는 deep neural network을 이용한 open set recognition 알고리즘들도 발표되고 있다. 세미나에서는 최초의 neural network 기반의 open set recognition 알고리즘인 openmax를 소개하였다.
이번 세미나는 Open set recognition을 주제로 진행되었다. 기존 심층신경망을 통한 분류는 학습 데이터에 없던 ‘Unknown’클래스의 데이터가 들어왔을 때 이미 존재하는 클래스로 분류된다는 문제점을 가지고 있다. Open set recognition은 Unknown 데이터를 Unknown 클래스로 분류하고자 하는 연구이다. 기존 Closed set recognition 방식에 Threshold를 주어 모든 클래스에서 reject되면 Unknown class로 분류하는 연구도 있었다. 해당 방식은 결정경계 주변에 있는 데이터에 대해서는 효과적일 수 있지만 그 외의 Unknown데이터들에 대해서는 여전히 기존 클래스로 분류된다는 한계점을 가진다. Open Max는 거리 기반으로 결정경계를 타이트하게 결정하므로 한계점을 극복했다. Open max 알고리즘은 각 클래스별 평균 Logit Vector와의 거리가 가장 큰 상위 n개의 데이터로 극단치 분포를 생성한다. 클래스별로 생성된 극단치 분포의 CDF값은 Logit vector가 해당 클래스가 아닐 확률이다. CDF값을 통해 Unknown 클래스의 Logit vector가 생성되고, 기존 클래스의 Logit Vector가 업데이트 된다. 처음 접하는 개념이었지만 기존 기계학습의 분류알고리즘부터 Open max알고리즘까지 이해하기 쉽게 준비해주신 상훈오빠께 감사하다.
최근 연구실에서 많은 관심을 갖고 있는 Open Set Recognition 문제에 대한 세미나였다. 강아지와 고양이 이미지를 분류하도록 학습된 모델이 있다고 하자. 테스트 단계에서 표범 이미지를 입력했다면 필시 고양이일 확률을 높게 예측할 것이다. 표범과 고양이가 같은 과의 동물이라는 점에서 이 예측은 크게 문제가 되지 않는다. 문제는 학습한 강아지 혹은 고양이와 전혀 무관한 사람, 깡통, 심지어 랜덤 노이즈만 있는 이미지에 대해서도 강아지 혹은 고양이 클래스에 높은 확률을 부여한다는 점이다. 딥 러닝의 고질적인 문제인 과적합의 관점에서 봤을때 이는 모델의 크기에 비해 학습 데이터의 다양성이 크게 떨어지기 때문이다. 이를 해결하기 위해 adversarial examples를 찾는 연구가 존재한다. Open Set문제는 학습하지 않은 데이터에 대해선 '난 몰라!'라고 대답할 수 있는 모델을 구하는 것이라고 이해했다. 오늘 소개된 OpenMax 기법은 여러모로 흥미롭고 개선할 수 있는 포인트들이 많아 좋은 연구 주제가 될 수 있다고 생각한다. 모델을 모두 학습한 이후 적용하는 ad hoc 기법이라는 점에서 여러 모델들에 쉽게 적용할 수 있을 것으로 보인다. 개인적으론 학습 과정에서도 미리 알지 못하는 클래스를 고려하는 Open Set 기법에 대해서도 시간을 내어 공부를 해보고 연구로 발전시켜보고 싶다.
상훈이가 우리 연구실에 들어와서 처음으로 한 세미나였다. 성의있는 준비와 발표 많은 칭찬을 해 주고 싶다.
1. 최근 중요한 문제로 대두되고 있는 open set recognition 연구 발표
2. 매우 직관적으로 슬라이드를 만들어 청중들이 이해하는데 큰 어려움이 없었음
3. 발표 시 청중을 보면서 좀 더 여유롭게 발표를 하면 좋을 것 같음
4. 기존 방법론들을 자세히 이해하고 구현해 보는 과정에서 한계점이나 개선점을 발견할 수 있음
5. 개선할 점을 본인의 아이디어로 구현해 보는 과정이 바로 연구
6. 향후 발표에는 상훈이의 아이디어가 가미된 open set recognition 알고리즘을 볼 수 있기를 희망