[나의 한줄 추천사]
머신러닝 어플리케이션의 전체 Life Cycle 경험하고 싶다면 이책을 보라
[책 추천 이유]
머신러닝 어플리케이션을 만들기 위해서 아이디어 부터 구현 배포 후 관리까지 중요 포인트를 “머신러닝 에디터” 어플리케이션 머신러닝 구축 "파이프라인" 만들어 보면서 뜬구름 잡지 않고, 직접 체험해 볼 수 있게끔 구성되어 있다. 무엇보다도 "박해선" 님이 옮기 셨기 때문에 믿고 봐도 된다.
[내가 찾고자 했던 질문들]
1.모델 실패를 감지하는 하는 방법은?
- 모델의 신뢰도 출력이 정확한지 여부를 추정한다.
분류모델 같은 경우 신뢰로를 추정하는데 사용할 수 있는 확률을 제공한다. 확률이 잘 보정되어 있다면, 모델이 불확실하게 판단하는 샘플을 감지하여 이 샘플의 결과를 사용자에게 제공할지 결정할 수 있다.
- 메인 모델이 실패할 것 같은 샘플을 감지하는 또 다른 모델을 만든다.
"필터링 모델"을 만들어서 앞단에서 메인 모델을 타기전에 다른 방법으로 처리할지에 대해서 판단하여 오류를 최소화시킨다.
2.모델의 재학습 주기는?
- 대부분의 모델은 일정수준의 성능을 유지하기 위해 정기적으로 업데이트해야 한다. 모델이 더 이상 최신이 아니어서 재학습이 필요할 때를 "정확도 모니터링"이 감지할 수 있다. "정확도"가 일정부분이 떨어지고 있다면, 재학습이 필요한 시점이므로, 정확도 임계치 모니터링을 통해 정할 수 있다.
3.수정된 모델을 안전하게 평가하는 방법은?
- 현재의 모델을 일단 유지하면서, 동시에 수정된 모델도 같이 추론하는 "Shadow mode" 로 모델을 배포한다. 하나의 쿼리로 "기존모델", "수정모델" 동시에 추론시키고, "기존모델"의 로그와 "수정모델"의 로그를 비교 평가하여 "수정모델"을 사용할지 결정하는 방법이 있다.
4.데이터 학습할 때 고려해야할 질문들은?
- 사용하고 있는 데이터를 어떻게 수집했나요?
데이터 소유권 문제 (유럽 GDPR 규정), 데이터 편향
- 이 데이터셋으로부터 모델이 어떤 가정을 만든나요?
- 이 데이터셋이 유용한 모델을 만들기에 충분한 대표성을 띠고 있나요?
테스트 세트에 모든 사용자의 유형을 대표하는 샘플을 포함해야한다.
- 훈련한 모델이 어떻게 잘못 사용될 수 있나요?
피드백 루프에 빠질 수 있다.
- 예상하는 모델의 사용 범위는 무엇인가요?
5.좀더 알고 싶다면?
https://github.com/hundredblocks/ml-powered-applications
"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."
https://github.com/hundredblocks/ml-powered-applications