본문 바로가기
번역

지식공학 패턴인식 부분 번역

by mtoc 2019. 6. 10.

패턴인식 (1)

학습목표

  • 패턴인식의 흐름

    • 특징벡터

    • 프로토타입

    • 인식

  • 선형식별함수를 쓰는 수법

  • 구분적선형식별함수를 쓰는 수법

인식: re-cognition

  • cognition: 인식, 인지

  • recognition: 보고 그것을 알 수 있는 것.

패턴 인식이란

소년의 사진(데이터 취득)

전처리

특징추출

식별

사전(프로토타입)

입력-데이터, 패턴공간

출력-클래스,카테고리공간

패턴인식의 분류

  • 판별문제: 구하는 출력이 이산적인 라벨인 경우

    • 2클래스문제: 동일인물? 얼굴? 얼굴아님?

    • 다클래스문제: 누구? 무슨 스포츠?

  • 회귀문제: 구하는 출력이 연속적인 라벨인 경우

    • 몇살? 당도는 얼마? 능력은?(점수아니고)

      -> 수치, 측정

  • 라벨

    • 비계량데이터: 덧셈, 뺄셈에 의미가 없음

    • 계량데이터: 덧셈, 뺄셈에 의미가 있음

패턴인식 응용예

  • 문자인식, 숫자인식, 물체인식

  • 얼굴검출, 문자검출

  • 행동인식

  • 음성인식

  • 개인인증

  • 의료진단

  • 이상검출

  • 게놈처리

  • 예측, 예보

패턴인식의 처리

  • 데이터취득: 인식대상을 취득(수치화)

  • 전처리: 특징처리 전 노이즈 제거, 사이즈변경이나 회전보정 등

  • 특징추출: 막대한 정보로부터 식별에 유효하고 본질적인 정보를 추출

  • 식별: 입력데이터로부터 추출한 특징을 사전에 준비된 사전과 조합하는 것으로 클래스(라벨)을 추출

패턴인식에 의한 데이터

  • 화상

  • 벡터

  • 시계열화상(movie)

  • 시계열신호

    • 음성신호

    • 위치정보변화

    • 속도, 가속도신호

특징벡터

  • 패턴인식에서는 일반적으로 복수의 특징을 추출해, 그것을 벡터로 표현하는 것으로 특징벡터를 만들어, 특징벡터로부터 만들어지는 특징공간을 생각한다

  • 특징의 수를 d라고 할 때, 특징백터x를

  • x=(x1, x2, ..., xd)T

  • 라고한다.

  • 이것으로부터 각 데이터는 특징공간상의 한 점으로 표현된다..

  • 특징벡터는 일반적으로 열벡터로 기술된다.

특징벡터 특징공간

  • 표현과 판별

  • 대상 데이터를 충실히 표현할 수 있는 특징이 패턴인식으로서는 뛰어난 특징이 아니라 클래스 간을 어느 정도 판별할 수 있는 특징이 좋은 특징

  • 어느 정도 판별할 수 있는 특징이란?

특징추출의 방법

  • 특징추출은 인식성능을 좌우하는 매우 중요한 처리

  • 단, 통일적, 일반적인 특징추출은 어렵고, 대상에 따라 휴리스틱특징을 설계할 필요가 있다.

  • 예를 들어 문자인식과 서명인증 또는 음성인식과 음성인증 같은 중요한 특징은 분명히 다르다

  • 추출된 특징은 판별분석 등을 통해 불가능한 부분을 제거하고 보다 판별성이 높은 벡터로 변환 가능하다.(데이터에 기초한 특징선택)

(참고) 투영처리

  • 주목영역의 대략적인 위치나 크기, 또는 특징을 아는 방법

식별방법

  • 5x5=25차원의 특징벡터, 각차원이 {0,1}의 값을 갖는 것 중 생각해볼 수 있는 패턴은 2^25개 존재

  • 생각해볼 수 있는 패턴 전부에 정해클래스를 사전에 부여해두면 인식가능

    => 이 숫자의 예로는 불가능한 것은 아니지만 일반적인 수법으로서의 확장성을 생각하면 그다지 바람직하지 않음

  • 대표적인 패턴만을 기록해, 이 패턴과 특징공간상에서 상이도나 유사도를 측정하여 식별함

  • 대표적인 패턴을 프로토타입이라 한다

프로토타입을 사용한 방법(1)

  • nearest neighbor rule

  • 입력패턴의 특징벡터와 프로토타입을 비교해서 가장 유사한 프로토타입, 즉 최근방(nearest neighbor: NN)에 속하는 클래스를 식별결과로 출력

  • 특징공간상에서 근접하고 있는 패턴들은 그 성질도 비슷하다는 판정이 성립할 필요가 있다.

