Artificial Intelligence/Machine Learning

[Machine Learning] Supervised Learning_Part 1

Luna Oculta 2023. 8. 30. 23:02

<1. Supervised Learning?>

    지도학습(Superviesd Learning)이란 머신러닝에서 주로 사용되는 알고리즘이다. 지도학습은 주로 주어진 데이터를 통해 결과값을 예측하는 알고리즘이다. 지도학습에서 우리의 목표는 새롭게 주어진 데이터를 정확히 예측하는 것이다.


<Classification and Regression>

    분류(Classification)와 회귀(Regression)는 비지도학습에서 문제를 해결하는데 가장 중요한 두 분야이다.

먼저 분류의 목표는 정확이 어떤 집단에 속하는지 예측하는데, 결과값을 미리 정의되어진 가능성을 가지고 판단한다. 두가지 결과값이 주어지고, 입력값이 어느 곳에 속하는지 예측하는 분류는 이진분류라고 이야기하고, 주어진 결과값이 두가지 이상이라면, 다중분류라고 이야기한다. 

회귀의 경우 가장 중요한 목표는 연속적인 값을 예측하는 것이다. 데이터의 분포 정도를 그래프화 시킨 다음에 해당되는 값이 어느 정도로 예측하는 것을 바로 회귀라고 정의할 수 있다. 예를 들어서 그들의 교육 수준이나, 나이, 그리고 사는 곳을 통해서 그들의 소득을 예측하는 알고리즘을 예시로 들 수 있다.

회귀와 분류 중 어떤 알고리즘을 사용할지는 필요한 결과값에 따라서 정한다. 만약 필요한 결과값이 정확한 상수값, 즉 데이터 값이라면 회귀를 사용하고, 예측 값이 어떤 집단에 속하는지 알고 싶은 경우에는 분류 알고리즘을 사용하면 된다.


<Generalization, Overfitting, and Underfitting>

    지도학습에서는 우리가 원하는 모델을 훈련 데이터와 이에 상응하는 결과 데이터를 통해 구성한다. 만약 모델이 주어지지 않는 데이터에 대해서 더 정확한 예측이 가능해지도록 하려면, 우리는 훈련 데이터로부터 결과 데이터를 일반화해야한다고 말한다. 우리는 가능한 정확하게 모델을 만들기 위해서 일반화(Genralization)를 실행한다.

일반적으로 우리는 이러한 방식으로 모델을 만들 때 훈련 데이터에 대한 예측을 청확하게 만들 수 있다. 만약 훈련 데이터 셋과 테스트 데이터 셋이 평범하다면 테스트 셋 또한 정확할 것이라고 예측한다. 그러나 이러한 방식이 적용되지 않는 경우가 분명히 존재한다. 예를 들어 복잡한 모델을 훈련시키고자 할 때 어려움을 겪고는 한다.

만약 초짜 데이터과학자가 어떤 소비자가 보트를 살 것인지 예측을 원한다면, 주어진 데이터는 이전에 보트의 구매자 그리고 보트를 사지 않은 사람 두 종류일 것이다. 목표는 프로모션 메일을 구매할 것 같은 사람한테 보내는 것이다. 하지만 관심이 없는 사람에게 메일을 보내 괴롭히고 싶지는 않다. 아래와 같은 표에 소비자가 주어졌다고 생각하자.

    위의 데이터를 본 후에 우리의 초짜 데이터 과학자는 다음과 같은 규칙을 생각해 낸다. '만약 소비자가 45세 이상이거나, 3명 보다 적은 아이들을 가지고 있거나, 이혼하지 않았을 경우에 보트를 살거야' 그의 발견한 규칙이 얼마나 좋은지 판단할 때 우리 데이터 과학자들은 100퍼센트 정확하다고 이야기 할 것이다. 그리고 실제로, 표에 보이는 데이터에서의 해당 규칙은 매우 정확하다. 우리는 어떤 사람들이 보트를 살 것인지 가능한 많은 규칙들을 떠올릴 수 있다. 우리의 목표는 주어진 소비자들이 어떤 결정을 할 것인지가 중요한 것이 아니다. 새로운 소비자가 보트를 구입할지가 가장 중요하다. 그러무로 우리는 새로운 소비자들을 위해 보다 정확한 규칙을 찾아야 한다. 앞서 발견한 규칙은 해당 표에서만 높은 정확성을 보이지만, 다른 새로운 소비자의 결과를 예측할 수는 없다. 이렇게 적은 데이터로는 예측하기 어렵다. 이렇게 적은 데이터로 훈련시켰을 때 해당 모델이 underfitting 되었다고 설명한다.


 

모델 복잡도

    underfitting이란 과소적합으로 불리는데, 주어진 데이터량이 너무 작아서 훈련이 제대로 진행되지 않아 데이터를 예측하는데 불리하다는 것이다. underfitting의 반대는 overfitting은 말 그래도 훈련 모델이 너무 과하게 훈련되어 있다는 것이다. 훈련 데이터의 양을 너무 많게 설정하면 해당 머신러닝 모델이 해당 데이터에 과하게 적용되는 것을 볼 수 있다. 이러한 모델의 경우 객관성이 매우 떨어진다.

위에서 들었던 예시처럼 매우 적은양의 데이터로 한가지 모델을 훈련 시켰다면 과소적합이 발생할 것이다.


<Relation of Model Complexity to Dataset Size>

    지금부터는 데이터의 사이즈에 따른 모델 복잡도의 관계에 대하여 알아볼 것이다. 모델의 복잡도가 훈련 데이터양의 변화에 밀접한 관련이 있다는 것에 주목해야 한다. 더 많고 다양한 데이터셋을 포함하고 있다면 더 복잡한 모델을 과대적합 없이 사용할 수 있다. 하지만 비슷한 데이터를 복사해서 많은 데이터로 만든다고 해서 해당 모델이 좋아지는 것이 아니다. 각기 다른 종류의 여러 데이터가 존재해야 좋은 모델을 훈련시킬 수 있는 데이터셋이라고 할 수 있다.

다시 보트를 파는 예시로 돌아가보자. 만약 우리가 10,000개 이상의 소비자 데이터를 보고 있고, 그 모든 데이터가 '만약 소비자가 45세 이상이거나, 3명 보다 적은 아이들을 가지고 있거나, 이혼하지 않았을 경우에 보트를 살거야' 조건에 따른다면 우리는 당연히 해당 조건을 좋은 조건이라고 생각할 것이다.

    더 많은 데이터를 갖고 적절히 복잡한 모델을 만드는 것은 비지도학습에서 가장 중요한 부분이다.