오늘 나는 (TIL)

[TIL 240812] 머신러닝과 딥러닝의 간략한 차이

thebuck104 2024. 8. 13. 22:20

오늘은 다음 아티클에 관한 스터디를 했다.

머신러닝 딥러닝 차이점 5가지 - 크몽 (kmong.com)

 

머신러닝 딥러닝 차이점 5가지 - 크몽

머신러닝과 딥러닝, 비슷한듯 다른 이 두 기술의 차이점은 무엇일까요? 머신러닝 모델과 딥러닝 모델 등을 자세히 알아봅시다.

kmong.com


머신러닝과 딥러닝의 차이점

 

머신러닝이란

컴퓨터 프로그램이 데이터를 학습하고 이를 활용해 작업을 수행하는 인공지능의 한 분야

1.     예측 및 분류

2.     패턴인식

3.     자동화 및 최적화

4.     의사 결정 지원

5.     자연어 처리

 

딥러닝이란

인공 신경망을 사용해 인공지능을 만드는 머신러닝의 한 분야

1.     표현 학습

2.     자동화된 특징 추출

3.     이미지 및 비디오 처리

4.     패턴인식

5.     연구 및 과학

 

둘의 차이점

1.     구조와 복잡성

 

-       머신러닝: 다양한 알고리즘을 포함하며, 선형회귀나 결정트리 같은 비교적 단순한 모델을 사용함. 모델이 비교적 얕지만 데이터가 적어도 잘 작동함.

-       딥러닝: 다층 인공신경망을 사용해 복잡한 구조를 가짐. 매우 깊은 네트워크 구조를 통해 복잡한 패턴을 학습함

 

2.     데이터 요구량

 

-       머신러닝: 적응 양의 데이터로도 효과적으로 작동하며, 데이터 전처리와 특징 추출이 중요한 역할을 함

-       딥러닝: 대량의 데이터가 필요하며, 많은 데이터를 통해 더 정확한 예측과 성능을 얻을 수 있음.

 

3.     하드웨어 자원

 

-       머신러닝: 상대적으로 한정된 하드웨어 자원으로도 수행할 수 있으며, 일반적인 cpu에서도 작동한다.

-       딥러닝: 많은 하드웨어 자원이 필요하며, gpu tpu같은 고성능 하드웨어가 요구됨

-       이 부분에서는 최근들어 NPU가 소개되기도 했다.

https://blog.qnap.com/ko/cpu-gpu-npu-tpu-%EA%B7%B8%EA%B2%83%EB%93%A4%EC%9D%80-%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B0%80/

 

CPU, GPU, NPU, TPU: 그것들은 무엇인가?

사실, GPU, NPU, TPU는 모두 특수 프로세서이지만, 다른 작업을 위해 설계되었습니다. 특수 프로세서로서, 그들은 CPU의 작업 을 어느 정도 줄일 수 있으며, CPU의 자원을 다른 계산 작업에 사용할 수

blog.qnap.com

 

4.     자동 데이터 추출

 

-       머신러닝: 데이터에서 의미 있는 특징을 직접 추출해야 한다.

-       딥러닝: 자동으로 데이터 특징을 추출한다. 로우 데이터를 입력으로 받아 중요한 특징을 계층적으로 학습한다.

 

5.     성능과 유연성

 

-       머신러닝: 특정 문제에 맞는 알고리즘을 선택해야 한다. 다양한 데이터 유형과 문제에 적합한 모델을 사용할 수 있다.

-       딥러닝: 이미지, 음성, 텍스트와 같은 비정형 데이터에서 뛰어난 성능을 발휘한다. 문제의 복잡성과 데이터 양이 증가할수록 더 나은 성능을 보인다.

 

 

다층 신경망이란?

먼저 우리의 뉴런은 다음과 같은 형태를 하고 있다.

 

뉴런, 즉 뇌세포들은 위와 같은 형태를 가지고 있고, 머리부분에서 전기신호를 받아 꼬리 부분으로 이를 빠르게 전달한다.

 

 

세포 표면에서 발생하는 전기신호를 신속하고, 에너지낭비가 최소화되게끔 전달하는 구조를 가진 뉴런, 즉 뇌세포들은 여러 세포가 이어져 있는 다발의 형태로 뇌와 척추가 이루는 중추신경계, CNS와 이로부터 말단으로 퍼져 나가는 말초신경계 PNS를 통해 우리 몸 전체에 퍼져 있다.

 

 

