본문 바로가기
AI/머신러닝

[Machine Learning] 머신러닝 개념 및 원리 - (1) 머신러닝 정의 및 지도학습, 비지도학습 차이

by 꼬바리 2021. 3. 23.

 

 

2016년 3월 알파고와 이세돌의 대국은 최근 개발되고 있는 인공지능의 기술에 대해 대중들이 관심을 갖게하는 커다란 전기가 되었고 많은 분들이 충격을 금치 못했었습니다. 그 이후로 알파고는 인간과의 대국에서 진 적이 없다고 하고, 심지어 현재는 '알파 제로'라는 새로운 이름으로 이전 알파고와는 차원이 다른 실력을 자랑한다고 하네요.

(그래서 이세돌이 (현재의) 인공지능을 이긴 최초이자 마지막 사람인 엄청난 타이틀을 갖게 되었다고 하네요.) 

 

 

 

 

또한 알파고를 만들었던 딥마인드에서는 올해 FPS게임인 퀘이크 아레나 중 깃발뺏기 모드를 플레이하는 인공지능을 개발하였는데 아무것도 모르는 초짜 상태임에도 스스로 게임을 하면서 학습하여 사람 플레이어를 뛰어넘는 경지에까지 이르렀다고 할 정도로 인공지능 기술은 계속 발전하고 있습니다.

 

 

 

 

 

왼쪽과 같이 게임 내 지형을 본따서 게임을 진행하도록 시뮬레이션하는데 오른쪽 그래프와 같이 15만회 정도 만에 능숙한 플레이어 수준에 도달하고 45만회 플레이한 상태에서는 사람 플레이어를 훨씬 뛰어넘는 수준에 도달했다고 하네요.

 

 

이렇게 인공지능 기술이 혁명적으로 발전할 수 있었던 데에는 람이 일일이 컴퓨터에게 규칙을 부여하는 예전의 인공지능 대신, 컴퓨터가 많은 데이터와 게임 플레이 시도를 통해 스스로 규칙을 학습하도록 하는 방법으로 패러다임이 변화하였기 때문입니다. 

 

그 근간에는 바로 머신러닝(Machine Learning, 기계학습)이 있는데, 게임 뿐만 아니라 최근의 많은 기업에서 개발하고 서비스하는 빅데이터 분석이나 고객별로 맞춤형으로 제공하는 인공지능 서비스와 같은 것들이 바로 머신러닝이 활용된 것입니다.

 

이렇게 산업전반에서 인공지능 기술이 활용되면서 인공지능 기술에 관심을 갖거나 또는 기술의 발전에 우려하는 목소리를 갖는 분들이 많아졌고, 또는 일부는 기술 자체를 경계하기도 합니다.

 

그래서 이번 글을 통해 인공지능 기술의 핵심인 머신러닝의 개념에 대해서 이해하고 신경망이나 회귀분석같은 다양한 알고리즘들이 어떻게 작동하는 지 개념적으로 살펴보면서, 인공지능 기술에 대해 관심을 갖는 분들께 도움이 되고, 또 기술에 대해 지나친 경계나 맹신을 갖지 않고 객관적으로 이해하는 데 도움이 되리라 생각합니다. 

 

머신러닝은 현재도 계속해서 발전하고 개량되고 있는 분야라 이번 글에서 설명하는 것보다 더 많은 알고리즘이나 방법이 생길 수 있으나 보편적으로 알려지거나 활용되는 부분은 빠지지 않고 언급하려고 하였습니다.

 

 

 

1. 머신러닝 및 용어정의 

 

먼저 머신러닝이라는 용어에 대해서 알아보겠습니다.

 

머신러닝이라는 용어는 예전부터 존재하긴 했으나 2010년대에 들어서 인공지능을 구사하는 알고리즘을 일컫는 대세 용어가 되었습니다.

 

머신러닝과 유사한 의미의 용어로 딥러닝, 데이터마이닝, 패턴인식 등도 사용되고 있는데 관련 전공자가 아니면 무슨 차이가 있는지 이해하기 쉽지도 않고, 머신러닝과는 또 다른 무언가가 아닌가 오해하기 쉽습니다.

 

하지만 결론적으로는 약간의 차이는 있으나 교집합이 매우 큰 거의 유사한 의미라고 생각하면 될 것 같습니다.

 

 

비슷한 의미이면서 굳이 여러 용어가 왜 생겼냐 하면, 과학이나 기술분야도 이전과 큰 차이가 없으면서도 의도적으로 새로운 용어를 만들어서 좀 더 트렌디하게 보이고 좀 더 잘 팔리게 하려는 전략적인 목적이 있다는 것을 부정할 수 없습니다. 

 

