1. 머신러닝이란?
인공지능 / 머신러닝 / 딥러닝의 포함관계
✅ 인공지능(Artificial Intelligence) > 머신러닝(Machine Learning, 기계학습) > 딥러닝 (Deep Learning, 심층학습)
- 인공지능(Artificial Intelligence): 인간의 지능을 모방하여 사람이 하는 일을 컴퓨터(기계)가 할 수 있도록 하는 기술
- 머신러닝(Machine Learning): 데이터로부터 패턴을 학습하여 명시적 프로그래밍 없이 예측 또는 의사결정을 수행하는 알고리즘
- 딥러닝(Deep Learning): 다층 신경망(Neural Networks)을 활용하여 데이터에서 복잡한 특징을 자동으로 학습하는 머신러닝의 한 분야
머신러닝과 딥러닝은 모두 학습 모델을 제공해서 데이터를 분류할 수 있는 기술이다. 하지만, 둘의 접근 방식에는 차이가 있다.
머신러닝은 데이터의 특징을 사람이 직접 설계해야 한다. 즉, 주어진 데이터를 사람이 직접 전처리하고 이로부터 특성 추출까지 해야한다는 이야기이다. 추출한 데이터의 특성을 컴퓨터에 인식시키고 학습시켜 컴퓨터가 문제를 해결(=분류)하도록 하는 방식이다.
반면에 딥러닝은 대량의 데이터를 신경망에 적용하면, 컴퓨터가 스스로 특징을 학습하고 답을 도출하는 방식이다. 머신러닝에서 인간이 하던 전처리/특징 추출 작업이 없어도 컴퓨터가 스스로 특성 추출부터 문제 해결까지 한다.
두 방식 간의 차이를 표로 정리하면 다음과 같다.
구분 | 머신러닝 | 딥러닝 |
동작 원리 | 입력 데이터에 알고리즘을 적용하여 예측 수행 | 정보를 전달하는 신경망을 사용하여 데이터 특징 및 관계 해석 |
재사용 | 입력 데이터 분석을 위해 다양한 알고리즘을 사용하며, 동일한 유형의 데이터 분석을 위한 재사용은 불가능. | 구현된 알고리즘은 동일한 유형의 데이터 분석에 재사용 가능 |
데이터 | 약 수천 개의 데이터 필요 | 수백만 개 이상의 데이터 필요 |
훈련 시간 | 단시간 | 장시간 |
결과 | 숫자값(점수, 분류 등) | 다양한 출력 가능(점수, 텍스트, 소리 등) |
머신러닝의 정의
그럼에도 불구하고 '그래서 머신러닝이 뭔데!' 싶을 수 있어 머신러닝의 정의를 찾아보았다.
Machine Learning: Field of study that gives computers the ability to learn without being explicitly programmed.
- Arthur Samuel(1959)
'머신러닝'이라는 용어를 처음 사용하고 정의한 Arthur Samuel은 컴퓨터가 명시적으로 프로그래밍되지 않아도 스스로 학습할 수 있는 능력을 부여하는 연구 분야라고 정의했다.
A computer program is said to learn from experience E with respect to some task T and some performance measure P, if its performance on T, as measured by P, improves with experience E.
- Tom Mitchell(1998)
머신러닝 연구의 기초 개념을 정립한 Tom Mitchell은 "기계가 학습한다는 건, 프로그램이 특정 작업(T)을 하는 데 있어서 경험(E)을 통해 작업의 성능(P)을 향상시키는 것"이라는 보다 명확한 정의를 제시했다.
머신러닝 적용 가능 사례
- 데이터를 구할 수 있는 경우
머신러닝은 데이터 기반의 학습 방식이므로, 충분한 양과 품질의 데이터가 확보되어야 효과적인 모델을 만들 수 있음
(ex. 제품 추천 시스템은 사용자 구매 데이터가 있어야 학습 가능) - 데이터에 우리가 관심을 가지는 규칙이 있다고 판단되는 경우
데이터 안에 일정한 패턴이나 상관관계가 존재해야 머신러닝 모델이 유의미한 학습을 할 수 있음
(ex. 환자의 의료 기록과 질병 발생 간의 관계를 학습하여 질병 예측 모델 구축) - 기존의 명시적인 프로그래밍 방법으로는 해결 방법이 없는 복잡한 문제인 경우
전통적인 알고리즘(규칙 기반 프로그래밍)으로 해결하기 어려운 경우, 머신러닝이 패턴을 스스로 학습하여 문제를 해결할 수 있음
(ex. 자율주행 자동차 - 도로 환경이 복잡하고 다양한 변수가 존재하여 명시적인 규칙 기반 프로그래밍만으로 해결이 어려움)
⇒ 데이터가 존재하고 패턴이 있으며, 기존 방식으로 해결이 어려운 경우 머신러닝이 강력한 해결책이 될 수 있다!
2. 머신러닝 학습 방법
머신 러닝의 학습 과정은 크게 학습 단계(learning)와 예측 단계(prediction)로 구분할 수 있다
- 학습 단계: 훈련 데이터를 머신 러닝 알고리즘에 적용하여 모델을 학습시키고, 이 학습 결과로 모형을 생성
조금 더 간단하게 말하면 다양한 알고리즘(선형 회귀, 결정 트리, 신경망 등)을 통해 학습 데이터에서 패턴을 찾아내는 과정이다. 예를 들어, 고양이와 강아지 사진을 구분하는 이미지 분류 모델을 만든다면, 다양한 고양이/강아지 사진을 통해 고양이/강아지에 해당하는 특징들을 학습하는 단계에 해당한다. - 예측 단계: 학습 단계를 통해 생성된 모형에 새로운 데이터를 적용하여 결과 예측
학습 단계에서 모델이 학습한 패턴으로 실제 결과를 만들어내는 과정이다. 앞서 언급한 예시와 같아 고양이와 강아지를 분류하는 모델을 학습했다면, 예측 단계는 학습 데이터로 사용하지 않은 새로운 데이터를 입력값으로 주고 고양이인지 강아지인지 분류해보도록 하는 단계에 해당한다. 만약 예측 단계를 거쳤는데 성능이 부족하다고 판단된다면, 모델을 다시 학습(=재훈련)시킬 수 있다.
3. 머신 러닝 학습 알고리즘 종류
머신 러닝 학습 알고리즘은 크게 지도학습, 비지도 학습, 강화학습으로 분류할 수 있다.
- 지도학습 (Supervised Learning): 머신러닝 알고리즘 학습 시 타깃값(레이블, 정답)을 사용
- 비지도학습 (Unsupervised Learning): 머신러닝 알고리즘 학습 시 타깃값(레이블, 정답)을 사용하지 않음
- 강화학습 (Reinforcement Learning): 보상을 최대화하는 방향으로 최적의 행동을 학습
cf) 사례 기반 학습 / 모델 기반 학습
보통은 위와 같이 주어진 데이터와 목표 간의 관계를 기준으로 지도학습, 비지도학습, 강화학습으로 분류하는 것이 일반적이지만, 데이터를 이용하는 방식을 기준으로 사례 기반 학습과 모델 기반 학습으로 나눌 수 도 있다.
- 사례 기반 학습 (Instance-Based Learning): 새로운 데이터가 주어지면 기존 데이터와 직접 비교하여 예측을 수행하는 학습 방식
새로운 입력이 들어올 때 새로운 데이터와 학습된 데이터(일부 또는 전체)의 유사도를 측정하여, 입력된 새로운 데이터를 가장 유사도가 높은 기존 학습 데이터의 클래스로 분류한다.
(ex. K-최근접 이웃(KNN, K-Nearest Neighbor), 로컬 가우시안 회귀 등) - 모델 기반 학습 (Model-Based Learning): 데이터를 사용해 일반화된 모델을 학습한 후, 이를 통해 새로운 데이터에 대한 예측을 수행하는 학습 방식
학습된 데이터 자체를 이용하는 것이 아니라 데이터를 이용해 일반화된 모델을 학습하고, 모델을 이용해서 예측하는 것이 사례 기반 학습과의 가장 큰 차이점이다.
(ex. 선형 회귀, 신경망, 결정 트리 등)
두 가지 분류 기준을 모두 적용하여 다양한 학습 알고리즘을 분류하면 다음과 같이 분류할 수 있다.
학습 방식 | 유형 | 사례 기반 학습 알고리즘 | 모델 기반 학습 알고리즘 |
지도학습 |
분류 | K-최근접 이웃(K-Nearest Neighbor, KNN) | 서포트 벡터 머신(Support Vector Machine, SVM), 결정 트리(Decision Tree), 랜덤 포레스트(Random Forest), 로지스틱 회귀(Logistic Regression) |
회귀 | KNN 회귀 (KNN Regression) | 선형 회귀(Linear Regression, LR), 다항 회귀(Polynomial Regression), 랜덤 포레스트 회귀(Random Forest Regression, RFR), 서포트 벡터 회귀(Support Vector Regression, SVR) | |
비지도학습 |
군집화 | K-평균 군집화 (K-Means Clustering), DBSCAN | GMM(Gaussian Mixture Model) |
차원축소 | - | 주성분 분석(PCA), t-SNE, 오토인코더(Autoencoder) | |
강화학습 | 정책 최적화 | Q-러닝(Q-learning), SARSA | 마르코프 결정 과정(Markov Decision Process, MDP), 심층 Q-네트워크(Deep Q-Network, DQN) |
'AI > ML & DL' 카테고리의 다른 글
[졸업 연구] Simple Diffusion Model에 Quantization 적용하기 (1) | 2024.11.19 |
---|---|
[DL] 딥 러닝 기본 이론 3: 경사 하강법 (0) | 2024.09.22 |
[DL] 딥 러닝 기본 이론 2: 활성화 함수 (0) | 2024.09.22 |