안녕하세요. 데이터 요리사, 루나입니다.
1 | 머신러닝이란? |
머신러닝(Machine Learning)은 말 그대로 기계(Machine)가 학습(Learning)을 하는 것입니다.
사람이 책을 읽고 문제집을 풀어가면서 이론을 익혀나가듯이, 기계는 수많은 데이터를 읽어들여서 그 안에 숨겨진 패턴을 찾고, 문제를 해결할 수 있는 알고리즘을 찾아나갑니다. 이렇게 주어진 데이터를 분석해서 문제해결 솔루션을 만들어내는 과정을 기계학습, 즉 머신러닝이라고 합니다.
기존에 프로그래밍을 작성해본 경험이 있는 사람이라면, 위의 그림이 쉽게 이해가 될 것입니다. 프로그래머가 작성하던 코드를 머신러닝이나 딥러닝에서는 기계가 스스로 찾아냅니다. 프로그래머의 역할이 바뀌게 되는거죠. 머신러닝을 개발하는 개발자는 기계가 스스로 학습할 수 있도록 환경을 구성해주는 역할을 해줍니다. 데이터를 잘 정제해주고, 어떠한 과정을 통해서 학습하라는 명령을 내려주는거죠.
2 | 머신러닝 절차 |
기계가 어떤 절차를 거쳐서 학습을 하는지 살펴보면 아래와 같습니다.
2-1 | 문제 정의 |
아마 머신러닝을 하려고 마음먹었다면 어딘가에 어마무시하게 데이터가 쌓여있을 겁니다. 이 데이터로 내가 얻고자 하는게 무엇인지 정의를 합니다. 예를 들어서 체중 관리를 하고 있는 사람이 매일 기록한 건강관련 데이터가 있다고 합니다. 언제 어떤 음식을 먹었고, 몇 칼로리나 되고, 어떤 영양성분인지, 어떤 운동을 했는지, 체중은 몇 kg였는지 등등요. 이 데이터로 내가 알고 싶은것은 체중과 섭취 칼로리와의 상관관계인가요? 나의 미래 체중을 예측하고 싶은 것일까요? 아니면 이렇게 먹고 운동하면 전날 대비 체중이 증가하는지 감소하는지 알고 싶은 건가요?
내가 이 데이터를 활용해서 얻고자 하는게 무엇인지 정의를 해야합니다. 대부분의 문제는 '분류' 혹은 '회귀' 문제로 정의됩니다. 문제를 명확하게 정의해야 어떤 데이터를 사용할지, 어떤 알고리즘을 사용해야하는지, 평가 기준은 어떻게 해야할지 결정할 수 있습니다.
2-2 | 데이터 전처리 |
데이터 전처리는 기계가 학습하기 좋게 데이터를 잘 정돈하는 과정입니다. 우선 내가 가지고 있는 데이터가 얼마나 있는지, 어떤 경향성을 있는지 파악하는 것이 필요하겠죠? 그런 과정을 탐색적 데이터 분석(EDA)라고 합니다. 평균적으로 체중이 얼마나 나가는 사람이지? 보통 몇 칼로리나 먹고 있지? 중간중간 기록을 안한 날은 얼마나 되지? 등등 세밀한 데이터 분석을 진행하기 전에 탐색적으로 데이터를 이해하는 과정입니다. EDA에서는 데이터의 통계값이나 그래프를 사용한 시각화 기법을 주로 사용합니다.
탐색적으로 데이터를 살펴보고 이해한 다음에는 본격적으로 데이터 전처리 작업이 들어가야합니다. 데이터 타입을 변환하거나 컬럼을 합치거나 쪼갤 수도 있구요, 잘못된 값이나 결측치가 있을 때에는 값을 삭제하거나 적절하게 변환하는 등의 작업이 필요합니다. 데이터 전처리 과정이 머신러닝의 70%를 차지한다고 해도 과언이 아닐정도로 많은 시간이 소요되고, 중요한 과정입니다.
사람의 학습과정으로 비유하자면 데이터 전처리과정은 본격적으로 암기하기 전에 공부할 자료를 정리하고 요약 노트를 작성하는 과정이라고 할 수 있겠네요.
2-3 | 학습 |
데이터 전처리가 끝났다면 본격적으로 기계는 학습을 진행합니다. 앞서 첫번째 단계에서 정의한 문제의 형태에 따라 사용하는 학습 알고리즘이 달라집니다. 내가 체중을 예측하는 문제를 풀고자 했다면 Regressor를 사용한 회귀식을 사용할 것이고, 체중이 증가/감소 하는지 분류를 하고자 했다면 Classifier를 사용한 분류기를 만드는 알고리즘을 설정해야합니다. 문제의 형태에 따라 알고리즘을 선택하고, 기계에게 전처리한 데이터를 넣어서 학습을 시킵니다. 이 과정에서 개발자가 해주어야하는 역할은 학습 성능이 잘 나오도록 환경을 셋팅해주는 것입니다. 한번에 학습시킬 데이터의 수를 조절해준다던가, 알고리즘에서 설정해주어야하는 값들을 조절해주는 등의 일을 해주는데 이런 과정을 하이퍼파라미터 튜닝이라고 합니다.
2-4 | 모델평가 |
마지막으로 모델 평가 과정입니다. 학습을 통해서 기계가 만들어낸 산출물을 '모델'이라고 칭하겠습니다. 이 모델이 얼마나 성능이 좋은지 확인하는 과정입니다. 공부를 했다면, 정말로 잘 했는지 시험을 보는 과정이죠. 이 때 테스트를 하기 위해서는 학습에서 사용했던 데이터가 아닌 다른 데이터를 사용해야합니다. 즉, 내가 가지고 있는 모든 데이터를 학습과정에서 사용하는 것이 아니라 평가를 위해서 일부 남겨두어야합니다.
함께 보면 좋은 글 |
※ 이 글의 내용을 상업적으로 무단 활용, 편집하는 것은 금지하고 있습니다. 강의, 출판 등 상업적 이용이 필요하신 경우, 문의 바랍니다.
'머신러닝' 카테고리의 다른 글
머신러닝 분류 모델의 평가 지표 - 정확도, 정밀도, 재현율, 민감도, F1 스코어 (0) | 2023.07.14 |
---|---|
[머신러닝] 분류 알고리즘 한 페이지 정리(로지스틱회귀, SVM, KNN, 결정트리, 앙상블) (0) | 2021.11.30 |
[머신러닝] - 문제 정의하기, 지도학습, 비지도학습이란? (1) | 2021.01.26 |