본문 바로가기
파이썬 (Python)/딥러닝 (Deep Learning)

머신 러닝(Machine Learning) + 딥러닝(Deep Learning)의 개념과 이해 + 차이점

by ★√★ 2021. 2. 18.

안녕하세요, Davey 입니다. 오늘은 요즘 핫한, 머신 러닝(Machine Learning)에 대해서 간단하게 설명 드리도록 하겠습니다. 다른 말로는 기계학습이라고 합니다. 일단 머신 러닝(Machine Learning) 의미를 설명드리기 전에, 그 안에 바탕이 되는, 인공지능에 대한 내용부터 먼저 말씀 드리도록 하겠습니다. 

 

블로거 이미지 참조 [From https://davey.tistory.com/manage/newpost/?type=post&returnURL=%2Fmanage%2Fposts%2F]


1. 인공지능 기술이란?

 

: 인공 지능이라는 개념은 1956년 미국 다트머스 대학에 있던 존 매카시 교수가 개최한 다트머스 회의에서 처음 등장했으며, 최근 기술 발달과, 고차원적 구현을 원하는 사람들의 needs를 기반으로, 폭발적으로 성장하고 있습니다. 현재 우리나라도, 이 부분에 대해서 많은 돈과 시간을 투자하고 있는 상황입니다. 특히 2015년 이후 신속하고 강력한 병렬 처리 성능을 제공하는 GPU의 도입으로 더욱 가속화되고 있죠. 갈수록 폭발적으로 늘어나고 있는 저장 용량과 이미지, 텍스트, 매핑 데이터 등 모든 영역의 데이터가 범람하게 된 ‘빅데이터’ 시대의 도래도 이러한 성장세에 큰 영향을 미쳤습니다. 이러는 환경에서, 우리나라도, 코딩 교육의 의무화를 추진하고 있는 실정입니다. 즉, 프로그래밍에 대한 중요도가 계속 높아지고 있는 상황인거죠. 

 

2. 머신 러닝(Machine Learning) 이란?

 

말 그대로, 기계를 학습 시킨다는 의미입니다. 공부할 거리를 던져주고, 그것을 공부해서, 자기 스스로, 지식을 넒혀간다라고 생각하시면 됩니다. 여기에서 드는 의문이, 그럼 기계를 왜 학습시킬까 입니다. 사람이 할 수 있는(혹은 할 수 없는) 작업을 기계가 할 수 있도록 만들어서, 해당 작업을 아주 빠른 속도로 365일 24시간 내내 자동으로 수행하도록 하기 위함입니다. 어떻게 보면 특정 작업에 한해서는 사람보다 일을 훨씬 더 잘 하는 자그마한 AI를 탑재하는 과정으로 볼 수 있는데, 그러한 맥락에서 혹자들은 머신러닝을 약한 인공지능(weak AI)을 위한 기술이라고도 부릅니다.

 

 기계를 학습시켜 사람이 하는 일을 기계로 하여금 더 빨리, 더 오래 하도록 한다는 것은, 기업이나 국가의 입장에서 비용 절감을 위한 아주 매혹적인 대안이 아닐 수 없습니다. 수십 년 전까지만 하더라도 머신러닝을 통해 기계가 대체할 수 있는 일의 범위는 대단히 제한적이었는데, 21세기에 접어들면서 기술의 발전으로 인해 기계가 대체 가능한 영역이 점차적으로 확장되었고, 최근에 접어들어서는 ‘머신러닝을 통해 학습된 기계들이 인간의 일자리를 위협한다’는 말까지 돌아다닐 정도로 그 수준이 대단히 고도화되었습니다. (제일 빨리 사라질 직업군의 순위도, 이렇게 기술 개발로 인해, 정해지지 않았을까 합니다.) 이로 인해 오늘날 전 세계의 수많은 기업 및 기관 등에서 머신러닝 기술을 어떻게든 적용하여 비용 절감을 도모하려는 상황입니다.

 

 


3. 머신 러닝(Machine Learning) 과정

 

: 일단, 기계를 훈련 시킬 수 있는 많은 양의 데이터를 입력을 해보고, 그것을 공부하게 합니다. 즉, 1차적으로 해야 할 사항은 많은 양을 준비해야 되고, 그 많은 양의 데이터로, 기계를 훈련 시켜야 된다는 거죠. 예를 들어, "꽃" 이라는 사물에 대해서, 학습을 시킬 때, 특징을 한마리로 표현하려고 하면, 표현하기가 힘들다. 왜냐하면, 경우의 수가 너무나도 많기 때문입니다. 줄기가 있는것도 있고, 나무에서 바로 자라는 것도 있고 너무나도 다양합니다. 이럴 경우에, 기계를 훈련시키기 위해서는 보통 "이미지"를 이용합니다. 즉, 여러가지의 사진을 입력하여, 기계가 스스로 학습을 할 수 있게 합니다. 여기에서 랜덤한 이미지를 주고 {‘꽃’, ‘꽃X’} 중 하나의 표식을 붙여 그것의 정체를 나타내도록 하는데, 이를 ‘레이블(label)‘이라고 합니다. 다시 말해, 머신러닝(정확히는 지도 학습(supervised learning) 패러다임에서의 머신러닝)에서는 수많은 (예시, 레이블) 쌍의 집합이 한 덩어리의 데이터가 되어 기계로 전달됩니다. 머신러닝을 대표하는 식은 아래와 같습니다. 

 


Y = f (X)

Y : 출력변수 or 종속변수 or 반응변수

f : 알고리즘(머신러닝 구현 식)

X : 입력 변수 or 독립변수


위 식에서 눈치를 채셨겠지만, 머신러닝을 한다는 것은, X의 Input에 따라, 결과 Y 값을 가지는 f를 구현하는 것이다.

 

머신 러닝(Machine Learning)의 종류로는 크게 아래와 같습니다. 

 

- 지도학습 (supervised learning)

 

1) 대량의 정형화된 Data를 통해서 머신 러닝(Machine Learning) 을 시키는 경우

 

