2018년 7월 29일 일요일

6주/4강: 결정 트리 분류기의 한계

[커세라 강좌 소개] 자료기반 천문학(Data-Driven Astronomy)
-----------------------------------------------------------------
Week 6: Learning from data: classification
제6주차: 자료에서 정보 얻어내기(자료분류)
- Using machine learning tools to classify your data
  수집한 자료를 분류하기 위해 기계학습 도구(분석 소프트웨어)를 활용하기
- Investigating different types of galaxies
  서로다른 종류의 은하 찾기
-----------------------------------------------------------------
1강: 관측 자료 분류(Classification)
Lesson 1: Learning from Data: Classification / 한글자막
-----------------------------------------------------------------
Lesson 2: Types of Galaxies / 한글자막
-----------------------------------------------------------------
3강: 형태에 따른 은하 분류
Lesson 3: Morphological Classification of Galaxies / 한글자막
-----------------------------------------------------------------
4강: 결정 트리 분류기의 한계
Lesson 4: Limitation of Decision Tree Classifier / 한글자막 / 영문자막

* 이번 강좌의 번역본 컴퓨터 과학분야의 전문용어들으이 영어 음독을 그대로 사용하였다. 영어의 원뜻 조차 애매한 마당에 굳이 우리말로 옮기려고 하니 어색함을 넘어 억지스럽다. 두루마기에 중절모가 익숙해지기까지 기다린 만큼 기다린들 소용 있을까 싶다.

[강의대본]



[00:05] 이제까지 은하 동물원(Galaxy Zoo) 계획의 일부로 자원자들에 의해 분류된 많은 양의 은하들을 보아왔다. 그 은하들을 특정하거나 은하들을 잘 구분 할 수 있는 몇가지 특징들을 추출하여 결정 트리 분류기를 훈련시키고 첫 결과물을 얻었다.

[00:23] 이 결과들은 단일 분류기가 보여준 정확도 숫자 이상의 의미가 있을까? 예를 들어, 분류하기 어려운 은하의 형태가 따로 있는 것일까? 기계학습의 결과를 보여주며 이와 같은 질문에 답을 구하는 일반적인 방법의 하나로 혼란행렬(confusion matrix)이 있다. '혼란행렬'은 훈련에 사용한 표준자료(gold standard)중 옳게 인식된(true label) 것과 분류기에서 예측된(predicted label) 것 사이의 관계를 도식화 하여 보여준다.


