기계학습

​스스로 배우는 똑똑한 컴퓨터

1. 그래서, 기계학습이 뭘까?

기계학습의 정의를 다시 한번 보자.

전에 살펴본 것 처럼, 기계학습이란 사람이 모든 답을 주지 않아도 컴퓨터가 스스로 주어진 데이터를 분석하고 학습하도록 만드는 기술을 지칭한다. 머신러닝은 인공지능의 부분집합이자 인공지능을 실현하는데 중요한 기술 요소 중 하나이며, 이 머신러닝 기술 중에 더 발전된 형태의 신경망을 토대로 한 기술이 딥러닝이다. 기계학습을 사람에 비유하자면 아이들은 ‘예시’들에 반복적으로 노출되면서 어떤 개념이나 사물에 대해 습득하게 된다. 기계학습도 이와같이 컴퓨터에게 예시들을 제공함으로써 컴퓨터가 어떤 개념이나 사물에 대해 익히게 되는 것이다. 

기계학습은 어떤 면에서 혁신적일까?

 

 

 

 

 

 

 

 

 

 

 

기계학습이 탄생하기 전 까지는 사람이 데이터 처리 방법을 생각해내서 그것을 컴퓨터에게 알려주는, 즉 하나부터 열까지 컴퓨터를 가르쳐야하는 방식이었다면, 기계학습은 사람이 직접 처리 방법을 컴퓨터에게 입력하지 않아도 원하는 학습용 샘플 데이터를 넣으면 컴퓨터가 알아서 그 데이터에 대해 학습하고 처리 방법을 만들어 낸다. 기계학습은 이렇게 데이터 처리에 있어 사람이 해야할 일을 현저하게 줄여주었다. 또한, 기계학습으로인해 이제 더 방대한 양의 데이터를 더 빠르고 정확하게 처리할 수 있으며, 또한 사람이 찾아내기 힘든 패턴이나 트랜드도 찾아낼 수 있다.

 
 
 

2. 기계학습의 종류에는 무엇이 있을까? 

기계학습의 종류에는 지도학습, 비지도학습, 강화학습 이렇게 세 종류가 있다. 지도학습은 기계를 학습시킬때 기계에게 학습용 데이터와 함께 답(레이블)을 제공해주는 것이며, 비지도학습은 기계를 학습시킬때 답 없이 학습용 데이터만 제공해 주는 것, 그리고 강화학습은 기계가 답을 맞출때 마다 보상을 해 주며 바른 학습을 가이드 해 주는 것이다. (그림: ‘학습 데이터 입력’ 과 ’학습’ 단계에서 이것들을 구분짓는 행위가 일어나는 것임을 표시해야함)

주의: 항상 정확하게 이 세가지 분류로 구분할 수 있는 것은 아니며, ‘준지도학습’ 처럼, 두개 이상의 개념에 걸쳐있는 학습 방법도 있다. 

지도학습이란?

 

 

 

 

지도학습이란 컴퓨터에 입력할 각 데이터에 미리 원하는 결과를 붙여놓고 기계가 그 예시들을 가지고 학습을 시켜서 하나의 룰을 만들어내게 하고, 새로운 데이터들이 들어왔을 때 그 룰을 적용해서 결과를 출력하게 만드는 기계학습의 한 방법이다 . 예를 들어, 기계에게 ‘바나나’라고 라벨이 붙은 바나나 사진과 ‘사과’라고 라벨이 붙은 사과 사진을 넣고 학습 시키면, 컴퓨터는 수 많은 바나나와 사과 사진을 맞춰보면서 ‘노란건 바나나구나’ 아니면 ‘빨간것은 사과구나’ 라고 스스로 깨달은 규칙을 통해 예측 모델을 만들어내게 한 뒤, 새로운 사과 또는 바나나 사진을 넣었을 때 그 사진이 바나나 사진인지 사과 사진인지 구분하게 되는 것이다. 지도학습의 대표적인 종류로는 분류와 회귀분석이 있다. 

