Self-taught Learning- Transfer Learning from Unlabeled Data.pdf
Abstract
우리는 self-taught learning이라는새로운 Machine Learning 기법을 제시하겠다. 이는 unlabeled data를 이용해서 supervised classification task를 수행할 것이다. 우리는 unlabeled된 data가 동일한 class label이나 labeled data와 같이 generative distribution을 따를 것이라고 생각하지 않는다. 그러므로 우리는 인터넷에서 랜덤하게 다운 받은 많은 수의 unlabeled 영상(혹은 오디오, 문자)를 사용해서 주어진 영상(혹은 오디오, 문자) classification의 성능을 향상시키는데 사용할 수 있다. 이러한 unlabeled data는 일반적인 semi-supervised나 transfer learning 세팅에 사용되는 data보다 훨씬 쉽게 구할 수 있고, 이러한 self-taught learning을 훨씬 더 넓은 분야에 적용할 수 있게 해준다. 우리는 unlabeled data를 이용한 higher-level feature를 만들기 위해서 sparse coding을 사용하는 self-taught learning에 대해서 설명하겠다. 이러한 틀정들은 간결한 input representation을 가능하게 하고, classification 성능을 크게 향상시킨다. classification을 위해서 SVM을 사용할 때, 우리는 나아가 Fisher kernel이 이러한 representation을 통해서 학습될 수 있을을 보일 것이다.
1. Introduction
Machine Learning(ML)을 위한 Labeled Data(L.Data)는 얻기가 매우 어렵고, 이 때문에 unlabeled data(U.Data)를 이용할 수 있는 능력은 학습을 하는 것을 적용할 수 있는 분야가 늘어남에 따라 큰 장래성이 있다. 이 논문에서는 우리는 U.Data를 이용해서 supervised learning(SL)의 성능을 향상시킬 수 있는 novel use에 대해서 논할 것이다. 우리의 논의에 동기를 부여하기 위해서, 코끼리와 코뿔소를 분류하는 Computer Vision(CV) 예제를 생각해보자. 이 문제에서는, 코끼리와 코뿔소에 대한 많은 L.Data를 얻는 것이 어렵다. 실제로는 코끼리와 코뿔소에 대한 U.Data를 얻는 것 역시 어렵다.(시실, 우리는 class label이 없는 U.Data를 얻는 것 역시 힘들었다.) 이러한 것들 때문에 기존의 U.Data와 L.Data를 이용해서 classification 문제를 푸는 것은 어려운 일이다, 대부분의 semi-supervised learning algorithm들을 포함해도 말이다. 이번 논문에서는 우리는 다른 object class에 속한 U.Image들을 어떻게 사용할 수 있는지 물어볼 것이다-이러한 image들은 정확히 코뿔소나 코끼리에 속한 image를 얻는 것보다 훨씬 쉽다. 예를 들어서 인터넷에서 랜덤하게 이미지에 무한정 접근할 수 있다면(이중 몇몇은 코끼리와 코뿔소에 해당할 것이다), 과연 우리는 주어진 supervised classification task를 더 잘 수행할 수 있을 것인가?
우리의 접근은 많은 랜덤하게 구해진 image는 코끼리와 코뿔소의 그것과 같은 basic visual patterns(edge와 같은)들을 가지고 있다는 사실에 motivated 되었다. 그러므로, 만약 우리가 U.Data를 통해서 이러한 pattern들을 인식할 수 있다면, 이러한 pattern들은 우리가 원하는 supervised learning에 쓰일 수 있을 것이다, 예를 들어 코끼리와 코뿔소를 구별하는 것 말이다. 구체적으로, 우리의 approach는 U.Data를 이용해서 주어진 input의 간결하고, higher-level feature representation을 가능하게 하였다; 이러한 representation은 classification task of interest를 훨씬 쉽게 한다.
물론 우리가 CV를 running example로 하였지만, 우리가 풀려고 하는 문제가 속한 ML community는 더 general하다. 공식적으로, 우리는 주어진 L.Data와 U.Data를 이용해서 SL문제를 풀려고 한다. 예를 들어서 자연 소리에 대한 무한한 접근이 가능하다면, 우리는 더 나은 음성 인식이 가능하지 않을까? 뉴스(글)에 대한 무한한 접근이 가능하다면 우리는 ICML reviewing과 NIPS reviewing을 더 잘 나눌 수 있지 않을까? semi-supervised learning과 같이 우리의 알고리즘은 L.Data와 U.Data를 모두 사용한다.하지만 이와는 다르게 우리는 U.Data가 supervised learning task's class label에 포함된다고 가정하지 않는다. semi-supervised learning과 구별하기 위해서 우리는 우리의 task를 self-taught learning이라고 부르겠다.
supervised learning algorithm에 이러한 U.Data를 통합시키는 것에 대한 기존에 general, principled framework는 존재하지 않는다. Semi-supervised learning은 일반적으로 U.Data가 classification task에 있는 label들에 속할 것이라는 추가적인 가정을 하고, 이러한 label들을 단순히 모른다고 가정을 한다(Nigem et al., 2000). Transfer Learning(TL)은 일반적으로 다르지만, 관련된 task의 L.Data를 추가적으로 필요로 하고, 그 중심에는 한 supervised learning task의 지식을 다른 task로 주는데 있다. 그러므로 TL은 추가적인 L.Data를 필요로 하고, 이들은 가끔 U.Data보다 얻기가 힘들다(expensive). self-taught learning(STL)은 U.Data의 type에 대한 훨씬 더 적은 제약을 가짐으로서 기존의 semi SL이나 TL 방법보다 훨씬 더 적용하기가 쉽다. 예를 들어서 100,000개의 코끼리와 코뿔소의 사진을 얻는 것보다 100,000개의 사진을 인터넷에서 얻는 것이 훨씬 쉽다.우리의 running example을 이용하면, Figure 1은 우리의 STL이 이전에 다른 알고리즘과 어떻게 다른지 알 수 있다.
우리는 STL 문제가 학습 문제를 매우 쉽고 cheaper하게 풀 수 있는 가능성이 있는 ML framework라고 생각한다. 그리고 while we treat any biological motivation for algorithms with great caution, STL은 이전의 방법론에 비해 사람이 학습하는 것과 유사할 것이다. 왜냐하면 사람은 U.Data를 통해서 학습한다고 믿어지기 때문이다. 다음의 informal order-of-magnitude argument에 대해서 생각해보자. 일반적인 성인의 뇌는 약 '$ 10^{14} $' 의 시냅스(연결)이 있고, 일반적인 사람은 '$ 10^9 $' 초 단위까지 살 수 있다. 그러므로, 각 synapse가 1 bit parameter라고 해도, 뇌의 connection을 학습하기 위한 learning algorithm은 1초에 '$ 10^{14}/10^9 = 10^5 $' bit의 정보를 필요로 한다.
'Enginius > Machine Learning' 카테고리의 다른 글
Big Data (0) | 2012.07.17 |
---|---|
Learning sparse recognition for Human action recognition (0) | 2012.07.06 |
Linear Programming (0) | 2012.07.03 |
Gaussian Process 논문 정리 (0) | 2012.06.30 |
Documentation for GPML Matlab Code version 3.1 (0) | 2012.06.28 |