케라스 창시자에게 배우는 딥러닝_6장

코넬·2023년 1월 18일
0

DeepLearning_Keras

목록 보기
6/13
post-thumbnail

일반적인 머신러닝 WorkFlow

머신러닝의 일반적인 워크플로는 크게 세 부분으로 구성된다.

작업 정의 : 문제 영역과 고객의 요청 이면에 있는 비즈니스 로직을 이해한다. 데이터를
수집하고, 데이터가 드러내는 내용을 이해하고, 작업의 성공을 측정하는 방법을 선택한다.
모델 개발 : 머신 러닝 모델로 처리할 수 있는 데이터를 준비하고, 모델 평가 방법과 간단한 기준점을 선택하고, 일반화 성능을 가지며 과대적합할 수 있는 첫번째 모델을 훈련한다. 다음으로 가능한 최대의 일반화 성능에 도달할 때까지 모델에 규제를 추가하고 튜닝한다.
모델 배포 : 작업 결과를 고객에게 제시한다. 모델을 웹 서버, 모바일 앱, 웹 페이지 또는 임베디드 장치에 배포하고 실전에서의 모델 성능을 모니터링한다.

데이터 수집의 경우 : 데이터 애너테이션 인프라에 투자하기
대표성 없는 데이터에 주의하기
여기서 개념 이동 을 알아야하는데, 이는 사용자가 생성한 데이터를 다루는 경우, 제품 환경에서 데이터의 속성이 시간에 따라 변할 때 일어난다. 이로인해 모델의 정확도가 점진적으로 감소하기 때문에 빠르게 변하는 개념 이동에 대처하려면 지속적인 데이터 수집, 애너테이션, 모델 재훈련이 필요하다.
데이터 이해 : 모델 훈련 시작 전에 데이터를 탐색하고 시각화하여 예측 능력을 가진 특성에 대한 통찰을 얻어야한다. 여기서 타깃 누출 을 확인해야하는데, 데이터에 타깃에 관한 정보를 제공하는 특성이 있는지 확인해야한다. 이런 특성은 제품 환경에서 얻을 수 없으므로, 타깃이 인위적으로 데이터에서 누출 되고 있는지를 점검해야한다.
성공 지표 선택 : 고수준의 목표와 직접적으로 연결되어야한다. 클래스 분포가 균일한 분류 문제에서는 정확도와 ROC(Receiver Operating Characteristic)의 면적인 ROC AUC 가 일반적인 지표이다. 클래스 분포가 균일하지 않은 문제나 랭킹 문제, 다중 레이블 문제에서는 정밀도와 재현율을 사용할 수 있다. 또는 정확도가 ROC AUC의 가중 평균을 사용할 수 있다.

모델 개발

데이터 준비

데이터를 그냥 사용하지 않는다. 데이터 전처리의 목적은 주어진 원본 데이터를 신경망에 적용하기 쉽도록 만드는 것이다. 여기에는 벡터와(vectorization), 정규화(normalization), 누락된 값 다루기 등이 포함된다.
벡터화 : 신경망에서 모든 입력과 타깃은 일반적으로 부동 소수점 데이터로 이루어진 텐서여야한다. 사운드, 이미지, 텍스트 등 처리해야할 것이 무엇이든지 먼저 텐서로 변경하여야한다. 이 단계를 데이터 벡터화(data vectorization)라고 한다.
값 정규화 : 0-1 사이로 변경 ! (원칙은 작은 값을 취해야한다, 균일해야한다)
누락된 값 처리하기 : ex)훈련 샘플의 일부를 여러벌 복사해서 테스트 데이터에서 누락될 것 같은 범주형 특성을 제거한다.

평가 방법 선택

모델의 목적은 일반화를 달성 하는 것 - 모델 개발 과정 전반에 걸친 모든 모델링 결정은 일반화 성능을 측정하는 검증 지표에 의해 내려진다. 검증 과정의 목표는 실전 제품 환경에서 어떤 성공 지표를 사용할지 정확하게 추정하는 것이다.
홀드아웃 검증 : 데이터가 풍부할 때 사용
K-겹 교차 검증 : 홀드아웃 검증을 사용하기에 샘플 개수가 너무 적을 때 선택
반복 K-겹 교차 검증 : 데이터가 적고 매우 정확한 모델 평가가 필요할 때 사용

기준 모델 뛰어넘기

모델을 다루기 시작할 때 초기 목표는 통계적 검정력(statistical power) 을 달성하는 것이다. 여기서 중점을 둬야 할 것은
특성 공학 : 유용하지 않은 특성을 제외하고(특성 선택), 문제에 대한 지식을 공유하여 유용할 것같은 새 특성을 개발한다.
구조에 대한 올바른 가정 : 어떤 종류의 모델 구조를 사용할 것인가? 밀집 연결 신경망, 합성곱 신경망, 순환 신경망 또는 트랜스포머를 사용해야하나?
좋은 훈련 옵션 선택 : 어떤 손실 함수를 사용해야할까? 배치 크기와 학습률은 얼마로 해야할까?

모델 용량 키우기 : 과대적합 모델 만들기

모델 규제와 하이퍼파라미터 튜닝

모델 배포

고객에게 작업을 설명하고 기대치 설정하기

추론 모델 배치하기

작동 중인 모델 모니터링하기

모델 유지 관리

출처 : 케라스 창시자에게 배우는 딥러닝(개정판)

profile
어서오세요.

0개의 댓글