🍀조금더 깊게 알아보는 머신러닝 (Machine Learning)
머신러닝은 통계와 데이터의 수학적 모델링에 그 기원을 두고 있습니다. 머신러닝의 기본 아이디어는 과거 관찰에서 얻은 데이터를 사용하여 알려지지 않은 결과나 값을 예측하는 것입니다.
🍃 아이스크림 가게 주인은 과거 매출과 날씨 기록을 결합하여 일기 예보를 기반으로 특정 날짜에 얼마나 많은 아이스크림을 판매할지 예측하는 앱을 사용할 수 있습니다.
🍃 의사는 과거 환자의 임상 데이터를 사용하여 체중, 혈당 수준 및 기타 측정과 같은 요인을 기반으로 새로운 환자가 당뇨병에 걸릴 위험이 있는지 여부를 예측하는 자동화된 테스트를 실행할 수 있습니다.
🍃 남극의 연구자는 과거 관찰을 통해 새의 오리발, 부리 및 기타 물리적 특성 측정을 기반으로 다양한 펭귄 종(예: Adelie , Gentoo 또는 Chinstrap )을 자동으로 식별할 수 있습니다.
🍀 머신러닝 함수로 이해하기(Machine learning as a funcion)
기계 학습은 수학과 통계학에 기반을 두고 있기 때문에 기계 학습 모델을 수학적으로 생각하는 것이 일반적입니다. 기본적으로 기계 학습 모델은 하나 이상의 입력값을 바탕으로 출력값을 계산하는 함수를 캡슐화한 소프트웨어 애플리케이션입니다. 이 함수를 정의하는 과정을 '훈련(training)'이라고 합니다. 함수가 정의된 후에는 새로운 값을 예측하는 데 사용할 수 있는데, 이 과정을 '추론(inferencing)'이라고 합니다. 훈련과 추론에 관련된 단계를 살펴보겠습니다.
기계 학습 모델을 훈련시키기 위해서는 먼저 데이터가 필요합니다. 이 데이터는 모델이 학습할 수 있도록 필요한 정보들을 포함하고 있어야 합니다. 예를 들어, 고양이와 개를 구분하는 모델을 만들기 위해서는 고양이와 개의 이미지 데이터가 필요합니다.
수집한 데이터는 종종 불완전하거나, 부정확하거나, 혹은 모델이 학습하기 어려운 형식일 수 있습니다. 따라서 데이터를 정리하고, 정규화(normalization)하거나, 결측값을 처리하는 등의 전처리 과정을 거칩니다.
기계 학습 모델에는 다양한 종류가 있습니다. 예를 들어, 선형 회귀(linear regression), 결정 트리(decision tree), 신경망(neural network) 등이 있습니다. 해결하려는 문제의 유형과 데이터의 특성에 맞는 모델을 선택하는 것이 중요합니다.
훈련 과정에서는 입력 데이터와 그에 해당하는 출력값을 사용하여 모델을 학습시킵니다. 모델은 입력값과 출력값 간의 관계를 학습하게 됩니다. 이 과정에서 손실 함수(loss function)를 최소화하기 위해 모델의 매개변수(parameters)가 조정됩니다.
훈련된 모델이 잘 작동하는지 확인하기 위해 테스트 데이터를 사용하여 평가합니다. 테스트 데이터는 훈련에 사용되지 않은 새로운 데이터로, 모델의 성능을 평가하는 데 사용됩니다. 이 단계에서 모델의 정확도(accuracy), 정밀도(precision), 재현율(recall) 등의 지표를 측정합니다.
모델의 성능을 개선하기 위해 하이퍼파라미터(hyperparameters)를 조정하거나, 더 많은 데이터를 수집하여 다시 훈련시키는 등의 과정을 거칠 수 있습니다. 이를 통해 모델이 더 나은 성능을 발휘할 수 있도록 최적화합니다.
모델이 충분히 훈련되고 평가되면, 이제 새로운 데이터를 입력하여 예측값을 생성할 수 있습니다. 이 과정을 추론이라고 하며, 실생활의 다양한 응용 프로그램에서 사용됩니다. 예를 들어, 이메일 스팸 필터링, 이미지 인식, 음성 인식 등에서 활용됩니다.
이와 같이 기계 학습 모델의 훈련과 추론 과정은 데이터를 수집하고, 전처리하며, 적절한 모델을 선택하여 학습시키고, 평가 및 최적화를 거쳐 최종적으로 새로운 데이터를 예측하는 일련의 단계를 포함합니다. 이를 통해 우리는 다양한 문제를 해결하고, 더 나은 의사 결정을 내릴 수 있습니다.
이제 머신 러닝을 수학적 함수로 계산하여 추론되는 과정을 이해해 봅시다.
① 훈련 데이터는 과거의 관측치로 구성됩니다. 대부분의 경우, 관측치에는 관찰 대상의 속성이나 특징이 포함되어 있으며, 모델을 훈련시키기 위해 예측하고자 하는 값(레이블이라고 함)이 포함됩니다. 수학적으로, 특징은 종종 x라는 변수 이름으로 축약되고, 레이블은 y로 축약됩니다. 보통 관측치는 여러 특징 값으로 구성되므로, x는 실제로 [x1, x2, x3, ...]와 같은 벡터(여러 값이 포함된 배열)입니다.
🍃 아이스크림 판매 시나리오
목표: 날씨에 따라 아이스크림 판매량을 예측하는 모델을 훈련.
특징(x): 하루 동안의 날씨 측정값(온도, 강수량, 풍속 등).
레이블(y): 각 날의 아이스크림 판매량.
🍃 의료 시나리오
목표: 환자의 임상 측정값에 따라 당뇨병 위험 여부를 예측.
특징(x): 환자의 측정값(체중, 혈당 수치 등).
레이블(y): 당뇨병 위험 여부(예: 1은 위험, 0은 위험 아님).
🍃 남극 연구 시나리오
목표: 펭귄의 신체 특성에 따라 종을 예측.
특징(x): 펭귄의 주요 측정값(날개의 길이, 부리의 너비 등).
레이블(y): 종(예: 0은 아델리, 1은 젠투, 2는 턱끈펭귄).
② 알고리즘은 특징과 레이블 간의 관계를 결정하고, 그 관계를 일반화하여 x를 기반으로 y를 계산하는 함수로 나타냅니다. 사용되는 특정 알고리즘은 해결하려는 예측 문제의 종류에 따라 다르지만, 기본 원리는 데이터를 기반으로 특징 값을 사용하여 레이블을 계산하는 함수를 맞추는 것입니다.
③ 알고리즘의 결과는 해당 알고리즘이 유도한 계산을 함수로 캡슐화한 모델입니다. 이를 수학적 표기법으로 나타내면 다음과 같습니다: y=f(x)
④ 훈련 단계가 완료되면, 훈련된 모델은 추론에 사용될 수 있습니다. 모델은 훈련 과정에서 생성된 함수를 캡슐화한 소프트웨어 프로그램입니다. 특징 값 세트를 입력하면, 해당 레이블의 예측 값을 출력으로 받을 수 있습니다. 모델의 출력은 함수에 의해 계산된 예측 값이므로, 종종 출력 값을 관찰된 값이 아닌 예측 값으로 나타내기 위해 ŷ (발음: "y-hat")로 표기합니다.
🍀 머신러닝의 분류(Multiple type of machine learing)
🍃 지도학습(Spervised machine learning)
지도 학습(Supervised Machine Learning)은 훈련 데이터에 특징 값과 알려진 레이블 값이 모두 포함된 기계 학습 알고리즘을 의미합니다. 지도 학습은 과거 관찰에서 특징과 레이블 간의 관계를 결정하여, 미래의 경우에 특징에 대한 알려지지 않은 레이블을 예측하는 데 사용됩니다.
1.회귀(Regression)
회귀는 지도 학습의 한 형태로, 모델이 예측하는 레이블이 수치 값인 경우를 말합니다. 그 예시로,
온도, 강수량, 풍속을 기준으로 특정 날에 판매된 아이스크림의 수.
평방 피트 크기, 침실 수, 위치의 사회경제적 지표를 기준으로 한 부동산의 판매 가격.
엔진 크기, 무게, 너비, 높이, 길이를 기준으로 한 자동차의 연비(마일당 갤런).
2.분류(Classification)
분류는 지도 학습의 한 형태로, 레이블이 범주 또는 클래스를 나타냅니다. 분류에는 두 가지 일반적인 시나리오가 있습니다.
2-1) 이진 분류(Binary Classification)
이진 분류에서는 레이블이 특정 클래스의 인스턴스인지 여부를 결정합니다. 다시 말해, 이진 분류 모델은 두 가지 상호 배타적인 결과 중 하나를 예측합니다. 그 예시로,
체중, 나이, 혈당 수치 등의 임상 지표를 기준으로 한 환자의 당뇨병 위험 여부.
소득, 신용 기록, 나이 등의 요소를 기준으로 한 은행 고객의 대출 상환 불이행 여부.
인구 통계 속성 및 과거 구매를 기준으로 한 우편물 고객의 마케팅 제안 긍정 응답 여부.
이 모든 예에서 모델은 단일 가능한 클래스에 대해 이진 참/거짓 또는 긍정/부정 예측을 합니다.
2-1) 다중 클래스 분류(Multiclass Classification)
다중 클래스 분류는 이진 분류를 확장하여 여러 가능한 클래스 중 하나를 나타내는 레이블을 예측합니다. 예를 들어:
펭귄의 신체 측정을 기준으로 한 종(아델리, 젠투, 턱끈펭귄).
출연진, 감독, 예산을 기준으로 한 영화 장르(코미디, 공포, 로맨스, 모험, SF).
대부분의 시나리오에서 여러 클래스가 포함된 경우 다중 클래스 분류를 사용하여 상호 배타적인 레이블을 예측합니다. 예를 들어, 펭귄은 젠투와 아델리일 수 없습니다. 하지만, 일부 알고리즘은 다중 레이블 분류 모델을 훈련하는 데 사용할 수 있으며, 단일 관찰에 대해 여러 유효한 레이블이 있을 수 있습니다. 예를 들어, 영화는 SF와 코미디로 동시에 분류될 수 있습니다.
🍃 비지도학습(Unsupervised machine learning)
비지도 학습의 가장 일반적인 형태는 군집화입니다. 군집화 알고리즘은 특징을 기준으로 관찰치 간의 유사성을 식별하고, 이를 개별 군집으로 그룹화합니다. 그 예시로,
꽃의 크기, 잎의 수, 꽃잎의 수를 기준으로 유사한 꽃 그룹화.
인구 통계 속성과 구매 행동을 기준으로 유사한 고객 그룹 식별.
어떤 면에서는 군집화가 다중 클래스 분류와 유사합니다. 즉, 군집화는 관찰을 개별 그룹으로 분류합니다. 차이점은 분류를 사용할 때는 훈련 데이터의 관찰이 속하는 클래스를 이미 알고 있으며, 알고리즘은 특징과 알려진 분류 레이블 간의 관계를 결정한다는 것입니다. 군집화에서는 사전 알려진 군집 레이블이 없으며, 알고리즘은 특징의 유사성만을 기준으로 데이터를 그룹화합니다.
일부 경우 군집화는 분류 모델을 훈련하기 전에 클래스 집합을 결정하는 데 사용됩니다. 예를 들어, 고객을 그룹으로 세분화하고, 이 그룹을 분석하여 다양한 고객 클래스를 식별하고 분류할 수 있습니다(예: 고가치-저량, 빈번한 소량 구매자 등). 그런 다음 이러한 분류를 사용하여 군집화 결과의 관찰에 레이블을 지정하고, 새 고객이 속할 수 있는 고객 범주를 예측하는 분류 모델을 훈련할 수 있습니다.