관리 메뉴

나만을 위한 블로그

머신러닝 vs 딥러닝 본문

개인 공부/AI, ML, DL

머신러닝 vs 딥러닝

참깨빵위에참깨빵 2021. 3. 1. 23:07
728x90
반응형

이전에 인공지능을 주제로 포스팅을 썼었는데, 인공지능과 연관지어서 가장 자주 보이는 키워드를 뽑으라면 머신러닝, 딥러닝을 뽑고 싶다.

이 둘은 인공지능이 보이는 곳이라면 둘 중 하나는 꼭 있을 정도로 정말 자주 보인다.

인공지능과 머신러닝, 딥러닝은 무슨 관계길래 짝꿍마냥 같이 나올까?

 

먼저 사전에서 머신러닝(Machine Learning)과 딥러닝(Deep Learning)을 구성하는 단어들인 머신, 딥, 러닝의 뜻이 뭔지 찾아봤다.

Machine : 기계 / Learning : 학습
Deep : (위에서 아래까지가) 깊은

저 뜻대로라면 머신러닝은 기계학습, 딥러닝은 깊은 학습정도로 해석해볼 수 있겠다.

그러나 기계학습과 깊은 학습만 놓고 본다면 무슨 말인지 감도 안 온다.

상상해보자면 기계학습은 기계한테 학습을 시키는 것 같고, 딥러닝은 기계한테 뭔가에 대해서 깊이 있게 학습시키는 것 같다.

그리고 머신러닝, 딥러닝 각각의 사전적 정의를 확인해봤다.

Machine Learning : 인공지능을 적용하여 명확한 프로그래밍 없이도 자동적으로 시스템이 경험을 통해 배우고 개선할 수 있는 능력을 갖도록 하는 것

Deep Learning : 컴퓨터가 사람처럼 생각하고 배울 수 있도록 하는 AI 기술. 딥러닝은 인간의 뇌가 수많은 데이터 속에서 패턴을 발견한 뒤 사물을 구분하는 정보끼리 방식을 모방해 컴퓨터가 사물을 분별하도록 기계를 학습시킨다

머신러닝은 따로 코딩해서 컴퓨터에게 명령하지 않아도 컴퓨터가 알아서 공부할 수 있도록 하는 것을 말하는 것 같고, 딥러닝은 어떤 자료들을 컴퓨터에게 줘서 학습시킨 뒤 제시되는 사물을 구별할 수 있도록 하는 걸 말하는 듯하다. 그리고 딥러닝에선 '패턴'이라는 키워드가 중요한 듯하다.

이제 내 유추가 맞는지 위키피디아를 통해서 확인해봤다. 아래는 머신러닝에 대한 위키백과 내용이다.

기계학습 또는 머신러닝은 경험을 통해 자동으로 개선하는 컴퓨터 알고리즘의 연구다. 인공지능의 한 분야로 간주된다. 컴퓨터가 학습할 수 있도록 알고리즘과 기술을 개발하는 분야다. 기계학습 알고리즘은 명시적으로 프로그래밍하지 않고 예측이나 결정을 내리기 위해 "학습 데이터"라고 하는 샘플 데이터를 기반으로 모델을 구축한다. 기계 학습 알고리즘은 필요한 작업을 수행하기 위해 기존 알고리즘을 개발하는 것이 어렵거나 불가능한 이메일 필터링 및 컴퓨터 비전과 같은 다양한 애플리케이션에서 사용된다

이번엔 알고리즘이라고 한다. 정확히는 컴퓨터가 뭔가를 학습할 수 있는 알고리즘과 기술을 개발하는 분야를 말하는 듯하다. 그리고 컴퓨터가 결정을 내리는 데는 학습 데이터를 기반으로 구축된 모델이 필요한 듯하다.

모델은 또 뭘까? 학습 데이터는 정확히 뭘 말하는 건가? 모르는 게 계속 생겨난다. 모델부터 확인해보자. 머신러닝에서 말하는 모델이란 뭘까? 다른 포스팅들을 살펴보고 모델이란 무엇인지 정리해봤다.

 

docs.microsoft.com/ko-kr/windows/ai/windows-ml/what-is-a-machine-learning-model

 

기계 학습 모델이란?

Windows Machine Learning의 컨텍스트에 있는 모델에 대해 알아봅니다.

docs.microsoft.com

