[AWS] 11. Sage Maker

ehekaanldk·2023년 6월 11일

AWS

목록 보기
10/10

Data augmentation - 데이터 부족해서 예측력에 도달하지 못함. 학습과 검증의 괴리가 크다. => 데이터 추가적으로 labeling, 데이터 뻥튀기

Feature augmentation - 현재 feature 수준으로는 원하는 수준의 예측력 도달 불가 => feature 추가, 조합

4,5,7,8은 cycle을 구성한다.

  1. Business problem
    사업 문제
  2. Problem formulation

문제 정의 및 파악

  • 목표 무엇인가
  • 오늘 이 일이 어떻게 이루어지는가
  • 성공을 어떻게 평가할 것인가
  • 어떻게 활용되는가
  • 비슷한 해결책이 있는가
  • 어떤 가정으로 이루어지는가
  • 도메인 전문가는 누구인가(domain expert)

문제의 구성

  • 기계학습 문제인가
  • 지도학습인가 비지도학습인가
  • 예측 대상은 무엇인가
  • 데이터 엑세스 방법은 무엇인가
  • 최소 성능은 얼마인가
  • 수동으로 해결하기 위해선
  • 간단한 해결책은 무엇인가

도달 치수를 측정할 수 있는지 알아야 한다. 정석적인 수치(10%)는 측정 수준으로의 정의가 필요하다.
지도학습은 예제 샘플과 정답 레이블을 제공받음
비지도학습은 정답 레이블이 제공되지 않음
강화학습은 보상의 형태와 시간 데이터가 적용됨
(카드거래는 사기이거나 사기가 아니다 => 과의 데이터를 사용하여 이진 분류문제임을 알고 지도학습 모델을 정의할 수 있다.)

비지니스 문제를 ML 문제로 전환해야 한다. 이로 분류 VS 회귀, 지도 VS 비지도

  1. Collect and label data

사업 문제에 대한 데이터 수집 필요시 labeling까지

  • 어떤 데이터가 필요한가
  • 얼마나 많은 데이터가 어디에 있는가
  • 데이터에 엑세스(접근)이 가능한가
  • 모든 데이터 저장소는 어떤 것인가

데이터의 출처

  • 개인 데이터(Private data) : 사용자의 고유 식별자, 사용자가 생성하는 데이터
  • 상용 데이터(Commercial data) : 외부 제공 데이터로 비용 청구 후 사용
  • 오픈 소스 데이터 : 공개적으로 사용 사능한 데이터(UCI와 같은 공개된 데이터)

ML 문제에는 목표 응답과 예측이 많은 관측이 필요하다.

도메인 전문가를 구해 필요 데이터와 대표적인 데이터를 구한다.

얻은 관측값을 저장할 데이터 저장소가 필요하다. 빅데이터 저장 및 분석, 기계학습, 딥러닝을 위한 저장소로 AWS S3가 사용된다. 아주 높은 I/O속도와 안정성과 보안이 특징이다.

ELT(Extract, transform, load)
추출, 변환, 로드의 의미로 다양한 데이터 출처로 부터, 데이터를 취합하고 가공해서 최종적으로 잘 정제된 원천 데이터 형태로 store한다.
1. 데이터를 여러 출처에서 가져와 카탈로그화 한다.
2. 데이터 소스를 변화하는 Script를 작성한다.
3. Script가 실행될 스케쥴을 정의한다.
4. Script를 실행해 데이터를 변환한다.
5. 데이터를 잘 적제한다.

Glue
AWS의 복잡한 ELT과정을 단순화시켜주는 서비스이다. 여러 데이터 소스를 가져와 데이터를 Script를 실행해 변환한 후 최종적인 a single endpoint 로 데이터를 생성할 수 있다.
=> lamdba를 적용하거나 catalog해 데이터를 수집헤 AWS Glue가 추합하고 AWS Glue data catalog로 잘 정제해서 a single endpoint에 적제해 load한다.(또다른 저장소에 저장, 메모리에 올림)

보안 강화방법

  • IAM policy설정으로 엑세스 제어
  • 데이터 암호화(S3 bucket내 존재하는 content자체를 암호화)
  • cloudTrail 사용(구성원의 권한/접근에 대한 사후 분석)

