함께하는 데이터 분석

[Find-A] 파인드 알파 머신러닝이란? 본문

학회 세션/파인드 알파

[Find-A] 파인드 알파 머신러닝이란?

JEONGHEON 2022. 8. 12. 16:45

안녕하세요.

 

오늘은 파인드 알파 학회에서 팀을 짜서 공부한 내용을 정리하는 시간을 가지겠습니다.

 

한 달에 걸쳐 공부할 책은 Hands-On Machine Learning with Scikit-Learn & TensorFlow 입니다.

 

이번에는 그중에서도 Chapter 1을 정리하겠습니다.

 

 

1. 한눈에 보는 머신러닝

1.1 머신러닝이란?

머신러닝의 공학적인 정의는 "어떤 작업 T에 대한 컴퓨터 프로그램의 성능을 P로 측정했을 때 경험 E로 인해 성능이 향상됐다면, 이 컴퓨터 프로그램은 작업 T와 성능 측정 P에 대해 경험 E로 학습한 것이다."이다.

예를 들어 스팸 필터라고 한다면 학습하는 데 사용하는 샘플을 training set, 작업 T는 새로운 메일이 스팸인지 구별하는 것, 경험 E는 training data, 성능 P는 정확히 분류된 메일의 비율인 Accuracy라고 부름.

 

 

1.2 왜 머신러닝을 사용하는가?

전통적인 방법에서는 문제가 단순하지 않아 규칙이 길어지고 복잡해져서 힘들 때 머신러닝 기법을 사용하면 자동으로 학습하여 프로그램이 짧아지고 유지 보수하기 쉬우며 대부분 정확도가 높다. 또한 학습을 통하여 별도의 작업을 하지 않아도 자동으로 인식.

또 음성인식(speech recognition)과 같은 분야는 전통적인 방식으로는 너무 복잡하거나 알려진 알고리즘이 없어 머신러닝이 유용.

머신러닝 기술을 적용해서 대용량의 데이터를 분석하면 겉으로는 보이지 않던 패턴을 발견하는데 이를 데이터 마이닝이라고 함.

즉, 정리하자면

  • 기존 솔루션으로는 많은 수동 조정과 규칙이 필요한 문제
  • 전통적인 방식으로는 전혀 해결 방법이 없는 복잡한 문제
  • 유동적인 환경
  • 복잡한 문제와 대량의 데이터에서 통찰 얻기

 

 

1.3 머신러닝 시스템의 종류

  • 사람의 감독 하에 훈련하는지 아닌지(지도 vs 비지도)
  • 실시간으로 점진적인 학습을 하는지 아닌지(온라인 학습 vs 배치 학습)
  • 단순하게 알고 있는 데이터 포인트와 새 데이터 포인트를 비교하는 것인지 혹은 훈련 데이터셋에서 과학자들처럼 패턴을 발견하여 예측 모델을 만드는지(사례 기반 학습 vs 모델 기반 학습) 

위의 범주들은 서로 배타적이지 않으며 원하는 대로 연결할 수 있음.

 

 

1.3.1 지도 학습과 비지도 학습

 

- 지도 학습(supervised learning)은 알고리즘에 주입하는 훈련 데이터(training data)에 레이블(Label)이라는 원하는 답이 포함됨. 예를 들면 분류(classification)와 회귀(regression)가 전형적인 지도 학습

  • k - Nearest Neighbors(kNN)
  • Linear Regression
  • Logistic Regression
  • Support Vector Machines(SVM)
  • Decision Tree, Random Forests
  • Neural Networks

- 비지도 학습(unsupervised learning)은 말 그대로 훈련 데이터(training data)에 레이블(Label)이 없음. 따라서 시스템이 아무런 도움 없이 학습해야 함.

  • clustering : k - means clustering, Hierarchical clustering, Expectation Maximization
  • visualization and dimensionality reduction : Principal Component Analysis(PCA), kernal PCA, Locally - Linear Embeding(LLE), t - distributed Stochastic Neighbor Embedding(t - SNE)
  • Association rule learning : Apriori, Eclat

 

 

1.3.2 배치 학습과 온라인 학습

 

- 배치 학습(batch learning)은 시스템이 점진적으로 학습할 수 없음. 가용한 데이터를 모두 사용하여 훈련시켜야 하고, 시간과 자원을 많이 소모하여 보통 오프라인에서 수행되므로 오프라인 학습(offline learning)이라고 함.

 

- 온라인 학습(online learning)은 데이터를 순차적으로 한 개씩 또는 미니 배치(mini - batch)라 부르는 작은 묶음 단위로 주입하여 시스템을 훈련. 매 학습 단계가 빠르고 비용이 적게 들어 시스템은 데이터가 도착하는 대로 즉시 학습 가능.

 

 

1.3.3 사례 기반 학습과 모델 기반 학습

대부분의 머신러닝 작업은 예측을 만드는 것. 즉, 주어진 훈련 데이터로 학습하지만 훈련 데이터에서의 높은 성능을 내는 것뿐만 아니라 새로운 샘플에 대해 높은 성능을 내는 것이 목표.

 

- 사례 기반 학습(instance - based learning)은 이전의 학습을 단순히 기억하는 것. 따라서 최악도 최선도 아님. 따라서 유사도(similarity)와 같은 측정을 통해 사례를 기억함으로써 학습.

 

- 모델 기반 학습(model - based learning)은 샘플들의 모델을 만들어 예측에 사용하는 것. 예를 들면 linear regression의 linear model과 같은 모델을 선택하는 방법. 훈련 데이터를 공급하여 가장 잘 맞는 모델 파라미터를 찾아 예측.

 

 

1.4 머신러닝의 주요 도전 과제

머신러닝은 학습 알고리즘을 선택해서 어떤 데이터에 훈련시키는 것이므로 문제가 되는 두 가지는 '나쁜 알고리즘'과 '나쁜 데이터'

 

- 나쁜 데이터

  • 충분하지 않은 양의 훈련 데이터
  • 대표성이 없는 훈련 데이터 - 샘플링 잡음(sampling noise), 샘플링 편향(sampling bias)
  • 낮은 품질의 데이터 - 훈련 데이터의 에러, outlier
  • 관련 없는 특성

- 나쁜 알고리즘

  • 훈련 데이터의 과대 적합(overfitting)
  • 훈련 데이터의 과소 적합(underfitting)

 

1.5 테스트와 검증

모델이 새로운 샘플에 얼마나 잘 일반화될지 훈련 세트와 테스트 세트를 나눠서 확인. 훈련 세트를 사용하여 모델을 훈련시키고 테스트 세트를 사용해 모델을 테스트함. 이때 새로운 샘플에 대한 오류 비율을 일반화 오차(generalization error)라고 함. 일반적으로 8:2의 비율로 나눔. 모델이 잘 정해졌으면 이후 과대 적합을 피하기 위해 규제의 양을 결정하는 하이퍼파라미터(hyperparameter) 값을 정해야 함. 테스트 세트에 최적의 하이퍼파라미터 값을 찾았다고 하더라도 테스트 세트에 최적화시킨 값이므로 새로운 데이터에서는 잘 작동하지 않을 수 있음. 따라서 검증 세트(validation set)를 만들어 훈련 세트를 사용해 다양한 하이퍼파라미터로 여러 모델을 훈련시키고 검증 세트에서 최상의 성능을 내는 모델과 하이퍼파라미터를 선택. 하지만 훈련 데이터에서 검증 세트로 너무 많은 양의 데이터를 뺏기는 문제가 발생하는데 이를 해결하기 위해 교차 검증(cross - validation)과 같은 기법을 사용.

 


https://www.hanbit.co.kr/store/books/look.php?p_code=B9267655530 

 

핸즈온 머신러닝

최근의 눈부신 혁신들로 딥러닝은 머신러닝 분야 전체를 뒤흔들고 있습니다. 이제 이 기술을 거의 모르는 프로그래머도 데이터로부터 학습하는 프로그램을 어렵지 않게 작성할 수 있습니다. 이

www.hanbit.co.kr