컴퓨터에 위키백과 문서를 모두 저장했다고 하자. 이 경우 컴퓨터는 단지 데이터를 더 많이 보관하게 된 것일 뿐이다. 하지만 그렇다고 해서 컴퓨터의 지능이 높아지는 것은 아니다. 머신러닝은 단순히 데이터를 저장하는 것이 아니라, 저장된 데이터를 학습해서 컴퓨터의 능력을 향상시키는 과정을 의미한다.
1.1머신러닝 활용¶
1.1.1전통적 프로그래밍¶
전통적인 프로그래밍은 일정한 과정을 따라 진행된다. 먼저 문제 연구 단계에서 해결해야 할 문제를 분석하고, 이를 해결할 수 있는 알고리즘을 연구한다. 다음으로 규칙 작성 단계에서는 연구된 알고리즘을 실제 코드로 구현한다. 이후에는 평가 단계가 이어지는데, 이 단계에서는 구현된 프로그램을 테스트하여 올바르게 작동하는지 확인한다. 테스트를 통과하면 프로그램은 실전 배치된다. 그러나 테스트에 실패할 경우, 발생한 오차를 분석한 뒤 다시 문제 연구 단계로 돌아가 알고리즘을 수정하고 개선하는 과정을 반복한다.

예를 들어, 전통적인 프로그래밍 방식으로 구현된 스팸 메일 분류기는 특정 단어가 이메일 제목에 포함되면 스팸으로 처리하도록 규칙을 작성한다. 개발자는 직접 코드에 조건문을 넣어 “제목에 ‘무료’, ‘당첨’, ‘신용카드 정보’, ‘광고’ 등이 있으면 스팸으로 분류하라”는 규칙을 명시한다.
if "무료" in subject or "당첨" in subject or "신용카드 정보" in subject:
label = "spam"
else:
label = "ham"이처럼 규칙을 코드로 작성해두면 초기에는 잘 작동한다. 하지만 프로그램이 실제로 운영된 이후 새로운 스팸 단어가 등장하면 기존 규칙만으로는 제대로 분류하지 못한다. 따라서 개발자가 매번 새로운 규칙을 추가하거나 수정해야 하며, 이로 인해 유지 보수가 매우 어렵다.
1.1.2머신러닝 프로그래밍¶
스팸으로 지정된 메일에 ‘무료’, ‘당첨’, ‘신용카드 정보’, ‘광고’, ‘투^^자’, ‘무❤료’ 등의 표현이 자주 등장하는 경우 새로운 메일에 그런 표현이 사용되면 자동으로 스팸으로 분류하도록 스스로 학습하는 프로그램인 머신러닝 모델을 작성한다.

스팸 메일 분류 머신러닝 모델의 학습은 스팸 메일과 아닌 메일의 구분법을 학습하기 위해 다량의 스팸 메일과 스팸이 아닌 메일로 구성된 훈련셋을 활용한다. 학습이 완료된 스팸 메일 분류 머신러닝 모델은 새로운 이메일에 대해 학습된 정보를 이용하여 스팸인지 아닌지 판별한다.
머신러닝 프로그램 학습 과정의 자동화
머신러닝 모델의 훈련 과정을 관리하는 머신러닝 파이프라인 또는 MLOps(Machine Learning Operations, 머신러닝 운영) 의 자동화가 가능하다. MLOps를 활용하면 기존에 학습되지 않은 새로운 종류의 스팸 메일이 많이 신고되는 경우 신고된 스팸 메일의 내용을 분석한 다음에 스팸 메일 분류 모델을 새로운 훈련셋을 이용하여 훈련시키는 과정을 자동화할 수 있다.

머신러닝 프로그래밍의 장점
머신러닝 프로그래밍은 전통적인 규칙 기반 접근 방식으로는 유지보수가 어렵거나 해결하기 힘든 문제들을 보다 효율적으로 다룰 수 있게 한다. 예를 들어, 스팸 메일 분류기는 수많은 규칙을 직접 작성해야 하는데, 머신러닝을 활용하면 이러한 복잡한 규칙을 자동으로 학습하여 훨씬 간단하게 구현할 수 있다.
또한 음성 인식처럼 전통적인 방식으로는 지나치게 복잡한 문제도 머신러닝을 통해 해결할 수 있다. 머신러닝 모델은 새로운 환경과 데이터에 쉽게 적응할 수 있어 변화하는 상황에서도 유연하게 대응할 수 있는 시스템을 개발할 수 있다.
마지막으로, 머신러닝은 복잡한 문제와 방대한 데이터를 분석하여 기존 방식으로는 얻기 어려운 깊은 통찰을 제공한다. 이는 빅데이터 시대에 특히 중요한 장점으로, 데이터 속에 숨겨진 패턴과 의미를 발견하는 데 큰 도움을 준다.

