카테고리 없음

기계학습 종류

코코팡 2021. 10. 18. 02:43

기계학습 종류

1. 연역적 학습: 연역적 추론을 통한 학습

 

2. 귀납적 학습: 사례들을 일반화하여 패턴 또는 모델을 추출하는 것으로 일반적인 기계학습의 대상으로 쓰이는 학습 방식이며 학습 데이터를 잘 설명할 수 있는 패턴을 찾는 것이 목적이다.

만약에 고를수 있는 패턴이 많은 경우는 오컴의 면도날이라는 원칙을 이용하여 패턴을 찾으면 된다.

(오컴의 면도날:가능하면 학습 결과를 간단한 형태로 표현하는 것을 고른다.)

예를들어

학습된 데이터를 가지고 패턴이 2개가 나왔다. 하지만 두번째 패턴은 첫번째 패턴보다 복잡하므로 h(x,y)=x+y의 패턴을 고르면 된다.

 

3.지도학습:입력(문제)-출력(답)의 데이터들로 부터 새로운 입력에 대한 출력을 결정할 수 있는 패턴 추출

지도학습에는 두가지의 세부학습 방식이 존재한다. 

첫번째는 분류(출력이 정해진 부류(class, category)중의 하나로 결정)와 회귀(출력이 연속인 영역의 값 결정)이 있다.

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

분류 문제의 학습은 학습 데이터를 잘 분류할 수 있는 함수를 찾는 것이고 함수의 형태는 수학적 함수일 수도 있고, 규칙일 수도 있음.

그래서 이렇게 학습된 함수나 규칙을 이용하여 데이터를 분류를 할 수 있다면 이를 분류기라 한다.

이 분류기를 여러개를 만들 수 있는데 이중 이상적인 분류기는  학습에 사용되지 않은 데이터에 대해서 분류를 잘하는 것을 만들고 일반화 능력이 좋은 것을 찾는 것이다.

데이터의 구분

{

1.학습 데이터: 분류기를 학습하는데 사용하는 데이터 집합이며 학습 데이터가 많을 수록 유리하다

2.테스트 데이터: 학습된 모델의 성능을 평가하는데 사용하는 데이터 집합이며 학습에 사용되지 않은 데이터로 학습을 해줘야함

3.검증 데이터: 학습과정에서 학습을 중단할 시점을 결정하기 위해 사용하는 데이터 집합이다.

}

과적합(overfitting)과 부적합underfitting)

{

과적합:학습 데이터에 대해서 지나치게 잘 학습된 상태를 말하며 데이터는 일반적으로 오류나 잡음을 포함할 개연성이 크기 때문에, 학습 데이터에 대해 매우 높은 성능을 보이더라도 학습되지 않은 데이터에 대해 좋지 않은 성능을 보일 수 있는 상태를 과적합이라 한다.

 

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

+와0의 구별 학습이 잘 안되어 있음
+ o의 구별이 어느정도 잘 학습이 되어 새로운 학습 데이터가 들어와도 잘 적응가능
+와o의 구별이 너무 정확해 새로운 데이터가 들어오면 이를 잘 구별하지 못해 오히려 성능이 떨어질 가능성이 높음

 

과적합 회피 방법

과적합이 발생하는 이유는 학습데이터에 대한 성능을 향상 시키고 학습을 진행할 수록 오류를 개선을 하고자 하는 행동에서 생긴것인데 이것이 너무 완벽하게 학습을 할려다보니 오히려 과적합이 발생한 것이다.

그래서 학습과정에서 별도의 검증데이터를 통해서 성능을 평가를 하는데 여기서 검증데이터는 학습데이터는 아니고 말그대로 어떤 학습에 대해서 검증을 하기위한 데이터이다.

그래서 이 검증 데이터에 대해 오류가 감소하다가 증가하는 시점에서 학습을 중단을 하면 과적합을 피할수 있다.

 

그림과 같이 학습데이터의 시간이 길어질수록 오류율이 감소하는 것 처럼 보이지만 검증데이터는 오히려 오류율이 증가한다. 그 이유는 하나의 학습 데이터를 가지고 학습을 하기에 다른 데이터가 들어가면 분류를 못하기에 성능이 떨어지는 것이다. 이를 검증데이터가 잡아주는 역할을 해준다.

 

분류기의 성능 평가

성능을 평가하는 요소는 정확도가 있는데 이 정확도를 정하는 요소는 얼마나 정확하게 분류하는가, (옳게 분류한 데이터의 개수/전체 데이터 개수)이 있다.

그리고 테스트 데이터에 대한 정확도를 분류기의 정확도로 사용을 한다. 그리고 정확도가 높은 분류기를 학습하기 위해선 많은 학습데이터를 사용하는 것이 유리하지만 테스트 데이터와는 겹치지 않도록 해야한다.

 

k-겹 교차검증 사용

전체 데이터를 k 등분을 하고 각 등분을 한번씩 테스트 데이터로 사용하여 성능평가를 하고 평균값을 선택한다.

 

그림을 해석하면 전체 데이터를 4등분을 하여 총 4개의 데이터를 만들고 각 데이터마다 학습데이터3,테스트 데이터1 을 위치만 바꾸고 성능 평가를 해보자 그러면 정확도가 나온다. 이 정확도의 값에 평균값을 구하면 전체 데이터를 가지고 학습한 모델의 성능 평가값으로 사용 가능하다. 최종적으로 전체 데이터를 학습용으로 사용하면 정확도를 계산을 할 수없다. 왜냐면 전체 데이터를 학습데이터로 사용 했기에 k-겹 방식으로 구했던 정확도의 값으로 전체 데이터의 성능을 평가 하는 것이다.

 

}

4.비지도학습:출력에 대한 정보가 없는 데이터로 부터 필요한 패턴 추출

 

5.반지도학습:일부 학습데이터만 출력값이 주어진 상태에서 상태에서 일반화한 패턴 추출

 

6.강화학습:출력에 대한 정확한 정보를 제공하지는 않지만, 평가정보는 주어지는 문제에 대해 각 상태에서의 행동을 결정