기계 학습 모델은 특정 유형의 패턴을 인식하도록 학습된 파일입니다. 데이터 세트에 대해 모델을 학습하여 해당 데이터를 추론하고 학습하는 데 사용할 수 있는 알고리즘을 제공합니다. 모델을 학습한 후에는 이를 사용하여 이전에 표시되지 않은 데이터를 추론하고 해당 데이터에 대한 예측을 만들 수 있습니다. 예를 들어 얼굴 식에 따라 사용자의 감정을 인식할 수 있는 애플리케이션을 빌드하려는 경우를 가정해 보겠습니다. 특정 감정으로 각각 태그가 지정된 얼굴 이미지를 제공하여 모델을 학습한 다음, 사용자의 감정을 인식할 수 있는 애플리케이션에서 해당 모델을 사용할 수 있습니다.

docs.paperspace.com/machine-learning/wiki/machine-learning-models-explained

 

Machine Learning Models Explained

 

docs.paperspace.com

모델은 기계학습 시스템이 학습한 내용을 정제한(distilled) 표현이다. 기계학습 모델은 수학적 함수와 유사하다.
입력 데이터의 형태로 요청을 받고, 해당 입력 데이터에 대한 예측을 수행한 다음 응답을 제공한다. 지도 및 비지도 기계학습에서 모델은 노이즈의 신호 또는 학습 데이터에서 감지된 패턴을 설명한다. 강화 학습에서 모델은 특정 상황에서 가능한 최선의 행동 과정을 설명한다. 학습 가능한 매개 변수의 최종 세트 (모델에 포함 된 정보)는 특정 유형의 모델에 따라 다르다. 심층 신경망에서 모델은 훈련 된 네트워크 가중치의 최종 상태이며 회귀에서는 계수를 포함하며 결정한다

machinelearningmastery.com/difference-between-algorithm-and-model-in-machine-learning/

 

Difference Between Algorithm and Model in Machine Learning

Machine learning involves the use of machine learning algorithms and models. For beginners, this is very confusing as often “machine learning algorithm” is used interchangeably with “machine learning model.” Are they the same thing or something dif

machinelearningmastery.com

기계학습의 모델은 데이터에서 실행되는 기계학습 알고리즘의 출력이다. 모델은 기계학습 알고리즘에 의해 학습된 내용을 나타낸다. 모델은 학습 데이터에서 기계학습 알고리즘을 실행한 후 저장되는 "사물(thing)"이며 예측을 수행하는 데 필요한 규칙, 숫자 및 기타 알고리즘 별 데이터 구조를 나타낸다

다음의 예시를 통해 모델을 정확하게 알 수 있다
- 선형 회귀 알고리즘 : 특정 값을 가진 계수 벡터로 구성된 모델을 생성한다
- 의사결정 트리 알고리즘 : 특정 값이 있는 if-then 문의 트리로 구성된 모델을 생성한다
- 신경망(Neural Network) / 역전파 / 경사 하강법 알고리즘 : 함께 특정 값을 가진 벡터 또는 가중치 행렬이 있는 그래프 구조로 구성된 모델을 생성한다

가장 좋은 비유는 기계학습 모델을 "프로그램"으로 생각하는 것이다. 기계학습 모델 "프로그램"은 데이터와 데이터를 사용하여 예측하는 절차로 구성된다.
선형 회귀 알고리즘과 결과 모델을 생각해보라. 모델은 예측(예측 절차)을 수행하기 위해 입력으로 사용된 새로운 데이터 행(row)과 곱하고 합산되는 계수(데이터)의 벡터로 구성된다. 나중에 쓸 수 있도록 기계학습 모델에 대한 데이터를 저장한다. 우린 종종 기계학습 라이브러리에서 제공하는 기계 학습 모델에 대한 예측 절차를 사용한다...(중략)

docs.aws.amazon.com/machine-learning/latest/dg/training-ml-models.html

 

Training ML Models - Amazon Machine Learning

Training ML Models The process of training an ML model involves providing an ML algorithm (that is, the learning algorithm) with training data to learn from. The term ML model refers to the model artifact that is created by the training process. The traini

docs.aws.amazon.com

학습 알고리즘은 입력 데이터 속성을 대상 (예측하려는 답변)에 매핑하는 학습 데이터에서 패턴을 찾고 이러한 패턴을 캡처하는 ML 모델을 출력한다. ML 모델을 사용하여 목표를 모르는 새 데이터에 대한 예측을 얻을 수 있다.

 