분류는 답이 될 수 있는 옵션들이 학습때 주어진 답(레이블)들을 통해 정의 되어 있어서, 새로운 데이터가 들어왔을 때 그 옵션들 중 하나로 답을 내리게 된다. 데이터를 두개의 레이블을 가지고 분류하는 것을 이진분류 그리고 세개 이상의 레이블을 가지고 분류하는 것을 다중분류라고 한다. 이와 반대로 회귀분석은 주어진 답 (레이블)들 사이에 연속성이 존재하는 예측을 하는데, 이는 회귀분석은 예상 연간 소득이나 지출처럼 숫자를 예측할때 쓰이는 모델이기 때문이다. 

Quiz: 분류 vs 회귀분석

​과적합

지도학습의 목표는 학습용 데이터로 잘 훈련해서 학습용 데이터와 약간 다른 새로운 데이터가 입력되어도 정확한 예측값을 내놓는 것이다. 이렇게 정확하게 예측이 이뤄지는 경우에는 학습용 데이터에서 일반 데이터로 ‘일반화’ 되었다 라고 한다. 그러나, 기계가 주어진 학습 데이터를 과도하게 학습해서 학습 후 오히려 실제 데이터가 입력되었을 때는 오차를 증가시키는 ‘과적합’ 현상도 있다.  보통, 학습 데이터는 실제 데이터의 부분 집합 임으로, 일정한 부분 집합을 과하게 학습하게 되면 학습시에는 오차가 감소하지만 실제 데이터에 관해서는 오차가 증가하게 된다.

비지도학습이란?

 

 

 

비지도학습이란 컴퓨터에 학습용 데이터를 입력할 때 각 데이터에 미리 원하는 결과를 붙여놓지 않고 컴퓨터가 데이터 자체에서 유용한 패턴을 찾아 데이터를 분류하게 하는 방법이다. 즉, 컴퓨터에게 미리 답을 주지 않음으로써 컴퓨터가 데이터를 여러 방법으로 구조화 혹은 군집화 해 보면서 패턴이나 특이점을 찾아내는 것이다. ‘컴퓨터에게 줄 학습용 데이터를 어떻게 레이블링 할까’을 알아내기 위한 데이터 별 특징 추출을 위해 지도학습의 전처리 단계로 비지도 학습을 쓰기도 한다. 예를 들어, 동그란 자몽과 레몬을 한 분류로 묶고, 동그랗지만 색깔이 빨간 사과는 다른 분류로, 또 길쭉하게 생긴 바나나는 또 다른 분류로 나눌 것이다. 실제로 비지도 학습이 쓰이는 예시로는 음성 분리, 뉴스 분류 등이 있다. 비지도학습의 예시로는 군집분석 (서로 유사한 정도에 따라 데이터낄 그룹으로 묶는 작업) 그리고 많은 데이터에서 데이터 개체 간의 유의미한 관계를 찾는 연관 규칙 학습 등이 있다. 그리고 최근 몇년동안 급 부상한 주제인 GAN도 비지도학습의 한 종류라고 볼 수 있다. GAN의 경우, 사람의 얼굴 사진 데이터를 입력하면 Generative model이 그 데이터들과 아주 유사하면서도 실제로 존재하지 않는 사람들의 얼굴 이미지를 더 만들어 낼 수 있다. GAN에 대해서는 뒤에서 더 다룰 예정이다. 

강화학습이란?

