기계학습
PREVIEW
- 지식은 구별할 수 있는 근거가 된다.
학습
: 경험으로 지식을 습득한다. 실패로부터 지식을 배운다. E.g. 자전거를 타다가 넘어지지 않도록 넘어지는 방향으로 핸들을 돌린다.- 오류 = 결과 - 목표
기계 학습
사람의 학습 과정을 기계로 흉내 낸다. 학습 모델
은 학습 구조 또는 알고리즘을 의미한다. 훈련된 모델을 판단 모델
이라고 한다.
기존의 알고리즘은 수작업으로 매개변수를 설정하거나 규칙을 개발해야하지만, 기계학습은 학습 집합을 분석해서 필요한 최적의 설정을 자동으로 수행해준다.
기계합습의 기초
Mitchell은 기계학습을 아래와 같이 정의했다.
어떤 컴퓨터 프로그램이 T라는 작업을 수행한다. 이 프로그램의 성능을 P라는 척도로 평가했을 때, 경험 E를 통해 성능이 개선된다면
이 프로그램은 학습을 한다고 말할 수 있다.
이 정의를 컴퓨터 비전에 대입하면
- T : 분류 문제
- E : 학습 집합
- P : 인식률
이 될 것이다.
지도학습과 비지도 학습
그림 8-2
사람은 외부 환경과 지도 교사로부터 가르침을 받아 그것을 기억에 쌓는다. 어느 정도 이상의 성능이 확인되면, 그때부터 현장에서 작업을 수행한다.
지도 학습
기계 학습은 개념적으로는 사람과 비슷하지만 세부사항은 크게 다르다.
그림 8-3
아래 그램은 인식하는 응용에서 학습을 활용하는 사례이다. 영상에 네 가지 부류 중 하나에 속한다고 했을 때, 입력 영상이 어떤 부류에 속하는지 인식Recognition
하는 문제이다.
먼저 6장에서 공부한 알고리즘을 통해서 적절한 특징 벡터를 추출한다. 이렇게 하면, 입력 영상이 특징 공간에서 한 점이 된다. 충분히 많은 특징 벡터를 수집하여 학습 집합
을 구축한 후,
그것을 분류기
에 넣어서 학습시킨다. 학습이 완료된 분류기는 특징공간
을 네 개의 영역으로 나눈다. 여기까지가 학습단계
이다.
특징 벡터
는 사례의 특성을 나타낸다. 입력 변수
는 모델의 입력으로 사용되며 이들이 값으로 목표 변수의 값을 예측하다. 목표 변수
는 모델이 예측할 변수의 값이다. 분류인 경우 부류 정보는 class-label을, 회귀인 경우 목표 값-수치가 입력/목표 변수
에 해당한다.
학습이 완료된 판단 모델에 새로운 사례의 입력 변수 값을 입력하면 목표 변수를 예측할 수 있다. 예를 들어,
- 입력 변수 : 얼굴영상으로부터 주름의 양, 눈꼬리의 처짐 정도 등을 분석하여 수치화
- 목표 변수 : 연령
2 종류의 예측이 있다.
- 분류 : classification: 목표 변수 값이 부류 예: 사람의 얼굴영상으로 부터 남, 녀를 추정
- 회귀 : regression: 목표 변수 값이 수치 예: 사람의 얼굴 영상으로 부터 연령을 추정
다음은 인식 단계
에 투입되어 활용한다. 학습 때와 똑같은 특징 추출 알고리즘으로 영상에서 특징 벡터를 추출한 후, 그것을 분류기에 입력하면 네 개의 영영 중 어디에 속하는지 판단하여 해당 부류를 출력한다. 위 그림은 영상 전체에서 특징을 추출하는 시나리오를 제시한다. 하지만 응용에 따라서 영역, 일정한 크기의 윈도으, 또는 지역 특징이 인식 대상인 경우도 있다. 예를 들어 얼굴 검출의 경우, 고정 크기의 윈도우를 영상 곳곳으로 옮겨 특징을 추출하고 분류를 수행하여 얼굴이 있는 곳을 알아낸다.
기계가 학습하려면 학습 모델
이 있어야 한다. 뒤에서 배울 신경망
이 학습 모델의 예이다. 이 모델은 매개변수 집합 $\theta$를 갖는다. 또한 현재 설정된 매개변수 값이 얼마나 좋은지 측정하는 목적 함수
가 정의되어야 한다. 학습은 최적의 매개변수 값을 추정하는 단계라 볼 수 있다. 이때 최적에 접근하려면 어느 방향으로 매개변수를 조정할지 파단해야 하는데, 이 목적을 달성하는데 쓰는 데이터가 학습 집합
이다. 학습 알고리즘은 이동 방향을 찾고 매개변수를 조정하는 과정을 수렴할 때까지 반복한다. 수렴에 도달하면 검증 집합
을 가지고 성능을 평가한다. 결과가 만족스러우면 학습을 마치고, 그렇지 않으면 모델의 내부 구조인 매개변수 집합
을 변경하고 다시 학습한다. 예를 들어 신경망의 경우 노드를 추가하거나 학습률 또는 초기 가중치를 변경한다. 이를 모델 선택
이라고 한다.
학습을 마친 분류기의 성능을 객관적으로 평가하는 일은 매우 중요하다. 테스트 단계
가 평가 작업을 담당한다. 이 때 학습 과정에서 썼던 학습 집합
이나 검증 집합
으로 성능을 측정하면 공평하지 않다. 완전 새로운 데이터를 가지고 성능을 평가해야 한다.
비지도 학습과 준지도 학습
지금까지 설명한 부분은 지도 학습
이다. 즉 학습 집합에 있는 샘플은 $(x,t)$라는 정보를 갖는다. $x$는 특징 벡터이고, $t$는 그것이 속하는 부류이다. 경우에 따라서는 $x$만 있고 $t$가 없는 경우가 있는데 이러한 상호아을 비지도 학습
이라고 한다. 부류 정보가 없기 때무에 분류 작업을 수행할 수 없다. 대신 가까이 있는 샘플을 같은 군집으로 모으는 군집화를 수행하거나 이들 군집에서 유용한 정보를 찾아내는 작업을 수행한다.
지도 학습과 비지도 학습 사이에는 준지도 학습
이라는 것이 있다. 방대한 양의 데이터에 모두 부류 정보를 달아주는 것은 많은 노동력을 필요로 한다. 게다가 새로운 영상이 끊임없이 발생하는 경우 부류 정보를 가지지 못한 영상이 항상 존재할 수 밖에 없다. 준지도 학습
은 부류 정보를 가진 영상뿐 아니라 그렇지 않은 영상도 같이 사용하여 분류기의 성능을 높이는 것이 중요한 목표아다.
테스트 집합에 대한 모델의 부류 예측 결과 – confusion matrix
PPT 19페이지
재 샘플링을 이용한 성능 평가
기계 학습은 학습 집합을 가지고 수행한다. 학습이 완료되면 테스트 집합으로 성능을 평가한다. 학습과정에서 모델 선택이 필요한 경우에는 별도의 검증 집합도 사용한다. 그런데 데이터 수집에 상당한 비용이 들기 때문에 데이터의 양이 충분하지 않은 현실적인 문제가 발생한다. 이때 이미 있는 데이터를 재 샘플링
하여 부족한 데이터의 양을 보완할 수 있다. 이는 성능 측정의 통계적인 신뢰도를 높이려는 의도이다.
훈련 데이터 집합을 $k-1$의 부분 집합으로 학습시키고 나머지 한 개의 부분 집합으로 분류기의 성능을 측정한다. 이 과정을 서로 다른 부분 집합에 대해서 $k$번 수행하여 얻은 성능의 평균값을 분류기의 성능으로 취한다. 이러한 방법을 k-겹 교차 검증
이라고 한다. 극단적으로 $k=N$이라면 매번 한 개의 샘플로 성능 측정을 하는 셈이다. 이런 경우를 하나 남기기
혹은 잭 나이프
기법이라고 한다.
알고리즘 8-1
교차 검증을 사용하는 두 가지 상황
- 모델 선택이 필요 없는 경우 : 하나뿐인 데이터베이스를 훈련과 테스트 집합으로 나누어 쓰는 상황
- 훈련 집합과 테스트 집합이 별도로 준비되어 있는데 모델을 선택하기 위한 검증 집합이 필요한 상황
이 때는 훈련 집합을 k겹 교차
하여 훈련과 검증 목적으로 사용하면 된다. 교차 검증은 가지고 있는 샘플의 대부분을 학습에 쓸 수 있다는 면에서 매력적이다.
하지만 $k$가 커짐에 따라서 계산 시간이 오래 걸린다는 부담을 가진다.
붓스트랩bootstrap
알고리즘은 샘플의 중복 사용을 허용한다. $N$ 개의 샘플을 가진 집합에서 $pN$개의 샘플을 임의로 뽑는다. 이 때 한 번에 하나씩 샘플을 뽑는데 뽑은 것을
다시 집어넣는다. 따라서 어떤 샘플은 두 번 이상 뽑히고 어떤 샘플은 한번도 뽑히지 않을 수 있다. 이렇게 얻은 샘플 집합으로 성능을 측정한다. 이 과정을 독립적으로 $T$번 수행하고, 그 결과를 평균한 값을 최정 성능으로 취한다. 이렇게 구한 값은 통계적 신뢰도가 높다고 볼 수 있다.
알고리즘 8-2
신경망
PPT 25 페이지 다수결
입력노드는 입력 값을 유지시키는 메모리 역할만을 한다. 상위의 뉴럭들이 계산한 값을 유지시키는 역할만 한다. 빨간선은 edge로 출력노드에게 입력 노드의 값을 전달한다. 단순히 전달하는 것이 아니라 Weight 값을 곱해서 전달한다. $t$는 bias를 의미한다. 합산을 한 후 임계
를 진행한다. 0보다 크면 1을 0보다 작으면 0을 출력한다.
PPT 27 퍼셉트론
입력계측과 출력계층이 있는데 이들을 연결하는 것은 weight이다.
PPT 28
계층을 트리 모양으로 구성하였다. 네트워크 구조를 만든다.
PPT 29
출력의 범위가 제한되는 특성이 있다.
8.2.1. 구조와 작동원리
퍼셉트론
은 입력층과 출력층으로 구성된다. 입력층은 $d$개의 컴포넌트를 가지는 특징 벡터를 받기 위해서 $d+1$개의 노드를 갖는다. 여분의 하나는 bias를 얻기 위해서 사용된다. 출력층은 하나의 노드를 갖는다. 퍼셉트론은 두 개의 부류로 분류하는 이진 분류기
이다.
식 8.2)
퍼셉트론의 한계는 선형 분리 불가능한 상황에 대처하지 못하는 한계가 있다.
그림 8.8
다층 퍼셉트론
XOR 분류 문제 퍼셉트론은 75% 정 인식률이 한계였다. 현재에는 세 개의 퍼셉트론을 사용하여 정-인식률을 100% 가까이 올리는 효과를 내었다.
그림 8.9
첫 번째 단계에서 두 개의 퍼셉트론 d1과 d2를 이용하여 특징 벡터를 새로운 공간으로 매핑한 후, 새로운 공간에서 하나의 퍼셉트론 d3을 이용하여 최종 분류한 것으로 간주할 수 있다.d3 는 and 연산의 역할을 한다.
그림 8-10
은닉층이 많아지면 깊은 학습을 가능하게 한다.
깊은 학습
그림 8 -12
특징 추출과 분류를 하나의 학습 모델로 처리
컨볼루션 신경망
그림 8 -13
층 별로 다운 샘플링 또는 특징점 추출 등 역할을 나눠서 진행한다. 최종적인 결과는 종합해서 분류 결과를 나타내는 층도 따로 있다.
그림 8-14
이렇게 깊은 신경망도 가능하게 되었다.
분류기 앙상블
다수의 기초 분류기들에게 같은 데이터를 넣는다. 다수의 결과가 나오면 다수결 투표와 같은 방식을 통해서 예측 결과를 내놓는다. 이렇게하면 하나의 분류기만을 쓴 것보다 다수의 분류기를 사용한 것이 정확보다 더 좋았다. 각각의 기초적인 분류기는 서로 다르게 설계되었다. 즉, 학습 데이터를 서로 다르게 설정하였다.
앙상블의 효과
기초 분류기의 오류율이 0.35이다. 각각의 분류기들이 독립적일 때 기초 분류기를 25개 모았을 때 오류율이 0.06으로 떨어졌다.
얼굴 검출
얼굴 검출에서 표준이 되는 알고리즘이 비올라 존스 얼굴 검출
이 있다. 유사 하르 특징
을 사용하고 직렬 분류기
를 사용한다.
유사 하르 특징
이란 영상의 한 부분에 특정한 마스크르 씌운다.
그림 8-23
흰 영역과 검은 영역으로 나뉘면 두 영역의 차이를 계산한다. 정확히는 두 영역의 화소값의 합(흰 영역의 합 v.s. 검은 영역의 합)의 차이를 계산한다. 24*24크기 영상에 네 종류의 연산자를 적용하면 14만 가지의 서로 다른 특징을 추출할 수 있다. 이들 중 얼굴을 추출하기에 분별력이 좋은 특징만을 선택하여 사용한다.
유사 하르 연산자를 움직이면서 특징을 찾아낸다. 그리고 특징 벡터로 구성을 한다. 이 후 첫 번쨰 분류기(가장 간단한 분류기, 특징을 1개 사용), 두 번째 분류기 etc.를 사용해서 얼굴을 골라낸다. 직렬로 연결하되, 처음에는 간단한 분류기를 사용해서 검출 속도를 높힌다.