AI/딥러닝파이토치교과서

[ML] 1. 머신러닝과 딥러닝

inthyes 2024. 2. 23. 00:41

1.1 인공지능, 머신러닝과 딥러닝

인공지능이란 인간의 지능을 모방하여 사람이 하는 일을 컴퓨터(기계)가 할 수 있도록 하는 기술이다.

 

인공지능을 구현하는 방법으로 머신러닝과 딥러닝이 있다.

 

인공지능과 머신러닝, 딥러닝의 관계는 아래와 같다.

" 인공지능 > 머신러닝 > 딥러닝 " 

 

 

머신러닝과 딥러닝 차이를 표로 정리하면 다음과 같다.

구분 머신러닝 딥러닝
동작 원리 입력 데이터에 알고리즘을 적용하여 예측을 수행한다. 정보를 전달하는 신경망을 사용하여 데이터 특징 및 관계를 해석한다.
재사용 입력 데이터를 분석하기 위해 다양한 알고리즘을 사용하며, 동일한 유형의 데이터 분석을 위한 재사용은 불가능하다. 구현된 알고리즘은 동일한 유형의 데이터를 분석하는 데 재사용된다.
데이터 일반적으로 수천 개의 데이터가 필요하다. 수백만 개 이상의 데이터가 필요하다.
훈련 시간 단시간 장시간
결과 일반적으로 점수 또는 분류 등 숫자 값 출력은 점수, 텍스트, 소리 등 어떤 것이든 가능

 

1.2 머신러닝이란?

머신러닝은 인공지능의 한 분야로, 컴퓨터 스스로 대용량 데이터에서 지식이나 패턴을 찾아 학습하고 예측을 수행하는 것이다. 즉 컴퓨터가 학습할 수 있게 하는 알고리즘과 기술을 개발하는 분야이다.

 

1.2.1 머신러닝 학습과정

머신러닝은 학습 단계와 예측 단계로 구분할 수 있다.

훈련 데이터를 머신러닝 알고리즘에 적용하여 학습시키고, 이 학습 결과로 모형이 생성된다. 예측 단계에서는 학습 단계에서 생성된 모형에 새로운 데이터를 적용하여 결과를 예측한다.

 

특성 추출이란 데이터별로 어떤 특징을 가지고 있는지 찾아내고, 그것을 토대로 데이터를 벡터로 변환하는 작업을 말한다.

 

데이터는 머신러닝이 학습 모델을 만드는 데 사용하는 것으로, 훈련 데이터가 나쁘다면 실제 현상의 특성을 제대로 반영할 수 없으므로 실제 데이터의 특징이 잘 반영되고 편향되지 않는 훈련 데이터를 확보하는 것이 중요하다.

 

모델이란 머신러닝의 학습 단계에서 얻은 최종 결과물로 가설이라고도 한다. 모델의 학습 절차는 세 단계로 이루어져있다.

1. 모델(또는 가설) 선택

2. 모델 학습 및 평가

3. 평가를 바탕으로 모델 업데이트

 

최종적으로 완성된 모델(모형)으로 해결하고자 하는 문제에 적용해서 분류 및 예측 결과를 도출한다.

·

1.2.2 머신러닝 학습 알고리즘

머신러닝의 학습 알고리즘으로는 지도학습, 비지도학습, 강화학습이 있다.

지도 학습은 정답이 무엇인지 컴퓨터에 알려주고 학습시키는 방법이다.

비지도 학습은 정답을 알려주지 않고 특징이 비슷한 데이터를 클러스터링(범주화)하여 예측하는 학습 방법이다.

 

 