f강화학습은 통계학 개념 아래에 있는 지도학습과 비지도학습과는 다르게 실제 기계에서 많이 쓰이는 기계학습 기법이다. 우선 기계가 관찰을 하고 그에 따른 행동을 하고 그 결과로 설정한 목표를 잘 이루었는지 이루지 못하였는지 피드백을 받는 개념이고, 기계는 여러 시도를 해보며 좋은 피드백을 받거나 받지 못함으로서 가장 효과적인 행동 패턴을 스스로 학습하게 된다. 흔한 예로는 여러 시도를 해서 좋은 결정이었는지 나쁜 결정이었는지를 계속해서 피드백을 받아가며 스스로 최적의 행동 패턴을 찾아내는 자율 주행 자동차가 있다. 구글 자동차가 칭찬받고 싶어서 얼마나 애쓰는건지..!

3. 그렇다면, 기계학습이 아닌 인공지능 기술은 무엇일까?

맨 처음 챕터에서 인공지능, 기계학습, 딥러닝의 의미와 범주를 배워보았고, 이제 기계학습을 배우고나니 한가지 궁금한 점이 생긴다. 그렇다면, 인공지능이지만 기계학습의 범주에 들지 않는 부분에는 무엇이 있을까?

저 영역에는 60년대에 개발을 시작하여 80년대에 꽃을 피웠던 전문가 시스템이 있다. 전문가 시스템이란, 전문가들의 지식을 논리적으로 풀어서 컴퓨터가 알아들을 수 있는 법칙으로 변환해서 컴퓨터가 특정 분야에서 전문가를 대신하여 판단을 내리도록 하는 시스템이다. 그러나, 전문가들의 판단 속에는 법칙으로 변환이 가능한 논리만 있는것이 아니라 직관처럼 풀어서 정리할 수 없는 부분이 있다는 점, 그리고 시간이 흐름에 따라 전문가들이 더 좋은 방법을 생각해낸다거나 했을 때 그것을 시스템에 반영하는 것이 매우 복잡하고 어려워서 점점 각광받지 못하게 되었다. 

이것은 기계학습과 어떤 차이가 있을까? 기계학습은 데이터로부터 모델을 만들어내게 하는 방법론인 반면에, 전문가 시스템의 경우 데이터 없이 사람이 직접 룰을 생각해내서 컴퓨터에 프로그래밍을 해줘야하는 개념이다. 즉, 기계학습은 사람이 컴퓨터에게 데이터를 제공하고 컴퓨터가 스스로 학습하여 룰을 찾아내도록 하는 반면, 전문가 시스템은 사람이 데이터와 룰까지 정해줘야 하는 방식이라는 큰 차이점이 있는 것이다. 

4. 개념 짚기

기계 학습에 대해 배우는데 있어 중요한 개념 몇가지를 짚고 넘어가자.

알고리즘

어떤 문제를 해결하기 위한 규칙들의 집합

프로그래밍

프로그램 작성 방법의 결정, 코딩(coding), 에러 수정 따위의 작업을 이르지만 특수하게 코딩만을 이를 때도 있다.

Quiz: 지도학습의 도식화

읽을거리 : 왜 머신러닝은 지금 뜰까?

지도학습이란 기계에 입력할 각 데이터에 미리 원하는 결과를 붙여놓고 기계가 그 예시들을 가지고 학습을 시켜서 하나의 룰을 만들어내게 하고, 새로운 데이터들이 들어왔을 때 그 룰을 적용해서 결과를 출력하게 만드는 기계학습의 한 방법이다 . 예를 들어, 기계에게 ‘바나나’라고 라벨이 붙은 바나나 사진과 ‘사과’라고 라벨이 붙은 사과 사진을 넣어서, 기계가 ‘노란건 바나나구나’ 아니면 ‘빨간것은 사과구나’ 라고 배워서 예측 모델을 만들어내게 한 뒤, 새로운 사과 또는 바나나 사진을 넣었을 때 그 사진이 바나나 사진인지 사과 사진인지 구분하게 되는 것이다.

 

당연히, 지도를 받았을 때 기계는 더 빨리 학습하며 그래서 실제로도 비지도학습보다는 더 많이 쓰이고 있다. 지도 학습의 하위 개념으로는 회귀분석과 분류가 있다.