클라이언트/ 서버/ 엔지니어 " 게임 개발자"를 향한 매일의 공부일지

머신러닝의 이해 2 - 머신러닝의 개념과 종류 그리고 머신러닝의 7단계 과정에 대하여 본문

인공지능/머신러닝

머신러닝의 이해 2 - 머신러닝의 개념과 종류 그리고 머신러닝의 7단계 과정에 대하여

huenuri 2024. 9. 13. 10:03

이제 오늘의 아침 공부를 시작해보려고 한다. 아침에 보통 9시 5분이 조금 넘어서 도착하는데 공부할 준비하면 10분, 그리고 공부할 마음의 준비까지 하며 진짜 본격적인 학습에 들어가기까지 20분이 더 걸리는 것 같다. 이제 9시 반이 다 되어 오늘의 공부를 진짜 시작할 수 있을 것 같다.
아침에 이틀치 수업 분량을 정리하고, 오후와 저녁에는 셋째날 수업 내용을 정리해서 오늘 하루만에 오렌지 공부를 다 마치려고 한다. 며칠 전에 넘파이와 판다스 학습할 때도 하루만에 모두 끝냈다.
 
충분히 가능하리라 믿고 학습을 시작해보자. 그리고 내일부터는 추석 연휴 기간이니 지금처럼 공부를 많이 하지는 못할 것 같다. 


 
 
 

머신러닝이란 무엇인가?

머신러닝은 데이터를 활용하여 특성(Features)과 패턴(Patterns)을 찾아 학습하고 이를 바탕으로 예측(Prediction)을 수행하는 기술이다. 머신러닝 모델은 주어진 데이터(Data)를 통해 학습을 하고, 알고리즘을 기반으로 규칙을 만들어 예측을 수행한다.
 


 
 
 
 

 

 

지도학습

 
지도학습은 정답 데이터(Label, 명시적인 답)가 주어진 상태에서 모델이 학습하는 방법이다. 학습 과정에서 데이터를 주고 이에 맞는 결과값, 즉 레이블을 통해 컴퓨터가 스스로 규칙을 찾아낸다.

  • 분류(Classification): 주어진 데이터를 여러 클래스로 구분하는 문제이다. 예를 들어, 이메일이 스팸인지 아닌지 분류하는 문제, 암세포인지 정상세포인지를 판별하는 문제 등이 있다.
  • 회귀(Regression): 연속적인 값을 예측하는 문제이다. 예를 들어, 집값을 예측하거나 주가를 예측하는 문제처럼 결과값이 특정 범위 내에서 연속적으로 변동하는 경우이다.

 

 

1. 분류(Classification)

  • 특징: 출력값이 이산적이다. 즉, 결과가 정해진 여러 범주 중 하나로 나타난다.
  • 예시: 위 그림의 Confusion Matrix는 이진 분류 예시이다. 데이터 포인트를 0 또는 1로 분류하는 문제를 다룬다. 혼동 행렬(Confusion Matrix)은 예측한 값과 실제 값의 비교를 나타낸다. 위 예시에서는 두 클래스 모두에서 정확하게 예측된 사례가 많아 정확도가 높은 것을 볼 수 있다.

 

2. 회귀(Regression)

  • 특징: 출력값이 연속적이다. 즉, 특정 값의 범위 내에서 결과가 나온다.
  • 예시: 위 그림의 Regression Example은 선형 회귀 예시이다. 파란색 점은 실제 데이터 포인트를 나타내고, 빨간색 선은 예측된 선형 회귀선이다. 이 선은 데이터의 추세를 나타내며, 새로운 데이터(X_new)에 대해 선형 모델이 어떻게 값을 예측하는지를 보여준다.

 


 
 

비지도학습

비지도학습은 정답 데이터가 없는 상태에서 패턴을 발견하는 학습 방법이다. 주로 데이터의 숨겨진 특징, 구조, 패턴을 파악하는 데 사용된다.

  • 클러스터링(Clustering): 데이터를 비슷한 특성을 가진 그룹으로 묶는 작업이다. 예를 들어, 고객의 구매 패턴을 분석하여 여러 그룹으로 나누는 경우이다.
  • 차원 축소(Dimensionality Reduction): 고차원 데이터를 효율적으로 분석하기 위해 차원을 줄이는 작업이다. 데이터의 중요한 특성만 추려내는 데 유용하다.

 

클러스터링(Clustering)

  • 정의: 클러스터링은 비슷한 특성을 가진 데이터들을 그룹으로 묶는 기법이다. 여기서 각 그룹을 클러스터라고 부르며, 데이터들이 속한 클러스터를 예측한다.
  • 예시: 고객 데이터를 분석하여 구매 패턴이 유사한 고객들을 그룹화하는 것이 클러스터링의 예이다. 이 과정에서 고객들을 여러 그룹으로 나누어 마케팅 전략을 세울 수 있다.

K-Means 클러스터링 예시

