딥러닝? 머신러닝? 차이가 뭐예요?
딥러닝? 머신러닝? 차이가 뭐예요?
  • 이웃집편집장
  • 승인 2017.08.25 23:31
  • 조회수 4409
  • 댓글 0
이 기사를 공유합니다

개요

 

머신러닝(Machine learning)과 딥러닝(Deep learning)은 화두다! 

 

언제부터인지 주위에 이 단어들을 쓰는 사람들을 굉장히 많이 보았을 것이고 들어봤을 것입니다. (그들의 차이점을 알건 모르건을 떠나서 말이죠!) 얼마나 많은 사람들이 관심을 가지고 있는지 알기 위해서, 키워드로 검색한 구글 트렌드 결과입니다.

 

만약 머신러닝과 딥러닝의 차이점이 궁금하다면, 비전문가의 말로 풀어쓴 이 글이 도움이 될 것입니다. 전문 용어들을 설명하였고, 두 가지의 차이점과 어떻게 활용할 수 있을지 설명하였습니다.

 

 

"머신러닝(Machine Learning)과 딥러닝(Deep Learning)이 무엇일까요?"

 

"머신러닝(Machine Learning)이 무엇일까요?"

 

"딥러닝(Deep Learning)이 무엇일까요?"

 

 

 

1. 머신러닝(Machine Learning)과 딥러닝(Deep Learning)이 무엇일까요?

 

기초부터 시작해보겠습니다. 만일 머신러닝과 딥러닝의 차이점을 이미 알고 계신다면 section 2로 넘어가시면 됩니다.

 

1.1 머신러닝(Machine Learning)이 무엇일까요?

 

Tom Mitchell의 정의가 가장 많이 인용되고 있는데 저 또한 동의합니다.

 

A computer program is said to learn from experience E with respect to some class of tasks T and performance measure P if its performance at tasks in T, as measured by P, improves with experience E.

 

이해가 잘 안 되시나요? 더 간단한 예제로 가보겠습니다.

 

예제 1 - Machine Learning - 키(height)를 기반으로 몸무게(weight) 예측하기

예를 들어서 당신이 어떤 사람의 키를 기반으로 몸무게를 예측하는 시스템을 만든다고 해봅시다. 가장 첫 번째로 당신이 해야 할 일은 데이터를 수집(collect)하는 것입니다. 데이터가 이런 형태를 보인다고 가정해봅시다.

 

그래프의 각 점은 하나의 데이터(record)를 뜻합니다. 시작하기에 앞서 우리는 키를 기반으로 하여 몸무게를 예측하기 위해 선 하나를 그어볼 수 있겠습니다. 선은 이런 수식으로 표현될 수 있을 것입니다.

 

몸무게 (kg) = 키 (cm) - 100

 

이 공식은 우리의 예측에 도움을 줄 겁니다. 지금 이 공식만으로도 만족스럽긴 하지만 우리는 '성능'을 이해하고 향상하기 위해 노력해야겠죠. 이 경우, 우리는 성능 향상을 위해 실제값(y)과 예측값(y-hat)의 차이를 줄여야 합니다. 이것이 성능을 측정하는 방법입니다.

 

더 나아가, 데이터가 많을수록(즉, 경험이 많을수록), 더 나은 성능의 모형이 만들어질 것입니다. 또한 추가 변수(variables)를 넣어보면서(ex. 성별 등) 선의 위치도 조금씩 변화시켜 볼 수 있을 겁니다.

 

예제 2 - 폭풍 예측 시스템(Storm prediction System)

조금 복잡한 예제를 보겠습니다. 당신이 폭풍 예측 시스템을 만들고 싶다고 가정해봅시다. 당신은 과거에 있었던 storm에 관한 정보들과 이와 더불어 그 storm이 발생하기 3개월전 날씨 상태를 데이터로 보유하고 있습니다.

 

만일 손과 눈으로만 이 폭풍 예측 시스템을 만들려고 한다면 우리는 어떻게 해야할까요?

 

가장 먼저 해야 할 일은 모든 데이터를 샅샅이 뒤져 패턴을 찾는 것입니다. 목표는 어떤 조건이 폭풍을 일으키냐겠지요?

 

그 결과 조건은 이러할 수 있습니다. '기온이 40도 이상으로 올라갈 때, 습도는 80~100사이를 유지함'

 

그리고 이 조건을 그대로 우리 시스템에 적용할 것입니다.

 

또 다른 경우는 폭풍이 발생할지 안 할지에 대해서 과거 데이터를 모두 훑어보고 폭풍이 일어날 가능성이 가장 높은 사유들을 꼽아볼 것입니다. 이렇게 시스템이 셋팅이 된다면 우리의 사유가 얼마나 잘 예측했는지 폭풍 발생 여부에 따라 확인할 것입니다. 그리고 이 작업을 반복적으로 진행하여, 더 나은 예측 성능을 위해 수정할 부분은 수정할 겁니다.

 

