머신러닝의 개념과 종류
written by Bogyeom Kim
bogyeom.kim@looxidlabs.com
룩시드랩스는 VR과 모바일 앱에 뇌파를 접목하여 인지기능의 저하를 손쉽게 발견하고 손쉽게 멘탈헬스케어를 관리할 수 있는 플랫폼을 개발하고 있습니다. 머신러닝은 기계가 과거의 데이터를 학습하여 새로운 예측을 하는 도구로, 대규모 생체 데이터가 활발하게 수집되는 빅데이터 시대에 바이오, 헬스케어 분야에 발전을 가져오고 있습니다. 본 아티클 시리즈에서는 룩시드랩스에서 인지기능 저하를 발견하고 정신건강 전반을 관리하는데 사용할 머신러닝 기술에 대해 알아보고, 멘탈헬스케어 산업 동향을 소개하도록 하겠습니다.
여러분 모두 머신러닝이라는 용어 자체는 낯설지 않을 것이라 생각합니다. 본 아티클은 머신러닝 용어는 들어봤지만 그 내용은 친숙하지 않은 분들을 위한 것입니다. 머신러닝의 개념을 여러 사례와 함께 살펴보고, 머신러닝의 종류 (지도학습, 비지도학습, 강화학습)에 대해 알아보도록 하겠습니다.
머신 러닝에서 머신은 우리가 늘 사용하는 컴퓨터를 가리킵니다. 그래서 단어 그대로 해석한다면 컴퓨터가 무엇인가 배울 수 있도록 혹은 컴퓨터에 무엇인가 가르칠 수 있도록 하는 기술이라고 짐작해볼 수 있습니다. 이 분야에서 많이 인용되는 정의는 아래와 같습니다.
만약 P에 의해 측정되는 작업 T에 대한 성능이 경험 E와 함께 개선된다면, 컴퓨터 프로그램이 어떤 작업 T와 성능 평가기준 P에 대한 경험으로부터 학습한다고 한다.
풀어 설명하면 다음처럼 이야기할 수 있습니다. 우리가 하고 싶은 작업을 설정합니다. 그리고 그 작업이 잘 되었는지 잘못되었는지 평가할 수 있는 기준을 세웁니다. 작업을 수행하고 평가하기를 반복적으로 경험하면서 작업 결과를 개선해 나갑니다.
짧은 사례를 통해 살펴봅시다. 어린 아이에게 다음과 같은 그림을 보여줍니다. 그리고 점들과 가장 ‘친할' 것 같은 선을 하나 그려볼 것인데, 잘 그린 것 같으면 말해달라고 합니다.
먼저 첫 번째 선을 그려보고 물어보니 선을 좀 더 위로 그리라고 합니다. 두 번째 선을 그려보니 선을 좀 더 아래로 그리라고 했습니다. 그에 따라 세 번째 선을 그려보니 잘 그린 것 같다고 말해줬습니다.
저는 경험을 통해 점들과 가장 친한 선을 그리는 방법을 배웠습니다(이 예시는 지도학습에 해당합니다). 즉, 경험 또는 학습을 통해 결과를 개선해나간 것입니다. 이런 과정을 컴퓨터에게 시키는 것을 머신러닝이라고 할 수 있겠습니다.
앞서 머신러닝은 컴퓨터가 경험 또는 학습을 통해 결과를 개선해나가는 방법이라고 설명했습니다. 이제 뉴스기사에 나온 머신러닝 사례로 개념을 확장해봅시다.
1. 알파고는 구글 딥마인드가 개발한 인공지능 바둑 프로그램이다. 알파고는 2016년 3월 세계 최상위급 프로 바둑기사 이세돌 9단과 5번기 공개 대국에서 4승 1패로 승리해 세계를 놀라게 했다.
2. 네이버의 파파고는 자연어 처리 기술로 실시간 번역 서비스를 지원한다. 중국인이 길을 물어보았을 때, 답변자가 한국어로 대답하더라도 해당 답변을 중국어로 변환해 길을 알려줄 수 있다.
3. 디지털 진단 기구 개발기업 디지털 다이아그노틱스(Digital Diagnostics)는 2018년 망막 카메라를 사용해 캡처한 눈 사진에서 당뇨병성 망막병증의 초기 징후를 감지하는 AI 도구에 대해 FDA 승인을 받았다.
4. 구글의 딥마인드는 단백질 구조 예측 인공지능 플랫폼 ‘알파폴드(AlphaFold)’를 오픈소스로 공개했다. 단백질 구조 예측 결과를 담고 있는 ‘알파폴드 단백질 구조 데이터베이스’는 현재까지 2백만 개 이상의 단백질 구조를 확인했다. 기존에 10년에 걸쳐 했던 연구를 3개월만에 해낸 것이다.
5. 달리는 오픈AI가 만든 인공지능 엔진이다. 원하는 이미지 정보나 맥락을 텍스트로 입력하면 알아서 원하는 그림을 그려주는데, ‘공룡으로 가득 찬 외계에서의 일출’이라는 텍스트를 작성하면 그와 관련한 그림을 생성해주는 식이다.
위의 기사들에서 컴퓨터는 무엇을, 어떻게, 학습해서 결과를 개선한 것일까요? 이 질문에 초점을 맞춰 기사를 재해석해보면 아래와 같습니다.
1. 딥마인드가 개발한 인공지능 바둑 프로그램 알파고는 자가대국 2900만 판을 두어 최고의 보상을 받을 수 있는 규칙을 찾도록 강화학습 방식을 통해 배웠다. 알파고는 2016년 3월 세계 최상위급 프로 바둑기사 이세돌 9단과 5번기 공개 대국에서 4승 1패로 승리해 세계를 놀라게 했다.
2. 파파고를 이용하여 한국어를 중국어로 번역한다고 해보자. 파파고는 수많은 한국어 문장들과 중국어 문장들을 연결시켜 배웠고, 학습한 바를 바탕으로 한국어를 중국어로 번역한다.
3. 디지털 진단 기구 개발기업 디지털 다이아그노틱스(Digital Diagnostics)는 캡쳐한 망막 사진들에서 당뇨병성 망막병증을 보이는 망막과 건강한 망막을 학습했고, 이를 바탕으로 당뇨병성 망막병증 초기 징후를 예측할 수 있게 되었다.
4. 구글의 딥마인드는 단백질 구조 예측 인공지능 플랫폼 ‘알파폴드(AlphaFold)’는 약 3만개의 단백질 데이터를 학습했다. 이를 바탕으로 3차원의 단백질 구조를 예측한다. 기존에 10년에 걸쳐 했던 연구를 3개월만에 해낸 것이다.
5. 오픈AI의 달리는 이미지 정보와 텍스트를 받아 그림을 생성하는 법을 학습했다. 이를 바탕으로 공룡으로 가득 찬 외계에서의 일출’이라는 텍스트를 작성하면 그와 관련한 그림을 생성해줄 수 있다.
사례에서 알 수 있듯이 컴퓨터(기계)는 각 목적에 맞는 과거의 데이터를 학습했습니다. 하고 싶은 작업이 설정되었을 때, 과거의 데이터를 학습하여 작업 목표에 도달할 수 있도록 결과를 개선해나간 것입니다. 이렇게 학습한 바를 새로운 문제 해결에 사용했습니다. 머신러닝은 컴퓨터가 과거의 데이터에서 일종의 특징을 추출하여 학습하고, 이를 새로운 데이터에 적용하기 위해 사용하는 도구의 일종이라고 할 수 있습니다.
머신러닝은 학습하는 데이터의 형식 및 그 방법에 따라 지도학습, 비지도학습, 강화학습으로 분류할 수 있습니다. 머신러닝으로 어떤 문제를 풀고 싶을 때, 갖고 있는 데이터의 형태와 원하는 학습 방법에 따라 서로 다른 학습 방법을 선택하게 됩니다.
지도학습은 컴퓨터가 답지를 들고 학습하는 방식입니다. 예를 들어, 내년 여름의 아이스크림 판매량을 예측하고 싶다고 해봅시다. 우리는 작년 데이터로 컴퓨터를 학습시킨 후 내년 여름 아이스크림 판매량을 예측하려고 합니다. 이를 위해 먼저 과거의 데이터를 확보해야 합니다. 수집한 작년 데이터에는 일일 온도와 일일 판매량이 담겨있습니다. 우리는 기계에게 X 도일 때, Y개 만큼의 아이스크림이 판매되었다고 가르칠 것입니다. 과거의 데이터로 충분히 학습된 컴퓨터는 내년 여름의 평균 기온이 주어졌을 때, 아이스크림이 얼마나 판매될지 예측할 수 있습니다.
비지도학습은 답지 없이 데이터만 들고 학습하는 방식입니다. 앞서 지도학습에서는 원인과 결과, 온도와 아이스크림 판매량이라는 데이터가 필요했습니다. 그러나 비지도학습에서는 원인과 결과의 구분이 중요하지 않습니다. 데이터만 있으면 됩니다. 그 대신, 데이터가 가진 특징을 파악하는 것이 핵심입니다. 즉, 수많은 데이터를 학습함으로써 그 데이터에 내재된 특징을 스스로 파악하여, 이를 바탕으로 새로운 데이터에서 일정한 패턴을 찾는 방법입니다.
비지도학습은 인간이 아직 알지 못하는 문제나 데이터에 숨겨진 특징이나 구조 등을 연구할 때 많이 활용됩니다. 비지도 학습을 위한 대표적인 사례로는 군집화가 있습니다. 군집화는 과거의 데이터들의 특성을 분석해서 유사한 특징을 가진 데이터끼리 같은 군집으로 분류합니다. 그리고 새로운 데이터가 입력되면 그 데이터가 어느 군집에 속하는지 분석하는 것입니다.
과거의 데이터들끼리 분석하는 과정, 즉, 서로 유사한 데이터들의 군집을 만들어내는 방법에 따라 군집화 알고리즘이 분류됩니다. 대표적으로 K-means 군집화 방법이 있습니다. K-means 군집화 방법은 주어진 데이터를 K개의 군집으로 묶는 것으로, 군집 간의 거리 차이와 분산을 최소화하는 방향으로 학습을 진행합니다. 쉽게 말해, 레이블 없이 데이터만을 보았을 때, 거리가 가깝고 분산이 작은 데이터끼리 묶어서 분류하는 비지도학습 방법입니다.
강화학습의 핵심은 일단 해보는 것입니다. 강화학습은 일단 해보면서 경험을 통해서 실력을 키워가는 것입니다. 그 행동의 결과가 자신에게 유리한 것이었다면 상을 받고, 불리한 것이었다면 벌을 받는 것입니다. 이 과정을 아주 많이 반복하면 더 많은 보상을 받는 더 좋은 답을 찾아낼 수 있다는 것이 강화학습의 기본 아이디어입니다.
강화학습은 게임 실력을 키우는 것과 비슷합니다. 비유를 들어 설명해보겠습니다.
게임은 게이머에게 화면을 보여줍니다. 캐릭터의 능력은 무엇이고, 해치워야 하는 장애물은 무엇인지 알려줍니다.
동시에 현재의 점수도 알려줍니다. 게이머에게는 이 점수를 높이는 것이 상이고, 장애물에 부딪히는 것이 벌입니다.
게이머는 현재 상태를 관찰한 후 행동을 할 것입니다. 행동을 반복하면서 어떤 행동을 해야 더 많은 상을 받고, 더 적은 벌을 받을 수 있는지 알게 됩니다.
즉, 판단력이 강화된 것입니다.
강화된 판단력에 따라 행동을 합니다.
그 행동은 게임에 변화를 주게 됩니다.
이러한 과정을 반복하며 게이머의 판단력이 점점 강화됩니다. 게임에서 레벨을 올리는 것과 유사하죠. 강화학습은 이러한 과정을 모방해서 기계를 학습시키는 것입니다. 위 사례의 핵심 키워드는 강화학습 분야의 용어로 바꾸어 표현될 수 있습니다.
게임 → 환경 (environment)
게이머 → 에이전트 (agent)
게임화면 → 상태 (state)
게이머의 조작 → 행동 (action)
상과 벌 → 보상 (reward)
게이머의 판단력 → 정책 (policy)
요약하면, 강화학습은 더 많은 보상을 받을 수 있는 정책을 만드는 것이 핵심입니다. 강화학습을 사용하여 알파고가 만들어졌고, 자율주행자동차 등 다양한 곳에 사용되고 있습니다.
지금까지 머신러닝의 개념과 종류에 대해 살펴보았습니다. 이전보다 머신러닝의 개념에 대해 친숙해지셨을 것이라 생각합니다. 머신러닝에 대한 보다 구체적인 이해를 위해, 다음 아티클에서는 머신러닝 모델을 직접 만들어보는 과정을 소개하고자 합니다.
1) 단행본
강민수, 강희재, 유기봉, 유기봉, 임춘화, & 최은수. (2018). Microsoft Azure Machine Learning Studio를 활용한 머신러닝 시작하기. 한티미디어.
조준우. (2020). 머신러닝⋅딥러닝에 필요한 기초 수학 with 파이썬. 인사이트.
2) 사이트
지도학습 Supervised Learning[생활코딩]. (2022.11.08). URL: https://opentutorials.org/course/4548/28938
비지도학습[생활코딩]. (2022.11.08). URL: https://opentutorials.org/course/4548/28945
강화학습 Reinforcement Learning[생활코딩]. (2022.11.08). URL: https://opentutorials.org/course/4548/28949
3) 뉴스기사
김민수. (2022년04년22일). 10년 걸린 연구 3개월에 끝낸다…구글 AI '알파폴드'가 주도하는 생명과학 혁명. 동아사이언스, https://m.dongascience.com/news.php?idx=53763
김재인. (2018년9월18일). 알파고는 애초에 기보 데이터가 필요하지 않았다. NEWSTOF, http://www.newstof.com/news/articleView.html?idxno=951
박현진. (2022년10월15일). 텍스트로 사용자 맞춤 이미지 만드는 인공지능 '달리2(DALL-E 2)'...MS '애저 오픈AI 서비스'에서 제공. 인공지능신문, https://www.aitimes.kr/news/articleView.html?idxno=26245
이지혜. (2022년9월14일). 인공지능 질병진단 어디까지 왔나?. 덴탈투데이, https://www.dttoday.com/news/articleView.html?idxno=90766
전동현. (2021년02월05일). 시리와 파파고가 사용하는 자연어처리기술, 그 정확한 개념은?. CODING WORLD NEWS, https://www.codingworldnews.com/news/articleView.html?idxno=2242