1.2머신러닝 활용 사례¶
아래 그림은 다양한 분야에서 활용되고 있는 머신러닝 기술의 대표적인 활용 사례들을 시각적으로 정리한 인포그래픽입니다.

1.3머신러닝 모델 유형¶
머신러닝 모델은 학습 유형, 작업 내용, 학습 방식, 모델링 방식 등에 따라 구분되며, 아래 표에 정리되어 있다.
| 학습 유형 | 과제 | 학습 방식 | 모델링 방식 | 기타 |
|---|---|---|---|---|
| 지도 학습 | 회귀 | 배치 학습 | 사례 기반 | 전이 학습 |
| 자기 지도 학습 | 분류 | 온라인 학습 | 모델 기반 | 앙상블 학습 |
| 준지도 학습 | 군집화 | ... | ||
| 비지도 학습 | 차원 축소 | |||
| 강화 학습 | 이상치 탐지 | |||
| 신규 데이터 탐지 |
이 강의노트에서는 아래 유형의 모델을 다룬다.
학습 유형: 지도 학습, 비지도 학습
과제: 회귀, 분류, 군집화, 차원 축소, 이상치 탐지
학습 방식: 배치 학습
모델링 방식: 모델 기반
기타: 앙상블 학습
언급된 학습 유형인 지도 학습과 비지도 학습에 대한 좀 더 자세한 설명과 대표 과제는 다음과 같다.
| 유형 | 설명 | 대표 과제 |
|---|---|---|
| 지도학습 | 입력과 정답 데이터를 함께 제공 | 회귀, 분류 |
| 비지도학습 | 정답 없이 입력 데이터만 사용 | 군집화, 차원 축소, 이상치 탐지 |
학습 방식, 모델링 방식, 기타 (앙상블 학습)으로 활용되는 모델의 특징과 예제는 다음과 같다.
| 알고리즘 | 특징 | 활용 모델 예제 |
|---|---|---|
| 모델 기반 학습 | 비용 함수를 최소화하여 최적의 모델 학습 | 선형 회귀, 로지스틱 회귀, 릿지/라쏘 회귀 |
| 배치 학습 | 전체 데이터를 한 번에 학습해 안정적인 결과 도출 | 선형 회귀 |
| 앙상블 학습 | 여러 모델을 결합하여 예측 정확도를 높임 | 랜덤 포레스트, XGBoost |
1.4머신러닝 모델 훈련의 어려움¶
머신러닝 모델을 훈련할 때 경험할 수 있는 어려운 점들은 기본적으로 훈련에 사용되는 훈련 데이터 또는 모델 자체의 학습 알고리즘 둘 중에 하나에 기인한다.
데이터 문제
충분치 않은 양의 훈련 데이터: 머신러닝 알고리즘을 제대로 학습시키려면 많은 양의 데이터가 필요하다. 이미지 분류, 자연어 처리 등의 문제는 수백, 수천만, 수억, 수십억 개가 필요할 수도 있다.
저품질 훈련 데이터: 편향되거나 잘못 측정된 값 등 머신러닝 알고리즘에 나쁜 영향을 미치는 데이터가 포함될 수 있다.
특성 공학: 해결하는 문제에 관련이 높은 데이터의 특성을 파악해 내야 성능이 좋은 모델을 학습시킬 수 있다.
모델 학습 알고리즘 문제
과대 적합 발생: 모델이 학습에 사용된 훈련셋에 너무 특화되어 실전에서 제대로 성능이 발휘되지 못하는 현상이 발생한다.
과소 적합 발생: 모델 학습이 제대로 진행되지 못하는 현상이 발생할 수 있다. 이 경우엔 모델의 학습 알고리즘의 문제일 가능성이 높지만 훈련 데이터셋의 문제일 수도 있다.
1.5삶의 만족도 예측¶
1.5.1데이터셋¶
OECD(경제협력개발기구) 국가의 구매력 기준 1인당 국내 총생산GDP per capita와 해당 국가 국민의 삶의 만족도Life Satisfaction 사이의 관계를 머신러닝 모델을 활용하여 확인한다.
모델 학습을 위해 2020년 기준으로 OECD 회원국 40개 국가와 비회국 3개 국가 등 총 40개 국가를 대상으로 조사된 국가별 1인당 GDP와 삶의 만족도 데이터를 활용한다.
| 지역 | 회원국 | 기타 (비회원국) |
|---|---|---|
| 유럽 | 오스트리아, 벨기에, 체코, 덴마크, 에스토니아, 핀란드, 프랑스, 독일, 그리스, 헝가리, 아이슬란드, 아일랜드, 이탈리아, 라트비아, 리투아니아, 룩셈부르크, 네덜란드, 노르웨이, 폴란드, 포르투갈, 슬로바키아, 슬로베니아, 스페인, 스웨덴, 스위스, 튀르키예, 영국 | 브라질 |
| 북미 | 캐나다, 미국, 멕시코 | 러시아 |
| 아시아-태평양 | 일본, 한국, 호주, 뉴질랜드 | 남아프리카공화국 |
| 중남미 | 칠레, 콜롬비아 (2020년 가입) | |
| 중동 | 이스라엘 |
아래 표는 데이터셋에 포함된 7개 국가의 1인당 GDP와 삶의 만족도를 예제로 보여준다. 1인당 GDP는 미국 달러를 기준으로 계산되었으며, 삶의 만족도는 0부터 10 사이의 소수점을 갖는다.
| Country | GDP per capita (USD) | Life Satisfaction |
|---|---|---|
| Turkey | 28,384.99 | 5.5 |
| Hungary | 31,007.77 | 5.6 |
| France | 42,025.62 | 6.5 |
| South Korea | 42,251.45 | 5.9 |
| Australia | 48,697.84 | 7.3 |
| Denmark | 55,938.21 | 7.6 |
| United States | 60,235.73 | 6.9 |
머신러닝 모델을 훈련시킬 때 발생할 수 있는 과대적합 문제를 설명하기 위해 고의로 9개 국가의 데이터를 데이터 셋에서 제외시키고 훈련 시킬 때와 그렇지 않을 때를 비교한다. 제외 대상 국가는 남아프리카 공화국, 콜롬비아, 브라질, 멕시코, 칠레, 노르웨이, 스위스, 아일랜드, 룩셈부르크 등이다.
아래 그래프는 40개 국가 중에서 언급된 9개 국가를을 제외한 국가별 1인당 GDP와 삶의 만족도의 관계를 산점도로 보여준다. 국가의 1인당 GDP가 증가할 수록 삶의 만족도가 선형적linear으로 증가하는 경향이 보인다.