프로토타입을 고르는 방법

입력된 패턴이 바르게 식별될 수 있도록 프로토타입의 개수와 특징공간상에서의 위치의 결정이 필요

  • 수집된 모든 패턴을 그대로 프로토타입이라 한다(전수기억방식)

  • 효율적인 방법은, 각 클래스에 소수의 프로토타입을 할당하는 것

  • 극단적인 경우에는 각 클래스 1개의 프로토타입으로 표현한다(대표적인 프로토타입이나 중심)

프로토타입을 사용한 방법(2)

  • 입력에 가장 가까운 프로토타입을 찾는다

  • 프로토타입의 위치로 결정경계가 정해져 있다

  • 프로토타입의 고르는 방법에 따라 결정경계가 달라진다

    => 식별결과가 달라진다

결정경계

  • 바르게 식별 가능한 경우에는 볼이 경계밖으로 삐져 나오지 않음

학습

  • 데이터에 기초해 결정경계를 정한다

  • 식별기설계용에 미리제공받은 패턴/데이터를 학습패턴/데이터, 훈련패턴/데이터, 설계패턴/데이터이라고 한다.

  • 패턴인식에서는 이들의 데이터를 이용해 학습/훈련을 하는 것으로 적절한 결정경계를 구함

학습과 오차

적절한 결정결계란 무엇인가?

패턴인식의 목적은, 학습 데이터를 이용해 결정경계를 결정하고 전후 나타나는 미지의 데이터에 대해서 맞는 클래스를 할당하는 것

즉, 미지의 데이터를 바르게 식별할 수 있는 결정경계가 적절한 결정경계

미지의 데이터는 학습데이터와 같은 분포에서 생성된다고 상정

  • 학습오차

    • 학습 데이터를 바르게 분류할 수 있는가를 평가하는 것.

      학습오차가 작은 것이 범화오차가 작다고는 할 수 없다(과학습의 문제)

  • 범화오차

    • 학습에 쓰여진 데이터 이외를 바르게 분류할 수 있는가를 평가하는 것

최근방결정측과 선형식별함수

  • 1클래스 당 1프로토타입의NN법

  • 식별함수법: 식별함수를 정의하고 식별함수를 최대화하는 클래스에 식별함.

선형식별함수

선형식별함수에 의한 식별

선형식별함수에 의한 방법에서는 사전으로서 가중치가 격납되어 입력 데이터의 가중치의 합이 계산됨

(입력이 주어지면 식별함수에 의해 g 계산, 최대값선택기에 의해 출력)

입력의 선형합과 최대값선택으로부터 식별계는 퍼셉트론이라고 불리고 학습기능을 가진 모델

퍼셉트론의 학습 규칙

선형식별함수를 쓸 경우 각 클래스의 가중치벡터를 학습용데이터를 이용해 적절하게 설정할 필요가 있다

어떤 가중치벡터가 좋은가?

한 방법은 학습패턴전체를 집합X, 클래스w에 속하는 패턴집합Xi라 하면

gi(x)>gj(x)(i=/=j)

가 성립하도록 가중치를 결정한다.

이렇게 가중치가 적어도 한 그룹 존재할 때, X는 선형분리가능이라 한다

퍼셉트론의 한계

  • 한 번 선형분리가 가능하면(해영역에 들어가면) 가중치의 학습이 정지

    => 정지했을 때의 가중치 파라미터가 미지데이터에 대해 적절한 것인지 알 수 없다(다른 파라미터가 더 좋을 지도 모름)

  • 선형분리가 불가능한 학습데이터에 대해서는 가중치의 학습이 수렴하지 않는다

    => 많은 실제 문제에서는 학습데이터는 선형분리가능하지 않으므로 적용할 수 없다



패턴 인식(3)

다층 퍼셉트론

3층 퍼셉트론의 예

  • 입력층과 출력층만으로 이루어진 2층의 네트워크를 다층으로 비선형 요소를 추가하는 것으로 식별능력을 높이는 것

  • 파라미터의 학습에는 오차역전번법이 자주 쓰이지만 초기치에 의존해 국소해에 빠지는 경우가 있다

  • 몬테카를로법을 써서 파라미터를 분포로서 추정방법 등등 있음

학습이란

학습/훈련데이터->모델 f(x;H,세타)

패턴인식에 의한 학습

  • 목표로 하는 동작. 반응이 가능하도록 이용할 수 있는 데이터 등을 이용해서 식별모델/회귀모델로 작성.수정.개선함

    • 교사 있는 학습

    • 교사 없는 학습

    • 반교사 있는 학습

    • 강화학습

  • 유효한 정보를 이용함(특징추출.선택)

  • 적절한 모델을 씀(모델 선택)=>정보량규준 등을 쓸 수 있음

  • 식별기에 전절한 파라미터를 설정함(파라미터 추정)