- 일단 대량의 정형화 된 Data를 준비를 해야 합니다. 예를 들어서, "나이" 와 "사는 도시" 라는 조건 값에, 결과 값을 " 30살 전에 직장을 들어가는 경우" 라는 결과 값을 얻고 싶으면, 그 결과 값을 얻을 수 있는 많은 경우의 수, 즉, 결과값을 뽑아 낼 수 있는 대량의 Data가 필요합니다. 그 데이터를 그래프화 시켜서, 그 경계선을 만들어주는 작업을 하는 것입니다. 

 

2) 대량의 이미지를 통해서, 머신 러닝(Machine Learning) 는 경우

 (이 경우도 마찬가지로, 이미지를 데이터화 하는 컨셉입니다. 즉 Data를 이용한다는 동일한 컨셉입니다.)

 

- 이미지의 경우, 다음과 같은 방법으로 먼저 데이터를 ‘수치화’시키는 과정을 거쳐야 합니다. 먼저, 주어진 이미지를 픽셀(pixel, 이미지 상에서의 하나의 점) 단위로 잘게 자릅니다. 그런 다음, 각 픽셀이 어떤 색상을 나타내는지를 RGB 가산혼합 방식으로 나타냅니다. 이미지의 특정 픽셀 위치를 ‘이미지 맨 위에서부터 YY번째, 맨 왼쪽에서부터 XX번째’ 식으로 생각하면 (X,Y) (X,Y)와 같이 좌표 형태로 나타낼 수 있습니다. 

 

- 하지만 한 이미지에 너무많은 데이터로 인해 학습이 불가능해지는 상황까지 갈 수 있으므로, 이원 데이터에서 ‘R의 평균’, ‘G의 평균’, ‘B의 평균’과 같이, 데이터를 설명하는 새로운 항목들을 정의하여 새로운 형태의 데이터를 생성함으로써 입력 변수의 개수를 감소시키는 작업을 합니다. 이 작업은, 머신러닝에서 필수적이라고 할 수 있는데, 이 때의 항목을 ‘요인(feature)이라고 부릅니다. 하지만, 이 부분은, 한가지의 평균값으로는 결과 값을 판단하기에 너무나도 턱없이 모자란 데이터의 양입니다. 즉, 어느정도의 데이터를 가지고 판단을 해야 된 다는 것입니다. 각 이미지의 특정 부분, 색깔의 변화 등의 요인을 분석하여, 결과 값을 도출 할 수 있는 알고리즘을 만들어 냅니다. 횡적/종적으로 스캔하여, 수치화하는 기법으로는 SIFT (Scale-invariant feature transform), HOG (Histogram of oriented gradients), Texton 이 있습니다.

 

- 비지도 학습 (unsupervised learning)

 

지도학습과 틀리게, 대량의 데이터를 판단할 수 있는 Label을 부여하지 않고, 여러가지 데이터를 분석하고, 나름대로, 기준으로, 군집(데이터의 그룹) or 유사한 데이터 그룹화를 통해, X 와 Y의 관계를 유추를 합니다. 

 

4. 머신 러닝(Machine Learning)과 딥러닝의 차이점

 

 1) 딥러닝 이란?

 

