여러분은 점을 믿습니까? 점은 고대 그리스 시대부터 별빛에 미래를 투영하는 점성술로 시작하여 지금에 이르기까지 다양한 형태로 존재하고 있습니다. 사람이 왜 이토록 점에 매료되는가 하면, 미래가 어떻게 될지 알 수 없는 인간은 본능적으로 공포를 기억하기 때문입니다. 이를 방지하기 위해 선조들은 과거에 일어난 일에서 배우면서 그 법칙성을 발견하였습니다. 이처럼 인류는 아직 보지 못한 미래를 두려워하고 예측함으로써 문화와 과학을 발전시켜 왔다고 할 수 있습니다. 그렇다면, 그 발전의 끝에 오늘날 붐을 맞이한 AI는 어떻게 "예측"을 하는 것일까요? 가장 기초적인 방법인 '회귀'를 살펴보도록 합니다.
1. 회귀가 뭐야?
이미 알고 있는 과거 데이터를 바탕으로 아직 보지 못한 상황을 예측하는 것은 AI도 인간과 동일합니다. 예를 들어 "더우면 아이스크림이 많이 팔릴 것 같다", "키가 크면 무게가 많이 나간다.", "도시의 인구가 늘면 세수입이 늘어날 것이다"라는 식입니다.
위의 예에 한해서 말하면 한쪽이 늘어나면 다른 한쪽도 늘어난다는 관계가 있습니다. 이러한 관계를 수학적 지식을 바탕으로 보다 정확한 예측을 시도하는 것이 회귀분석입니다.
즉 회귀분석을 할 수 있게 되면, 다른 두 요소 사이의 관계를 찾을 수 있고(세수 증감과 인구증감 등), 아직 보지 못한 미래를 맞출 수 있게 되는 것입니다. 그러기 위해서는 두 가지 요소 중 하나를 알면 다른 하나도 맞출 수 있다고 해도 좋을 것입니다. 예를 들어 "기온이 30℃가 되면 아이스크림은 200개 팔린다"라고 했을 때, "기온"을 알면 "팔리는 수량"을 알 수 있습니다. 아래 그림을 보시면 이해하시기 쉬울 것입니다.
이러한 붉은 선을 손에 넣으면 그것을 보고 ◯◯℃ 면 ◯◯개 팔린다는 것을 언제든 맞출 수 있습니다. 즉 지금 가지고 있는 데이터에서 위의 그림과 같이 그럴듯한 "선"을 찾는 것을 회귀분석이라고 합니다.
2. '알맞은 선'을 긋는 방법
그러나 실제로 과거에 일어난 일들은 한결같지 않고 굴곡이 존재합니다. 그래프에 점으로 그려보면 아래 그림같이 흩어진 점들의 모임이 될지도 모릅니다. 여기에 어떻게 그럴듯한 곡선을 그릴 수 있을까요?
우선 가장 수학적으로 간단한 직선을 그리는 방법인 선형단회귀부터 알아봅시다. 사실 세상의 데이터는 매우 복잡하기 때문에, 수치를 완전하게 맞추고자 한다면 직선적인 동작만으로는 잘 되지 않을 것입니다. 그러나 그럴듯한 직선을 그릴 수 있다면 어느 정도의 오차를 허용하고 예측이 가능해집니다.
아까의 그림과 같은 데이터가 있다고 하고, 여기에 직선을 그린다고 생각해 봅시다. 어떤 직선이 "알맞은 직선"이라고 할 수 있을까요?
먼저 말할 수 있는 것은 데이터와 직선 사이의 거리가 가까운 것이 좋다는 것입니다. 즉 아래 그림의 녹색 라인의 길이가 작은 것이 좋은 것입니다. 이 길이를 Δy라고 해둡시다.
실제로 이 선이 완전히 파란색 점과 겹치게 되면 사실을 맞추는 것이기 때문에 최고입니다만, 점을 보시면 아시겠지만 완전히 딱 맞는 직선은 그릴 수 없습니다. 그래서 이 각각 파란 점과 직선거리의 합이 가장 작아지도록 직선을 긋는 것을 목표로 합니다.
여기서 이 녹색선의 길이는 (데이터 점의 값) - (직선 값)으로 계산할 수 있지만 점이 직선 위에 있는지 아래에 있는지에 따라 긋는 순서가 반대로 되어버려, 플러스나 마이너스가 되기도 합니다. 그래서 이것을 제곱해 보겠습니다.
마이너스 x 마이너스는 플러스 이므로 이 방법이라면 점이 직선의 위아래 어느 쪽이든 상관없이 직선과 점의 거리가 크면 클수록 플러스 값이 됩니다. 이 값이 작으면 직선과 점의 거리가 가까울 것입니다.
이런 작업을 하나의 점에만 해서는 의미가 없기 때문에 각각의 점 전부를 이렇게 제곱으로 계산하여 그 합계를 알아봅니다. 그리고 그것이 가장 작아지도록 직선을 그릴 때 가장 알맞은 선이 될 것입니다.
3. 오차의 최소화 : 최소제곱법
지금까지 살펴본 바와 같이 '제곱'의 값을 '최소'로 하는 이 방법은 '최소제곱법'이라고 하며, 현재도 가장 표준적인 최적화 방법론으로 다양한 현장에서 사용되고 있습니다.
직선은 일차함수 y = a x + b로 표현된다고 중학교에서 배웠습니다. x가 가로축이고 y가 세로축입니다.
이 식을 살펴보면
즉, 와 값을 결정할 수 있다면 직선을 결정할 수 있습니다. 이를 사용하여
로 표현 가능합니다.
그러나 이것은 하나하나의 점에 대한 경우이기 때문에 모든 점에 대하여 합계를 구해야 합니다. 합계라는 것은 영어로 summation라고 하는데, 이 머리글자 S에 상당하는 그리스 문자는 Σ(시그마)입니다. 합을 계산할 때 수학에서는 이 기호를 사용하므로,
로 표현할 수 있습니다.
이것을 최소로 하는 a, b는 다음과 같습니다.
이렇게 흩어진 데이터들을 가지고 직선과의 차이가 가장 작아지도록 직선/곡선을 계산해내는 분석방법이 '회귀'입니다.
4. 가장 알맞은 곡선
지금까지 직선을 긋는 것만 생각했지만, 당연히 이것이 곡선이 될 수도 있습니다. 어떻게 적절한 곡선을 그릴 수 있을까요?
학교에서 가장 먼저 배우는 곡선은 이차함수입니다.
그럼 이 함수를 위의 직선 방정식
왼쪽의 직선과 중간의 이차함수를 더한 것이 오른쪽의 파란색 곡선입니다. 조금 틀어진 곡선이 되었습니다. 이것을 보면 그밖에도 다양한 곡선의 식을 더하여 복잡한 곡선을 표현할 수 있습니다. 그렇게 완성된 함수를
로 표현됩니다.
이 곡선의 식을 사용하여 알맞은 곡선을 찾는 방법을 '비선형회귀'라고 합니다.( '선형'과 '비선형'사이에는 수학적으로 정확한 정의가 있지만, 여기에서는 대충 이렇게 파악하여 둡시다!) 여기까지 이해하면 세상의 거의 모든 데이터에 대해 회귀분석을 할 수 있게 됩니다. 더 적절한 곡선을 찾기 위해서는 다소 복잡한 논의를 해야 하지만 여기서는 생략합시다.
어떻습니까? '회귀분석'의 구조를 살펴보았지만, AI가 하나의 수학적 수법에 불과하다는 것을 점점 알게 되셨을 거라고 생각합니다. 이처럼 다소 어렵지만 그 구조를 이해함으로써 어떤 데이터가 유효한지, 어떤 방법이 적절한 것인지를 스스로 판단할 수 있습니다.
'AI · 인공지능 > 알기쉬운 AI' 카테고리의 다른 글
[알기쉬운 AI - 17] 기계 학습 방법 (0) | 2020.02.04 |
---|---|
[알기쉬운 AI - 16] 기계 학습 라이브러리 (0) | 2020.02.03 |
[알기쉬운 AI - 15] AI 관련 기술 전체상(Overview)과 하드웨어 (0) | 2020.02.02 |
[알기쉬운 AI - 14] 흐름으로 중요성을 파악!? '의사결정트리'란? (0) | 2019.12.26 |
[알기쉬운 AI - 12] 특징으로 데이터 분류, '서포트벡터머신'이란? (0) | 2019.12.24 |
[알기쉬운 AI - 11] 그룹에서 당신은 어떤 타입? '클러스터링'이란? (0) | 2019.12.23 |
[알기쉬운 AI - 10] AI의 발전적 기능: 자연어 처리와 강화학습, 이미지인식, 음성인식 (0) | 2019.12.08 |
[알기쉬운 AI - 09] 지도 학습과 비지도 학습이란? (0) | 2019.12.07 |