2023. 11. 22. 17:04ㆍTIL
데이터 기반 제품 개선이란?
데이터 과학자는 머신러닝을 통해 사용자들의 경험을 개선하는 일을 한다. 그래서 데이터 과학자는 머신러닝/인공지능에 대한 깊은 지식과 경험이 필요하고 코딩능력(파이썬, SQL), 통계/수학 지식도 가지고 있어야 한다. 먼저 문제에 따른 가설을 설정하고 데이터를 수집한 후, 예측 모델을 만들고 테스트(가능하면 A/B 테스트)한다. 모델은 짧은 사이클로 단순하게 시작하여 점점 고도화하는 것이 좋다. 만든 모델을 통해 데이터 기반 제품 개선을 하게 된다.
데이터 기반 제품 개선 케이스
머신 러닝 모델링의 예로는 개인화된 추천 엔진이 있다. 넷플릭스에서 컨텐츠를 추천해 주거나 아마존에서 사용자가 찾는 상품과 연관된 상품을 광고하는 것이 유명한 예시이다. 사기 결제 감시도 머신 러닝 모델링의 예시이다. 신용카드 회사와 협업하여 실제 사례를 수집하거나 이상값을 탐지하여 사람이 검토를 하는 방법으로 훈련 데이터를 수집한다. 수집한 데이터를 분석하면 비싼 상품을 세일하지 않는데도 바로 정가에 구매했다면 타인의 신용카드 도용을 의심할 수 있는 것과 같은 패턴을 발견할 수 있다. 다만 데이터를 수집할 때 편향되지 않게 주의해야 한다. 머신러닝을 통한 원격 환자 모니터링으로 환자 이상 징후를 예측하여 치료가 정말 필요한지 판단할 수 있다. 딥러닝을 이용해 사람 대신 몇 초만에 MRI를 분석도 할 수 있지만 만약 잘못된 진단이 생길 경우 책임소재가 모호하다는 한계도 있다.
머신러닝이란?
Machine Learning : 컴퓨터가 명시적으로 프로그래밍되지 않고 학습할 수 있는 기능을 제공하는 연구 분야
머신러닝은 컴퓨터가 데이터의 패턴을 학습하여 알고리즘과 기술을 개발하는 분야이다. 딥러닝은 머신러닝의 일부이며 AI는 머신러닝을 포괄한다. 머신러닝을 통해 최종적으로 만든 것이 머신러닝 모델이다. 머신러닝 모델은 알고리즘에 따라 특정 방식의 예측을 한다. 머신러닝의 종류에는 3가지가 있다.
- 지도 기계 학습(Supervised Machine Learning): 명시적 예제를 통해 학습(정답이 존재)
- 분류 지도 학습(Classification): 범주형 변수(이진 분류와 다중 분류)
- 회귀 지도 학습(Regression): 연속형 변수
- 타이타닉 승객 생존 여부 예측(승객 정보와 생존 여부를 트레이닝 셋으로 제공되고 이를 학습하여 생존 여부를 예측하는 모델 개발)
- 비지도 기계 학습(Unsupervised Machine Learning)
- 클러스터링이나 뉴스 그룹핑처럼 주어진 데이터를 몇 개의 그룹으로 분리
- GPT 같은 언어 모델(문장의 일부를 보고 비어있는 단어를 확률적으로 맞추는 모델)의 훈련
- 강화 학습(Reinforcement Learning)
- 알파고, 자율주행
ML 모델 개발 시 고려할 점
많은 데이터 과학자들은 R을 비롯한 다양한 툴로 모델을 개발하였으나 실제 프로덕션 환경은 다양한 모델들을 지원하지 못하였다. 데이터 엔지니어는 데이터 과학자가 개발한 모델을 이해하지 못했다. 결국 누군가 모델 개발부터 최종 배포까지 책임질 사람이 필요하다. 모델 개발은 시작이고 성공적인 프로덕션 배포가 최종적인 목표이므로 최종 배포하는 데이터 엔지니어와 소통하는 것이 중요하다. 개발된 모델이 바로 프로덕션에 배포 가능한 프로세스/프레임 워크가 필요하다. 툴을 통일한다면 제반과 배포 관련 프레임워크의 개발이 쉬워진다, 다양한 기업들이 머신러닝 전반 개발/배포 프레임워크를 개발하게 되었다(AWS SageMaker, Google Cloud, Azure 등). 데이터 과학자는 운영을 통해 점진적으로 모델을 개선해 나가야 하고 이로 인해 생긴 직군이 MLOps이다.
MLOps란?
모델 빌드, 배포, 모니터링 전체 프로세스를 자동화하는 직군이 MLOps 이다. 시간이 지나면서 훈련 데이터는 실제 환경의 데이터와 다르게 변화(Data drift)하는데 이를 모니터링하고 모델을 다시 빌딩해주는 일이 중요하다. DevOps가 개발자들이 만든 코드를 시스템에 반영(CI/CD)하고 시스템이 제대로 동작하는지 모니터링하는 일을 한다면 MLOps는 개발자 코드가 아닌 ML모델을 대상으로 계속해서 빌딩(CT) 및 배포하고 성능을 모니터링한다. MLOps 엔지니어는 데이터 엔지니어 기술, DevOps 엔지니어 기술, 머신러닝 경험/지식이 필요하다.
머신러닝 사용시 고려할 점
우선 데이터의 품질과 크기가 중요하다. 그리고 데이터로 인한 편향(bias)이 발생할 수 있으므로 윤리적인 부분도 고려해야 한다. 내부동작 설명이 가능해야 하며 데이터 권리를 생각해야 한다. AI의 발전에 따라 EU는 AI 관련 법규를 만들었다(감독, 견고성과 안전성, 개인정보 보호 및 데이터 거버넌스, 투명성, 다양성과 비차별성과 공정성, 사회/환경 친화적, 문제 발생 시 책임소재). 기업이 개인정보 보호를 잘못한다면 HIPAA나 GDPR/CCPA에 의해 처벌받을 수 있다. 한국의 경우 비디오를 통한 원격진료가 의사계의 반발로 표류되고 있다. AI가 발전함에 따라 세상이 변화하고 있지만 아직 기존 역할을 지키려고만 하고 있다. AI가 의사를 완전히 대체한다기보다 의사의 진단/치료의 정확성을 높이는데 보조적 역할을 할 수 있고 의사도 AI를 활용한다면 환자와의 대화나 공감에 더 많은 시간을 쏟을 수 있다.
공부하며 어려웠던 내용
머신러닝에 대해 공부하고 코딩없이 머신러닝을 실습해보았다. 실제로 머신러닝을 하려면 개발능력뿐만 아니라 통계/수학 지식이 깊어야 한다고 알고 있는데 이를 할 수 있을지 기대도 되고 걱정도 된다.
'TIL' 카테고리의 다른 글
| Excel을 활용한 다양한 데이터 분석 실습(1) (1) | 2023.11.27 |
|---|---|
| 데이터 분석 소개(5) (0) | 2023.11.24 |
| 데이터 분석 소개(4) (1) | 2023.11.23 |
| 데이터 분석 소개(2) (4) | 2023.11.21 |
| 데이터 분석 소개(1) (0) | 2023.11.20 |