블로그 이미지 참조 [From https://m.blog.naver.com/samsjang/220908155111]

 

  : 2번 항목의 이미지 분석 시, 실제 이미지 인식 분야에서는 선형 모델 대신 인공신경망(artificial neural networks)과 같은 복잡성이 높은 러닝 모델을 사용합니다. 이렇게 복잡성이 높은 신경망(neural networks) 구조를 러닝 모델로 사용하는 머신러닝 패러다임을 ‘딥 러닝(deep learning)‘이라고 합니다.

 

 위에서 설명한, 인공 신경망(artificial neural network)에 영감을 준 것은 인간의 뇌가 지닌 생물학적 특성, 특히 뉴런의 연결 구조였습니다. 의학적으로 발전을 이뤄지지 않았다면, 이런 기술도 만들어지지 않았을까라는 생각을 하게 됩니다. 하지만, 이런 의학의 발달에도 불구하고, 물리적으로 근접한 어떤 뉴런이든 상호 연결이 가능한 뇌와는 달리, 인공 신경망은 레이어 연결 및 데이터 전파 방향이 일정합니다. 이미지로 예를 들면, 이미지를 수많은 타일로 잘라 신경망의 첫 번째 레이어에 입력하면, 그 뉴런들은 데이터를 다음 레이어로 전달하는 과정을 마지막 레이어에서 최종 출력이 생성될 때까지 반복합니다. 그리고 각 뉴런에는 수행하는 작업을 기준으로 입력의 정확도를 나타내는 가중치가 할당되며, 그 후 가중치를 모두 합산해 최종 출력이 결정됩니다.

 

 

2) 머신 러닝(Machine Learning)과 딥러닝의 차이점

 

 

 : 머신 러닝(Machine Learning)은 기계를 학습 시킨다라는 Definition을 가지고 있고, 그 방법이 과거에는 선형적으로만 구별하는 것이였습니다. 하지만, 요즘에는 더 복잡한 데이터를 분석해야 한다라는 요구사항으로 인해, 더 다양하고, 여러가지의 경우의 수를 가지고 분석을 해야 하는 상황이 되었습니다. 이런 상황에서, 위에서 애기한 것처럼, 선형모델 대신, 인공신경망(artificial neural networks)과 같은 복잡성이 높은 러닝 모델를 사용하고 있습니다. 즉, 차이점은, 얼마나 경우의 수를 많이, 자세히 분석하는 정도가 머신 러닝(Machine Learning)과 딥러닝의 가장 큰 차이점입니다.


이상입니다. 머신 러닝(Machine Learning) 단어는 정말 많이 들어봤는데, 이렇게 글로 이해를 하려고 하니까, 좀 힘들지 않나요?! 그냥 입력하면, 출력이 나오는거 아니야?! 라고 애기하는 사람들도 많이 있었습니다. 모든 사람이 그렇게 애기할 수도 있을 거 같아요. 하지만, 많은 입력이 있어야, 수준 높은 출력이 나옵니다. 즉, 공부를 많이 해야, 수능 시험도 잘 나오듯이, 기계도, 인간과 똑같이 학습하고, 학습 많이 한 기계가, 학습 적게 한 기계보다, 더 뛰어나다는 거죠. 위의 내용이 잘 이해가 안되신다면, 머신러닝을 위해서는 데이터와 러닝 모델이 필요하다는 것만 알아가시면 될 거 같습니다. 제 나름대로는 최대한 자세히 쉽게 말씀드렸다고 드렸지만, 부족한 면이 있을 거라고 생각합니다. 부족한 면은 서로 보완해 나가면서, 같이 성장하시죠!

 

제 Posting이 조금이나마 정보 전달에 도움이 되셨길 빌며, 되셨다면, 구독, 댓글, 공감 3종 세트 부탁 드립니다. 감사합니다. 

 

[참조 : http://research.sualab.com/introduction/2017/09/04/what-is-machine-learning.html]


[저작권이나, 권리를 침해한 사항이 있으면 언제든지 Comment 부탁 드립니다. 검토 후 수정 및 삭제 조치 하도록 하겠습니다. 그리고, 기재되는 내용은 개인적으로 습득한 내용이므로, 혹 오류가 발생할 수 있을 가능성이 있으므로, 기재된 내용은 참조용으로만 봐주시길 바랍니다. 게시물에, 오류가 있을때도, Comment 달아 주시면, 검증 결과를 통해, 수정하도록 하겠습니다.]

 

728x90

댓글


// 내부링크를 현재창으로 열기 // Open internal links in same tab