위 글들에서 말하는 모델에 대해 정리하면 아래와 같다.

  • 모델은 어떤 패턴을 인식해서 학습할 수 있는 파일 또는 프로그램이다.
  • 모델을 학습한 컴퓨터는 이 지식을 사용해서 새로운 데이터에 대한 예측을 만들어낼 수 있다
  • 모델은 입력 데이터 형태로 요청을 받고, 응답으로 해당 입력 데이터를 예측한 내용을 내보낸다

이 글들을 보고 난 모델이란 입력된 데이터들의 패턴을 학습한 다음 다른 데이터가 들어오면 학습한 내용대로 '이 데이터는 어떤 거야' 라는 응답을 돌려주는 파일이라고 정리했다.

 

본론으로 돌아가서, 이 모델의 정의를 통해 머신러닝이 무엇이냐고 묻는다면 사람이 프로그래밍하지 않고도 컴퓨터가 예측하고 결정을 내리기 위해, 모델을 사용해서 컴퓨터를 어떤 패턴에 대해 학습시켜서 나름의 결과를 도출하도록 하는 분야라고 할 수 있을 것 같다.

 

 

그럼 딥러닝은 뭘까? 역시 위키백과부터 찾아봤다.

딥 러닝(심층 구조화 된 학습이라고도 함)은 표현 학습이 포함된 인공 신경망을 기반으로 하는 광범위한 기계 학습 방법 제품군의 일부다. 학습은 감독, 반 감독(semi-supervised) 또는 감독되지 않을 수 있다. 딥 러닝의 형용사 "딥"은 네트워크에서 여러 계층을 사용하는 것을 의미한다...(중략)...딥러닝은 여러 계층을 사용하여 원시 입력에서 더 높은 수준의 특징을 점진적으로 추출하는 일종의 기계 학습 알고리즘이다.

딥러닝은 기계학습의 일부, 즉 머신러닝이 딥러닝보다 더 포괄적인 개념이란 것이다. 머신러닝과 딥러닝의 구조가 대충 그려지는 듯하다. 모 사이트에선 인공지능, 기계학습, 딥러닝을 마트료시카에 비유했는데 내 생각도 이와 비슷하다.

출처 : https://www.ibm.com/cloud/blog/ai-vs-machine-learning-vs-deep-learning-vs-neural-networks

그런데 인공 신경망은 또 뭔가? 계층은 또 뭔가? 이걸 알아야 딥러닝이 뭔지 느낌이라도 알 것 같다.

 

인공은 일단 사람이 만든 것이라는 뜻이다. 그럼 신경망은 뭘까?

신경망 : 정보망을 비유적으로 이르는 말
정보망 : 정보를 수집하고 전달하기 위하여 그물처럼 편 조직
전달 : 자극, 신호, 동력 따위가 다른 기관에 전하여짐 / 지시, 명령, 물품 따위를 다른 사람이나 기관에 전하여 이르게 
신경망 또는 뉴럴 네트워크(Neural Network)는 신경회로 또는 신경의 망으로 현대적 의미에선 인공 뉴런이나 노드로 구성된 인공 신경망을 의미한다. 그러므로 신경망은 실제 생물학적 뉴런으로 구성된 생물학적 신경망이거나 인공지능(AI) 문제를 해결하기 위한 인공 신경망으로 구분할 수 있다

사전에선 신경망을 정보를 모으고 다른 곳에 전하기 위한 그물같은 조직이라고 말하고 있다. 그럼 인공 신경망이란 뭘까?

일반적으로 간단히 신경망(NN)이라고하는 인공 신경망(ANN)은 동물의 뇌를 구성하는 생물학적 신경망에서 영감을 받은 컴퓨팅 시스템이다. ANN은 생물학적 뇌의 뉴런을 느슨하게 모델링하는 인공 뉴런이라고 하는 연결된 단위 또는 노드 모음을 기반으로 한다. 생물학적 뇌의 시냅스처럼 각 연결은 다른 뉴런에 신호를 전송할 수 있다. 신호를 수신한 인공 뉴런은 신호를 처리하고 연결된 뉴런에 신호를 보낼 수 있다. 뉴런과 모서리는 일반적으로 학습이 진행됨에 따라 조정되는 가중치를 갖는다. 가중치는 연결 시 신호의 강도를 높이거나 낮춘다...(중략)

아무래도 생물학 분야에서 쓰이는 용어다보니 생물학에서 볼법한 단어들이 나온다.

짐작할 수 있는 건 인공 신경망이 사람의 뇌와 같은 원리로 작동하지 않을까 하는 것이다.

신경망에 대한 위키백과의 설명에선 뉴런이라는 말이 나온다. 뉴럴과 비슷한 단어기도 하니까 한번 찾아봤다.

