4. 기계 학습

2023. 10. 16. 23:45인공지능

728x90

기계학습

: 자동으로 분류 규칙이나 프로그램 생성

 

연역적(deductive) 학습

: 연역적 추론(논리적 추론)을 통한 학습

 

귀납적(inductive) 학습

  • 사례들을 일반화하여 패턴 또는 모델을 추출하는 것.
  • 기계학습의 대상.
  • 학습 데이터를 잘 설명할 수 있는 패턴을 찾는 것.

오컴의 면도날(Occam's razor) 원리

: 가능하면 학습 결과를 간단한 형태로 표현하는 것이 좋다.

 

 

기계학습의 종류

  • 지도학습(supervised learning)
    : 입력(문제) - 출력(답)의 데이터들로부터
    새로운 입력에 대한 출력을 결정할 수 있는 패턴 추출
  • 비지도학습(unsupervised learning)
    : 출력에 대한 정보가 없는 데이터로부터 필요한 패턴 추출
  • 반지도학습(semisupervised learning)
    : 일부 학습 데이터만 출력값이 주어진 상태에서 패턴 추출
  • 강화학습(reinforcement learning)
    : 출력에 대한 정확한 정보를 제공하지는 않지만, 
    평가정보는 주어지는 문제에 대해 각 상태에서의 행동을 결정

 

 

기계학습 대상 - (1) 지도 학습

 

1. 분류(classification): 데이터들을 정해진 몇 개의 부류로 대응시키는 문제

  • 학습 데이터를 잘 분류할 수 있는 함수를 찾는 것이 목적
  • 분류기(classifier): 학습된 함수를 이용하여 데이터를 분류하는 프로그램
  • 분류기 학습 알고리즘
    1) 결정트리 알고리즘
    2) k-nearest neighbor(knn) 알고리즘
    3) 딥러닝 알고리즘 
    등등...
  • 이상적인 분류기란? 
    -> 학습에 사용되지 않은 데이터에 대해서 분류를 잘하는 것

 

* 데이터의 구분

  • 학습 데이터
    : 분류기를 학습하는데 사용하는 데이터 집합
    학습 데이터가 많을수록 유리
  • 테스트 데이터
    : 학습된 모델의 성능을 평가하는 데 사용하는 데이터 집합
    학습에 사용되지 않은 데이터이어야 한다
  • 검증 데이터
    : 학습 과정에서 학습을 중단할 시점을 결정하기 위해 사용하는 데이터 집합
    물론, 학습에 사용되지 않은 데이터이어야 함.

 

과적합(overfitting)

  • 학습 데이터에 대해서 지나치게 잘 학습된 상태
  • 데이터는 오류나 잡음을 포함할 개연성이 크기 때문에, 
    학습되지 않은 데이터에 대해서 좋지 않은 성능을 보일 수 있음

부적합(underfitting) : 학습 데이터를 충분히 학습하지 않은 상태

 

 

과적합 회피 방법

: 학습과정에서, 별도의 검증 데이터에 대한 성능 평가를 진행한다

-> 검증 데이터에 대한 오류가 감소하다가 증가하는 시점에 학습을 중단.

 

 

 

정확도

  • 분류기의 성능 평가 요소
  • 테스트 데이터에 대한 정확도를 분류기의 정확도로 사용
  • 정확도= 옳게 분류한 데이터 개수 / 전체 데이터 개수
  • 정확도가 높은 분류기를 학습하기 위해서는 많은 학습데이터 사용하는 것이 유리

 

 

K-겹 교차 검증(K-fold cross-validation)

  • 데이터가 부족하여 내가 가진 데이터로 학습 데이터, 테스트 데이터를
    다 사용하기 위해 사용
  • 전체 데이터를 k등분 후, 각 등분을 한 번씩 테스트 데이터로 사용
    -> 성능 평가를 하고 평균값을 전체 정확도로 선택

 

 

불균형 데이터 문제

  • 특정 부류에 속하는 학습 데이터의 개수가 다른 부류에 비하여 지나치게 많은 경우
    -> 이런 경우 정확도에 의한 성능 평가가 무의미할 수 있다.
  • 대응방안
    1. 가중치를 고려한 정확도 척도 사용
    2. 많은 학습데이터를 갖는 부류에 대해서 재표본추출
    3. 적은 학습데이터를 갖는 부류에 대해서 인공적인 데이터를 생성
  • SMOTE 알고리즘
    : 빈도가 낮은 부류의 학습데이터를 인공적으로 만들어내는 방법
    1. 임의로 낮은 빈도 부류의 학습 데이터 x 선택
    2. x의 K-근접이웃인 같은 부류의 데이터 선택
    3. K-근접이웃 중에 무작위로 y 하나를 선택
    4. x와 y를 연결하는 직선 상의 무작위 위치에 새로운 데이터 생성

 

 

이진 분류기의 성능 평가