(Lab 1)

  1. Evaluate data
    데이터 형태(data format)
    데이터 타입 점검
    EDA 데이터 (descriptive statisics : 기술 통계량) 분석
    pandas는 table형태의데이터 분석에 좋음. csv,json,excel,pinkle등의 여러가지 형태의 데이터 저장 및 load가능 (read_csv함수는 상당히 범용적으로 local 파일, url, S3 buket주소 모두 가능)
    .shape() : 데이터 형태
    .head() : 일부 샘플 확인
    .column() : 데이터 column들의 이름 확인
    .index() : 샘플의 인덱스 확인
    .dtypes() : 각column의 데이터 타입 확인
    .info() : 데이터의 대략적인 정보확인
  • descriptive statisics : 기술 통계량
    overall statistics(feature 개별의 기본적인 통계), Multivariate statistics(feature들을 조합해서 얻는 통계), Attribute statistics(확률 분포스러운 통계)
    .describe() : 특성을 보기 위한 함수(대략적인 통계치 확인)
  • numerical데이터와 categorical데이터
    categorical 데이터에서 숫자이지만 제한적인 몇가지 값으로 이루지기 때문에 통계를 낼 수 있다.
    .hist

데이터 시각화

  1. Feature engineering
    기계학습 모델링 및 feature 설정
    피쳐 추출(feature extraction)
    각 피쳐를 변화하거나, 여러 피쳐를 조합한다.
    (numerical data)
  • aggregation : summary된 지표값으로 변환
  • transformation : 평균이 0이고 표준편차를 1로 만든다.
  • normalization : 최소값이 0이고 최대값이 1로 만든다.
  • dimenstionality : 차원을 축소한다.(1024 -> 512)
    (categorical data)
  • ordinal data : 수치값으로 변경, 수치 그키에 의미 존재O)
  • non-ordinal data : 수치값으로 변경, 수치 크기에 의미 존재X)

missing data 처리

  • 지워버리기
  • 값 채우기(교체)
    outliers data 처리
  • 지워버리기
  • 함수로 변형시키기
  • 값 바꾸기

피처 선택(feature selection)
다수의 피쳐 중 일부를 제외하고 남은 것들로 피쳐 구성한다.

  • filter method : 피쳐 통계적 분석으로 피쳐 선택(피어슨 상관계수, LDA, ANOVA, 카이 제곱)
  • wrapper method : 피쳐 선택 후 모델링 학습으로 성능 측정
  • embedded method : 모델 학습과정에서 피쳐 중요도 알아서 측정됨(XGboost)
  1. Select and train model
    모델 학습
    지도학습 - XGboost, 선형 알고리즘
    비지도학습 - k-mean

sage maker 제공

  • 속도, 확장성 및 정확성에 최적화된 ML알고리즘 제공 (난이도 낮음)
  • 내장 알고리즘 (sage maker training toolkit)
  • 사용자 지정 프레임워크 (난이도 높음 - 도커 이미지 생성 후 자유도 높음)
  • 마켓에서 알고리즘

사용
1. S3 buket에 사용자가 training data 업로드한다.
2. computing 리소스(인스턴스, gpu 부착한 확장 인스턴스)를 생성한다.
3. docker이미지 형태의 ECR에서 이미지 가져온다.
4. 생성된 인스턴스 위에서 가져온 이미지 실행된다.
5. 기동 시 S3 buket에 저장한 데이터를 다운 받아 로컬에서 읽을 수 있도록 준비 후 training code 실행
6. 학습 끝나면 인스턴스 자동 종료

  1. Deploy model
    배포하기
    hosting
  • sage maker 제공 : API-endpoint 뽑아준다. 입력을 지정한 포멧으로 담아서 rest api 요청하면 모델을 통과시켜서 예측된 결과를 응답
  • batch transform : 커다란 batch 목록의 샘플 데이터 입력으로 예측을 실행하면 모델을 로드해서 에측 결과를 파일로 주고 예측 프로세스를 종료

sage maker

  • 일관되게 관리를 해준다. ( helper code, interface code, training code )
  • endpoint를 뽑아준다.
  1. Evaluate model
    모델 평가하기
  2. Tune model
    모델 개선하기
    네트어크 구성 변경, 파라미터 값 변경