* 혼란행렬(confusion matrix)은 기계학습 분야에서 '분류'의 결과를 도식적으로 보여줌으로써 알고리즘의 성향을 한눈에 알 수 있다. (https://en.wikipedia.org/wiki/Confusion_matrix)

[00:50] 우리의 혼란행렬은 한 은하가 제대로 분류된 경우와 잘못 분류된 경우를 도식적으로 보여주는데, 예를들어 원래(True label)의 타원(elliptical)은하가 학습된 분류기(Predicted label)에서도 타원은하로 분류된 경우(117), 충돌은하로 분류된 경우(13) 그리고 나선은하로 분류된 경우(0)을 한 행에 보이고 있다.



[00:55] 그리고 얼마나 많이 틀리게 다른 형으로 분류되었는지 알 수 있는데, 혼란 행렬에서 보면 우리의 분류기는 타원은하(117)를 나선은하(98) 혹은 충돌은하(85) 보다 수월하게 분류해 낸다. 그리고 나선과 충돌이 더 쉽게 혼란을 잃으킨다.(나선은하를 충돌은하로 분류한 경우가 29, 충돌을 나선은하로 분류한 경우는 32)

[01:11] 혼란행렬을 통해 전체적인 정확도(accuracy), 정밀(precision), 그리고 회수(recall)의 계산이 가능하다. 그리고 각 범주의 정확도 계산도 가능하다.

* 3주 3강, 기계학습의 기초, '기계학습의 평가' 참조.




[01:18] 혼란행렬에서 사선의 칸은 참-양성(true positive) 그러니까 예측된 급(predicted class)과 참 급(true class)이 일치한 경우다. (학습에 사용된 인간 전문가의 분류와 학습된 기계 분류기의 결과가 일치) 일치한 것 이외의 칸은 나머지 열(column)의 합인 거짓-양성(false positive)과 그리고 행(row)의 취합인 거짓-음성(false negative)다.

[참고] 기계학습이 최신의 기술인 만큼 용어가 너무 생소하다.
1. Confusion Matrixhttps://en.wikipedia.org/wiki/Confusion_matrix
3. 학습된 기계 분류기(classifier)가 제 역활을 하는지 평가하는 방법에 관하여 아래 동영상을 보자. 단 15분짜리다.


그리고 본 강좌의 내용을 살펴 보자.

* 참(true)과 거짓(false): 표준자료(gold standard)에 붙는 표시(label)
* 양성(Positive) 과 음성(Negative): 기계학습 분류기의 판정 결과에 붙는 표시(label)
* 양성-참(True Positive): 실제와 예상(기계분류)이 일치한 경우
* 양성-거짓(False Positive): 잘못 분류된 것(incorrectly identified)
* 음성-거짓(False-Negative): 잘못 거부된 것(Incorrectly rejected)



* False Positive은 열(column)로 실제 'elliptical'이 'merger'로 분류된 것(13)과 'spiral'이 'merger'로 분류된 것(29)을 합쳐 42
* False Negative는 행(row)으로 실제 'merger'인데 거부되어 elliptical로 된 것(13)과 spiral로 된 것(32)을 합쳐 45

[01:33] 그렇다면 이 결과가 잘 나온것인지 어떻게 알까? 이에 대한 답은 응용에 달렸다. 하지만 수긍 할 만한 몇가지 일반적인 지침(guidelines)은 있다. 절대 최소 기준 정확도로서 고려할 만 한 정도는 무작위로 할당하여 만든 테스트 세트를 분류하여 얻은 결과다. 우리의 예에서 세가지 급(merge, elliptical, spiral)을 가지고 있는데 공평하게 할당 되었다면 정확도의 최소 기준은 33%가 될것이다. (아주 공평하게 쳐서 1/3의 확률) 우리는 분명히 그보단 잘 할 것이다. 만일 확실히 분명한 급이 있다면 모든 것을 그쪽에 배당하여 기준을 좀더 확실히 높일 수도 있다. (예측을 알고 그에 맞추면 결과의  '조작'이다) 하지만 우리는 (조작이 아닌) 무작위의 경우보다 더 좋은 결과를 목표 한다. 따라서 기계학습 연구자들이 사용하는 좀더 수긍할 기저선 시스템은 과하게 조정하지 않고 느슨한 해결책(naive solution)을 실행하는것이다.

[02:14] 그런 후에야 모든 향후 개선될 결과를 이 기준선과 비교가 가능하다. 또한 가장 가능한 정확도를 고려하길 원할 것이다. 이를 측정하는 한가지 방법은 인간 전문가에 의한 분류의 정확도를 사용하는 것이다. 같은 자료를 주고 다수의 사람들에게 분류를 시킨 후 평가해 볼 수 있다. 그런 다음 주석자 간 합의(inter-annotator agreement)라고 부르는 것을 계산한다. 만일 이것을 선택하지 않을 거라면 같은 자료묶음을 잠시 말미를 두고 다시 분류할 수 있다. 그리고나서 스스로 합의 수준을 계산한다. 대개 시작은 최소 기준과 인간 전문가의 결과 사이에서 시작할 것이다. 그런 후에 특징 추출을 향상시키고 정확도를 높이기 위해 사용했던 기계학습 알고리즘의 개선하는 작업에 작수하게된다.

[02:56] 하지만 때로 예기치 못한 일도 생긴다. 처음 결과가 너무 좋게 나온 것이다. 기본 분류기를 사용했는데 결과가 99%가 나왔다면 앞으로 갈길이 몇가지 있다. 첫째 선택지는 문제가 너무나 너무나 쉬운거 였을지 모른다. 아마도 이렇게 빨간 원과 파란 삼각혀으을 구분하는 일 쯤이지 않았을까 싶다. 이 둘의 차이를 보여줄 특징을 잡아내기는 아주 쉽고 사람 이라면 100%의 확률이다. (기계는 99%) 이런 경우 아마 전혀 기계학습 따위를 할 필요조차 없다. 쉽게 문제를 풀 기본 시스템 규칙을 작성할 수 있다. 이를 하찮은 분류의 문제라고 부르자.



[03:37] 실제적인 천문학계의 임무에서 더 자주 있을 법한 문제는 방법론에서 실수를 범해왔다는 점이다. 예를들어 훈련 과정에서 표준자료 누출(gold standard leakage)이 발생한다. 누출은 표준(기준)정보, 그러니까 기준급(correct class)에서 시험급(test class)으로 정보가 새나갈 때 발생한다. 분류기는 새어나간 자료를 속임수의 용도로 쓰는데 시험전에 문제가 유출된 꼴이다. 이런 실수의 가장 간단한 경우는 특징의 한 세트를 (시험)항목에 포함시킨 경우다. 또는 별도의 시험용 자료 대신 분류기를 학습에 사용한 그 자료를 그대로 써서 평가한 경우다.

[04:08] 그럼 분류기의 평가가 높게 나왔지만 분류기를 전체 데이터 세트에 적용 했을 때 그 결과가 예상했던 것보다 더 나쁘게 나올수 있을까? 이에는 몇가지 가능성이 있다. 첫째, 사용한 학습과 시험용 세트가 실제로 온전한 데이터 세트를 대변하지 못했다. 훈련된 모형이 자료에 제대로 대응하지 못했다. 이는 시험 세트가 아마도 데이터 실제 분포에 잘못된 정확도의 영향을 주었다는 뜻이다. 두번째, 기계학습자가 제공해준 자료를 너무 과하게 훈련(overfitting) 시켰다. 아주 복잡한 모형은 훈련용 자료에는 아주 잘 작동 할 지 몰라도 처음본 자료에 대해 적용하기에 일반화가 않되었다. 예를 들어 아주 깊이 가지를 뻗은 결정 트리는 훈련 자료에 아주 정확하게 반응한다. 반면 일반성을 얻는데 실패하였고 훈련과 (조금이라도)다른 경우에 대해 필요한 일반성이 결여(유연하지 못함)된다. 끝으로 최상의 기계학습자를 선택하는 과정에서 특정 훈련 세트로 최적화를 수행 했을텐데 그것이 실제 분포(real distribution)가 아니다. 이는 크게보면 극복할 수 있다. 구축한 시스템을 시험하기 위해 열번 접기 교차 증명(10-fold cross validation)을 실시한다. 또는 최종 모델을 시험하기 위해 별도의 제공된 시험 세트를 준비한다.


[05:17] 그럼 해결책은 무었인가? 우리는 결정 트리를 세우고 과적용(overfitting)같은 문제에 강하게 만들 수 있는 방법이 없을까? 다음 강의에서 랜덤 포레스트 분류기(random forest classifiers)를 다뤄보기로 한다. 이는 과적용의 우려를 줄여주는 외에 아주 굉장한 잇점을 있는데 그어떤 급에도 포함될 수 없는 예외자(outliers)를 찾아내는 능력도 탁월하다. 그리고 우리의 분류에 가능성을 할당하는 능력도 갖추었다.

------------------------------------------------------------------------
[과제] 손으로 은하 분류 해보기/Classify some galaxies by hand!

Before you launch into machine learning classification it is a good idea to build some intuition about classification, and the best way of doing that is to classify some galaxies by hand.

기계학습 분류를 시작하기 전에 은하의 분류가 어떻게 이뤄지는지 알아보기 위해 손으로 은하를 분류해 보자.

For this activity we're going to participate in Galaxy Zoo, a worldwide citizen science project. As well as learning about classification, you'll be contributing to science at the same time!

세계적 시민 과학 계획인 은하 동물원(Galaxy Zoo)에 참여해 보기로 한다. 은하를 어떻게 분류하는지 배우고 동시에 과학 연구에 기여할 수 있다.

Update: Unfortunately the original Galaxy Zoo classification project is having a break (due to all the galaxies being classified). As an alternative, we suggest having a go at the Radio Galaxy Zoo. Although the classification problem is not the same, it will still give you some insight into the challenges of manual classification.

갱신사항(2018년 7월 30일현재): 관측된 사진의 모든 은하들의 분류가 완료되어 은하동물원 계획이 중단 되었다. 그대신 전파 은하 동물원 계획에 참여하기 바란다. 이 계획은 은하의 외형구분과 차이가 나지만 수동 분류가 어떤 것인지 경험해볼 수 있다.

To do this activity use this URL instead:

이 활동에 참여하려면 다음의 링크를 따라가 보라: https://radio.galaxyzoo.org/

--------------

Original instructions

To do this activity:

1. Go to the main Galaxy Zoo classification page: https://www.galaxyzoo.org/#/classify.

2. Try classifying 10-20 galaxies (or however many you have time for).

3. Read the blog post on the Galaxy Zoo classification decision tree (for humans): https://blog.galaxyzoo.org/2015/04/06/visualizing-the-decision-trees-for-galaxy-zoo/.

4. Contribute to the discussion point on the forums.

5. If you want to do further reading on machine learning classification, and on the science that comes from Galaxy Zoo, there are a list of Galaxy Zoo publications here: https://www.zooniverse.org/about/publications.

Reflecting on the challenges of manual classification is a good way of thinking about good feature selection strategies for automatic classification systems.

댓글 없음:

댓글 쓰기