머신러닝에서 알고리즘의 성능보다 중요한 것은 학습 데이터의 질이다.
인공지능과 머신러닝
인공지능은 사람의 지능을 모방하여 사람의 행동을 기계가 구현하도록 하는 모든 기술을 말한다.
가장 상위의 개념인 인공지능 안에는 머신러닝과 딥러닝이 존재한다.
기계가 스스로 데이터를 기반으로 패턴을 학습하여 결과를 추론하는 것이 머신러닝이며,
그 중에서도 인공 신경망(Deep Neural Networks) 기반의 딥러닝 방식이 각광을 받고 있다.
딥러닝 방식은 주로 이미지, 음성, 비디오 등 비정형 데이터를 다루는 데 집중되어 있다.
기존의 머신러닝 알고리즘은 어느 시점부터는 데이터의 양이 많아져도 퍼포먼스가 일정하다.
반면, 딥러닝의 경우 데이터의 양이 많으면 많을수록 퍼포먼스가 향상된다.
딥러닝이 각광 받고 있는 이유이다.
머신러닝은 하루 아침에 등장한 개념이 아니다.
오래된 역사를 가지고 있지만, 지금은 풍부한 데이터와 결합하여 그 중요성이 더욱 부각되고 있다.
머신러닝에 사용되는 데이터의 양과 질은 알고리즘의 성능에 매우 크게 관여한다.
빅데이터 산업은 머신러닝과 떼려야 뗄 수 없는 관계에 놓여 있다.
머신러닝의 종류
머신러닝의 종류에는 지도 학습, 비지도 학습, 강화 학습이 있다.
포스팅과 실습에서는 지도 학습과 비지도 학습, 특히 지도 학습을 위주로 살펴본다.
1) 지도 학습
- 레이블(정답)이 있는 데이터로 학습
- 미래 데이터 분류, 예측
지도 학습의 경우 기계는 사전에 제공된 정답 데이터를 바탕으로 규칙과 패턴을 학습한다.
분류(classification)와 회귀(regression) 모델이 지도 학습 모델에 해당한다.
각각 데이터의 패턴을 학습한 후 데이터를 분류하거나 입력 데이터의 결과값을 예측해낸다.
2) 비지도 학습
- 레이블 없이 학습
- 데이터의 숨겨진 구조나 특징을 발견
비지도 학습의 경우 주어진 데이터에 대한 정답이 제공되지 않는다.
기계가 직접 데이터의 패턴과 분류 기준을 찾고 비슷한 유형의 데이터를 묶는다.
비지도 학습의 예시로는 군집화(clustering)가 있다.
군집화는 같은 군집 안의 데이터 간, 서로 다른 군집 데이터 간 유사도를 측정한다.
군집 내부의 유사도가 높고 군집 간의 유사도가 낮은 경우 군집화가 잘 되었다고 말한다.
위 예시는 쉽게 구분이 가능하지만, 실제 유사도 측정에는 수학적인 개념이 굉장히 많이 요구된다.
3) 강화 학습
- 보상 시스템으로 학습
- 의사결정을 위한 최적의 행동 선택 (ex: 알파고)
데이터의 중요성
지금까지 머신러닝 알고리즘의 성능을 높이기 위한 많은 노력이 이루어져 왔다.
그러나 알고리즘의 성능보다 더 중요한 것은 머신러닝에 사용되는 데이터의 질이다.
현재 대부분의 알고리즘이 이미 비슷한 성능을 내고 있으며,
앞서 언급했듯이 데이터의 양만 많아진다고 해서 알고리즘의 성능이 좋아지는 것도 아니다.
따라서 편향되지 않고 정제가 잘 되어있는 데이터를 확보하는 것이 매우 중요하다.
머신러닝 전문가 Andrew Ng 교수는 데이터 중심의 AI(Data-Centric AI)를 강조한다.
아래는 관련 영상의 링크이다.
https://www.youtube.com/watch?v=06-AZXmwHjo
교수는 AI 시스템의 성능을 이렇게 표현한다.
AI System = Code(Model) + Data
그런데 아래 표를 보면 AI 시스템을 향상시키기 위해 모델을 개선하는 것은 효과가 크지 않다.
Data-Centric AI는 Model-Centric AI와 비교해 성능 개선의 효과가 큰 것을 확인할 수 있다.
알고리즘의 퍼포먼스 향상을 위해 모델을 개선하는 것보다 데이터를 개선하는 것이 효과적이다.
작은 데이터일수록 Label Consistency가 더욱 중요하다.
데이터의 양이 적더라도 정답 데이터가 잘 정제되어 있으면 좋은 성능을 낼 수 있다.
또 정제가 잘 안 되어 있어도 데이터의 양이 많으면 어느 정도는 성능이 보장된다.
그러나, 정제되지 않은 small data로는 거의 예측이 불가능하다.
학습 데이터의 양에 따른 머신러닝 알고리즘의 예측 정확도를 측정해보면,
Noisy Data 1500개의 성능이 Clean Data 500개로 낼 수 있는 성능에 못 미친다.
여기까지 머신러닝 개념 설명을 마치고,
다음 포스팅에서 싸이킷런(Scikit-learn) 라이브러리로 간단한 머신러닝 모델을 구현할 것이다.
'2022 데이터 사이언스 > 빅데이터 분석과 모델링' 카테고리의 다른 글
09. 교차 검증: cross_val_score, GridSearchCV (0) | 2022.06.20 |
---|---|
08. 머신러닝 라이브러리: Scikit-learn (0) | 2022.06.20 |
06. 데이터 시각화: matplotlib, seaborn (0) | 2022.06.20 |
05. Pandas(4): 타이타닉 예제 (0) | 2022.06.20 |
04. Pandas(3): 데이터 합치기 (0) | 2022.06.13 |