이런 신경다발은 굉장히 복잡하게 이루어져 있으며, 뇌에서만 11차원의 형태를 띄고 있다는 주장도 있다.

 

 

이런 뉴런들의 전기신호 전달 메커니즘을 토대로 만들어진 것이 Artificial Neural Network, ANN, 즉 인공신경망이다.

 

 

나아가 다층신경망, Deep Neural Network, DNN ANN의 확장된 형태로 여러 개의 Hidden Layer를 가지는 모델이다. Hidden Layer는 수많은 Node, 즉 뉴런들로 되어 있는 것인데, 이 노드들을 통해 입력 데이터를 처리하고 전달하면서 더 복잡한 것들을 학습하게 된다. 이러한 다층 구조를 통해 이미지, 음성, 텍스트 같은 다양한 데이터의 복잡한 패턴을 인식하고 예측할 수 있으며, 이는 딥러닝에 중요한 역할을 한다.

 

 

DNN의 핵심은 역시 여러 히든 레이어가 있다는 것인데, 각 레이어가 이 전 레이어에서 학습한 것을 전달하고 처리해 새로 학습한 것을 전달한다. 층이 많을수록 더 복잡하고 추상적인 특징을 학습할 수 있게 된다. 각 레이어 속 수많은 노드들은 입력값을 단순한 선형 함수를 넘어 비선형 함수로 변환해서 출력하는데, 이를 통해 신경망 전체가 단순히 선형관계 이상을 학습할 수 있게 한다.

 

1.     입력층 (Input Layer)은 데이터가 신경망에 처음으로 입력되는 레이어다. 이 층에서 원시 데이터를 받아서 다음 히든레이어로 전달한다.

 

2.     은닉층 (Hidden Layer)은 입력층과 출력층 사이에 위치하며, 각 층은 이전 층의 출력을 입력으로 받아 처리하고, 다음 층에 전달한다. 이러한 히든 레이어의 수가 많을수록 신경망이 깊어지며, 더 복잡한 패턴을 학습할 수 있다. 이 층들은 데이터의 특징을 추출하고 변형하는 역할을 수행한다.

 

3.     출력층 (Output Layer)은 은닉층을 통해 처리된 데이터를 최종적으로 출력하는 층이다. 이 층의 출력은 신경망이 예측한 결과를 나타낸다.

 

4.     활성화 함수 (Activation Function) 은 각 노드에서 입력 신호를 처리한 후 출력 신호를 결정하는 함수이다. 비선형 활성화 함수를 통해 신경망이 보다 복잡한 패턴을 학습할 수 있게 한다.

 

5.     백프로파게이션 (Backpropagation) 은 학습이 한 방향으로만 일어나지 않게 한다. 한 노드에서 오류가 발견되었다면, 백프로파게이션을 통해 역방향으로 학습이 일어나, 노드에서 학습한 가중치를 조정하기도해 신경망의 정확도를 높이기도 한다.

 

6.     과적합 (Overfitting)과 일반화 (Generalization): 너무 깊은 신경망은 훈련 데이터에 너무 맞춰져 과적합될 위험이 있다. 이를 방지하기 위해 정규화나 드롭아웃 등의 기술을 사용하며, 모델이 새로운 데이터에 대해 잘 일반화될 수 있도록 돕는다.

 

이러한 다층 신경망들은 데이터를 계층적으로 처리하면서 저수전에서 고수준의 특징을 자동으로 추출한다. 다층 신경망은 특히 컴퓨터 비전, 자연어 처리, 음성 인식 등의 분야에서 혁신적인 성과를 이루고 있으며, 예를 들어, 이미지 인식에서는 초기 층이 단순한 가장자리나 색상 같은 저수준의 특징을 잡는다면, 레이어가 진행됨에 따라 후속 레이어들은 얼굴이나 물체 같은 고수준의 특징을 학습한다. 이러한 계층 적인 학습이 머신러닝과 딥러닝의 근본적인 차이라고 할 수 있다.

 

현재는 흔히 컴퓨터에 사용되는 CPU GPU를 넘어 NPU, Neural Network Processing Unit이 컴퓨터나 핸드폰에 장착되어 시중에 판매되고 있다. 이는 컴퓨터의 운영체제를 맡는 CPU, 이를 그래픽적으로 연산하는 GPU와 더불어 AI 어플리케이션들을 가속화하는데 사용된다. 나아가 Google에서 자체 제작한 TPU, Tensor Processing Unit도 존재하며, 이처럼 딥러닝은 우리 사회에 빠르게 다가오고 있다.