문제)

  1. 기계학습(ML) 문제를 정의하는 데 도움이 되는 리소스를 무엇입니까?
  • 레이블이 지정된 데이터에 대한 액세스
  • 상담할 도메인 전문가
  • 기존의 코딩 솔루션
  • 충분한 하드웨어
  • 신경망
    (레이블이 지정된 데이터에 대한 액세스는 성공적인 ML모델을 룬련하는 데 중요한 역할을 하는 경우가 많습니다. 도메인 전문가는 데이터를 이해하고 이에 대한 질문에 답변을 하는 데 도움을 드릴 수 있습니다.)
  1. 지도 분류 기계 학습을 위한 데이터를 준비할 때 데이터에 어떤 속성이 있어야 합니까?
  • 데이터에 레이블이 지정되어야 합니다.
  • 데이터에는 대상의 인스턴스만 포함되어야 합니다.
  • 회사의 모든 사용자가 데이터에 액세스할 수 있어야 합니다.
  • 데이터는 유전자 알고리즘을 사용하여 무작위로 생성되어야 합니다.
  • 데이터는 생성을 대표해야 합니다.
    (데이터는 긍정 및 부정의 예를 포함아여 실제 데이터의 제대로 된 표현을 포함해야 합니다. 데이터는 보호되어야 하며 비지니스 요구 사항이 있는지 사용자만 액세스 할 수 있어야 합니다.)
  1. 데이터 통계를 조사하여 무엇을 배울 수 있습니까?
  • 데이터의 이상 징후 식별
  • 데이터의 형식이 올바른지 확인
  • 특이치 제거
  • 누락된 데이터 채우기
    (데이터 포맷은 일반적으로 통계를 분석하기 전에 수행됩니다. 통계는 이상 항목을 찾는 데 도움이 되는 데이터에 대한 통찰력을 제공하지만 특이치를 제거하거나, 누락된 데이터를 채울 수는 없습니다.)
  1. 모델 훈련에 사용할 준비가 된 전처리된 데이터 세트가 있습니다. 훈련 데이터를 어떻게 나누어야 합니까?
  • 모든 데이터를 사용하여 모델을 훈련합니다
  • 데이터를 두개의 동일한 집합으로 분할합니다. 훈련에는 절반을 사용하고 나머지 절반은 테스트에 사용합니다.
  • 데이터를 세 개의 세트로 분할합니다. 훈련에는 80%, 테스트에는 10% 그리고 검증에는 10%를 사용합니다.
  • 데이터를 두 개의 세트로 분할합니다. 훈련에는 80%, 그리고 테스트 및 유효성 검사에는 20%를 사용합니다.
    (훈련에는 데이터의 70%~80%를 사용하고 나머지는 테스트와 유효성 검사 간에 분할해야 합니다.)
  1. 참 또는 거짓:Amazon SageMaker를 통해 단일 모델과 다중 모델 호스팅 중에 선택할 수 있습니다.
  • true
  • false
    (단일 모델 또는 다중 모델을 호스트할 수 있습니다.)
  1. 혼동 행렬의 목적은 무엇입니까?
  • 참 또는 거짓 음성과 함께 참 또는 거짓 양성을 표시한다.
  1. 상관 관계 열 지도는 무엇을 보여줍니까?
  • 데이터 세트의 기능 간의 상관 관계 수준
  • 테스트와 유효성 검사 데이터 간의 상관 관계 수준
  • 예측 값과 실제 값 간의 상관 관계 수준
  • 인코딩된 데이터와 텍스트 데이터 간의 상관 관계 수준
    (데이터 세트의 기능 간 긍적적 또는 부정적 상관 관계를 보여준다.)
  1. 다음 중 pandas가 데이터 가져오기를 위해 지원하는 파일 형식은 무엇입니까? (2개 선택)
  • Ms Word
  • CSV
  • PDF
  • JSON
  • 바이너리 파일
  1. 기계 학습 인스턴스를 배포하고 jupyter 노트북을 실행하는 데 사용할 수 있는 Amazon서비스는 무엇입니까?
  • Amazon Comprehend
  • Amazon SageMaker
  • Amazon Polly
  • Amazon Lex
    (Amazon SageMaker는 기계학습 솔류션을 배포하고, Jupyter 노트qnrdmf 호스트하고, 또한 JupyterLab을 호스트하는 데 사용할 수 있는 서비스이다.)
  1. Amazon SageMaker 하이퍼파라미터 튜닝 작업의 목표는 무엇입니까?
  • 훈련에 대한 유효성 검사 지표를 최적화
  • 모델 파라미터를 최적화하여 최적 모델을 생성
  • 가장 빠른 예측을 생성하기 위해 데이터 입력을 최소화
  • 회적의 모형을 생성하기 위해 알고리즘 선택을 최적화
    (하이퍼매개변수 튜닝 작업은 모델 파라미터를 조정하여 최상의 모형을 찾는다.)

0개의 댓글