brunch

You can make anything
by writing

C.S.Lewis

by 코딩하는 수학쌤 Mar 30. 2023

[AI 기초] II-4. 기계학습의 개념과 활용-1

모두의 인공지능 기초

1. 기계학습이란?

 먼저 네이버 커넥티드 재단에서 만든 소프트웨어야 놀자 채널에 있는 영상 하나를 통해 기계학습의 개념을 한 번 살펴보기로 합니다!


https://youtu.be/IiyYsAMmmw4

현업에서는 머신러닝이 훨씬 익숙한데 정보 교과에서는 '기계학습'이라는 용어를 채택했습니다. (그런데 왜 딥러닝은 심층학습이라는 말을 선택하지 않았는지 모르겠네요...;;)


기계학습은 인공지능 중에서 데이터를 바탕으로 컴퓨터가 스스로 학습하여 새로운 정보를 얻어내거나 예측하는 기술을 의미합니다. 중요한 것은 데이터, 학습인데요, 나중에 '모델'이라는 것도 함께 등장합니다. 사람으로 예를 들자면 학습은 경험, 공부를 하는 행위로 비유할 수 있고요, 그 과정에서 보는 책이나 경험 속에서 인식하는 장면, 관찰하는 행동 등이 '데이터'입니다. 그 결과로 뭔가 깨달음을 얻을 수 있는데 이 깨달음이 나름의 '모델'입니다.


기계학습은 기존의 프로그래밍 방식과 어떻게 다를까요? 

 쉽게 구분하자면 'How?'에 대한 정답이 사람에게 있는지에 따라 나눌 수 있어요. 기존 방법에는 사람들이 규칙을 발견하고, 이 규칙을 논리나 알고리즘으로 표현을 먼저 해야 합니다. 그 규칙에 따라 처리를 해서 결과를 내어놓습니다. 즉 (데이터+규칙 -> 결과)의 순서이죠. 예시를 드는 건 '입시'였는데.. 제가 고3 담임을 5년 하면서 나름 '이 대학에 합격하기 위해서는 내신이 얼마 이상이어야 하고, 스펙이 이래야 해!'라고 하는 경험을 얻었다고 합시다. 그런 다음 그 규칙을 만족시키는지를 프로그램하는 것이 기존의 방법입니다.


 반면 기계학습은 충분한 데이터가 확보되어 있고, 데이터 속에 내재된 규칙을 인공지능이 스스로 찾게 하는 거죠. 이 때는 데이터와 결과를 모두 확보해야죠. 즉 학생들의 합격 여부를 포함한 데이터를 인공지능에게 주면 '이 대학에 합격하는 학생들은 이런 특성들이 있어. 따라서 이 규칙 여부를 살펴봐야 해.'라고 규칙을 스스로 찾습니다. 이 방법이 기계학습입니다. 요즘은 데이터의 속성이 너무 많아서 사람이 분석하기 힘들 때 사용하는 경우도 많습니다. 이미지 처리는 뭐 말할 것도 없고요..;


다시 살펴보면 기존의 방법들은 '지식 기반의 모델'이라고 할 수 있습니다. 사람이 규칙을 최대한 자세히, 상세히 묘사를 하고 표현을 하는 것이 기본 전제 조건입니다. 예를 들어 '사과'라는 것을 기계가 구분하게 하려면 사과에 대한 규칙을 자세하게 먼저 정리해야 합니다. 이 규칙을 입력시켜 기계가 사과를 판단하게 만드는 거죠.


 반면 '데이터 기반의 학습'은 규칙을 미리 정리할 필요가 없습니다. 여러 가지 사과의 사진을 그대로 주고 인공지능이 스스로 규칙을 찾도록 합니다. 데이터 속에 잠재된 규칙을 스스로 파악하는데, 이 과정을 '학습'이라고 합니다.





아까 말씀드렸듯, 기계학습의 중요한 3가지 요소는 데이터, 학습, 모델입니다. 데이터를 통해 학습을 한 후 만들어낸 결과(프로그램, 판단 기준 등)가 모델이 됩니다. 모델을 만드는 이유는 기존에 확보된 데이터 외의 새로운 데이터를 분류하거나 예측하는데 주로 활용해요. 학생들이 문제집(데이터)을 통해 열심히 시험공부(학습)을 해서 단원에 대한 나름의 지식(모델)을 쌓았다면, 시험에 출제되는 새로운 문제를 해결할 수 있습니다. 그것과 비슷하죠. ㅎ