1.5.2선형 회귀 모델¶
국가의 1인당 GDP가 증가할수록 해당 국가 국민의 삶의 만족도가 선형적으로 높아진다는 가정을 바탕으로, 1인당 GDP가 알려진 국가의 삶의 만족도를 예측하는 선형 회귀 모델linear regression model을 학습시킨다. 선형 회귀 모델이라 함은 다음과 같은 일차 방정식을 이용하여 주어진 1인당 GDP에 대해 삶의 만족도를 예측하는 알고리즘을 의미한다. 즉, 선형 회귀 모델은 한 국가의 1인당 GDP가 주어졌을 때 아래 모양의 1차 함수를 이용하여 계산된 값을 해당 국가의 삶의 만족도로 예측한다.
선형 회귀 모델의 예측 성능은 방정식에 사용된 절편 와 기울기 에 따라 결정된다. 예를 들어, 아래 그림은 1인당 GDP와 삶의 만족도 사이의 선형 관계를 적절하지 않게 모델링하는 세 가지 선형 회귀 모델을 시각적으로 비교한 것이다. 파란색 선으로 표현된 모델은 1인당 GDP와 삶의 만족도 사이의 양의 상관관계를 어느 정도 반영하지만, 데이터 분포와 완전히 일치하지는 않아 예측 정확도가 높다고 보긴 어렵다.

