2.1 비즈니스와 머신러닝의 목적
ML 프로젝트에서 데이터 과학자들은 ML 모델 성능을 측정하는 지표를 ML의 목적으로 보고 큰 관심을 기울이곤 한다.
데이터 과학자들은 비즈니스 지표는 고려하지 않고 ML 지표에 매달리는 경향이 있다.
그러나 기업들이 관심을 가지는 지표는 주주의 이익 극대화, 직간접적 이윤 증가 등 비즈니스 지표로
서로 일치하지 않아 프로젝트가 조기에 중단되기도 한다.
비즈니스 조직 내에서 ML 프로젝트가 성공하려면 ML 시스템 성과와 비즈니스 성과를 연결해야 한다.
EX) 광고 클릭율 예측, 이상 거래 탐지와 같은 예시가 ML 모델 성능과 비즈니스 지표와
연결하기 쉬워 인기있는 ML의 가장 인기 있는 유스 케이스 이다.
많은 회사들이 비즈니스 지표를 ML 지표에 연결하기 위해 자체 지표를 만든다.
EX ) 넷플릭스는 추천 시스템의 성능을 채택률로 사용한다.
추천 시스템의 채택률로 다른 비즈니스 지표도 고려한다.
=> 채택률이 높을 수록 스트리밍 시간이 높고 구독취소율이 낮다는 사실을 발견했다.
ML프로젝트가 비즈니스 목적에 미치는 영향은 추론하기 어려울 수 있다.
모델의 ML 지표와는 상관없이 비즈니스 지표가 더 우수한 쪽의 모델을 선택하곤 한다.
많은 기업에서 AI가 유용한지 상관없이 'AI 기반' 이라는 문구가 고객 유치에 도움이 되기에 ML을 사용하곤 한다.
하지만 ML이 비즈니스를 변화 시킬 순 있지만 하루아침엔 불가능하다.
ML 관련한 투자 수익은 ML을 도입이후 성숙 단계(운영한지 5년)에 다다라서야 눈에 띄기 시작한다.
ML을 도입한 기간이 길수록 파이프라인이 효율적으로 실행되고 개발주기가 빨라지며
엔지니어링 시간과 클라우드 비용이 줄어들어 수익이 높아지게 된다.
________________________________________________________________________________________________
2.2 머신러닝 시스템 요구사항
신뢰성
시스템은 다양한 문제 상황, 하드웨어나 소프트웨어 결함 혹은 사람에 의한 오류가 발생해도
목표 성능을 만족하면서 지속적으로 기능을 수행해야 한다.
확장성
ML시스템은 다양한 방식으로 확장 가능하다. 복잡도가 증가하기도 한다.
ML 시스템 트래픽 양이 증가하기도 한다.
때때로 ML시스템에서 관리하는 ML 모델 개수가 증가한다.
시스템 복잡도가 증가하든, 트래픽 양이 증가하든, ML 모델 개수가 증가하든 상관없이
규모 증가를 처리할 방법이 필요하다.
확장성을 이야기 할 때 자원 스케일링을 생각한다.
자원 스케일링에는 업 스케일링 / 다운 스케일링이 있다.
업 스케일링 : 규모가 증가할 때 사용하는 자원 확장
다운 스케일링 : 자원이 필요하지 않을 때 사용하는 자원 축소
오토 스케일링 : 많은 클라우드 서비스의 중요한 기능, 사용양에 따라 자동으로 확장하거나 축소한다.
유지 보수성
ML 시스템에는 다양한 직군이 있고 사용하는 프로그래밍 언어, 도구도 다르고,
직군마다 프로세스에서 서로 다른 부분을 맡고 있다.
이때 워크로드를 구조화하고 인프라를 설정하는 일이 중요하다.
모두에게 특정 도구를 사용하도록 강요하는 대신 각자 편한 도구를 사용해서 작업할 수 있도록 한다.
코드는 문서화하고 코드, 데이터, 아티팩트는 버전을 관리 해야한다.
모델은 원작자 없이도 다른 작업자가 충분히 재현 가능해야 한다.
적응성
시스템은 변화하는 데이터 분포와 비즈니스 요구 사항에 적응할 수 있어야 한다.
그러려면 성능 향상에 영향을 주는 요소를 찾아낼수 있어야 하며 서비스 중단없이 업데이트가 가능해야 한다.
________________________________________________________________________________________________
2.3 반복 프로세스
ML 시스템 개발은 반복적이며 대부분 끝이 없는 프로세스이다.
시스템을 프로덕션 환경에 배포하면 지속적으로 모니터링하고 업데이트해야 한다.
1단계 : 프로젝트 범위 산정
프로젝트의 시작은 범위를 산정하고 목표, 목적과 제약 사항을 설정하는 일이다.
이해관계자를 파악해 참여시키고 사욯할 자원을 추정하고 할당한다.
2단계 : 데이터 엔지니어링
오늘날 ML 모델은 데이터를 학습하므로 ML모델 개발은 데이터 엔지니어링에서 시작한다.
3단계 : ML 모델 개발
초기 훈련 데이터셋으로 피처를 추출하고 해당 피처를 활용해 초기 모델을 개발한다.
4단계 : 배포
개발한 모델에 사용자가 접근할 수 있도록 합니다.
5단계 : 모니터링과 연속 학습
모델을 프로덕션 환경에 배포한 뒤에는 지속적으로 성능 저하를 모니터링하고, 변화하는 환경과 요구사항에 적응하도록 유지관리 해야 한다.
6단계 : 비즈니스 분석
모델 성능을 비즈니스 목표 관점에서 평가하고 분석해 비즈니스 인사이트를 추출한다. 여기서 얻는 인사이트를 바탕으로 비생산적인 프로젝트를 중단하거나 새로운 프로젝트의 범위를 산정한다.
________________________________________________________________________________________________
2.4 머신러닝 문제 구조화하기
2.4.1 머신러닝 작업 유형
모델 출력의 형태가 ML문제에 대한 작업 유형을 결정한다.
분류 vs 회귀
분류 모델은 입력을 여러 범주로 분류하고(이메일을 스팸 or 스팸이 아닌것으로 분류),
회귀 모델은 연속 값을 출력한다 (특정 주택 가격을 출력하는 주택 가격 예측 모델).
회귀모델은 분류 모델로, 분류모델은 회귀 모델로 쉽게 바꿔 구조화를 할 수 있다.
이진 분류 vs 다중 클래스 분류
분류문제는 분류할 클래스가 적을수록 단순하다. 특히 이진 분류는 분류 가능한 클래스가 두개이므로 가장 단순하다.
이진 분류 문제는 현업에서 흔히 보이는 문제 형태이다.
EX) 댓글이 악플인가, 폐 스캠에 암 징후가 있는가, 거래가 이상거래 인지 분류하는 작업 등
클래스가 많으면 다중 클래스 분류이다.
다중 클래스보다는 이진 분류문제가 훨씬 다루기 쉽다.
클래스가 많을 때는 계층적 분류가 유용하다.
분류기가 각 데이터 포인트를 상위 그룹 중 하나로 분류하고 또 다른 분류기가 이 데이터 포인트를 하위 그룹 중 하나로 분류한다.
클래스가 많으면 분류작업의 카디널리티가 고차원이라 이야기 한다.
카디널리티가 고차원인 문제는 매우 까다롭고, 가장 큰 문제는 데이터 수집이다.
(카티널리티 : 특정 데이터 셋의 고유한 값의 개수)
다중 클래스 vs 다중 레이블 분류
데이터 포인트가 여러 클래스에 동시에 속할수 있다면 다중 레이블 분류 문제이다.
EX) 기사가 금융주제와 정치주제 양쪽에 포함될 때
다중 레이블 분류 문제에는 두 가지 주요 접근법이 있다. 첫 번째는 다중 클래스 분류와 동일하게 처리하는 방법이다.
다중 클래스 분류에서 클래스가 [ 기술, 연예, 금융, 정치] 이고 데이터 포인트가 연예에 해당하면
데이터 포인트의 레이블을 벡터[ 0, 1, 0, 0]으로 표시한다.
만약 주제가 연예, 금융 모두 해당하면, [0, 1, 1, 0]으로 표시한다.
두 번째 접근법은 이진 분류 문제의 집합으로 바꾸는 방법이다.
기사 분류 문제의 경우 네 가지 주제 각각에 해당하는 네 가지 모델이 있고 각 모델은 기사가 해당 주제에 속하는 지 여부를 출력한다.
다중 레이블 분류는 기업에서 가장 많이 직면하는 문제유형이다.
다중 레이블 문제에서 데이터 포인트마다 속하는 클래스 수가 다를 수 있고,
레이블 다중성 문제가 증가하여 레이블링 작업이 어려워진다.
________________________________________________________________________________________________
2.4.2 목적함수
ML 학습 프로세스를 이끌어갈 목적함수가 필요하다. 목적 함수는 손실 함수라고도 한다.
일반적으로 학습 프로세스의 목적은 잘못된 예측으로 인한 손실의 최소화 또는 최적화하는 일이다.
지도 학습 ML에서는 손실을 계산할 때 모델 출력과 그라운드 트루스 레이블을 비교하며
평균 제곱근 오차나 교차 엔트로피 같은 측정값을 사용한다.
________________________________________________________________________________________________
2.5 지성 vs 데이터
지난 10년간의 발전과정에서 ML 시스템의 성공 여부는 주로 학습 데이터가 판가름 했다.
따라서 기업들은 대부분 ML 알고리즘 개선보다 데이터 관리와 개선에 집중했다.
지성은 귀납적 편향이나 지능적인 아키택처 설계로 지칭되기도 하며
데이터는 연산과 함께 묶여서 언급되곤 한다. 데이터가 많을수록 연산이 많이 필요하기 때문이다.
지성 중심 진영
주데아 펄 박사 : 그의 저서에 실린 서문의 제목이 ' 데이터보다 우위인 지성'이다.
서문에서 그는 " 데이터는 완전히 멍청하다." 라고 강조한다.
데이터에 크게 의존하는 ML 접근 방식에 크게 반발하며 데이터 중심의 ML 분야 종사자는
5년 안으로 일자리를 잃을 것이라 경고했다.
크리스토퍼 메닝 : 방대한 연산량과 데이터를 투입해도 단순한 학습 알고리즘만으로
성능이 매우 나쁜 학습 모델만 나올 것 이라 주장한다.
데이터 중심 진영
오늘날 ML분야에 일하는 다수는 데이터 중심 진영에 속한다.
리처트 서턴 교수 : 연구에서 연산을 활용하기보다 지능적 설계를 추구하면 쓰라린 교훈은 얻을 것이다.
연산을 활용하는 일반적인 접근 방식이 궁극적으로 가장 효과적이고 가장 큰 차이를 가져온다.
피터 노빅(구글 이사) : 구글 검색이 좋은 성능을 내는 이유는 대량의 데이터를 보유하는 것이 중요하다고 강조했다.
모니카 로카티 박사 : 데이터는 데이터 과학의 기초가 된다.
데이터 과학으로 제품이나 프로세스를 개선하려면 먼저 데이터를 양과 질 측면에서
문제없이 구축해야한다.
2.5 지성 vs 데이터 정리
어느쪽이 옳다고 밝혀지든 현제 데이터가 필수 요소임은 누구도 부인할 수는 없다.
최근 연구와 업계 동향은 ML의 성과가 데이터 양과 질에 점점 더 의존함을 보여준다.
하지만 지난 10년간 상당 부분 대량의 데이터를 통해 이뤄졌지만 데이터가 많다고 항상 모델 성능이 좋아지진 않았다.
________________________________________________________________________________________________
참고 : 머신러닝 시스템 설계 - 한빛 미디어
'머신러닝 시스템 설계' 카테고리의 다른 글
머신러닝 시스템 설계 - 8장 데이터 분포 시프트와 모니터링 요약 (0) | 2023.08.23 |
---|---|
머신러닝 시스템 설계 - 5장 피처 엔지니어링 요약 (0) | 2023.08.09 |