기계학습의 대표적인 예시로는 지도학습, 비지도학습, 강화 학습이 있습니다. (이 3가지만 있는 것이 아닙니다. 그리고 3가지로 딱 나누어지는 것도 아닙니다..) 가장 먼저 지도학습부터 한 번 알아볼까요?




지도학습이란? 

먼저 '소프트웨어야 놀자'의 영상을 통해 지도학습에 대해 전체적인 내용을 살펴봅니다.

https://youtu.be/zXzFsWHToeg

지도학습은 크게 '예측'과 '분류'를 위해 사용하는 경우가 많은데요, 영상에서 설명한 '레이블'이라고 하는 속성이 매우 중요합니다. 그 부분에 대해서 살펴보겠습니다.


앞에서 기계학습에는 데이터가 필요하다고 말씀드렸죠? 확보된 데이터는 상황에 따라 당연히 다를 텐데요, 경우에 따라 데이터에 정답에 해당하는 속성이 있는 경우가 있습니다. 예를 들면  

    타이타닉 데이터 - 승객의 정보 (구조 여부)  

    보건 데이터 - 사람들의 정보 (당뇨병 발명 여부)  

    학생 데이터 - 학생들의 정보 (대학 합격 여부)  

즉 데이터 중에서 꼭 알고 싶은 내용(레이블)을 기준으로 데이터의 특성, 특성 간의 관계 등을 파악하는 방법이 '지도학습'입니다.



가장 흔한 예시인.. 개와 고양이 분류하는 지도학습을 생각해 볼까요? 예측하려는 데이터(사진)가 있습니다. 이 사진이 개, 고양이 중 어디에 해당하는지 사람은 쉽게 알 수 있죠. 그런데 컴퓨터에게는 어떻게 학습을 시켜야 할까요? 


 만약 컴퓨터가 아니라 경험이 별로 없는 아이에게 '개'와 '고양이'를 알려준다고 가정해 봅시다. 아이에게는 생물학적인 특성이 아니라 여러 장의 사진을 보여주면서 '이건 고양이야. 이건 개야'를 알려줍니다. 그래서 아기가 스스로 이해할 수 있도록 여러 번 경험을 반복해야 합니다. 그런 과정을 반복하다 보면 구체적으로 설명하긴 어려워도 아이는 나름의 판단 기준을 가지게 됩니다.


 어린아이가 길을 가다가 '야옹'거리는 동물을 본다면 이제는 구분할 수 있겠죠? 아마 사진을 보고 이해했던 경험을 바탕으로 '고양이'라고 말할 거예요. (물론 틀릴 수도 있죠. 그러면 또 배웁니다.) 아기는 사진을 보며 '개'가 가지는 특성, '고양이'가 가지는 특성을 살펴봅니다. 그리고 나름의 판단 기준(이 판단 기준이 학습을 통한 모델의 형성이라고 할 수 있습니다.) 을 가지게 되고, 학습에 나타나지 않았던 새로운 데이터를 판단하게 됩니다. 


 인공지능도 마찬가지입니다. 예측을 하기 위해서는 판단 기준을 가지기 위한 선행 단계가 반드시 필요합니다. 사람처럼 열심히 사진을 보면서 개 사진의 특징, 고양이 사진의 특징을 파악해야 합니다. 그러면 각 사진에 '이건 개 사진', '이건 고양이 사진'이라고 하는 사전 정보가 필요하죠? 각 사진에 대한 정답 속성을 '레이블'이라고 합니다.




지도학습의 가장 대표적인 예시로는 '예측'이 있습니다. 예측은 어떤 변수의 변화에 따른 다른 변수의 변화 정도를 알아 차리는 것을 의미해요. 예를 들면 위의 그래프에서   

    x=1일 때 y=10  

    x=2일 때 y=20  

    x=3일 때 y=30  

    x=4일 때 y=40  

    x=5일 때 y=?  

이라고 물어봤다면 앞의 규칙성에 따라 y=50이라고 예측할 수 있습니다. 물론 실제 상황은 다를 수도 있겠지만 그래도 앞의 데이터를 기반으로 했다면 50일 가능성이 무척 높겠죠?