1.5.3선형 회귀 모델 학습¶
선형 회귀 모델이 정확한 예측값을 계산하려면 사용하는 절편 와 기울기 이 적절해야 한다. 이러한 최적의 파라미터(, )를 찾는 과정을 바로 모델 학습이라고 한다.
아래 그림은 학습을 통해 얻어진 절편과 기울기를 갖는 직선을 그래프로 나타낸 것으로, 제대로 학습된 선형 회귀 모델의 결과를 보여준다.

1.5.4과대적합¶
머신러닝 알고리즘을 훈련시키다보면 다양한 어려움에 부딪힌다. 여기서는 선형 회귀 모델이 훈련셋에 민감하게 반응하는 과대적합 현상을 살펴 본다.
앞서 제외시킨 9개 국가의 데이터를 포함해서 선형 회귀 모델을 훈련시켜 보자. 9개 국가는 1인당 GDP가 23,500 달러 이하 또는 62,500 달러 이상인 경우에 해당하며, 제외된 9개 국가의 데이터는 다음과 같다.
| Country | GDP per capita (USD) | Life Satisfaction |
|---|---|---|
| South Africa | 11,466.19 | 4.7 |
| Colombia | 13,441.49 | 6.3 |
| Brazil | 14,063.98 | 6.4 |
| Mexico | 17,887.75 | 6.5 |
| Chile | 23,324.52 | 6.5 |
| Norway | 63,585.90 | 7.6 |
| Switzerland | 68,393.31 | 7.5 |
| Ireland | 89,688.96 | 7.0 |
| Luxembourg | 110,261.16 | 6.9 |
언급된 9개 국가를 포함해서 모두 40개 국가를 대상으로 선형 회귀 모델을 새롭게 학습시키면 아래 그림의 검은 직선과 같은 새로운 절편과 기울기를 최적값으로 찾게 되며, 이전의 경우와 크게 다름을 바로 알 수 있다.

결론적으로, 9개 국가를 포함하는 경우와 그렇지 않은 경우에는 상당히 다른 선형 회귀 모델이 훈련된다. 이처럼 모델 훈련 결과가 훈련에 사용된 데이터셋에 민감하게 반응하는 현상을 과대적합overfitting이라 한다.
1.5.5모델 규제¶
선형 회귀 모델뿐만 아니라, 머신러닝의 어떤 모델이든 훈련 과정에서 과대적합에 빠질 위험이 존재한다. 이러한 현상은 모델이 훈련 데이터의 특성 또는 이상치 등의 노이즈에 민감하게 반응하여 예측값을 도출할 때 발생한다.
이를 방지하기 위해 모델의 훈련 데이터에 대한 민감도를 줄이는 규제regularization를 가하는 기법을 적용한다. 예를 들어, 선형 회귀 모델에 규제를 적용한 대표적인 알고리즘이 바로 릿지 회귀Ridge Regression 모델이다.
릿지 회귀 모델은 선형 회귀 모델의 과대적합을 완화시키는 규제가 추가된 선형 회귀 모델이며, 아래 그래프는 9개 국가를 제외하고 훈련시켰음에도 불구하고 릿지 회귀 모델(파란색 파선)의 예측 성능이 전체 국가를 대상으로 학습한 선형 회귀 모델(검은색 실선)과 큰 차이가 없음을 잘 보여준다.

결과적으로 규제가 적용된 모델은 훈련 데이터에 대한 성능은 조금 낮아질 수 있지만, 훈련된 모델의 데이터에 대한 민감도는 약해진다. 하지만 이는 훈련된 모델의 새로운 데이터에 대한 예측 성능인 일반화 능력을 향상시킨다.
성공적인 머신러닝 모델 훈련을 위해서는 다음 두 가지 사항을 동시에 충족해야 한다.
훈련 데이터셋에 대한 예측 오차를 최소화해야 한다.
과대적합을 방지하여 새로운 데이터에 대한 일반화 성능을 높여야 한다.
1.6연습문제¶
(1) 아래 질문에 답하라.
머신러닝이란?
가장 흔한 두 가지 지도학습 과제는?
대표적인 세 가지 비지도학습 과제는?
과대적합이란?
(2) (코드 워크아웃) 머신러닝 소개 내요을 학습하라.