검수요청.png검수요청.png

비지도학습

위키원
이동: 둘러보기, 검색

비지도학습(Unsupervised Learning)은 기계 학습의 일종으로, 데이터가 어떻게 구성되었는지를 알아내는 문제의 범주에 속한다. 이 방법은 지도학습(Supervised Learning) 혹은 강화학습(Reinforcement Learning)과는 달리 입력값에 대한 목표치가 주어지지 않는다.

개요[편집]

학습 훈련 데이터(training data)로 출력 없이 입력만 제공되는 상황을 문제(입력)의 답(출력)을 가르쳐 주지 않는 것에 비유해 비지도형 기계 학습, 비지도학습 이라고 한다. 비지도학습은 사람의 해석을 통해 유용한 지식을 추출하는 데 활용되거나, 지도학습에서의 원래 입력보다 데이터 특징을 더 잘 표현하는 새로운 입력을 만드는 특징 추출기(feature extractor)로 활용된다. 비지도학습은 통계의 밀도 추정(Density Estimation)과 깊은 연관이 있으며, 데이터의 주요 특징을 요약하고 설명할 수 있다. 비지도학습의 예로는 클러스터링(Clustering), 독립 성분 분석(Independent Component Analysis)이 있다.

클러스터링은 유사성 등의 개념에 기초하여 데이터를 몇몇의 그룹으로 분류하는 수법을 총칭하는 것으로, 문헌 검색, 패턴 인식, 경영 과학 등에 폭넓게 응용되고 있다. 클러스터 분석은 주어진 데이터들의 특성을 고려해 데이터 집단(클러스터)을 정의하고 데이터 집단의 대표할 수 있는 대표점을 찾는 것으로 데이터마이닝(data mining)의 한 방법이다. 클러스터는 비슷한 특성을 가진 데이터들의 집단을 의미한다. 반대로 데이터의 특성이 다르면 다른 클러스터에 속해야 하는 것이다. 클러스터 분석을 통해 수백만의 데이터를 직접 확인하지 않고 각각 클러스터의 대표값만 확인해 전체 데이터의 특성을 파악할 수 있다. 독립 성분 분석은 다변량의 신호를 통계적으로 독립적인 하부 성분으로 분리하는 계산 방법이다. 각 성분은 비가우스성(non gaussian characteristic) 신호로서 서로 통계적 독립을 이루는 성분으로 구성되어 블라인드 신호를 분리할 수 있다.

특징[편집]

비지도학습은 기계학습 중 컴퓨터가 입력값만 있는 훈련 데이터를 이용하여 입력들의 규칙성을 찾는 학습 방법으로 입력의 규칙성에 따라 군집 분석(Cluster analysis), 의존 구조(Dependency structure) 학습, 벡터 양자화(Vector quantization), 데이터 차원 축소(Data dimensionality reduction) 등으로 구분한다. 군집 분석과 의존 구조 학습은 주로 데이터에 내재하는 유용한 정보나 지식을 추출하는 데 활용된다. 예를 들어, 유전자 데이터에서 학습된 유전자 사이의 의존 구조는 생의학 연구자들에게 새로운 지식을 제공할 수 있다. 벡터 양자화와 데이터 차원 축소는 데이터의 잡음과 불필요한 입력을 제거하며, 지식 추출, 데이터 압축 및 특징 추출(Feature extraction) 등에 적용된다. 특징 추출은 원래 입력보다 데이터를 더 잘 표현하는 새로운 입력을 만드는 것을 의미하며, 추출된 특징은 지도 학습의 성능을 향상시키는 데 이용된다.

군집 분석[편집]