그런데 현실은 앞에서처럼 수학적인 식으로 예쁘게 표현할 수 있는 데이터가 존재하지 않습니다. 하나의 그래프로 이쁘게 그릴 수 있으면 좋겠지만 그런 데이터는 문제집에만 있기 마련이죠..; 위의 그래프는 교과서에 나온 예시인데요, 강우량에 따른 우산의 판매량을 산포도로 그린 그래프입니다. 저 점들을 정확하게 다 표현하는 그래프는 없죠. 즉 기계학습은 모든 데이터를 정확하게 표현하는 것이 목표가 아닙니다. 저 분포에 나타나는 대표적인 경향성을 잘 나타내는 하나의 기준을 제시해야 하죠. 예를 들면 저 점들을 가장 잘 표현하는 직선 하나를 그을 수 있는데, 이 방법을 '회귀분석'이라고 합니다.


자.. 기준을 제시한다는 말을 했는데요.. 위의 그림에서 직선 위의 점들은 '기대보다 많이 판매된 경우'를 의미합니다. 반대로 직선 아래의 점들은 '기대보다 적게 판매된 경우'겠죠? 즉 직선은 전체의 데이터 분포를 묘사할 뿐만 아니라 각 데이터가 어느 정도인지 판단하는 기준을 제시한다고 할 수 있습니다. 회귀분석은 사람이 직선을 찾을 수도 있지만 인공지능이 직선을 알아서 찾습니다. (물론 사람도 통계적으로 찾을 수 있습니다.)


이런 회귀분석을 활용하면 학습에 활용된 데이터 밖의 값들도 예측할 수 있겠죠. 위의 그래프를 보면 각 과일의 일조량과 당도의 관계를 나타내고 있습니다. 비록 모든 점을 정확하게 맞추진 못하지만 점선이 대략적으로 데이터를 잘 표현하죠. 그렇다면 일조량이 2200시간이라면 당도가 어떻게 될까요? 11.5 정도가 될 것이라는 예측을 내어놓을 수 있습니다! 만약 당도가 11.5 이상이면 '당도가 잘 나온 것'이 되고, 11.5 이하면 '당도가 낮은 것'으로 판단할 수 있습니다.


 직선 외에도 다른 방법들도 존재합니다. 자세한 것은 수학과 혹은 통계학과에서 더 배울 수 있습니다. ㅎㅎ (그 이야기하니 수업 시간에 아무도 질문을 안 하더라는...;;)


단순히 하나의 요인이 결과에 영향을 미치는 것도 아니죠. 아이스크림 판매량은 기온과 습도, 날씨 등 여러 가지 요소들이 영향을 미칩니다. 그런 다양한 요소들을 다 고려하여 모델을 만들 수도 있습니다. 이때는 직선이 아닌 평면의 형태로 식이 나올 텐데요, 마찬가지로 이 내용들도 수학과, 통계학과에 가시면 좀 더 자세히 배울 수 있습니다. 


https://youtu.be/sP9UK9RnfPw

대표적인 사례가 2015년 통계청의 생활 속 통계 수기 공모전에서 당선된 '통계로 튀기는 치킨' 이야기예요. 이 이야기에 나오는 치킨 데이터에는   

    날짜  

    이벤트 1~이벤트 4 : 날씨, 야구 경기, 복날, 주말 등  

    치킨 판매량 (레이블)  

등이 나옵니다. 통계를 전공했던 주인공은 이 데이터를 바탕으로 예측 모델을 만들었는데 각 이벤트가 얼마나 판매량에 영향을 주는지 가중치를 적절하게 계산했어요. 이 계산을 유도하는 2가지 방법으로는  

    통계의 전문적인 지식을 통해 산출한다! : 통계 전공자만 가능.  

    기계학습을 통해 가중치를 계산한다! : 기계학습을 배우면 누구나 가능.  

결국 기계학습은 통계와 뗄레야 뗄 수 없는 관계에 있죠. ㅎ 이 내용은 공부를 하면 할수록 많이 느끼게 됩니다.


다음 시간에는 '분류'와 비지도 학습, 강화 학습에 대해서 살펴보겠습니다!

브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari