'AI의 심장' 머신러닝 알고리즘의 이해
CIO korea에서 머신러닝 알고리즘을 깔끔하게 정리한 내용이 있어 공유해봅니다. 🍀 머신러닝 알고리즘이란 머신러닝은 데이터로부터 자동으로 모델을 생성하는 방법이고, 머신러닝 알고리즘은 머신러닝을 움직이는 엔진이다. 즉, 데이터 집합을 모델로 바꿔주는 알고리즘이다. 🍀 머신러닝의 작동 원리 머신러닝 알고리즘은 비선형 회귀보다도 더 복잡한데, 머신러닝은 다항식과 같은 특정 수학 함수에 맞추는 제약이 없다는 점도 그 이유 중 하나다. 머신러닝이 해결하는 대표적인 두 가지 문제 범주는 회귀와 분류다. 🍉 회귀는 수치 데이터에 사용되며, 특정 주소와 직업을 가진 사람의 예상 수입은 어느 정도인가와 같은 문제에 사용할 수 있다. 예측 문제(“내일 마이크로소프트 주식의 시초가는 얼마가 될까?”)는 시계열 데이터에 대한 회귀 문제의 하위 집합이다 🍉 분류는 비수치 데이터에 사용되며, 대출 신청자가 이 대출을 상환하지 않을 것인가와 같은 문제다. 분류 문제는 이진(예/아니요), 다중 범주 문제(동물, 채소 또는 광물)로 나뉘기도 한다. 🍀 지도 학습 vs. 비지도 학습 머신러닝 알고리즘에는 지도와 비지도, 2가지 종류가 있다. 🍉 지도 학습에서는 동물 이름이 딸린 일련의 동물 사진과 같은, 답변이 포함된 학습 데이터 집합을 제공한다. 이 학습의 목표는 이전에 본 적이 없는 사진을 올바르게 식별(학습 집합에 포함된 동물의 종류)할 수 있는 모델을 만드는 것이다. 🍉 비지도 학습에서는 알고리즘이 스스로 데이터를 살펴보고 유의미한 결과를 도출하려고 시도한다. 예를 들어 각 클러스터 내에서 연관될 수 있는 데이터 포인트의 클러스터 집합이 결과로 나올 수 있다. 클러스터가 겹치지 않을 때 더 효과적으로 작동한다. 🍀 머신러닝을 위한 데이터 정제 머신러닝에 사용하려면 데이터를 적극적으로 필터링해야 한다. 예를 들면 데이터를 살펴보고 누락된 데이터가 많은 열을 제외하거나 예측에 사용할 열을 선택하거나, 명백한 오타를 교정하고 동일한 답변을 병합하거나 범위를 벗어난 데이터가 있는 행을 제외한다. 🍀 머신러닝을 위한 데이터 인코딩 및 정규화 머신 분류를 위해 범주 데이터를 사용하려면 텍스트 레이블을 다른 양식으로 인코딩해야 한다. 일반적으로 2가지 인코딩이 사용된다. 🍉 첫째는 레이블 인코딩으로, 각 텍스트 레이블이 숫자로 대체된다. 🍉 둘째는 원핫(one-hot) 인코딩으로, 각 텍스트 레이블 값이 이진 값(1 또는 0)이 있는 열로 변환된다. 대부분의 머신러닝 프레임워크에는 이 같은 변환을 수행하는 함수가 있다. 🚩 레이블 인코딩의 경우 머신러닝 알고리즘이 혼동해서 인코딩된 열이 정렬된 것으로 착각할 수 있으므로 일반적으로 원핫 인코딩이 선호된다. 🍀 일반적인 머신러닝 알고리즘 🍉 선형 회귀 또는 최소 제곱 회귀(숫자 데이터) 🍉 로지스틱 회귀(이진 분류) 🍉 선형 판별 분석(다중 범주 분류) 🍉 결정 트리(분류와 회귀) 🍉 나이브 베이즈(분류와 회귀) 🍉 K-최근접 이웃(KNN, 분류와 회귀) 🍉 학습 벡터 양자화(LVQ, 분류와 회귀) 🍉 서포트 벡터 머신(SVM, 이진 분류) 🍉 랜덤 포레스트, “배깅” 앙상블 알고리즘의 한 유형(분류와 회귀) 🍀 머신러닝 알고리즘의 초매개변수 머신러닝 알고리즘은 데이터로 학습해서 예측된 값 또는 클래스에 영향을 미치는 각 독립 변수에 대한 최적의 가중치 집합을 찾는다. 알고리즘 자체에는 초매개변수(hyperparameters)라는 변수가 있다. 가중치가 아니라 알고리즘의 작동을 제어하기 때문에 매개변수가 아닌 초매개변수로 불린다. 🍀 초매개변수 튜닝 여러 프로덕션 머신러닝 플랫폼이 현재 자동 초매개변수 튜닝을 제공한다. 기본적으로 시스템에 변경할 '초매개변수'와 최적화하고자 하는 '메트릭'을 알려주면 시스템은 허용되는 만큼 많은 실행 횟수에 걸쳐 이러한 초매개변수를 스윕한다. 자신의 데이터와 선택한 알고리즘에서 가장 중요한 초매개변수는 경험을 통해 발견할 수 있다. 🍀 자동 머신러닝 현재 데이터에 맞는 최선의 모델을 확인해보는 방법은 모두 알고리즘을 시도해 보는 것이다. 여기서 가능한 모든 정규화 및 특징 선택까지 시도한다면 조합의 수는 폭발적으로 증가한다. 그래서, 모든 것을 수동으로 시도한다는 것은 비현실적이므로, 당연히 머신러닝 툴 제공업체들은 많은 노력을 기울여 오토ML(AutoML) 시스템을 출시했다. 이 시스템은 특징 공학과 알고리즘 및 정규화에 대한 스윕을 결합한다.