위 그림은 K-Means 클러스터링 알고리즘을 사용하여 3개의 클러스터로 나눈 예시이다. 각 데이터 포인트는 두 개의 특성(Feature)을 가지고 있으며, K-Means 알고리즘을 통해 데이터가 3개의 클러스터로 묶였다. 빨간색 X 표시는 각 클러스터의 중심을 나타낸다.

  • 각 클러스터는 서로 다른 색으로 구분되며, 데이터가 클러스터에 어떻게 분포하는지를 볼 수 있다.
  • 실제로는 이러한 방법을 사용하여 예를 들어, 소비자 그룹을 나누거나, 유사한 제품군을 구분하는 등의 비즈니스 문제에 활용될 수 있다.

 

 


 
 
 

 

1. Problem Identification (문제 정의)

  • 목적: 해결하려는 문제를 명확히 정의하는 단계입니다. 머신러닝이 필요한 이유와 이를 통해 얻고자 하는 목표를 설정한다. 예를 들어, "이메일이 스팸인지 아닌지를 분류하는 모델"이나 "주가를 예측하는 모델"이 있을 수 있다.

2. Data Collection (데이터 수집)

  • 목적: 모델 학습에 필요한 데이터를 수집하는 단계이다. 데이터는 다양한 소스에서 가져올 수 있으며, 웹 데이터, 데이터베이스, IoT 센서 데이터 등 다양한 형태일 수 있다.
  • 중요성: 데이터가 많고 품질이 높을수록 모델 성능이 좋아진다. 적절한 데이터 수집 전략이 매우 중요하다.

3. Data Preprocessing (데이터 전처리)

  • 목적: 수집된 데이터를 머신러닝에 적합하게 만드는 과정이다. 이 단계에서 결측치 제거, 이상치 처리, 데이터 정규화, 카테고리 변환 등의 작업을 수행한다.
  • 중요성: 전처리를 통해 모델이 데이터를 잘 학습할 수 있도록 준비한다. 적절한 전처리는 모델 성능 향상에 중요한 영향을 미친다.

4. EDA (탐색적 데이터 분석)

  • 목적: 데이터를 분석하여 중요한 패턴이나 특성을 발견하는 단계이다. 이를 통해 데이터의 분포, 상관관계 등을 파악할 수 있다.
  • 활용: 데이터 시각화 기법을 사용하여 히스토그램, 상관 행렬 등을 그려볼 수 있으며, 데이터를 깊이 있게 이해하는 데 도움을 준다.

5. Model Selection & Hyperparameter Tuning (모델 선택 및 하이퍼파라미터 조정)

  • 목적: 문제에 적합한 머신러닝 모델을 선택하는 단계입니다. 분류 문제라면 로지스틱 회귀, 서포트 벡터 머신(SVM) 등을, 회귀 문제라면 선형 회귀, 랜덤 포레스트 회귀 등을 사용할 수 있습니다.
  • 하이퍼파라미터: 모델의 성능을 조정하기 위해 하이퍼파라미터를 설정합니다. 하이퍼파라미터는 학습률, 의사결정 트리의 깊이 등과 같이 모델 외부에서 설정하는 변수입니다.

6. Training (학습)

  • 목적: 전처리된 데이터를 사용하여 모델을 학습시키는 과정이다. 학습을 통해 모델은 데이터를 기반으로 패턴을 학습하고, 이를 통해 예측을 할 수 있는 상태로 만들어진다.
  • 과정: 모델이 데이터를 반복적으로 학습하면서, 손실 함수(Loss Function)를 줄여 나간다.

7. Evaluation (평가)

  • 목적: 학습된 모델의 성능을 평가하는 단계이다. 성능 평가는 새로운 테스트 데이터를 사용하여 이루어진다. 정확도(Accuracy), 정밀도(Precision), 재현율(Recall), F1 스코어와 같은 지표로 모델의 성능을 평가한다.
  • 중요성: 모델의 성능을 평가하는 과정에서 과적합(Overfitting) 여부도 확인한다. 과적합이 발생하면 모델이 학습 데이터에 너무 치중하여 일반화 성능이 떨어진다.

 
 
이를 요약하면 다음과 같다.
 
 

  1. 문제 정의 : 해결하고자 하는 문제를 명확히 설정하는 단계.
  2. 데이터 수집 : 다양한 소스에서 데이터를 모으는 단계.
  3. 데이터 전처리 : 수집된 데이터를 정제하고 처리하여 분석에 적합하게 만드는 단계.
  4. 탐색적 데이터 분석 : 데이터를 시각화하고, 패턴을 찾아내어 데이터의 특성을 이해하는 단계.
  5. 모델 선택 및 하이퍼파라미터 조정 : 적합한 모델을 선택하고, 하이퍼파라미터를 조정하여 성능을 최적화하는 단계.
  6. 학습 : 데이터를 바탕으로 모델을 학습시키는 단계.
  7. 평가 : 모델의 성능을 테스트 데이터로 평가하고, 성능 지표를 통해 분석하는 단계.

 


 
 

학습을 마치고

수업 내용이 없고 자료만 몇 개 있어서 그걸 토대로 학습을 진행해보았다. 머신러닝이 무엇이며 어떤 종류가 있는지, 머신러닝의 단계는 어떻게 되어 있는지에 대해서 배울 수 있었다.
아직 감이 잘 안 잡히는 개념들도 있지만 차차 공부하면서 어느새 익숙해질 것 같다. 머신러닝에 대해 한 가지 더 설명한 것이 있어서 그 부분은 다음 포스트에 이어서 정리해보려고 한다.