구분 유형 알고리즘
지도 학습 분류(classification) · K-최근접 이웃(KNN)
· 서포트 벡터 머신(SVM)
· 결정 트리(decision tree)
· 로지스틱 회귀(logistic regression)
회귀(regression) 선형 회귀(linear regression)
비지도 학습 군집(clustering) · K-평균 군집화(K-means clustering)
차원 축소(dimensionality reduction) · 밀도 기반 군집 분석(DBSCAN)
강화 학습 - 마르코프 결정 과정(MDP

 

1.3 딥러닝이란

딥러닝은 인간의 신경망 원리를 모방한 심층 신경망 이론을 기반으로 고안된 머신러닝 방법의 일종이다.

인간의 뇌가 엄청난 수의 뉴런과 시냅스로 구성되어 있는 것에 착안하여 컴퓨터에 뉴런과 시냅스 개념을 적용하였다. 각각의 뉴런은 복잡하게 연결된 수많은 뉴런을 병렬 연산하여 기존에 컴퓨터가 수행하지 못했던 음성. 영상 인식 등 처리를 가능하게 한다.

  • 수상돌기 : 주변이나 다른 뉴런에서 자극을 받아들이고, 이 자극들을 전기적 신호 형태로 세포체와 축삭돌기로 보내는 역할
  • 시냅스 : 신경 세포들이 이루는 연결 부위로, 한 뉴런의 축삭돌기와 다음 뉴런의 수상돌기가 만나는 부분
  • 축삭돌기 : 다른 뉴런(수상돌기)에 신호를 전달하는 기능을 하는 뉴런의 한 부분. 뉴런에서 뻗어 있는 돌기 중 가장 길고 한 개만 존재함
  • 축삭말단 : 전달된 전기 신호를 받아 신경 전달 물질을 시냅스 틈새로 방출

 

1.3.1 딥러닝 학습과정

데이터 준비 → 모델(모형) 정의 → 모델(모형) 컴파일 → 모델(모형) 훈련 → 모델(모형) 예측

 

학습 과정에 대해 알아보자. 

 

데이터 준비 : 파이토치나 케라스에서 제공하는 데이터셋을 사용하거나 캐글 같은 곳에 공개된 데이터를 사용한다.

모델(모형) 정의 : 모델 정의 단계에서 신경망을 생성한다. 일반적으로 은닉층 개수가 많을수록 성능이 좋아지지만 과적합이 발생할 확률이 높다. 따라서 모델 정의 단계에서 신경망을 제대로 생성하는 것이 중요하다.

모델(모형) 컴파일 : 컴파일 단계에서 활성화 함수, 손실 함수, 옵티마이저를 선택한다. 데이터 형태에 따라 다양한 옵션이 가능하다. 훈련 데이터셋 형태가 연속형이라면 평균 제곱 오차(MSE)를, 이진 분류라면 크로스 엔트로피를 선택한다. 

모델(모형) 훈련 : 훈련 단계에서는 한 번에 처리할 데이터양을 지정한다. 전체 훈련 데이터셋에서 일정한 묶음으로 나누어 처리할 수 있는 배치와 훈련의 횟수인 에포크 선택이 중요하다. 훈련 과정에서 값의 변화를 시각적으로 표현하여 눈으로 확인하면서 파라미터와 하이퍼파라미터에 대한 최적의 값을 찾을 수 있어야 한다.

모델(모형) 예측 : 검증 데이터셋을 생성한 모델(모형)에 적용하여 실제로 예측을 진행해 보는 단계이다. 예측력이 낮을 경우 파라미터를 튜닝하거나 신경망 자체를 재설계해야한다.

 

딥러닝 학습과정에서 중요한 핵심 구성 요소는 신경망과 역전파이다. 

딥러닝은 심층 신경망(deep neural network)을 사용한다는 점에서 머신러닝과 차이를 갖는다. 심층 신경망에는 데이터셋의 어떤 특성들이 중요한지 스스로 가르쳐 줄 수 있는 기능을 가지고 있다.

가중치 값을 업데이트하기 위한 역전파 또한 중요하다. 역전파 계산 과정에서 사용되는 미분(오차를 각 가중치로 미분)이 성능에 영향을 미치는 주요한 요소이다.

 

1.3.2 딥러닝 학습 알고리즘

구분 유형 알고리즘
지도 학습 이미지 분류 · CNN
· AlexNet
· ResNet

시계열 데이터 분석 · RNN
· LSTM
비지도 학습 군집(clustering) · 가우시안 혼합 모델(GMM)
· 자기 조직화 지도(SOM)
차원 축소 · 오코인코더(AutoEncoder)
· 주성분 분석(PCA)
전이 학습 전이 학습 · 버트(BERT)
· MobileNetV2
강화 학습 - 마르코프 결정 과정(MDP)

 

지도 학습의 유형은 이미지 분류와 시계열 데이터 분석으로 나뉜다.

이미지 분류는 이미지 또는 비디오상의 객체를 식별하는 컴퓨터 비전 기술이다. 이때 가장 많이 사용되는 알고리즘은 합성곱 신경망(CNN)이다. 합성곱 신경망은 목적에 따라 이미지 분류, 이미지 인식, 이미지 분할로 분류할 수 있다.

시계열 데이터를 분류할 때 사용되는 것이 순환 신경망(RNN)이다. 주식 테이터처럼 시간에 따른 데이터가 있을 때 순환 신경망을 사용하지만, 역전파 과정에서 기울기 소멸 문제가 발생한다는 단점이 존재한다. 이를 개선하기 위해 게이트를 세 개 추가한 것이 LSTM(Long Short-Term Memory)이다.

 

비지도 학습으로는 워드 임베딩과 군집이 있다. 워드 임베딩 기술은 자연어를 컴퓨터가 이해하고 효율적으로 처리하게하기 위해 변환할 때 사용되며 단어를 벡터로 표현한다. 워드 임베딩에서는 단어 의미를 벡터화하는 워드투벡터(Word2Vec)와 글로브(GloVe)를 가장 많이 사용한다. 

군집은 아무런 정보가 없는 상태에서 데이터를 분류하는 방법이다. 한 클러스터 안의 데이터는 매우 비슷하게 구성하고 다른 클러스터의 데이터와 구분되도록 나누는 것을 목표로 한다. 군집은 머신러닝의 군집과 다르지 않지만 신경망에서 군집 알고리즘을 사용함으로서 모델의 성능을 향상시킬 수 있다.

 

전이 학습(transfer learning)은 사전에 학습이 완료된 모델(pre-trained model)을 가지고 우리가 원하는 학습에 미세 조정 기법을 이용하여 학습시키는 방법이다. 따라서 전이 학습에는 사전에 학습이 완료된 모델이 필요하며, 학습이 완료된 모델을 어떻게 활용하는지에 대한 접근 방법이 필요하다.

 

사전 학습 모델은 풀고자 하는 문제와 비슷하면서 많은 데이터로 이미 학습이 되어 있는 모델이다. 일반적으로 많은 데이터를 구하기도 어렵지만, 많은 데이터로 모델을 학습시키는 것은 오랜 시간과 연산량이 필요하다. VGG, 인셉션, MobileNet 같은 사전 학습 모델을 사용하면 효율적인 학습이 가능하다.