기업에서 기존 제품에서 별 차이 없이 사소한 부분만 개량해놓고 새로운 이름을 붙여서 판매하듯이 말이죠.

 

2000년대 중반에는 유비쿼터스 라는 말이 유행했었는데, 2010년대에는 쥐도새도 모르게 자취를 감추고 대신 IOT와 스마트시티가 그 자리를 차지한 것이 또 다른 사례라고 할 수 있겠네요.

 

 

 

 

[그림출처 : Looking backwards, looking forwards: SAS, data mining, and machine learning (blog.sas.com)]

 

 

위의 다이어그램은 데이터마이닝과 연관기술의 관계를 표현한 것인데, 저 그림에서 중심을 차지하고 있는 분야가 데이터마이닝(Data Mining)이듯이 2000년대까지는 데이터마이닝이라는 표현을 좀 더 많이 썼었습니다. 하지만 요즘에는 유비쿼터스랑 비슷하게 데이터마이닝은 뭔가 구닥다리같은 느낌이 들고 머신러닝이 좀 더 첨단의 느낌이 드는 것 같습니다.

 

하지만 용어의 차이가 있을 뿐 보시다시피 각 영역이 상당히 많이 겹칩니다.

 

따라서 이러한 기술들을 통칭하는 용어는 실제 기술을 구현하는 방법들을 어떻게 포장하냐에 따라 달라지는 것이라 새로운 용어가 나왔다고 해서 기존과는 완전히 다른 무언가가 나온 것은 아니며 해당 기술을 바라보는 관점이나 정의하는 방식이 달라지는 것이라고 생각하는 편이 좋겠습니다.

 

 

예를 들어 TV의 경우 전자제품이라고도 하고 가전제품이라고도 하죠. TV의 구성부품이나 작동하는 방식을 강조하고 싶으면 전자제품이라고 쓰는 것이고, 냉장고, 세탁기와 같이 가정에서 많이 쓰는 제품임을 강조하고 싶으면 가전제품이라고 쓰는 것처럼 말이죠. 하지만 용어가 바뀌었다고 TV의 기능이나 본질이 달라지는 것은 아닙니다. 

 

 

마찬가지로 인공지능에 많이 활용되는 신경망 알고리즘은 1950년대 부터 존재한 역사가 있지만 패턴을 파악할 수 있다는 점을 강조하고 싶으면 패턴 인식이라고 쓰고, 기존에 알기 힘든 정보를 제공한다는 측면을 강조하고 싶으면 데이터 마이닝을, 신경망 형태를 통해 스스로 학습한다는 측면을 강조하고 싶으면 머신러닝이라고 분류하고, 신경망이 좀 더 복잡해졌다는 걸 강조하고 싶으면 딥러닝이라고 부르는 것입니다.

 

 

결과적으로 각 기술에 관한 용어정의는 위와 같이 다르더라도 본질적인 차이는 크지 않기 때문에 상식적인 수준에서는 다 비슷하다고 생각하셔도 크게 무리는 없다 생각합니다.

  

 

 

 

2. 머신러닝의 개념

 

머신러닝이라는 말뜻과 같이 머신러닝 기술은 기계가 학습함을 그 근간으로 하고 있습니다.

 

그런데 학습하려면 학습할 수 있는 교재(데이터)가 있어야겠죠?

 

그렇기 때문에 머신러닝에는 반드시 데이터가 필요합니다. 

 

데이터는 사람이 만들어놓은 것을 줄 수도 있고(일반적인 방법), 항해하거나 미로에서 헤맬 때 스스로 지도를 그려가듯이 학습하는 주체가 데이터를 스스로 만들면서 학습하도록 할 수도 있습니다.(위의 퀘이크 아레나와 같은 사례)

 

데이터를 스스로 만드는 것은 알파고와 같은 강화 학습(Reinforcement Learning)에서 주로 사용하는 방법인데, 아직까지 산업적으로 보편적으로 사용되고 있는 방법은 아니므로 이번에는 일반적인 방법, 즉 미리 만들어져 있는 데이터로 학습하는 방법에 대해서만 언급하기로 합니다.

 

어쨌든 데이터로부터 학습한다는 점이 머신러닝의 정의이며, 따라서 머신러닝에 해당되는 알고리즘들 모두 학습하는 방법은 다르지만 모두 데이터를 통해 학습한다고 이해하시면 되겠습니다.

 

 

 

3. 지도학습 vs 비지도학습

 

머신러닝 알고리즘은 작동방법에 따라 몇 가지 기준으로 분류할 수 있는데,  가장 큰 기준은 바로 지도학습(Supervised Learning)과 비지도학습(Unsupervised Learning)입니다.

 

 