강화오차, 범화오차

  • 강화오차: 학습데이터에 대해서 학습을 진행하는 것으로 어느 정도 올바른 학습 패턴에 반응하는가를 평가.

    학습오차가 크면 학습이 진행되지 않는다고 볼 수 있기 때문에 학습의 진행도를 평가하는 데 씀.

    상정된 패턴이 모두 학습데이터에 포함될 경우에는 학습오차가 되도록 작은 게 좋다

  • 범화오차: 학습된 식별기가 미지의 패턴(학습에 쓰이지 않는 데이터)에 대해서, 어느 정도 올바르게 반응할 수 있는지를 평가. 알고리즘 개발에 있어서는 범화오차가 작고 범화능력이 높은 것이 바람직함

    범화능력이 높다=실제로 강하고 응용 가능

복잡한 학습기 구축

  • 복잡한, 다수의 파라미터를 갖는 모델을 구축

    표현능력 높음(퍼셉트론<<다층퍼셉트론)

  • 대규모 학습모델을 완전히 최적화하는 것은 어렵다

    • 계산량의 증대

      • 어떤 학습방식으로 오차률을 어떤 일정이하로 만들려고 할 때의 계산량이 파라미터수의 3승에 비례함

      • 파라미터수를 100->1000으로 변경(10배)

      • 1일로 끝낼 수 있는 계산이 1000일 걸림(3년이상)

    • 필요학습데이터수의 증대

      필요한 학습데이터수는 차원수의 증대와 함께 늘어감

    • 복잡한 모델은 과학습을 일으키고 범화능력 저하시킴

계산량의 증대와 범화능력의 저하를 동시에 피하는 방법으로 집단학습이라고 불리우는 알고리즘이 있음

집단학습

복잡하고 대규모의 학습모델을 구축하는 것이 아니라 비교적 단순한 학습모델과 계산량이 적절한 학습규칙을 써서 다양한 학습기를 만들고 이것들을 합치는 것으로 최종적인 학습기를 구축하는 것

대표적인 방법에 바깅이나 구스팅이 있음

입력->강한 가설 하나(복잡한모델)->출력...입력->약한 가설 여러개->결합기->출력

강의에 의한 표현

입력x에 대응하는 반응을 출력할 경우, 크게 구분하면 2종류를 생각할 수 있다

  • 확정적으로 출력 y=h(x)

  • 가능한 반응의 확률분포를 추측해, 확률적으로 출력 h(x,y)=p(y|x)

이 차이를 구별하지 않고 입출력관계를 기술하는 것을 가설이라고 부르고 h라 한다

가설은 학습기나 식별기라고 함

일반적으로 가설h는 내부에 파라미터를 두고 있으므로 그것들을 세타라고 하고 입력x에 대한 출력을 h(x;세타)라고 기술하는 경우도 있다

bagging

배깅은 bootstrap aggregating을 생략한 bag에서 유래해 부트스트랩법보다 예제를 리샘플링해서 다양한 가설을 다수 만들어내 그것으로부터 집합체를 구성(aggregating)하는 것으로 최종적인 가설을 만드는 방법

반별문제(이산)에서는 다수결, 가장 많은 가설이 가리키는 클래스에

회귀문제(수치, 연속)에서는 평균값이나 중앙값이 쓰이는 경우가 많다

bagging 개요

  • 학습데이터군에서 랜덤으로 학습용데이터를 추출

  • 데이터의 샘플링을 바꿔가며 복수의 식별기를 구축

  • 판별(식별)은 구축한 식별기의 출력의 다수결

랜덤 포레스트

결정트리를 쓰는 집단학습의 방법

  • 다수의 다양한 결정트리를 구축

    • 부트스트랩에 의한 훈련데이터

    • 특징선택에 의한 다양성

  • 결정트리의 다수결에 의한 인식

학습데이터 S={(xi,yi)}

  • M개의 다양한 결정트리를 구축하기 위해 다음의 처리를 실행 (2가지의 랜덤성도입에 의해 다양성을 확보)

    • 교사데이터로부터 샘플링

      • 중복 허용

      • 쓰이지 않은 데이터가 있어도 됨

    • 샘플링한 데이터를 뿌리노드에 주고 결정트리를 학습

      • 모든 파라미터 후보를 시험하는 것은 비현실적

      • 파라미터 후보를 랜덤으로 추출해, 추출된 파라미터 중에서 최적인 것을 고름

      • 모든 트리의 잎노드가 완료조건을 만족하면 완료

  • 모든 트리의 학습이 완료=>Forest의 학습완료


댓글