언젠가는

앙상블, 텍스트 마이닝, SOM 본문

IT/IT 지식

앙상블, 텍스트 마이닝, SOM

new1life 2022. 7. 11. 21:26

앙상블이란 여러 개의 예측모형을 만들고, 조합하여 하나의 최종 예측모형을 만다는 것이다. 다중 모델 조합, 분류기 조합이 있다. 앙상블을 통해서 신뢰성을 높일 수 있다. 그러나, 모형이 어떻게 그렇게 나왔는지 제대로 알지 못하기 때문에, 원인 분석과 같은 것에는 부적절하다. 학습 자료의 작고 소중한 변화에도 예측 모형이 크게 변한다면, 그 모형은 불안정한 상태이다. 앙상블에는 배깅, 부스팅, 랜덤 포레스트가 존재한다.

배깅은 여러 개의 부트스트랩 자료를 만들어서 각 부트스트랩에 예측모형을 만들어서 결합한다. 부트스트랩은 주어진 자료에서 동일한 크기의 표본을 랜덤 복원 추출로 뽑은 자료이다. 부트스트랩을 통해서 100개의 샘플을 추출해도 단 한 번도 선택받지 못한 모태 솔로들이 무려 36.8%나 된다. 보팅(voting)은 여러 모형들로부터 선출된 결과를 다수결에 의해서 최종 결과를 선정하는 것이다. 가지치기를 하지 않고 최대한 성장한 의사결정 나무를 활용한다. 모집단의 분포를 모를 경우 실제 문제에서 평균 예측 모형을 못 구한다. 그러나 배깅은 이 문제를 해결해서 traing자료를 모집단으로 생각해서 평균 예측 모형을 구해서 분산을 줄이고, 예측력을 향상한다.

부스팅은 예측력이 약한 모형들을 합체해서 강한 예측 모형을 만드는 방법이다. 방법 중에 Adaboost가 있다. 이는 이진 분류 문제에서 랜덤 분류기 보다 좀 더 좋은 분류기 x개에 가중치를 설정하고 x개의 분류기를 결합하여 최종 분류기를 만든다. 가중치의 합은 1이다. 훈련의 오차를 빠르고 쉽게 만들 수 있다. 배깅보다 많은 예측 오차를 향상시킨다. 직전 분류에서 제대로 분류한 데이터는 낮은 가중치를 주고, 제대로 분류하지 않은 데이터에는 높은 가중치를 부여한다. 배깅보다 성능은 좋지만, 속도가 답답하고 과대 적합이 발생할 수도 있다. 또한, 계산이 복잡하고, 대용량일 수록, 복잡할수록 유리하다. Adaboost가 배깅보다 뛰어난 경우가 많다. 또한 GBM도 부스팅의 한 종류이다. 경사 하강법을 사용하여 가중치를 갱신하여 최적화를 시켜서 결과를 얻는 것이다.

랜덤 포레스트는 많은 트리를 생성하는 것이다. 의사결정 나무는 분산이 크다는 점을 고려하여 배깅, 부스팅 보다 더 많은 무작위를 주어서 막 태어난 새끼 고라니같이 앙상한 학습기들을 생성하고, 이들을 결합하여 최종 학습기를 만든다. 수만 개의 변수가 주어져도 변수 제거 없이 실행할 수 있고, 정확도 측면에서 좋다. 이론적으로 설명해보라고 하거나 최종 결과를 해석하라고 하면 어렵다. 그러나 예측력이 매우 높다. 입력 변수가 많은 경우에 더 유리하다. 나무들이 투표를 해서 분류의 결과를 생성한다. 분류기를 여러 개 쓸수록 성능이 좋아지고, 트리가 많으면 과대 적합 문제도 피할 수 있다. 즉, 의사결정 나무가 여러 개 모였다고 보면 된다. 연속적인 변수를 비연속적인 값으로 생각하는 의사결정 나무는 경계점 근방에서 오류가 많이 나타난다. 

 

텍스트 마이닝

텍스트 마이닝은 비정형 데이터인 텍스트를 자연어 처리를 통해 필요한 정보들을 꺼내오는 방법이다. 사람들이 쓰는 언어를 NLP라 부르는 자연어 처리 기술에 기반한다. 텍스트 마이닝은 수집, 전처리, 추출, 분석, 생성으로 이루어진다. 수집은 문서 같은 것을 수집하는 것이고 전처리가 제일 중요하다. 전처리는 문서를 예를 들면 문서 안에 문장들을 세부사항으로 나누어서 처리한다. 단어, 절 등을 데이터 형식으로 변환하고, 크롤링으로 데이터를 가지고 와서 XML, HTML 태그를 제거한다. 마침표와 부호들을 이용해서 문장을 구분하는 작업을 하고, 토큰화 작업을 한다. 문장을 토큰화 하는 것을 '파싱'이라 하고, 의미가 덜 중요한 단어들을 제거하는 것을 '불용어 제거(stopword)'라고 하고, 단어들이 가진 공통적인 음절을 발견하는 것을 어간 추출(stemming)이라고 한다.

이렇게 전처리를 수행하고, 의미를 뽑아내는데, 복잡한 표현을 단순하게 만들어 주고, 데이터로 저장한다. 그리고 이 데이터들을 기반으로 문서를 자동으로 분류하고 군집화 한다. 텍스트 마이닝의 기능은 정보를 추출하고, 문서를 분류하고, 문서를 군집화하고, 문서를 요약하는 것을 하는 것을 알 수 있다.

자연어 처리는 NLP(Natural Language Processing)을 말한다. 이는 인간이 이해할 수 있는 언어를 기계가 이해하도록 만드는 기술이다. 온톨로지도 같이 알아두자. 온톨로지(ontology)란 존재하는 사물과 사물의 관계나 개념, 단어들을 컴퓨터가 이해할 수 있는 형태로 나타내는 것을 말한다.

 

SOM

SOM은 Self Organizing Map으로 자기 조직화 지도라고 부른다. 코호넨 씨가 만들어서 코호넨 맵이라고도 불린다. 비지도 신경망이고, 고차원 데이터를 이해가 용이한 저 차원 뉴런으로 정렬하여 지도의 형태로 만든 것이다. 입력 변수의 위치를 보존하기 때문에 실제 위치에 입력 변수가 근처에 있으면 지도상에도 근처 가까운 곳으로 뜬다. SOM은 두 개의 인공 신경망이 존재한다. 이름하여 입력층과 경쟁층이다. 입력층은 입력받는 층이라 생각하면 된다. 입력 변수와 같은 개수의 뉴런 수를 가지고, 학습을 통해 경쟁층에 줄 세운다. 이를 지도(맵)이라고 부른다. 이처럼 입력층에 있는 뉴런들은 경쟁층의 있는 뉴런들과 각각 연결되어 있는데 이를 fully connected(완전 연결)되어 있다고 부른다. 한편, 경쟁층은 2차원의 격자로 구성된 층으로, 입력값의 특성에 따라서 하나의 점으로 클러스터링 되는 곳이다. SOM은 비지도 학습이고, 경쟁학습을 한다. 이는 곧 연결 강도가 입력값이랑 가장 유사한 경쟁층 친구가 승자가 된다는 말이다. 이를 프로토 타입 벡터를 선택한다고 말하고, BMU(Best-Matching-Unit)이라고 한다. 코호넨의 승자 독점이라는 규칙에 따라서 이웃에 대한 연결의 강도를 조절한다. 승자독식구조는 경쟁층에는 오로지 승자만 존재하고, 승자와 유사한 연결 강도를 가진 입력 패턴이 동일한 경쟁 뉴런으로 배열됨을 말한다.

Comments