kbrain.co.kr/board_FXki69/890

 

뉴런(Neuron)이란? - 아동 뇌 발달 분야 - 한국뇌발달연구소

뉴런이란 무엇인가? 뉴런은 전기적 및 화학적 신호를 통해 정보를 처리하고 전송하는 전기적으로 흥분시키는 세포입니다. 뉴런 사이의 신호는 다른 세포와의 특별하게 연결된 시냅스에서 발생

kbrain.co.kr

뉴런은 전기적 및 화학적 신호를 통해 정보를 처리하고 전송하는 전기적으로 흥분시키는 세포입니다. 뉴런 사이의 신호는 다른 세포와의 특별하게 연결된 시냅스에서 발생합니다. 뉴런은 신경망을 형성 할 수 있도록 서로 연결할 수 있습니다. 모든 것은 뉴런에서 시작됩니다.

뉴런은 신경망을 구성하는 요소고 정보를 처리, 전송하는 정도의 역할을 하는 것 같다. 인공 신경망에서의 뉴런과 역할이 같기도 하다.

여기까지 정리하면, 인공 신경망은 결국 여러 인공 뉴런이 연결된 시스템이다. 이제 딥러닝에서 계층이란 무엇인지 알아보자.

 

그 전에 위로 조금 올려보면 이런 말이 있다.

딥러닝은 여러 계층을 사용하여 원시 입력에서 더 높은 수준의 특징을 점진적으로 추출하는 일종의 기계 학습 알고리즘이다.

여러 계층을 써서 특징을 추출한다고 한다. 그럼 계층은 일종의 필터 역할을 하는 건가?

스택오버플로우에서 이런 답변을 발견했다.

stackoverflow.com/questions/35345191/what-is-a-layer-in-a-neural-network

 

what is a 'layer' in a neural network

Below I've drawn a typical feed forward neural network: Now my question is, as far as lingo goes, what is a layer? Could each individual process (rectangle) be considered a layer? or is a layer the

stackoverflow.com

계층(layer)은 신경망 내의 특정 깊이에서 함께 작동하는 '노드'모음에 적용되는 일반적인 용어다. 

모델에 입력값을 넣으면 input layer로 이동하는 듯하고 여기서 여러 경우의 수를 거쳐 히든 레이어 1, 2로 각각 이동된 뒤 출력값(예측 결과)을 output layer로 보내는 것 같다. 

이 답변 아래에 다른 답변이 달려있어서 확인해봤다.

신경망의 핵심 빌딩 블록은 데이터 필터로 생각할 수 있는 데이터 처리 모듈인 계층이다. 일부 데이터는 들어오고 더 유용한 형태로 나온다. 특히 레이어는 입력된 데이터에서 표현, 즉 당면한 문제에 대해 더 의미있는 표현을 추출한다...(중략)...딥 러닝 모델은 데이터 처리를 위한 체와 같으며 점점 더 정제된 데이터 필터(계층)로 구성된다.

계층을 데이터의 필터라고 한다. 더 의미있는 결과를 뽑기 위해 계층을 사용하는 것 같다. 그럼 어느 정도 수가 적당히 있는 편이 좋을 듯하다.

 

 

이제 딥러닝이 무엇인지 정리해보자. 위에서 딥러닝은 표현 학습이 포함된 인공 신경망을 기반으로 하는 광범위한 기계 학습 방법 제품군의 일부라고 했었다.

그럼 어떤 것의 표현(패턴)을 학습하는 인공 신경망과 하나 이상의 계층을 사용해서, 사용자가 데이터를 넣으면 학습한 대로 분석해서 결과값을 뽑아내는 분야를 딥러닝이라고 말할 수 있지 않을까? 다듬지 않은 생각이지만 내가 찾아보고 느낀 머신러닝과 딥러닝이란 이런 것 같다.

 

 

결론)

  • 머신러닝이란 사람이 프로그래밍하지 않고도 컴퓨터가 예측, 결정하도록 만들기 위해 모델을 사용해서 어떤 패턴에 학습시켜 나름의 결과를 도출하도록 하는 분야를 말한다.
  • 모델이란 입력된 데이터들의 패턴을 학습한 다음, 다른 데이터가 들어오면 학습한 내용대로 이 데이터는 어떤 것이라는 응답을 돌려주는 파일이다
  • 딥러닝이란 어떤 것의 패턴을 학습하는 인공 신경망과 하나 이상의 계층을 사용해서, 받은 데이터를 분석해서 결과값을 뽑아내는 분야다.
반응형
Comments