군집 분석(Cluster analysis)은 대표적인 비지도학습의 방법으로 데이터의 분할 및 요약에 널리 이용되며 데이터의 유용한 지식을 추출하는데 활용될 수 있다. 군집분석은 1932년 헤럴드 드라이버(Harold Driver)와 앨프리드 크로버(Alfred Kroeber)가 처음 시도한 것으로 알려져 있다. 군집 분석은 서로 유사한 정도에 따라 다수의 객체를 군집으로 나누는 작업 또는 이에 기반한 분석으로, 동일한 군집에 속하는 객체 간의 유사도가 그렇지 않은 객체 간의 유사도보다 평균적으로 높도록 군집을 구성한다. 이때 집단 또는 범주에 대한 사전 정보가 없는 데이터의 경우, 주어진 관측 값을 사용하여 전체를 몇 개의 유사한 집단으로 그룹화하여 각 집단의 성격을 파악한다. 최적의 군집 개수를 정하거나 군집 분석 결과의 정확도를 평가하는 객관적인 기준은 없으며, 배경 지식에 근거한 사람의 주관적인 평가가 필요하다. 대표적인 군집 분석 방법으로 계층적 군집화와 k-평균 군집화를 들 수 있다.

  • 계층적 군집화 : 병합적이고 분할적인 방법이다. 계층적 군집화의 병합 방법은 n개의 군집들을 가지고 시작해서 최종적으로 하나의 군집이 남을 때까지 순차적으로 유사한 군집들을 병합하는 상향식 방법이다. 계층적 군집화의 분할 방법은 모든 레코드들을 포함하고 있는 하나의 군집에서 출발하여 n개의 군집으로 분할하는 하향식 방법이다.
  • k-평균 군집화 : 사용자가 군집의 개수 ‘k’를 미리 결정하는 방법으로, 초기화 상태에 따라 다양한 결과를 얻게 된다. 주어진 데이터를 k개의 클러스터로 묶는 알고리즘으로, 각 클러스터와 거리 차이의 분산을 최소화하는 방식으로 동작한다. k-평균 군집화는 레이블이 달려 있지 않은 입력 데이터에 레이블을 달아주는 역할을 수행한다.

의존 구조 학습[편집]

의존 구조(Dependency structure) 학습은 종속성 구조로 형상을 역할이라 부르는 유한 형상 트리(Tree)다. 종속 구조의 각 노드는 문장의 단어로 표시하며 단어 순서는 종속 구조에서 지정되지 않은 채로 남는다. 노드에 순서를 지정하여 표현할 수 있다. 의존 구조 학습을 할 때는 문장의 문법적 구조를 파악하여 각 단어별 관계성을 찾아야 한다. 의존 구조 학습을 하는 이유는 문장의 구조적 모호성을 해결하기 위함이다. 사용되지 않은 코드 또는 변수를 찾거나 속도 최적화를 위한 정보를 얻을 수 있고, 코드 정적 분석을 위한 정보를 알 수 있기 때문이다. 의존 구조 학습의 알고리즘으로 비결정적 의존 구문 분석, 결정적 의존 구문 분석이 있다. 비결정적 의존 구문 분석은 문장이 가질 수 있는 모든 의존 트리(Dependency tree) 중에서 가장 높은 점수의 의존 트리를 선택하는 방법이다. 결정적 의존 구문 분석은 일종의 탐욕적 알고리즘에 기반한 방법으로 지역적 학습 모델을 사용하는 전이 기반 의존 구문 분석이다. 결정적 의존 구문 분석은 비결정적 의존 구문 분석보다 더 많은 문맥 자질을 사용할 수 있고, 근거리 의존관계를 찾는데 강하며, 속도가 빠르다는 장점을 가지고 있다. 하지만 분석 방법을 잘못 결정할 경우 오류의 전파가 발생할 수 있다는 단점이 있다.

벡터 양자화[편집]

벡터 양자화(Vector quantization)는 샘플링(Sampling)한 영상의 타일을 룩업 테이블(Lookup Table)인 코드북에 저장된 많은 영상 패턴들과 비교하여 유사한 패턴의 부호 번호인 벡터 인덱스로 표현하는 손실 영상 압축 기법이다. 벡터의 차수가 클수록 양자화 오차가 줄어드나 부호화 복잡도는 기하 급수적으로 증가하며, 압축률을 높일수록 구획 효과, 에지 훼손 등의 화질 열화가 생긴다. 벡터 양자화 방법은 패턴을 대체하는 특별한 경우이다. 벡터 양자화 과정은 다음과 같다. 먼저 비트 스트림(Bit stream)을 벡터들로 나눈다. 비트 스트림의 실재값을 전송하는 대신에 코드표에서 일치하는 패턴의 인덱스(Index) 값을 전송한다.

만일 코드표에서 실제값과 일치하는 패턴이 없으면 가장 유사한 패턴의 인덱스 값과 차이값을 전송한다. 이런 차이값들은 양자화 할 수도 있다. 차이값을 전송하느냐 안하느냐에 따라, 어떤 양자화 방법을 사용하느냐에 따라 무손실 기법이 될 수도 있고, 손실 기법이 될 수도 있다. 벡터 양자화 기법은 특히 음성 부호화에 적합하다. 벡터 양자화의 예로, 프랙탈 변환(Fractal transform)의 방법이 있다. 벡터 양자화에는 풀어야 할 두 가지 문제점이 있다. 첫째는 실제 데이터 벡터의 빈도수를 가장 잘 적용할 수 있는 최적의 코드표를 어떻게 생성할 것인가 하는 문제이고, 둘째는 코드표에서 가장 유사한 코드 패턴을 찾는 최적의 알고리즘을 찾는 것이 어렵다는 것이다.