다시 우리가 이해하였던 1.1에서의 머신러닝 정의를 빗대어 생각해봅시다.

 

우리의 목표 'T'는 어떤 환경적 조건이 폭풍을 일으키는지 찾는 것이었고, 성능 'P'는 그러한 조건 속에서 폭풍 발생 여부에 대한 예측을 몇 번이나 맞추었는지에 대한 결과입니다. 그리고 경험 'E'는 그 시스템을 몇 번 반복을 하느냐 입니다.

 

1.2 딥러닝(Deep Learning)이 무엇일까요?

 

딥러닝의 개념은 아주 새로운 것은 아닙니다. 2년 전부터 이 이야기가 돌긴 하였지만 요새의 트렌드 때문에 딥러닝은 더욱 뜨거운 관심을 받고 있습니다. 1.1에서 머신러닝의 정의를 살펴본 것처럼 딥러닝의 formal definition부터 알아보고 예제를 보여드리겠습니다.

 

Deep learning is a particular kind of machine learning that achieves great power and flexibility by learning to represent the world as nested hierarchy of concepts, with each concept defined in relation to simpler concepts, and more abstract representations computed in terms of less abstract ones.

 

헷갈리실 것이에요. 간단한 예제를 살펴보겠습니다.

 

예제 1 - 도형 구분

개념상 어떻게 진행되는지 간단한 예를 살펴보겠습니다. 어떻게 인간이 정사각형과 다른 도형을 인지하는지 알아봅시다.

 

가장 먼저 우리의 눈은 도형에 4개의 선들이 있는지 없는지를 확인합니다. (이 단계가 simple concept입니다.) 우리가 4개의 선을 찾는다면, 그 다음 스텝으로는 이 선들이 연결돼 있는지, 닫혀있는지(closed), 직각인지, 선의 길이가 동일한지 찾아볼 것입니다. (이 단계가 nested hierarchy of concepts입니다.) 

 

다시 정리해보면, 우리는 복잡한 task(즉 정사각형을 구분하는 일)를 좀 덜 추상적인 task로 구분하였습니다. 딥러닝이 바로 이러한 개념으로 실행된다고 보면 됩니다.

 

예제 2 – Cat vs. Dog

사진을 보고 개인지 고양이인지 구분하는 것을 예로 들어봅시다.

 

만일 이 문제를 머신러닝으로 풀으려 한다면, 우리는 변수들(features)를 이렇게 정의할 것입니다.

 

 

*참고. 머신러닝, 딥러닝에서는 input 변수를 feature라고 부릅니다. 저는 variable이라는 표현이 더 익숙했던 건지 새롭게 와닿았습니다. 양쪽다 맞는 표현이지만 feature라는 표현이 좀 더 머신러닝/딥러닝의 개념과 유사하게 느껴집니다.

 

 

 

동물이 수염이 있는지 없는지,귀가 있는지 없는지, 만일 있다면 솟아있는지 등을 확인할 것입니다. 

 

정리하자면 우리는 시스템으로 feature 중 무엇이 특정 동물(이번 예제의 경우 개인지 고양이인지)을 더 잘 묘사하는지를 구분할 것입니다.

 

 

딥러닝에서는 여기서 한 스텝 더 나아갑니다. 딥러닝은 분류에 있어 중요한 feature를 자동적으로 골라냅니다. 머신러닝은 수동적으로 중요한 feature를 제공하는 반면에요.

 

 

 

딥러닝은 이렇게 움직이는 것입니다. – 어떤 정보(edge)가 개와 고양이를 가장 잘 구분할지를 찾는 것입니다.

 

다음 기사 보기 : 딥러닝과 머신러닝 "이래서 다르구나"

 

<외부 기고 콘텐츠는 이웃집과학자 공식 입장과 다를 수 있습니다>

 

월급쟁이(hwpark0502@gmail.com)

늘 재밌게 살고싶은 월급쟁이의 데이터 이야기

원문 출처 : https://brunch.co.kr/@itschloe1/8


댓글삭제
삭제한 댓글은 다시 복구할 수 없습니다.
그래도 삭제하시겠습니까?
댓글 0
댓글쓰기
계정을 선택하시면 로그인·계정인증을 통해
댓글을 남기실 수 있습니다.

  • 충청남도 보령시 큰오랏3길
  • 법인명 : 이웃집과학자 주식회사
  • 제호 : 이웃집과학자
  • 청소년보호책임자 : 정병진
  • 등록번호 : 보령 바 00002
  • 등록일 : 2016-02-12
  • 발행일 : 2016-02-12
  • 발행인 : 김정환
  • 편집인 : 정병진
  • 이웃집과학자 모든 콘텐츠(영상,기사, 사진)는 저작권법의 보호를 받은바, 무단 전재와 복사, 배포 등을 금합니다.
  • Copyright © 2016-2019 이웃집과학자. All rights reserved. mail to contact@scientist.town
ND소프트