이진분류기: 두 개의 부류만을 갖는 데이터에 대한 분류기

 

  • 민감도(sensitivity)/재현율(recall)/진양성률(true positive rate) = TP/ (TP+FN)
  • 특이도(specificity)/진음성률(true negative rate) = TN/ (FP+TN)
  • 정밀도(precision, positive predictive value) = TP/ (TP+FP)
  • 음성 예측도(negative predictive value) = TN/ (FN+TN)
  • 위양성률(false positive rate) = 위양성/ 실제 음성=1 - 특이도
  • 위발견율(false discovery rate)= 위양성/ 양성이라고 예측=1-정밀도
  • 정확도(accuracy)=예측 잘한 것 / 전체

ROC곡선: 위양성율, 민감도 그래프

AUC(Area Under the Curve) : ROC곡선에서 곡선 아래 부분의 면적

-> 클 수록 바람직하다, 면적이 1에 가까우면 바람직하다.

 

 

2. 회귀(regression): 학습 데이터에 부합되는 출력값이 실수인 함수를 찾는 문제

 

* 오차

: 예측값과 실제값의 차이. 모델(함수)의 종류에 영향을 받음

 

* 과적합: 지나치게 복잡한 모델 사용

부적합: 지나치게 단순한 모델 사용

 

* 과적합 대응 방법: 모델의 복잡도를 성능 평가에 반영

목적함수=오차의 합 + (가중치)*(모델 복잡도)

 

* 로지스틱 회귀: 로지스틱 함수를 이용하여 함수 근사

 

 

기계학습 대상 - (2) 비지도 학습

  • 결과정보가 없는 데이터들에 대해서 특정 패턴을 찾는 것
  • 데이터에 구조를 찾거나 숨겨진 사용자 집단을 찾는다.
  • 예)
    로그 정보를 사용하여 사용패턴을 찾기
    문서들을 주제에 따라 구조화
  • 종류: 군집화, 밀도추정, 차원축소, 이상치 탐지

 

1. 군집화

: 유사성에 따라 데이터를 분할하는 것

일반 군집화: 데이터가 하나의 군집에만 소속

퍼지 군집화: 데이터가 여러 군집에 부분적으로 소속

 

 

군집화의 용도

  • 데이터의 전반적 구조 통찰
  • 데이터 압축 - 동일 군집의 데이터를 같은 값으로 표현

 

군집화의 성능

: 군집간의 거리와 군집 내의 분산으로 파악

 

 

 

2. 밀도 추정

: 부류별 데이터를 만들어 냈을 것으로 추정되는 확률 분포를 찾는 것

 

 

밀도추정의 용도

: 주어진 데이터를 발생시키는 확률을 계산하여 가장 확률이 높은 부류로 분류

 

 

모수적 밀도 추정

  • 분포가 특정 수학적 함수의 형태를 가지고 있다고 가정
  • 예) 가우시한 함수 또는 가우시안 함수의 혼합

비모수적 밀도 추정

  • 분포에 대한 특정 함수를 가정하지 않고, 주어진 데이터를 사용하여 
    밀도함수의 형태 표현
  • 예) 히스토그램

 

 

3. 차원축소

: 고차원의 데이터를 정보의 손실을 최소화하면서 저차원으로 변환하는 것

 

 

차원축소의 목적

  • 2,3차원으로 변환해 시각화하면 직관적 데이터 분석 가능
  • 차원의 저주 문제 완화

* 차원의 저주: 차원이 커질수록 거리분포가 일정해지는 경향

 

주성분 분석

: 분산이 큰 소수의 축들을 기준으로 데이터를 사상하여 저차원으로 변환하는 방법

 

 

 

4. 이상치 탐지

 

이상치: 다른 데이터와 크게 달라서 의심스러운 데이터

-> 관심 대상

잡음(noise): 관측 오류, 오차

-> 관심이 없는 제거 대상

 

 

* 이상치의 종류

  • 점 이상치: 다른 데이터와 비교하여 차이가 큰 데이터
  • 상황적 이상치: 상황에 맞지 않는 데이터
  • 집단적 이상치: 여러 데이터를 모아서 보면 비정상으로 보이는 데이터들의 집단

 

 

* 이상치 탐지 사용용도

부정사용감지 시스템: 이상한 거래 승인 요청 시, 카드 소유자에게 경고메시지 전송

침입탐지 시스템: 네트워크 트래픽을 관찰하여 이상 접근 식별

 

 

 

기계학습 대상 - (3) 반지도 학습

: 입력에 대한 결과값이 없는 미분류 데이터를 지도하급에 사용하는 방법.

분류 경계가 인접한 미분류 데이터들이 동일한 집단에 소속하도록 학습.

 

 

* 반지도 학습의 가정

  • 평활성 가정: 가까이 있는 점들은 서로 같은 부류에 속할 가능성이 높음
  • 군집 가정: 같은 군집에 속하는 데이터는 동일한 부류에 속할 가능성이 높음
  • 매니폴드 가정: 원래 차원보다 낮은 차원의 매니폴드에 데이터가 분포할 가능성이 높

* 매니폴드: 데이터가 있는 공간

 

 

728x90