데이터 차원 축소[편집]

데이터 차원 축소(Data dimensionality reduction)는 고차원의 특징 벡터를 저차원으로 감소시키는 것이다. 잡음 특징을 제거하여 분류를 용이하게 하며 모델링에 필요한 학습 집합의 크기를 줄여 패턴 분류기에 의한 학습과 인식 속도를 증진시키기 위한 방법이다. 대부분 실무에서 분석하는 데이터는 매우 많은 특성들을 가지고 있다. 이러한 데이터를 가지고 머신러닝 알고리즘을 적용해 문제를 해결하려고 한다면, 데이터의 차원이 크기 때문에 학습 속도가 느릴 뿐만아니라 성능 또한 좋지 않을 가능성이 크다. 머신러닝에서 데이터 셋의 특성이 많아지면, 각 특성인 하나의 차원(dimension) 또한 증가하게 된다. 이렇게 데이터의 차원이 증가할 수록 데이터 공간의 부피가 기하 급수적으로 증가하기 때문에, 데이터의 밀도는 차원이 증가할 수록 희소해진다. 이것이 바로 차원의 저주이다.[1]

이러한 차원의 저주를 해결하기 위한 방법 중 하나는 데이터의 밀도가 높아질 때까지 학습 데이터셋의 크기를 늘리는 것이다. 하지만, 데이터 셋의 크기에 비해 차원은 기하 급수적으로 커지기 때문에 매우 힘든일이라 할 수 있다. 차원의 저주를 해결하기 위한 방법으로, 증명사진에서 불필요한 특성을 삭제하는 것을 예로 들 수 있다. 이미지에서 인물에 대한 정보를 포함하지 않는 부분을 제거하여 입력 데이터의 차원을 낮추는 것이다. 증명사진의 왼쪽과 오른쪽 상단은 단색의 배경이기 때문에 인물에 대한 정보를 포함하지 않는다. 증명사진의 배경 부분을 제거하여 모델을 학습하여도 성능에는 큰 차이가 없을 것이다. 이와 같이 데이터에서 불필요한 특징을 제거하는 작업을 차원 축소라고 한다.

전망[편집]

비지도학습은 정답이 주어지지 않은 상태에서 학습하는 알고리즘이며 최근 집중적으로 연구되고 있는 분야이다. 지도학습과 비지도학습의 궁극적인 목표 중 하나는 데이터를 기반으로 미래를 예측하는 것이다. 하지만 지도학습은 정답이 주어진 데이터만을 사용할 수 있기 때문에 사용할 수 있는 데이터의 양에 한계가 있다. 이에 따라 대부분의 인공지능 전문가들은 미래의 인공지능 기술은 지도학습이 아닌, 비지도학습이 선도하게 될 것이라고 전망한다. 비지도학습의 가장 대표적인 선두주자로는 생성 적성 네트워크, GAN(Generative adversarial network)이 있다.[2]

비지도학습 GAN은 원 데이터가 가지고 있는 확률분포를 추정하도록 하고, 인공신경망이 그 분포를 만들어 낼 수 있도록 한다는 점에서 단순한 군집화 기반의 비지도학습과 차이가 있다. 앞으로 범용 인공지능(Artificial general intelligence)을 구현하기 위한 핵심은 바로 비지도학습에 있다. 딥러닝(deep learning) 비지도학습은 인간이 분류에 대한 특징값과 변수를 정의해주지 않아도 된다는 점에서 의미가 있다. 인공신경망[3] 이론을 기반으로 복잡한 비선형 문제를 기계가 스스로 학습하고 해결하는 것이다. 딥러닝 비지도학습을 적용하면 사람이 모든 판단 기준을 정해주지 않아도 컴퓨터가 스스로 인지, 추론, 판단이 가능하다. 인간이 세상을 라벨링 없이도 이해할 수 있듯이, 미래의 인공지능 역시 라벨링 없이 세상을 이해할 수 있는 비지도학습이 더욱 강조될 것이다.

각주[편집]

  1. 차원의 저주〉, 《위키피디아》
  2. 장준혁 교수, 〈새로운 인공지능 기술 GAN ① - 스스로 학습하는 인공지능〉, 《삼성SDS》, 2018-08-07
  3. 인공신경망〉, 《위키백과》

참고자료[편집]

같이 보기[편집]


  검수요청.png검수요청.png 이 비지도학습 문서는 인공지능 기술에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.