먼저 지도학습은 답지가 달린 시험 족보를 주고 학습시킨다는 개념입니다.

 

답지라는 것이 존재한다는 것 자체가 나중에 답을 맞히려고 본다는 것을 뜻하겠죠? 따라서 지도학습은 답을 찾기 위해 활용되는 알고리즘이라고 할 수 있습니다.

 

 

 

지도학습의 예시를 들어보면 여러 장의 사진을 주고 개와 고양이 사진을 구분하라고 시키는 것입니다. 이 때 어떤 것이 고양이 사진인지, 개 사진인지 미리 답지를 달아서 줍니다. 이렇게 학습하도록 주는 데이터를 훈련 데이터(Train Set)이라고 하고, 훈련 데이터에 답지를 달아주는 것을 레이블링(Labeling)이라고 합니다. 

 

이렇게 레이블링한 훈련 데이터를 넣어주면 지도학습 알고리즘은 나름대로 학습해서 앞으로 들어오는 사진이 개인지 고양이인지 구분할 수 있게 됩니다. 이렇게 훈련받은 알고리즘은 개와 고양이를 구분할 수 있는 모델(Model)이 되었습니다. 

 

그러면 이 모델은 앞으로 레이블링 되지 않은(답지가 안달린) 데이터를 받아도 고양이와 개를 적절히 구분할 수 있게 됩니다. 이 때 레이블링 되지 않은 데이터는 테스트 데이터(Test Set)이라고 하고 얼마나 정확하게 답을 맞췄냐에 따라 알고리즘의 성능이 결정되게 됩니다. 

 

 

 

구글에 'dog muffin ai '라고 검색하면 장난삼아 컴퓨터보고 구분해보라고 치와와와 머핀을 섞어놓은 사진들이 많이 나오는데, 옛날 알고리즘에서는 잘 구분을 못했는데 요즘은 기가 막히게 정확하게 구분한다고 하네요.

 

 

 

 

 

반면 레이블링한(답지가 달리지 않은) 데이터를 주고 학습시키는 것은 비지도학습이라고 합니다. 

 

답지를 주지 않으므로 비지도학습은 답을 맞히는 목적으로 학습하지는 않습니다. 하지만 어떤 데이터들이 서로 비슷한지 그룹지어주거나, 어떤 성질이 데이터를 잘 정의하는 지를 판단하는 등 답을 내지 않는 문제에 대해 나름대로 유용한 정보를 제공해주는 역할을 합니다. 

 

앞과 동일하게 개와 고양이 사진 구분을 목적으로 사진들을 입력하는 상황을 생각해보겠습니다. 비지도학습에서는 어느 사진이 개인지 고양이인지 알려주지 않습니다.(즉 레이블링 하지 않습니다.)

 

하지만 알고리즘은 사진을 보고 어떤 사진끼리 비슷한지 파악은 할 수 있습니다. 그래서 고양이처럼 생긴 사진끼리 한 그룹으로, 개처럼 생긴 사진끼리 또 다른 그룹으로 구분하게 됩니다. 이렇게 구분은 할 수 있지만 이 그룹의 정체는 알려주지 못합니다. 구분이 잘 되었는지, 그리고 그 그룹을 어떻게 정의하는지 최종 판단하는 것은 사람의 몫입니다. 위의 경우 알고리즘은 고양이 사진이 고양이이고, 개 사진이 개라고 답을 내주지는 않지만, 고양이 사진과 개 사진이 서로 다른 그룹이라고 구분은 잘 해냈으므로 사람은 그 결과를 보고 한 그룹은 고양이 사진, 다른 그룹은 개 사진이라고 판단할 수 있는 근거가 됩니다.

 

 

이렇게 비지도학습은 최종적을 답을 알려주는 용도로는 사용할 수 없지만 데이터의 특성을 파악할 수 있는 유용한 정보를 주어서 사람이 의사결정을 하는 데 도움이 되기 때문에 지도학습과 마찬가지로 널리 사용되고 있습니다.

 

 

다음 편에서는 지도학습 알고리즘들이 어떤 것이 있는 지 그리고 어떤 원리로 작동하는 지 알아보겠습니다.

 

 

 

[제목 그림출처 : https://www.ie.edu/exponential-learning/blog/bootcamps/machine-learning-marketing/]

출처: https://ellun.tistory.com/103 [Ellun's Library]

https://www.youtube.com/watch?v=arbbhHyRP90
노마드코더 : ai 정리
https://www.sas.com/ko_kr/insights/analytics/machine-learning.html#machine-learning-importance
sas머신러닝

728x90
반응형

댓글