AWS Certified Machine Learning Specialty 2023 - Hands On! 요약

Jul 20, 2023
AWS Certified Machine Learning Specialty 2023 - Hands On! 요약
  • 강의 중에 중요/시험 이라고 나와도 AWS 자격증을 가진 분 또는 AWS 개발자라면 충분히 아는 내용은 제외 했습니다.
9. Amazon S3 Lifecycle Rules (with S3 Analytics)
Amazon S3 – Lifecycle Rules (Scenario 1)
  • EC2에서 실행되는 애플리케이션은 프로필 사진이 Amazon S3에 업로드 된 후 이미지 썸네일을 생성합니다. 이러한 썸네일은 쉽게 다시 생성할 수 있으며, 60일 동안만 보관해야 합니다. 이 기간 동안은 소스 이미지를 즉시 검색할 수 있어야 하며, 이후에는 사용자가 최대 6시간 동안 기다릴 수 있어야 합니다.
  • → S3 소스 이미지는 표준(Standard) 스토리지에 있을 수 있으며, 60일 후에 이를 Glacier로 전환하기 위한 라이프사이클 구성이 있을 수 있습니다.
  • → S3의 썸네일은 One-Zone IA 스토리지에 있을 수 있으며, 60일 후에 만료(삭제)되도록 라이프사이클 구성이 있을 수 있습니다.
Amazon S3 – Lifecycle Rules (Scenario 2)
  • 회사의 규칙 중 하나는 삭제된 S3 객체를 30일 동안 즉시 복구할 수 있어야 한다는 것입니다. 이는 드물게 발생할 수 있습니다. 이 기간 이후로는 최대 365일 동안 삭제된 객체를 48시간 이내에 복구할 수 있어야 합니다.
  • → "삭제된 객체"가 사실상 "삭제 표시자"에 의해 숨겨지고 복구할 수 있도록 객체 버전 관리(S3 Versioning)를 활성화하세요.
  • → 객체의 "비 최신 버전(noncurrent versions)"을 Standard IA로 이전하세요.
  • → 이후 "비 최신 버전(noncurrent versions)"을 Glacier Deep Archive로 이전하세요.
13. Amazon S3 - Encryption
Server-Side Encryption (SSE)
  • Server-Side Encryption with Amazon S3-Managed Keys (SSE-S3) – Enabled by Default : "x-amz-server-side-encryption": "AES256”
  • Server-Side Encryption with KMS Keys stored in AWS KMS (SSE-KMS) : "x-amz-server-side-encryption": "aws:kms”
  • Server-Side Encryption with Customer-Provided Keys (SSE-C)
Client-Side Encryption
17. Kinesis Data Streams & Kinesis Data Firehose
Kinesis Streams: low latency streaming ingest at scale
Kinesis Analytics: perform real-time analytics on streams using SQL
Kinesis Firehose: load streams into S3, Redshift, ElasticSearch & Splunk
Kinesis Video Streams: meant for streaming video in real-time
  • 키네시스 파이어호스는 S3, Redshift(S3 복사를 통해서), 엘라스틱 서치, Splunk에 보낼 수 있는데, 배치를 통해서 보내기 때문에 거의 실시간임 (https 통해서도 보낼 수 있음)
  • S3에 보낼 때는 압축을 지원함 (GZIP, ZIP, SNAPPY)
💡
Kinesis Data Streams vs Firehose
• Streams → 실시간 어플리케이션 개발 용
• Going to write custom code (producer / consumer) • Real time (~200 ms latency for classic, ~70 ms latency for enhanced fan-out) • Automatic scaling with On-demand Mode • Data Storage for 1 to 365 days, replay capability, multi consumers
• Firehose : 배달 서비스, 인큐베이션 서비스 → 데이터 전달용
• Fully managed, send to S3, Splunk, Redshift, ElasticSearch • Serverless data transformations with Lambda • Near real time (lowest buffer time is 1 minute) • Automated Scaling • No data storage
18. Lab 1.1 - Kinesis Data Firehose
  • Convert record format시 Apache Parquet 또는 Apache ORC 선택 가능
참고 : Apache Parquet, ORC 저장 방식
notion image
참고 : Apache Parquet과 ORC 차이

ORC

칼럼 기반 저장 포맷하이브의 RC 파일을 개량하여 구현파일의 풋터에 데이터의 스키마를 표현함

Parquet

ORC와 비슷하지만 구글의 드러멜(dremel)에 기반
풋터에 스키마를 저장
칼럼 기반의 저장
 
ORC는 Hive에 최적화된 형식이고, Parquet는 스파크에 최적화된 형식입니다.
19. Kinesis Data Analytics
Use cases
  • Streaming ETL: select columns, make simple transformations, on streaming data
  • Continuous metric generation: live leaderboard for a mobile game
  • Responsive analytics: look for certain criteria and build alerting (filtering)
  • 스트리밍 ETL: 스트리밍 데이터에서 열을 선택하고 간단한 변환을 수행합니다.
  • 지속적인 지표 생성: 모바일 게임의 라이브 리더보드
  • 반응형 분석: 특정 기준을 찾고 알림을 만듭니다 (필터링)
Machine Learning on Kinesis Data Analytics
RANDOM_CUT_FOREST: 숫자형 열에서 이상 탐지를 위해 스트림에서 사용되는 SQL 함수
  • 예시: 뉴욕 시티 마라톤 기간 동안 지하철 이용객의 이상을 탐지합니다.
  • 최근의 이력을 사용하여 모델을 계산합니다.
notion image
HOTSPOTS: 데이터 스트림에서 주어진 기간 내에서 발생 빈도가 높은 지리적인 지역이나 공간적 패턴을 찾는 데에 사용되는 알고리즘
  • 예시: 데이터 센터에서 과열된 서버들의 모음
notion image
21. Kinesis Video Streams
Kinesis Video Streams use cases
notion image
23. Glue Data Catalog & Crawlers
Glue Data Catalog : 완전관리형 메타데이터 저장소
Crawlers
AWS Glue Crawlers는 AWS Glue의 기능 중 하나로, 데이터 원본에서 메타데이터를 추출하여 AWS Glue Data Catalog에 자동으로 등록하는 서비스입니다. Crawlers를 사용하면 다음과 같은 기능을 제공합니다:
  1. 자동 메타데이터 추출: 데이터 원본의 스키마 정보를 자동으로 추출하여 Glue Data Catalog에 저장합니다.
  1. 데이터 스키마 업데이트: 데이터 원본의 스키마 변경 시 자동으로 Glue Data Catalog의 메타데이터를 업데이트합니다.
  1. 파티션 자동 감지: 데이터 원본의 파티션 정보를 감지하여 Glue Data Catalog에 저장합니다.
  1. 자동 실행 스케줄링: Crawlers를 스케줄러에 연결하여 주기적으로 데이터 원본을 스캔하고 메타데이터를 업데이트할 수 있습니다.
  1. 다양한 데이터 형식 지원: 다양한 형식의 데이터를 처리할 수 있습니다.
25. Glue ETL
  • Glue ETL에서 Transform이 시험에 나옴
Bundled Transformations:
  • DropFields, DropNullFields – remove (null) fields
  • Filter – specify a function to filter records
  • Join – to enrich data
  • Map - add fields, delete fields, perform external lookups
Machine Learning Transformations:
  • FindMatches ML: 데이터셋 내에서 중복 또는 일치하는 레코드를 식별하는 기능으로, 레코드들이 공통된 고유 식별자가 없거나 필드가 완전히 일치하지 않더라도 작동합니다.
  • Format conversions: CSV, JSON, Avro, Parquet, ORC, XML
  • Apache Spark transformations (example: K-Means)
    • K-means 알고리즘에서 K는 묶을 군집(클러스터)의 개수를 의미하고 means는 평균을 의미한다. 단어 그대로의 의미를 해석해보면 각 군집의 평균(mean)을 활용하여 K개의 군집으로 묶는다는 의미다. 여기서 평균(Means)이란 각 클러스터의 중심과 데이터들의 평균 거리를 의미
 
28. AWS Data Stores in Machine Learning
Redshift, RDS, Aurora, DynamoDB, S3, OpenSearch, ElasticCache가 있다는 정도만
29. AWS Data Pipelines
AWS Glue
  • 서버가 없는 Apache Spark 환경에서 실행되는 fully-managed ETL 서비스를 제공한다.
  • 컴퓨팅 리소스 구성 및 관리에 대한 걱정 없이 ETL 작업에 집중할 수 있다.
  • 데이터 우선 접근 방식이고, 비즈니스 인사이트를 도출할 수 있도록 데이터를 변환하기 위한 데이터 속성 및 조작에 초점을 맞춘다.
  • 아테나 및 스펙트럼을 통한 쿼리 뿐만 아니라 ETL 을 통해 메타데이터를 만들 수 있게끔 하는 통합 데이터 카탈로그를 제공한다.
  • Scala 혹은 Python 기반이다.
  • 스케일아웃 실행 환경을 제공한다.
  • Infers, evolves, 그리고 모니터링을 통해 작업 생성 및 유지관리 프로세스를 간소화한다.
AWS Data Pipeline
  • 관리형 오케스트레이션 서비스를 제공한다. 즉, 데이터 처리를 수행하는 코드 뿐만 아니라 코드를 수행하기 위해 필요한 컴퓨팅 리소스를 관리해주고 실행 환경 측면에서 뛰어난 유연성을 제공한다.
  • AWS 계정에서 EC2 인스턴스나 EMR 클러스터에 직접 접근하여 컴퓨팅 리소스를 설정해줄 수도 있다.
  • Apache Spark 가 아닌 다른 엔진을 사용해야 하거나 Hive나 Pig 등과 같이 여러 다른 종류들로 이뤄진 엔진에서 실행할 때 사용하는 것이 좋다.
30. AWS Batch
ETL이 없다면 배치가 더 효율 적, EC2 기반, 도커 이미지로 제공 되어야 함
32. AWS Step Functions
언제든 어떤 걸 오케스트레이션해야 하거나 뭔가 발생하게 해야 할 때, 또 다른 게 발생하고, 또 다른 게 발생할 때 스텝 펑션을 생각하면 됨
33. Full Data Engineering Pipelines
Full Data Engineering Pipeline Real-Time Layer
notion image
Full Data Engineering Pipeline Video Layer
notion image
Full Data Engineering Pipeline Batch Layer
notion image
Full Data Engineering Pipeline Analytics layer
notion image
34. Random things you need to know: AWS DataSync and MQTT
AWS DataSync : 온프레미스와 AWS 스토리지 서비스 사이에서 데이터 이동을 자동화 및 가속화하는 안전한 온라인 서비스인데, 이전 시험에서 나왔나봄
  • 간단하게 얘기하면 AWS 밖에 있는 DB(storage)에서
  • DataSync Agent와 Direct Connect를 가지고 (NFS, SMB, HDFS가 될 수도 있고)
  • AWS DataSync에 연결해서 (이 때 암호화 하고 Data validation을 하고)
  • DataSync에서 S3, EFS, FSX로 데이터를 전달하는 것임
notion image
MQTT : 도 시험에 나왔나봄. MQTT를 보시면 IOT, 사물의 인터넷 센서라고 생각
35. Data Engineering Summary
  • Amazon S3: 데이터용 객체 스토리지
  • VPC 엔드포인트 게이트웨이: 공용 인터넷을 거치지 않고 S3 버킷에 비공개로 액세스
  • Kinesis Data Streams: 실시간 데이터 스트림, 용량 계획 필요, 실시간 애플리케이션
  • Kinesis Data Firehose: S3, Redshift, ElasticSearch, Splunk로 거의 실시간으로 데이터 수집
  • Kinesis Data Analytics: 스트리밍 데이터에 대한 SQL 변환
  • Kinesis Video Streams: 실시간 비디오 피드
  • Glue 데이터 카탈로그 및 크롤러: 계정의 스키마 및 데이터 세트에 대한 메타데이터 리포지토리
  • Glue ETL: ETL 작업을 Spark 프로그램으로 서버리스 Spark 클러스터에서 실행
  • DynamoDB: NoSQL 저장소
  • Redshift: OLAP용 데이터 웨어하우징, SQL 언어
  • Redshift Spectrum: S3의 데이터에 대한 Redshift(Redshift에서 먼저 로드할 필요 없음)
  • RDS / Aurora: OLTP용 관계형 데이터 저장소, SQL 언어
  • ElasticSearch: 데이터 색인, 검색 기능, 클릭스트림 분석
  • ElastiCache: 데이터 캐시 기술
  • 데이터 파이프라인: RDS, DynamoDB, S3 간의 ETL 작업 오케스트레이션. EC2 인스턴스에서 실행
  • 배치: 배치 작업은 데이터용이 아니라 Docker 컨테이너로 실행되며 EC2 인스턴스를 관리합니다.
  • DMS: 데이터베이스 마이그레이션 서비스, 일대일 CDC 복제, ETL 없음
  • Step Functions: 워크플로우 오케스트레이션, 감사, 재시도 메커니즘
  • EMR: 관리형 Hadoop 클러스터
  • Quicksight: 시각화 도구
  • 인식: ML 서비스
  • SageMaker: ML 서비스
  • DeepLens: Amazon의 카메라
  • Athena: 데이터의 서버리스 쿼리
37. Python in Data Science and Machine Learning
시험에 자주 나오는 파이썬 라이브러리
Pandas : 파이썬 데이터 처리를 위한 라이브러리입니다. 파이썬을 이용한 데이터 분석과 같은 작업에서 필수 라이브러리
  • 시리즈(Series) : 시리즈 클래스는 1차원 배열의 값(values)에 각 값에 대응되는 인덱스(index)를 부여할 수 있는 구조를 갖고 있습니다.
    • sr = pd.Series([17000, 18000, 1000, 5000], index=["피자", "치킨", "콜라", "맥주"]) print('시리즈 출력 :') print('-'*15) print(sr) 시리즈 출력 : --------------- 피자 17000 치킨 18000 콜라 1000 맥주 5000 dtype: int64
  • 데이터프레임(DataFrame) : 데이터프레임은 2차원 리스트를 매개변수로 전달합니다. 2차원이므로 행방향 인덱스(index)와 열방향 인덱스(column)가 존재합니다.
    • values = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] index = ['one', 'two', 'three'] columns = ['A', 'B', 'C'] df = pd.DataFrame(values, index=index, columns=columns) print('데이터프레임 출력 :') print('-'*18) print(df) 데이터프레임 출력 : ------------------ A B C one 1 2 3 two 4 5 6 three 7 8 9
넘파이(Numpy) : 넘파이(Numpy)는 수치 데이터를 다루는 파이썬 패키지. Numpy의 핵심이라고 불리는 다차원 행렬 자료구조인 ndarray를 통해 벡터 및 행렬을 사용하는 선형 대수 계산에서 주로 사용
Matplotlib : 맷플롯립(Matplotlib)은 데이터를 차트(chart)나 플롯(plot)으로 시각화하는 패키지입니다. 데이터 분석에서 Matplotlib은 데이터 분석 이전에 데이터 이해를 위한 시각화나, 데이터 분석 후에 결과를 시각화하기 위해서 사용
Seaborn : seaborn은 matplotlib 대비 손쉽게 그래프를 그리고 그래프 스타일 설정을 할 수 있다는 장점이 있습니다. 정교하게 그래프의 크기를 조절하거나 각 축의 범례 값을 조절할 때에는 matplotlib을 함께 사용해야하지만, seaborn 사용법에 익숙해진다면 큰 문제가 되진 않습니다.
Scikit-learn : 분류(classification), 회귀(regression), 군집화(clustering), 의사결정 트리(decision tree) 등의 다양한 머신러닝 알고리즘을 적용할 수 있는 함수들을 제공합니다.
39. Types of Data
  • Numerical
  • Categorical
  • Ordinal
40. Data Distributions
  • "정규 분포"는 통계학에서 가장 널리 사용되는 분포 중 하나로, 그래프가 대칭적이고 종 모양을 가지는 확률 분포입니다. 이 분포는 평균과 표준 편차에 의해 특성화됩니다. 데이터가 정규 분포를 따를 때, 평균 주위에 데이터가 집중되며, 이 분포를 통해 다양한 통계적 분석을 수행할 수 있습니다.
  • "확률 질량 함수"는 이산 확률 변수의 확률 분포를 설명하는 함수입니다. 이 함수는 각 가능한 이산 값에 대한 확률을 나타내며, 확률 변수가 특정 값을 가질 확률을 계산하는 데 사용됩니다. 확률 질량 함수는 이산 확률 변수의 특성과 분포를 파악하는 데 도움이 됩니다.
  • "포아송 분포"는 일정한 시간 또는 공간 내에서 이벤트가 발생하는 횟수를 모델링하는데 사용됩니다. 예를 들어, 단위 시간당 도착하는 이벤트의 분포를 나타낼 때 포아송 분포를 사용할 수 있습니다. 포아송 분포는 이벤트 발생률(lambda)에 의해 특성화되며, 이벤트가 독립적으로 발생하고 발생률이 일정한 경우에 적용됩니다.
  • "이항 분포"는 두 가지 가능한 결과 (성공 또는 실패)를 가지는 이진 시행을 모델링하는데 사용됩니다. 이항 분포는 시행 횟수와 성공 확률에 따라 성공 횟수를 예측하는 데 유용합니다. 예를 들어, 동전 던지기와 같은 독립적인 시행을 모델링할 때 이항 분포를 사용할 수 있습니다.
  • "베르누이 분포"는 이항 분포의 특수한 경우로, 단일 시행에서 성공 또는 실패의 두 가지 결과를 모델링합니다. 보통 성공을 1, 실패를 0으로 나타내며, 성공 확률을 나타내는 매개 변수 p를 가지고 있습니다. 베르누이 분포는 독립적인 이진 시행을 모델링하는 데 사용됩니다.
  1. 정규 분포 (Normal Distribution):
      • 정규 분포는 종 모양의 확률 분포로, 평균과 표준 편차에 의해 특성화됩니다.
      • 데이터가 정규 분포를 따를 때, 평균 주위에 데이터가 집중되며, 이 분포를 통해 다양한 통계적 분석을 수행할 수 있습니다.
  1. 확률 질량 함수 (Probability Mass Function):
      • 확률 질량 함수는 이산 확률 변수의 확률 분포를 설명하는 함수입니다.
      • 이 함수는 각 가능한 이산 값에 대한 확률을 나타내며, 확률 변수가 특정 값을 가질 확률을 계산하는 데 사용됩니다.
  1. 포아송 분포 (Poisson Distribution):
      • 포아송 분포는 일정한 시간 또는 공간 내에서 이벤트가 발생하는 횟수를 모델링하는데 사용됩니다.
      • 예를 들어, 단위 시간당 도착하는 이벤트의 분포를 나타낼 때 사용할 수 있습니다.
  1. 이항 분포 (Binomial Distribution):
      • 이항 분포는 두 가지 가능한 결과 (성공 또는 실패)를 가지는 이진 시행을 모델링하는데 사용됩니다.
      • 시행 횟수와 성공 확률에 따라 성공 횟수를 예측하는 데 유용합니다.
  1. 베르누이 분포 (Bernoulli Distribution):
      • 베르누이 분포는 이항 분포의 특수한 경우로, 단일 시행에서 성공 또는 실패의 두 가지 결과를 모델링합니다.
      • 보통 성공을 1, 실패를 0으로 나타내며, 성공 확률을 나타내는 매개 변수 p를 가지고 있습니다.
41. Time Series: Trends and Seasonality
  • 어떤 변동은 단순히 무작위로 발생합니다.
  • 계절성 + 추세 + 잡음 = 시계열
    • 가법 모델
    • 계절 변동은 일정합니다.
  • 때로는 계절성 * 추세 * 잡음 - 추세가 때로는 계절성과 잡음을 증폭시킵니다.
    • 곱셈 모델
    • 계절 변동은 추세가 증가함에 따라 증가합니다.
42. Introduction to Amazon Athena
  • Amazon Athena는 S3 데이터 레이크에서 쿼리를 실행하는 서버리스 서비스입니다.
  • 데이터를 데이터베이스로 로드하지 않고 S3에 있는 원시 데이터를 분석하고 SQL 쿼리를 실행할 수 있습니다.
  • Athena는 구조화되지 않은, 구조화된 또는 반구조화된 데이터를 지원하며 서버 관리가 필요하지 않습니다.
  • 데이터를 분석하고 이해하기 위해 Jupiter, Zeppelin, R Studio 노트북과 통합할 수 있으며 데이터 시각화 도구 QuickSight와도 통합 가능합니다.
  • AWS Glue와 함께 사용하면 데이터의 스키마를 자동으로 추출하여 쿼리에 활용할 수 있으며, 데이터 변환 및 최적화도 가능합니다.
  • Athena는 쿼리당 스캔된 데이터 양에 따라 요금이 부과되며 데이터를 압축하고 열 형식으로 변환하여 비용을 절감할 수 있습니다.
  • 보안은 IAM, ACL, S3 버킷 정책 등을 사용하며 데이터 암호화와 계정 간 액세스도 지원합니다.
Amazon Athena는 S3 데이터 레이크에서 데이터를 쿼리하고 분석하기 위한 강력한 도구로, 서버리스 아키텍처와 다양한 데이터 형식을 지원하여 데이터 과학 및 분석 작업에 유용합니다.
43. Overview of Amazon Quicksight
Machine Learning Insights
Amazon QuickSight의 Machine Learning Insights 기능은 몇 가지 흥미로운 기능을 제공합니다.
첫 번째로 ML Powered Anomaly Detection이 있으며 Amazon의 Random Cut Forest 알고리즘을 활용하여 판매 데이터나 웹 사이트 지연 시간과 같은 데이터에서 이상치를 감지할 수 있습니다. 이를 통해 데이터의 이상치를 식별하고 제거하는 데 도움이 됩니다.
두 번째로 ML Powered Forecasting 기능이 있으며 이 또한 Random Cut Forest를 활용하여 데이터의 이상치를 제거하고 예측을 수행합니다. 계절성을 고려하고 이상치를 자동으로 제외하며 누락된 값을 자동으로 보정할 수 있습니다. 이러한 기능은 비기술 사용자가 간단하게 데이터를 기반으로 예측을 생성할 수 있도록 도와줍니다.
세 번째로 Machine Learning Insights에는 auto-narratives라고 하는 기능도 있으며 이를 사용하여 데이터의 이야기를 일반 언어로 전달하는 풍부한 대시보드를 만들 수 있습니다. QuickSight가 생성한 대시보드를 사용하거나 수정할 수 있습니다.
그러나 QuickSight의 직접적인 기계 학습 기능은 여기까지이며, 시험에서 QuickSight와 관련된 기계 학습 기능이나 메트릭에 대해 묻는다면 아직 존재하지 않는다는 것을 기억해야 합니다.
QuickSight Q
AWS QuickSight Q는 Amazon QuickSight의 추가 기능 중 하나입니다. QuickSight Q는 자연어 처리(NLP)를 사용하여 비즈니스 질문에 답하는 기능을 제공합니다. 사용자는 데이터에 대한 SQL 쿼리를 작성하거나 대시보드를 수동으로 구성할 필요 없이 간단한 질문을 통해 데이터 인사이트를 얻을 수 있습니다.
44. Types of Visualizations, and When to Use Them.
여러 차트와 그래프가 있고 그런 것들이 어떤 데이터에 적합하게 표시할 수 있는지 알아야 함 (크게 어려운 것 같지 않았음)
45. Elastic MapReduce (EMR) and Hadoop Overview
EMR 저장소
  • HDFS
  • EMRFS: HDFS처럼 S3에 액세스
    • EMRFS 일관된 뷰 - S3 일관성을 위한 선택 사항
    • 일관성을 추적하기 위해 DynamoDB 사용
  • 로컬 파일 시스템
  • HDFS용 EBS
47. EMR Notebooks, Security, and Instance Types
EMR: 인스턴스 유형 선택
  • 마스터 노드:
    • 노드 수 < 50이면 m4.large, 그렇지 않으면 m4.xlarge 선택
  • 코어 및 태스크 노드:
    • 일반적으로 m4.large가 적합합니다.
    • 클러스터가 외부 종속성(예: 웹 크롤러)에서 많은 대기 시간이 발생하는 경우 t2.medium 선택
    • 성능 향상을 위해서는 m4.xlarge 선택
    • 계산 집약적인 애플리케이션의 경우 고 CPU 인스턴스 선택
    • 데이터베이스 및 메모리 캐싱 애플리케이션의 경우 고 메모리 인스턴스 선택
    • 네트워크 / CPU 집약적인 (NLP, ML) - 클러스터 컴퓨터 인스턴스 선택
    • 가속 컴퓨팅 / 인공지능 - GPU 인스턴스 (g3, g4, p2, p3) 선택
  • 스팟 인스턴스
    • 태스크 노드에 적합한 선택입니다.
    • 테스트 중이거나 매우 비용을 고려해야 하는 경우에만 코어 및 마스터에 사용하고, 부분적인 데이터 손실이 발생할 수 있음에 유의하세요.
48. Feature Engineering and the Curse of Dimensionality
  • 차원의 저주 : 차원이 커짐에 따라 그 공간이 커지고, 그에 따라 공간 내에 모든 경우를 다 채우려면 더 많은 데이터가 필요하다. 이처럼 차원이 커짐에 따라 모든 경우를 다 파악하는데 필요한 데이터가 기하급수적으로 늘어나는 현상을 차원의 저주 라고 한다.
  • 해결 방안 :
    • PCA는 데이터의 차원을 줄이고 주요 특성을 추출하는 데 사용되는 차원 감소 기법이며, K-means는 데이터를 그룹으로 나누어 유사한 데이터 포인트를 식별하는 클러스터링 알고리즘입니다.
49. Imputing Missing Data
  • 시험에서 평균 교체, 데이터 누락은 좋은 방법이 아님
누락된 데이터 보정: 머신 러닝
  • KNN: K개의 "가장 가까운" (가장 유사한) 행을 찾아서 그 값들을 평균화합니다.
    • 범주형이 아닌 수치 데이터를 가정합니다.
    • 범주형 데이터를 처리하는 방법도 있습니다 (해밍 거리), 하지만 범주형 데이터는 아마도...
  • 딥 러닝
    • 기계 학습 모델을 구축하여 데이터를 보정합니다!
    • 범주형 데이터에 대해 잘 작동합니다. 정말 잘 작동합니다. 그러나 복잡합니다.
  • 회귀
    • 누락된 특성과 다른 특성들 간의 선형 또는 비선형 관계를 찾습니다.
    • 가장 고급 기법: MICE (Multiple Imputation by Chained Equations)
MICE (Multiple Imputation by Chained Equations) :
MICE (Multiple Imputation by Chained Equations)은 누락된 데이터를 처리하기 위한 고급 통계 기술 중 하나입니다. MICE는 누락된 데이터를 예측하고 보완하는 데 사용되며, 다중 대체 방법(multiple imputation) 중 하나입니다. 다중 대체 방법은 누락된 데이터를 여러 번 예측하고 각 예측 값을 조합하여 더 정확한 예측을 생성하는 방법입니다.
MICE의 주요 아이디어는 다음과 같습니다:
  1. 다중 대체: MICE는 누락된 데이터를 예측하기 위해 여러 번 반복적으로 대체하는 방법을 사용합니다. 각 반복에서는 누락된 값을 다른 방법으로 대체하고 예측합니다.
  1. Chained Equations: MICE는 "Chained Equations"이라고 불리는 개념을 사용합니다. 이것은 각 반복에서 하나의 변수를 선택하고 나머지 변수들을 사용하여 이 변수를 예측하는 방식을 의미합니다. 예를 들어, 누락된 변수 A를 예측하기 위해 변수 B, C, D 등을 사용합니다. 그런 다음 다음 반복에서는 다른 누락된 변수를 예측합니다.
  1. 다변량 분포: MICE는 각 변수가 다변량 분포를 따른다고 가정합니다. 이는 변수 간의 상관 관계를 고려하여 예측을 수행하는 데 도움이 됩니다.
  1. 모델 선택: MICE를 구현할 때 변수 간의 관계를 모델링하기 위해 다양한 통계 모델을 사용할 수 있습니다. 예를 들어, 선형 회귀, 로지스틱 회귀, 의사결정 트리, 랜덤 포레스트 등을 사용하여 예측 모델을 선택할 수 있습니다.
MICE는 다양한 분야에서 누락된 데이터를 처리하는 데 유용합니다. 의학 연구, 사회과학, 경제학 등 다양한 분야에서 사용되며, 누락된 데이터의 패턴과 특성을 고려하여 더 정확한 예측을 생성합니다. MICE를 구현하려면 통계 소프트웨어나 통계 패키지를 사용하거나 프로그래밍 언어에서 직접 구현할 수 있습니다.
요약하면, MICE는 다중 대체 방법 중 하나로, 누락된 데이터를 예측하고 보완하는 데 사용되며, 다양한 변수 간의 관계를 고려하여 누락된 데이터를 다시 생성합니다. 이는 데이터 분석과 모델링에서 누락된 데이터에 대한 정확한 처리를 위한 중요한 도구 중 하나입니다.
50. Dealing with Unbalanced Data
unbalanced data 해결 방안 :
  1. Oversampling (과다샘플링):
      • Oversampling은 소수 클래스(예: 사기 거래)의 샘플을 복사하여 더 많은 샘플을 만드는 것입니다.
      • 이 방법은 소수 클래스의 데이터 양을 증가시킴으로써 모델이 더 많은 정보를 학습할 수 있도록 도와줍니다.
      • 예를 들어, 사기 거래의 샘플을 복사하여 데이터셋을 균형있게 만들 수 있습니다.
  1. Undersampling (언더샘플링):
      • Undersampling은 다수 클래스(예: 정상 거래)의 샘플을 제거하여 데이터셋의 클래스 간 균형을 맞추려는 것입니다.
      • 이 방법은 다수 클래스의 데이터 양을 줄이기 때문에 데이터 손실이 발생할 수 있으며 정보 손실이 크기 때문에 주의해야 합니다.
  1. SMOTE (Synthetic Minority Oversampling Technique):
      • SMOTE는 소수 클래스의 샘플을 복사하는 대신, 가장 가까운 이웃(Nearest Neighbors) 샘플을 사용하여 새로운 샘플을 합성하는 방법입니다.
      • 이 방법은 인공적으로 생성된 샘플을 만들어 소수 클래스를 확장합니다.
      • SMOTE는 더 현실적인 데이터를 생성하며, 다수 클래스의 언더샘플링과 결합하여 사용됩니다.
  1. Adjusting Thresholds (임계값 조정):
      • 분류 모델에서 예측 결과를 만들 때 사용되는 임계값을 조정하여 모델의 성능을 조절할 수 있습니다.
      • 예를 들어, 사기 거래를 감지하는 모델에서 임계값을 높이면 더 높은 신뢰도로 사기 거래를 식별할 수 있지만, 그만큼 정상 거래를 사기로 잘못 식별할 수도 있습니다.
      • 임계값 조정은 false positive와 false negative 간의 상충 관계를 고려하여 수행되어야 합니다.
 
51. Handling Outliers
표준편차를 기억하자
AWS에서는 랜덤 컷 포레스트(Random Cut Forest)를 기억하자
52. Binning, Transforming, Encoding, Scaling, and Shuffling
바이닝
• 값의 범위에 따라 관측치를 묶습니다.
• 예시: 사람들의 추정 연령 : • 20대는 한 그룹에, 30대는 다른 그룹에 넣습니다.
• 분위수 바이닝은 데이터 분포 내에서 데이터의 위치에 따라 데이터를 분류합니다.
• 각 그룹의 크기를 균등하게 유지합니다.
• 숫자 데이터를 서수 데이터로 변환합니다.
• 측정값에 불확실성이 있는 경우 특히 유용합니다.
Transforming
  • 훈련에 더 적합하게 기능에 일부 함수를 적용하는 것
  • 지수적인 추세를 가지는 특징 데이터는 로그 변환을 통해 이점을 얻을 수 있습니다.
  • 예: YouTube 추천
  • 수치 기능 𝑥는 x² 및 √x로도 표현됩니다.
  • 이를 통해 초선형 및 부선형 함수의 학습이 가능합니다.
Encoding
  • 원-핫 인코딩 • 모든 카테고리에 대해 "버킷" 생성 • 해당 카테고리의 버킷은 1로, 나머지는 0으로 설정 • 딥 러닝에서 매우 흔한 방법으로, 카테고리는 개별 출력 "뉴런"으로 표현됩니다.
Scaling / Normalization : Scikit_learn 모듈 (MinMaxScaler)
Shuffling
53. Amazon SageMaker Ground Truth and Label Generation
Amazon SageMaker Ground Truth는 기계 학습을 위한 고품질 레이블이 지정된 데이터셋을 생성하는 데 도움이 되는 아마존 웹 서비스 (AWS)에서 제공하는 서비스입니다. 자동화된 및 인간 주석자를 사용하여 데이터에 주석을 달 수 있는 쉽고 효율적인 방법을 제공하여 정확하고 신뢰할 수 있는 레이블을 보장합니다.
54. Lab: Preparing Data for TF-IDF with Spark and EMR Studio, Part 1
TF-IDF : TF-IDF(Term Frequency-Inverse Document Frequency)는 텍스트 문서의 중요성을 수치적으로 나타내는 통계적 방법입니다. 이는 각 단어의 문서 내 빈도 (TF)와 단어의 전체 문서 집합에서의 일반성 (IDF)을 고려하여 단어의 중요성을 계산합니다. 이를 통해 중요한 단어를 강조하고 불용어를 제거하여 정보 검색, 문서 유사성 측정, 문서 분류 등 다양한 자연어 처리 작업에서 활용됩니다. TF-IDF는 텍스트 데이터를 다룰 때 유용한 도구입니다.
확장된 TF-IDF는 이러한 개별 단어뿐만 아니라 바이그램 (두 개의 연속된 단어) 또는 다른 n-그램을 고려합니다. 예를 들어, "big data," "machine learning," "natural language processing"과 같은 바이그램 또는 n-그램에 대한 중요성을 계산합니다. 이렇게 하면 개별 단어 이상의 의미를 갖는 어구나 구문에 대한 관련성을 측정할 수 있으며, 텍스트 분석과 정보 검색에서 더 정확한 결과를 얻을 수 있습니다.
55. Lab: Preparing Data for TF-IDF with Spark and EMR Studio, Part 2
57. Introduction to Deep Learning
  • Types of Neural Networks
    • Feedforward Neural Network :피드포워드 신경망은 입력층에서 출력층으로만 정보가 단방향으로 흐르는 인공 신경망의 한 종류입니다.
    • Convolutional Neural Networks (CNN) : 합성곱 신경망(CNN)은 이미지 인식 및 처리 작업에 일반적으로 사용되는 신경망의 한 종류입니다. 입력 데이터에서 특징을 자동으로 학습하고 추출할 수 있도록 설계되었습니다.
    • Recurrent Neural Networks (RNNs) : 순환 신경망(RNN)은 피드백 연결을 이용하여 순차적인 데이터를 처리할 수 있는 신경망의 한 종류입니다. 주로 언어 모델링과 음성 인식과 같은 작업에 사용됩니다.
      1. Feedforward Neural Network (피드포워드 신경망): 이것은 가장 기본적인 신경망 구조 중 하나로, 입력 데이터가 순방향으로 처리되는 네트워크입니다. 입력층, 은닉층 및 출력층으로 구성되며, 정보는 입력에서 출력 방향으로만 흐릅니다. 이러한 신경망은 주로 분류, 회귀 및 패턴 인식과 같은 작업에 사용됩니다.
      1. Convolutional Neural Networks (CNN, 합성곱 신경망): CNN은 주로 이미지 처리와 관련된 작업에 사용되는 신경망입니다. 이 신경망은 입력 데이터에서 공간적인 구조와 패턴을 추출하기 위해 합성곱 층(convolutional layer)을 사용합니다. 이로써 이미지 내에서 특징을 탐지하고 인식할 수 있으며, 이미지 분류, 객체 감지 및 분할과 같은 작업에 적합합니다.
      1. Recurrent Neural Networks (RNNs, 순환 신경망): RNN은 순차적인 데이터를 처리하는 데 사용되는 신경망입니다. 이 신경망은 반복적으로 업데이트되는 은닉 상태(hidden state)를 가지며, 이전의 입력을 현재 입력과 함께 고려합니다. 이로써 순차 데이터의 패턴 및 의존성을 모델링하는 데 적합하며, 자연어 처리(NLP) 및 시계열 데이터 분석과 같은 작업에 주로 사용됩니다.
      1. LSTM (Long Short-Term Memory): LSTM은 RNN의 변종 중 하나로, 순차 데이터의 장기 의존성을 캡처하는 데 특히 효과적입니다. LSTM은 기본 RNN과는 달리 긴 시퀀스에서 그라디언트(gradient)가 소실되는 문제를 해결하기 위해 설계되었습니다. 이를 위해 LSTM은 게이트(gate)라고 불리는 메커니즘을 사용하여 정보의 흐름을 제어하고 기억 셀(memory cell)을 유지합니다. 이를 통해 LSTM은 긴 시퀀스에서도 중요한 정보를 기억하고 장기적인 의존성을 학습할 수 있습니다.
      1. GRU (Gated Recurrent Unit): GRU도 LSTM과 비슷한 목적을 가지고 있지만 더 간단한 구조를 갖추고 있습니다. LSTM에 비해 더 적은 게이트와 상태를 사용하며, 모델 파라미터 수가 적습니다. 이로 인해 GRU는 LSTM에 비해 계산적으로 효율적이며, 작은 데이터셋이나 리소스 제한된 환경에서 사용하기에 적합합니다. GRU는 주로 자연어 처리 및 음성 처리와 같은 응용 분야에서 사용됩니다.
58. Activation Functions
  • ReLU(렐루)는 Rectified Linear Unit의 약자로, 인공 신경망에서 사용되는 활성화 함수 중 하나입니다. ReLU는 입력이 양수인 경우 그 값을 그대로 출력하고, 음수인 경우에는 0을 출력하는 함수입니다. 하지만 ReLU 함수는 몇 가지 주의사항을 가지고 있습니다. 특히 입력값이 음수인 경우 출력값이 항상 0이므로 "dying ReLU" 문제가 발생할 수 있습니다.
  • Leaky ReLU는 인공 신경망에서 사용되는 활성화 함수 중 하나로, 입력값이 음수일 때 작은 기울기를 갖는 ReLU 함수입니다.
  • 지수 선형 유닛(ELU) 함수는 딥 러닝 신경망에서 일반적으로 사용되는 활성화 함수입니다. 이는 ReLU 함수의 수정 버전으로, 지수 함수를 사용하여 음수 값을 허용합니다.
  • Softmax
    • 다중 분류 문제의 최종 출력 레이어에서 사용됩니다.
    • 기본적으로 각 분류의 확률로 출력을 변환합니다.
    • 여러 레이블을 생성할 수 없습니다 (시그모이드는 가능).
    • 시험에서 실제 함수에 대해 걱정할 필요는 없으며, 그것이 어떤 용도로 사용되는지만 알고 계시면 됩니다.
  • 활성화 함수 선택하기? - 시험에서 특정 문제에 어떤 함수를 사용할지 물어 볼 수 있음
    • 다중 분류를 위해서는 출력층에서 softmax를 사용하세요.
    • RNN은 Tanh와 잘 어울립니다.
    • 그 외의 경우에는
      • ReLU로 시작하세요.
      • 더 나은 성능이 필요하다면 Leaky ReLU를 시도해보세요.
      • 마지막 수단으로 PReLU, Maxout을 사용하세요.
      • 깊은 신경망에는 Swish를 사용하세요.
59. Convolutional Neural Networks
  • CNN(Convolutional Neural Networks)은 이미지 처리와 컴퓨터 비전 분야에서 주로 사용됩니다. 주요 응용 분야로는 이미지 분류, 객체 감지, 얼굴 인식 등이 있습니다.
  • Specialized CNN architectures
    • LeNet-5
    • AlexNet
    • GoogLeNet
    • ResNet (Residual Network) → AWS Sagemaker 등에서 사용
60. Recurrent Neural Networks
  • RNN (Recurrent Neural Networks)은 순차적인 데이터를 처리하기 위해 설계된 인공 신경망의 한 종류입니다. 이들은 정보를 유지하고 네트워크를 통해 흐르게 하는 피드백 연결을 가지고 있어 자연어 처리 및 시계열 분석과 같은 작업에 효과적입니다.
61. Modern NLP with BERT and GPT, and Transfer Learning
  • Transformer
    • "Self-attention" 메커니즘 사용
      • 입력 데이터의 각 부분의 중요성을 가중치로 평가합니다.
      • 순차적 데이터(예: 단어, RNN처럼)를 처리하지만 전체 입력을 한꺼번에 처리합니다.
      • 어텐션 메커니즘은 문맥을 제공하므로 한 번에 한 단어를 처리할 필요가 없습니다.
    • BERT, RoBERTa, T5, GPT-2 등, DistilBERT
    • DistilBERT: 지식 증류를 사용하여 모델 크기를 40%로 축소합니다.
  • BERT: Transformer로부터의 양방향 인코더 표현.
  • GPT: 생성적 사전 훈련 Transformer.
chatGPT 설명
  1. Transformer:
      • 트랜스포머는 2017년에 Vaswani et al.에 의해 처음 제안된 딥 러닝 아키텍처입니다.
      • 트랜스포머는 "self-attention" 메커니즘을 사용하여 시퀀스 데이터를 처리합니다. 이 메커니즘을 통해 입력 데이터의 각 부분의 상대적 중요성을 계산할 수 있습니다.
      • 트랜스포머는 RNN과 달리 순차적 데이터를 한 번에 처리하기 때문에 병렬 처리가 가능하며, 이로 인해 학습 및 추론 속도를 향상시킵니다.
      • 대표적인 트랜스포머 모델로 BERT, RoBERTa, T5, GPT-2 등이 있으며, 각각 특정 NLP 작업에 맞게 사전 훈련되고 성능이 검증된 모델입니다.
  1. BERT (Bi-directional Encoder Representations from Transformers):
      • BERT는 트랜스포머 아키텍처를 사용하여 사전 훈련된 언어 모델로, 2018년에 Google AI에서 개발되었습니다.
      • BERT는 양방향으로 문맥을 이해하고, 언어 이해 작업에서 탁월한 성능을 보이며, 자연어 이해(NLU) 작업에서 기존 모델을 훨씬 뛰어넘는 성능을 제공합니다.
  1. GPT (Generative Pre-trained Transformer):
      • GPT는 트랜스포머 아키텍처를 기반으로 한 생성 모델로, OpenAI에서 개발되었습니다.
      • GPT는 자연어 생성 작업에 사용되며, 특히 텍스트 생성 및 대화 시스템에 활용됩니다.
      • GPT 모델은 사전 훈련된 언어 모델로, 다양한 텍스트 생성 작업에 적용 가능하며, GPT-2 및 GPT-3와 같은 다양한 변형이 있습니다.
  1. DistilBERT:
      • DistilBERT는 BERT 모델의 경량화 버전으로, Hugging Face에서 개발되었습니다.
      • 이 모델은 지식 축소(knowledge distillation) 기술을 사용하여 원래 BERT 모델보다 40% 정도 더 작은 크기를 가지면서도 성능을 유지하도록 설계되었습니다.
      • DistilBERT는 자원 제약이 있는 환경이나 모델 크기를 줄여야 할 때 유용합니다.
Transfer Learning
  • Transfer Learning 하는데 너무 많고 복잡해서 Hugging Face를 사용함
  • Hugging Face는 미리 훈련된 다양한 NLP 모델 및 기계 학습 모델을 모아놓은 모델 저장소이다.
Transfer Learning: BERT example → 원리 이해 필요
  1. 사전 훈련 (Pretraining):
      • BERT는 대용량의 텍스트 데이터(웹 크롤링된 텍스트 등)를 사용하여 사전 훈련됩니다. 이 과정에서 BERT 모델은 문맥을 이해하고 언어의 다양한 측면을 파악하는 데 필요한 언어 표현을 학습합니다.
      • BERT는 양방향 언어 모델로, 문장 내 단어나 토큰 간의 상호 작용을 이해하고, 이전 및 이후의 모든 문맥을 고려합니다.
  1. 미세 조정 (Fine-tuning):
      • BERT 모델은 사전 훈련된 상태에서 다양한 자연어 처리 작업에 재사용될 수 있습니다. 이때, 모델의 최상위 레이어를 수정하고 목표 작업에 맞게 미세 조정합니다.
      • 미세 조정 단계에서는 추가 데이터를 사용하여 모델을 다시 훈련하거나, 목표 작업의 손실 함수를 최소화하도록 가중치를 조정합니다.
      • 예를 들어, 텍스트 분류 작업을 수행하려는 경우, BERT 모델의 출력 레이어를 변경하고 분류 작업에 맞는 손실 함수를 사용하여 훈련합니다.
  1. 추론 (Inference):
      • 미세 조정된 BERT 모델을 사용하여 실제 추론을 수행합니다. 이 모델은 텍스트 분류, 질문 응답, 텍스트 생성 등 다양한 NLP 작업에 적용될 수 있습니다.
      • 모델은 새로운 입력 데이터에 대한 예측을 만들고, 분류 작업의 경우 클래스 레이블을 예측하거나, 질문 응답 작업의 경우 질문에 대한 답변을 생성합니다.
Transfer Learning approaches
  • 사전 훈련된 모델을 계속 훈련하기 (미세 조정)
    • 훈련 데이터가 사용자가 보유한 데이터보다 훨씬 많은 모델을 미세 조정에 사용합니다.
    • 학습률을 낮게 설정하여 모델을 점진적으로 개선합니다.
  • 얼린 모델의 상단에 새로운 학습 가능한 레이어 추가하기
    • 이전 특징을 새로운 데이터에 대한 예측으로 변환하는 방법을 학습합니다.
    • 새로운 레이어를 추가한 후 미세 조정도 수행할 수 있습니다.
  • 처음부터 다시 훈련하기
    • 훈련 데이터가 많고, 기존의 사전 훈련된 모델과 근본적으로 다른 경우에 사용합니다.
    • 그리고 컴퓨팅 성능이 충분한 경우에만 사용하세요!
  • 그대로 사용하기
    • 모델의 훈련 데이터가 이미 원하는 데이터인 경우에 사용합니다.
62. Deep Learning on EC2 and EMR
인스턴스 유형
GPU 또는 프로세서 구성
P3
8 Tesla V100 GPU's
P2
16 K80 GPU's
G3
4 M60 GPU's (Nvidia 칩)
G5g
AWS Graviton 2 프로세서 / Nvidia T4G Tensor Core GPU's
P4d
A100 "UltraClusters" (슈퍼컴퓨팅)
Trn1
800 Gbps EFA 네트워크, 훈련 용
Trn1n
1600 Gbps 네트워크, 훈련 용
Inf2
추론 작업에 최적화
 
63. Tuning Neural Networks
하이퍼파라미터
Learning Rate (학습률):
  • 신경망은 경사 하강법(또는 유사한 방법)을 사용하여 훈련됩니다.
  • 훈련은 비용 함수를 최소화하려는 목표로, 여러 에포크 동안 무작위로 선택한 가중치와 함께 시작합니다.
  • 학습률은 이러한 가중치를 업데이트하는 속도를 나타냅니다. 즉, 얼마나 크게 가중치를 조정할지를 결정합니다.
Learning Rate의 효과:
  • 너무 높은 학습률은 최적 솔루션을 지나칠 수 있습니다. 즉, 최소 비용에 도달하지 못하고 발산할 수 있습니다.
  • 너무 작은 학습률은 최적 솔루션을 찾는 데 너무 많은 시간이 걸릴 수 있습니다.
  • 학습률은 하이퍼파라미터의 한 예입니다. 이 값을 적절히 조정하는 것이 중요합니다.
Batch Size (배치 크기):
  • 배치 크기는 각 에포크의 각 배치에서 사용되는 훈련 샘플의 수를 나타냅니다.
  • 다소 역설적으로, 더 작은 배치 크기는 "지역 최솟값"에서 빠져나오는 데 더 효과적일 수 있습니다. 즉, 더 작은 배치에서 가중치를 업데이트하면 더 다양한 방향으로 진행할 수 있습니다.
  • 반면, 너무 큰 배치 크기는 잘못된 솔루션에 갇히는 경우가 발생할 수 있습니다.
  • 각 에포크에서 데이터를 무작위로 섞는 것은 실행마다 결과가 매우 불안정하게 보일 수 있지만, 다양한 방향으로 학습을 돕습니다.
시험!
  1. Small batch sizes tend to not get stuck in local minima (작은 배치 크기는 지역 최솟값에 갇히지 않는 경향이 있다):
      • 작은 배치 크기는 각 업데이트마다 일부 데이터만 사용하므로, 지역 최솟값에 빠져나오기 더 쉬울 수 있습니다. 이것은 더 다양한 방향으로 이동하면서 전역 최솟값을 찾는 데 도움이 됩니다.
  1. Large batch sizes can converge on the wrong solution at random (큰 배치 크기는 무작위로 잘못된 솔루션에 수렴할 수 있다):
      • 반면, 큰 배치 크기는 임의로 잘못된 솔루션에 수렴할 가능성이 있습니다. 이는 더 큰 배치에서의 업데이트가 더 많은 데이터를 고려하기 때문에 정확한 방향을 찾는 것이 더 어려울 수 있기 때문입니다.
  1. Large learning rates can overshoot the correct solution (큰 학습률은 올바른 솔루션을 지나칠 수 있다):
      • 큰 학습률은 가중치 업데이트를 크게 하므로 최적 솔루션을 지나칠 가능성이 있습니다. 즉, 최소 비용에 도달하지 못하고 발산할 수 있습니다.
  1. Small learning rates increase training time (작은 학습률은 훈련 시간을 증가시킨다):
      • 학습률을 작게 설정하면 가중치 업데이트가 작아지므로 최적 솔루션을 찾는 데 더 많은 시간이 걸릴 수 있습니다. 즉, 훈련 속도가 느려질 수 있습니다.
 
64. Regularization Techniques for Neural Networks (Dropout, Early Stopping)
Epoch
"Epoch"는 딥 러닝 및 머신 러닝 모델의 훈련 과정에서 사용되는 중요한 개념 중 하나입니다. Epoch는 전체 훈련 데이터셋을 한 번 통과하는 것을 나타냅니다. 따라서 Epoch 수는 모델이 전체 훈련 데이터를 몇 번이나 학습하는지를 결정하는 매개 변수 중 하나입니다.
Epoch의 중요성과 관련된 몇 가지 포인트는 다음과 같습니다:
  1. 훈련의 반복: 딥 러닝 모델은 데이터셋을 사용하여 학습됩니다. 한 번의 Epoch는 모든 훈련 데이터를 한 번 사용하여 가중치를 업데이트하는 한 주기를 나타냅니다.
  1. Overfitting과 Underfitting 관리: Epoch 수는 모델의 과적합(Overfitting)과 부적합(Underfitting) 사이의 균형을 조절하는 중요한 하이퍼파라미터입니다. 적절한 Epoch 수를 선택하여 모델이 훈련 데이터와 일반화 데이터에 모두 잘 수행되도록 해야 합니다.
  1. 성능 향상: 초기 Epoch에서는 모델이 데이터를 학습하고 개선됩니다. 그러나 일정 Epoch 이상 지나면 성능 향상이 미미하거나 더 이상 없을 수 있습니다. 이런 경우에는 Epoch를 더 많이 증가시키지 않고 훈련을 중지하고, 조기 종료(Early Stopping)를 고려할 수 있습니다.
예를 들어, 100 Epoch로 훈련하는 것은 전체 훈련 데이터를 100번 반복하여 학습하는 것을 의미합니다. 그러나 적절한 Epoch 수는 모델과 문제에 따라 다를 수 있으므로, 실험 및 검증을 통해 최적의 Epoch 수를 결정해야 합니다.
 
Dropout
Dropout은 딥 러닝에서 과적합을 방지하기 위한 정규화 기법 중 하나로, 특히 인공 신경망에서 많이 사용됩니다. Dropout은 훈련 중에 무작위로 선택된 뉴런을 제거하거나 비활성화하여 모델을 더 견고하게 만드는 데 도움을 줍니다.
Dropout의 주요 아이디어는 다음과 같습니다:
  1. 랜덤한 뉴런 비활성화: 훈련 과정 중에 각 뉴런의 활성화를 무작위로 제거하거나 비활성화합니다. 이것은 각 훈련 반복마다 다른 뉴런 세트를 사용하게 합니다.
  1. 앙상블 효과: Dropout을 통해 훈련될 때, 모델은 다양한 뉴런 서브셋에 대해 학습합니다. 이것은 앙상블 학습과 유사한 효과를 만들어냅니다. 즉, 여러 모델의 평균 예측을 사용하는 것과 유사한 효과를 내며 과적합을 줄일 수 있습니다.
  1. 일반화 능력 향상: Dropout을 사용하면 모델이 더 일반적인 특성을 학습하도록 돕습니다. 특정 뉴런에 의존하지 않고 다양한 특성을 활용하기 때문에 모델의 일반화 능력을 향상시킬 수 있습니다.
Dropout은 주로 인공 신경망의 은닉층에서 사용되며, 모델의 복잡성을 줄이고 훈련 데이터에 지나치게 의존하지 않도록 합니다. 일반적으로 0.2에서 0.5 사이의 드롭아웃 비율을 사용하며, 이 비율은 하이퍼파라미터로 조정할 수 있습니다. Dropout은 과적합을 방지하고 모델의 일반화 능력을 향상시키는 데 매우 유용한 정규화 기법 중 하나입니다.
Early Stopping
Early Stopping의 장점과 관련된 몇 가지 포인트는 다음과 같습니다:
  • 과적합 방지: Early Stopping은 훈련 데이터에 대한 손실이 계속해서 감소하면서 과적합을 일으킬 가능성을 줄입니다. 따라서 검증 데이터에 대한 손실이 증가하기 시작할 때 조기 종료를 통해 모델을 멈춤으로써 일반화 능력을 향상시킵니다.
  • 효율적인 훈련: 불필요한 훈련 시간을 절약할 수 있습니다. 최적 모델을 찾은 후에도 계속해서 훈련하는 것은 시간과 컴퓨팅 자원을 낭비할 수 있습니다. Early Stopping은 이를 방지합니다.
  • 하이퍼파라미터 튜닝: 조기 종료는 하이퍼파라미터 튜닝에도 도움이 됩니다. 조기 종료를 사용하여 적절한 에포크 수를 선택하고, 모델의 일반화 능력을 향상시키는 최적의 모델을 찾을 수 있습니다.
65. L1 and L2 Regularization
  • L1과 L2 정규화의 차이점이 시험에 나옴
  • L1 정규화:
    • 피처 선택(feature selection)이 중요한 경우, 즉 일부 피처가 중요하고 다른 피처는 무시해도 되는 경우.
    • 모델이 간단하고 해석하기 쉽게 만들어야 하는 경우.
  • L2 정규화:
    • 모든 피처가 유용하고 중요한 경우.
    • 가중치 간의 큰 차이를 줄이고 모델을 안정화해야 하는 경우.
    • 과적합을 줄이고 모델의 일반화 능력을 향상시키려는 경우.
66. Grief with Gradients: The Vanishing Gradient problem
  • vanishing gradient 문제가 발생하면 ReLU를 사용하라
  • Gradient Checking
    • 디버깅 기술
    • 훈련 중에 계산된 도함수를 수치적으로 확인
    • 신경망 훈련 코드를 검증하는 데 유용
      • 하지만 아마도 여러분은 이 코드를 작성하지 않을 것입니다...
67. The Confusion Matrix
notion image
  1. True Positives (TP, 진짜 양성): 실제 양성인 경우 모델이 양성으로 예측한 경우를 나타냅니다.
  1. False Positives (FP, 거짓 양성): 실제 음성인 경우 모델이 양성으로 예측한 경우를 나타냅니다.
  1. False Negatives (FN, 거짓 음성): 실제 양성인 경우 모델이 음성으로 예측한 경우를 나타냅니다.
  1. True Negatives (TN, 진짜 음성): 실제 음성인 경우 모델이 음성으로 예측한 경우를 나타냅니다.
68. Precision, Recall, F1, AUC, and more : 매우 중요**
  • 재현율 (Recall 또는 Sensitivity): TruePositives / (TruePositives + FalseNegatives)
  • 정밀도 (Precision): TruePositives / (TruePositives + FalsePositives)
  • F1 점수 (F1 Score): 2 * (정밀도 * 재현율) / (정밀도 + 재현율).
  • 정확도 (Accuracy): (TP + TN) / (TP + FP + FN + TN)
  • 특이도(Specificity 또는 True Negative Rate, TNR): TN / (TN + FP)
  • ROC Curve AUC
    • AUC = 0.5: 무작위 분류 모델과 비슷한 성능
    • AUC < 0.5: 모델의 성능이 무작위 분류보다 나쁨 (예측이 거의 항상 틀림)
    • AUC > 0.5: 모델의 성능이 무작위 분류보다 우수 (예측이 양성과 음성 클래스를 더 잘 구별함)
69. Ensemble Methods: Bagging and Boosting
앙상블 메소드(Ensemble Methods)는 기계 학습에서 여러 개의 개별 모델을 결합하여 보다 강력하고 정확한 예측 모델을 만드는 기술입니다.
Bagging
Boosting
핵심 아이디어
복수의 독립적인 모델 생성
약한 모델 순차적으로 학습 및 결합
학습 방법
병렬로 독립적인 모델 학습
순차적으로 모델 학습 및 가중 결합
샘플 사용 방법
부트스트랩 샘플링 (중복 허용)
가중치를 조절하여 샘플 사용
예측 방법
각 모델 예측 평균 또는 다수결
모델 예측 오류에 따라 가중 평균
과적합 관리
과적합 감소에 효과적
과적합을 줄이기 위해 사용됨
모델의 안정성
안정적
데이터에 민감할 수 있음
대표적인 알고리즘
Random Forest
AdaBoost, Gradient Boosting, XGBoost
성능 향상 방향
분산 감소 및 안정성 향상
정확도 향상 및 편향 감소
71 ~ 87 AWS SageMaker 알고리즘
71. Linear Learner in SageMaker
목적
  • 선형 회귀
    • 훈련 데이터에 선을 맞춥니다.
    • 그 선을 기반으로 예측합니다.
  • 회귀 (숫자) 예측 및 분류 예측 모두 처리할 수 있습니다.
    • 분류의 경우, 선형 임계 함수를 사용합니다.
    • 이진 또는 다중 클래스를 다룰 수 있습니다.
기대 입력 훈련
  • RecordIO로 래핑된 프로토콜 버퍼
  • CSV
  • 파일 또는 파이프 모드 모두 지원됩니다.
사용방법
  • 전처리
    • 훈련 데이터는 정규화되어야 합니다 (모든 특징이 동일한 가중치를 갖도록).
    • 선형 학습기가 이를 자동으로 수행할 수 있습니다.
    • 입력 데이터는 섞여야 합니다.
  • 훈련
    • 확률적 경사 하강법을 사용합니다.
    • 최적화 알고리즘을 선택합니다 (Adam, AdaGrad, SGD 등).
    • 여러 모델을 병렬로 최적화합니다.
    • L1, L2 정규화를 조정합니다.
  • 검증
    • 가장 최적의 모델이 선택됩니다.
중요한 하이퍼파라미터
  • Balance_multiclass_weights
    • 손실 함수에서 각 클래스에 동일한 중요도를 부여합니다.
  • 학습률, 미니 배치 크기
  • L1
    • 정규화
  • Wd
    • 가중치 감소 (L2 정규화)
인스턴스 유형
  • 훈련
    • 단일 또는 다중 머신 CPU 또는 GPU
    • Multi-GPU는 도움이 되지 않습니다.
72. SageMaker에서의 XGBoost
목적
  • eXtreme Gradient Boosting
    • 부스팅된 결정 트리
    • 새로운 트리가 오류를 보정하기 위해 생성됨
    • 경사 하강법을 사용하여 새로운 트리가 추가될 때 손실을 최소화함
  • Kaggle 대회에서 많은 수상 경력을 가지고 있음
    • 또한 빠릅니다
  • 분류에 사용할 수 있습니다
  • 또한 회귀에도 사용할 수 있습니다
    • 회귀 트리를 사용합니다
    • 결정 트리의 그룹을 강화합니다.
    • 이전 트리의 오류를 수정하기 위해 새로운 트리를 생성합니다.
    • 새로운 트리가 추가되는 동안 손실을 최소화하기 위해 경사 하강법을 사용합니다.
기대 입력 훈련
  • XGBoost는 SageMaker용으로 만들어지지 않아 이상합니다. 그냥 오픈 소스 XGBoost입니다.
  • 따라서 CSV 또는 libsvm 형식의 입력을 사용합니다.
  • 최근 AWS에서는 recordIO-protobuf와 Parquet도 지원하게 확장되었습니다.
사용방법
  • 모델은 Pickle을 사용하여 직렬화/역직렬화됩니다.
  • 노트북 내에서 프레임워크로 사용할 수 있습니다.
    • Sagemaker.xgboost
  • 또는 내장된 SageMaker 알고리즘으로 사용할 수 있습니다.
중요한 하이퍼파라미터
  • Subsample
    • 과적합 방지
  • ETA
    • 스텝 크기 축소, 과적합 방지
  • Gamma
    • 파티션 생성을 위한 최소 손실 감소; 값이 클수록 보수적
  • Alpha
    • L1 정규화 항; 값이 클수록 보수적
  • Lambda
    • L2 정규화 항; 값이 클수록 보수적
  • eval_metric
    • AUC, 오류, rmse 등으로 최적화
    • 예를 들어 정확도보다 거짓 양성에 더 중점을 둔다면 AUC를 사용할 수 있음
  • scale_pos_weight
    • 양성과 음성 가중치의 균형 조정
    • 불균형한 클래스에 유용
    • sum(음성 케이스) / sum(양성 케이스)와 같이 설정할 수 있음
  • max_depth
    • 트리의 최대 깊이
    • 너무 높으면 과적합될 수 있음
인스턴스 유형
  • 메모리 한계에 따라 성능이 결정됨
  • 따라서 M5가 좋은 선택입니다
  • XGBoost 1.2부터 단일 인스턴스 GPU 학습을 지원합니다
    • 예를 들어 P2, P3
    • tree_method 하이퍼파라미터를 gpu_hist로 설정해야 함
    • 더 빠르게 학습되고 비용 효율적일 수 있음
  • XGBoost 1.2-2
    • P2, P3, G4dn, G5
  • XGBoost 1.5+: 분산 GPU 학습 가능
    • use_dask_gpu_training을 true로 설정해야 함
    • TrainingInput에서 distribution을 fully_replicated로 설정해야 함
    • csv 또는 parquet 입력만 작동함
73. Seq2Seq in SageMaker
목적
  • 입력은 토큰(sequence of tokens)의 시퀀스이며, 출력은 토큰(sequence of tokens)의 시퀀스입니다.
  • 기계 번역
  • 텍스트 요약
  • 음성 인식
  • RNN과 CNN에 주의를 기울여 구현됩니다.
기대 입력 훈련
  • RecordIO-Protobuf : 토큰은 정수여야 합니다. (대부분의 알고리즘은 부동 소수점 데이터를 원합니다.)
  • 토큰화된 텍스트 파일로 시작합니다.
  • 샘플 코드를 사용하여 protobuf로 변환합니다.
    • 어휘 파일과 함께 정수 텐서로 패킹됩니다.
    • 이전에 수행한 TF/IDF 랩과 매우 유사합니다.
  • 훈련 데이터, 검증 데이터 및 어휘 파일을 제공해야 합니다.
사용방법
  • 기계 번역을 위한 훈련은 수 일 동안 소요될 수 있으며, SageMaker에서도 마찬가지입니다.
  • 사전 훈련된 모델을 사용할 수 있습니다.
  • 특정 번역 작업을 위한 공개 훈련 데이터셋이 제공됩니다.
중요한 하이퍼파라미터
  • Batch_size
  • Optimizer_type (adam, sgd, rmsprop)
  • Learning_rate
  • Num_layers_encoder
  • Num_layers_decoder
  • Can optimize on:
    • Accuracy
      • Vs. provided validation dataset
    • BLEU score
      • Compares against multiple reference translations
    • Perplexity
      • Cross-entropy
인스턴스 유형
  • GPU 인스턴스 유형 (예: P3)만 사용할 수 있습니다.
  • 훈련에는 단일 머신만 사용할 수 있지만, 한 대의 머신에서 다중 GPU를 사용할 수 있습니다.
74. SageMaker에서 DeepAR
목적
  • 일차원 시계열 데이터 예측
  • RNN 사용
  • 관련된 여러 시계열에 동일한 모델 훈련 가능
  • 주파수와 계절성을 찾을 수 있음
훈련에 대한 기대 입력
  • JSON lines 형식: Gzip 또는 Parquet
  • 각 레코드에는 다음이 포함되어야 함:
    • Start: 시작 타임스탬프
    • Target: 시계열 값
  • 각 레코드에는 다음이 포함될 수 있음:
    • Dynamic_feat: 동적 피처 (예: 제품 구매 시계열에서 프로모션 적용 여부)
    • Cat: 범주형 피처
사용 방법
  • 훈련, 테스트, 추론에는 항상 전체 시계열 포함
  • 전체 데이터셋을 훈련 세트로 사용하고, 테스트를 위해 마지막 시간 지점 제거. 보류된 값으로 평가.
  • 예측 길이에 매우 큰 값 사용하지 않기 (> 400)
  • 가능한 경우 하나 이상의 시계열에 대해 훈련
중요한 하이퍼파라미터
  • Context_length
    • 예측을 수행하기 전에 모델이 보는 시간 지점의 수
    • 계절성보다 작을 수 있으며, 모델은 어차피 한 해를 지연시킴.
  • Epochs
  • mini_batch_size
  • Learning_rate
  • Num_cells
인스턴스 유형
  • CPU 또는 GPU 사용 가능
  • 단일 또는 다중 머신
  • CPU로 시작 (ml.c4.2xlarge, ml.c4.4xlarge)
  • 필요한 경우 GPU로 전환
    • 큰 모델에 도움이 됨
    • 또는 큰 미니 배치 크기 (> 512)
  • 추론에는 CPU만 사용
  • 튜닝을 위해 큰 인스턴스가 필요할 수 있음
75. BlazingText in SageMaker
목적
  • BlazingText는 문장 수준의 처리에 최적화된 알고리즘이며, 이 점은 시험에서 기억해야 할 중요한 내용입니다.
  • 텍스트 분류
    • 문장에 대한 레이블 예측
    • 웹 검색, 정보 검색에 유용
    • 지도 학습
  • Word2vec
    • 단어의 벡터 표현을 생성
    • 의미론적으로 유사한 단어는 서로 가까운 벡터로 표현됨
    • 이를 워드 임베딩이라고 함
    • NLP에 유용하지만 NLP 알고리즘 자체는 아님!
      • 기계 번역, 감성 분석에 사용됨
    • 문장이나 문서가 아닌 개별 단어에만 작동함에 유의하세요.
훈련에 대한 기대 입력
  • 지도 학습 모드 (텍스트 분류)의 경우:
    • 한 줄에 하나의 문장
    • 문장의 첫 번째 "단어"는 레이블을 따라옴
  • 또한 "augmented manifest text format"
  • Word2vec은 훈련 문장당 한 줄의 텍스트 파일만 필요합니다.
사용 방법
  • Word2vec에는 여러 모드가 있습니다.
    • Cbow (Continuous Bag of Words)
    • Skip-gram
    • Batch skip-gram
      • 여러 CPU 노드에서 분산 계산
중요한 하이퍼파라미터
  • Word2vec:
    • Mode (batch_skipgram, skipgram, cbow)
    • Learning_rate
    • Window_size
    • Vector_dim
    • Negative_samples
  • 텍스트 분류:
    • Epochs
    • Learning_rate
    • Word_ngrams
    • Vector_dim
인스턴스 유형
  • cbow 및 skipgram의 경우, 단일 ml.p3.2xlarge을 권장합니다.
    • 단일 CPU 또는 단일 GPU 인스턴스는 모두 작동합니다.
  • batch_skipgram의 경우, 단일 또는 다중 CPU 인스턴스를 사용할 수 있습니다.
  • 텍스트 분류의 경우, 2GB 이하의 훈련 데이터인 경우 C5를 권장합니다. 더 큰 데이터 세트의 경우, 단일 GPU 인스턴스 (ml.p2.xlarge 또는 ml.p3.2xlarge)를 사용하세요.
76. SageMaker에서의 Object2Vec
목적
  • Blazing Text의 word2vec을 기억하고 계시나요? 그것과 비슷하지만 임의의 객체에 대해서 적용 가능합니다.
  • 고차원 객체의 저차원 밀집 임베딩을 생성합니다.
  • 기본적으로 단어 이외의 다른 것들을 처리하기 위해 일반화된 word2vec입니다.
  • 객체들의 가장 가까운 이웃 계산
  • 클러스터 시각화
  • 장르 예측
  • 추천 (유사한 항목이나 사용자)
훈련 데이터의 기대 입력
  • 데이터는 정수로 토큰화되어야 합니다.
  • 훈련 데이터는 토큰 또는 토큰 시퀀스의 쌍으로 이루어져 있습니다.
    • 문장 - 문장
    • 레이블 - 시퀀스 (장르에서 설명으로?)
    • 고객 - 고객
    • 제품 - 제품
    • 사용자 - 항목
사용 방법
  • 데이터를 JSON Lines 형식으로 처리하고 섞습니다.
  • 두 개의 입력 채널, 두 개의 인코더 및 컴페어러로 훈련합니다.
  • 인코더 선택:
    • 평균 풀링된 임베딩
    • CNN
    • 양방향 LSTM
  • 컴페어러는 피드 포워드 신경망을 따릅니다.
중요한 하이퍼파라미터
  • 일반적인 딥러닝 하이퍼파라미터...:
    • 드롭아웃, 조기 중단, 에폭, 학습률, 배치 크기, 레이어, 활성화 함수, 옵티마이저, 가중치 감쇠
  • Enc1_network, enc2_network
    • hcnn, bilstm, pooled_embedding 중 선택
인스턴스 유형
  • 단일 머신에서만 훈련 가능 (CPU 또는 GPU, 다중 GPU 가능)
    • ml.m5.2xlarge
    • ml.p2.xlarge
    • 필요한 경우 ml.m5.4xlarge 또는 ml.m5.12xlarge로 확장 가능
    • GPU 옵션: P2, P3, G4dn, G5
  • 추론: ml.p3.2xlarge 사용
    • 인코더 임베딩보다 분류 또는 회귀에 최적화하려면 INFERENCE_PREFERRED_MODE 환경 변수 사용.
77. SageMaker에서 객체 탐지
목적
  • 경계 상자와 함께 이미지 내의 모든 객체를 식별합니다.
  • 단일 딥 신경망을 사용하여 객체를 감지하고 분류합니다.
  • 클래스는 신뢰도 점수와 함께 제공됩니다.
  • ImageNet을 기반으로 사전 훈련된 모델을 사용하거나 처음부터 훈련할 수 있습니다.
훈련 데이터 예상 입력
  • MXNet: RecordIO 또는 이미지 형식 (jpg 또는 png)
  • 이미지 형식의 경우, 각 이미지에 대한 주석 데이터를 위한 JSON 파일을 제공합니다.
사용 방법
  • 두 가지 변형: MXNet 및 Tensorflow
  • 이미지를 입력으로 받고, 이미지 내의 모든 객체 인스턴스를 카테고리와 신뢰도 점수와 함께 출력합니다.
  • MXNet
    • Single Shot multibox Detector (SSD) 알고리즘을 사용하는 CNN을 사용합니다.
      • 기본 CNN은 VGG-16 또는 ResNet-50일 수 있습니다.
    • 전이 학습 모드 / 점진적 훈련
      • 초기 가중치 대신에 사전 훈련된 모델을 기본 네트워크 가중치로 사용합니다.
    • 과적합을 피하기 위해 내부적으로 flip, rescale 및 jitter를 사용합니다.
  • Tensorflow
    • TensorFlow Model Garden에서 ResNet, EfficientNet, MobileNet 모델을 사용합니다.
중요한 하이퍼파라미터
  • 미니 배치 크기
  • 학습률
  • 옵티마이저
    • Sgd, adam, rmsprop, adadelta
인스턴스 유형
  • 훈련에는 GPU 인스턴스를 사용합니다 (다중 GPU 및 다중 머신 가능)
    • ml.p2.xlarge, ml.p2.16xlarge, ml.p3.2xlarge, ml.p3.16xlarge, G4dn, G5
  • 추론에는 CPU 또는 GPU를 사용합니다.
    • M5, P2, P3, G4dn 모두 가능
78. SageMaker에서의 이미지 분류
객체 감지는 이미지 내 객체의 위치를 식별하는 반면, 이미지 분류는 이미지에 있는 물체를 식별하고 이미지에 하나 이상의 레이블을 할당합니다. 예를 들어 고양이 사진을 주면 이미지 분류는 "이것은 고양이입니다."라고 말할 것이며, 객체의 위치를 명시적으로 파악하지 않습니다.
목적
  • 이미지에 하나 이상의 레이블 할당
  • 객체의 위치를 알려주지는 않고, 이미지 안에 어떤 객체가 있는지 알려줌
훈련 데이터 예상 입력
      사용 방법
      • MXNet 및 Tensorflow용 별도의 알고리즘
      • MXNet
        • 전체 훈련 모드
          • 무작위 가중치로 초기화된 네트워크
        • 전이 학습 모드
          • 사전 훈련된 가중치로 초기화
          • 최상위 완전 연결 레이어는 무작위 가중치로 초기화됨
          • 새로운 훈련 데이터로 네트워크를 세밀하게 조정
        • 기본 이미지 크기는 3채널 224x224(ImageNet의 데이터셋)
      • Tensorflow: 다양한 Tensorflow Hub 모델 사용 (MobileNet, Inception, ResNet, EfficientNet)
        • 상위 분류 레이어는 세밀 조정 또는 추가 훈련에 사용 가능
      중요한 하이퍼파라미터
      • 딥러닝에 일반적으로 사용되는 하이퍼파라미터
        • 배치 크기, 학습률, 옵티마이저
      • 옵티마이저 특정 파라미터
        • 가중치 감쇠, 베타 1, 베타 2, 이프실론, 감마
        • MXNet 및 Tensorflow 버전 간에 약간의 차이가 있음
      인스턴스 유형
      • 훈련에는 GPU 인스턴스(ml.p2, p3, g4dn, g5) 멀티 GPU 및 멀티 머신 가능.
      • 추론에는 CPU 또는 GPU(m5, p2, p3, g4dn, g5) 사용
      79. SageMaker에서의 시맨틱 세그멘테이션
      목적
      • 픽셀 수준의 객체 분류
      • 이미지 분류와는 다른 방식으로, 전체 이미지에 레이블을 할당하지 않음
      • 객체 감지와는 다른 방식으로, 경계 상자에 레이블을 할당하지 않음
      • 자율 주행 차량, 의료 이미징 진단, 로봇 감지에 유용함
      • 세그멘테이션 마스크를 생성함
      훈련 데이터 예상 입력
      • JPG 이미지 및 PNG 주석
      • 훈련 및 검증에 사용됨
      • 주석을 설명하는 레이블 맵
      • 파이프 모드에서 지원되는 증강 매니페스트 이미지 형식
      • 추론에는 JPG 이미지 사용 가능
      사용 방법
      • MXNet Gluon 및 Gluon CV 기반으로 구축됨
      • 3가지 알고리즘 선택 가능:
        • Fully-Convolutional Network (FCN)
        • Pyramid Scene Parsing (PSP)
        • DeepLabV3
      • 백본 선택 가능:
        • ResNet50
        • ResNet101
        • ImageNet에서 훈련된 모델
      • 점진적 훈련 또는 처음부터 훈련 가능
      중요한 하이퍼파라미터
      • 에포크, 학습률, 배치 크기, 옵티마이저 등
      • 알고리즘
      • 백본
      인스턴스 유형
      • 훈련에는 GPU 인스턴스(ml.p2, p3, g4dn, g5) 멀티 GPU 및 멀티 머신 가능.
      • 추론에는 CPU 또는 GPU(m5, p2, p3, g4dn, g5) 사용 가능
      80. SageMaker에서 Random Cut Forest
      목적
      • 이상 탐지
      • 비지도 학습
      • 시계열 데이터에서 예상치 못한 변동 탐지
      • 주기성의 중단 탐지
      • 분류할 수 없는 데이터 포인트 탐지
      • 각 데이터 포인트에 이상 점수 할당
      • Amazon에서 개발한 알고리즘 기반으로 함께 자랑스럽게 사용됨!
      훈련 데이터 예상 입력
      • RecordIO-protobuf 또는 CSV
      • 파일 또는 파이프 모드를 사용할 수 있음
      • 선택적인 테스트 채널을 사용하여 정확도, 정밀도, 재현율, F1을 레이블된 데이터에 대해 계산할 수 있음 (이상 또는 정상)
      사용 방법
      • 각 트리가 훈련 데이터의 파티션인 트리의 숲을 생성함; 점을 추가함으로써 트리의 복잡성이 예상되는 변화를 살펴봄
      • 데이터는 무작위로 샘플링됨
      • 그런 다음 훈련됨
      • RCF는 Kinesis Analytics에서도 사용될 수 있으며, 스트리밍 데이터에서도 작동 가능함.
      중요한 하이퍼파라미터
      • Num_trees : 증가하면 노이즈가 감소함
      • Num_samples_per_tree : 1/num_samples_per_tree가 이상한 정상 데이터의 비율을 근사하도록 선택되어야 함
      인스턴스 유형
      • 훈련에는 GPU 인스턴스(ml.p2, p3, g4dn, g5) 멀티 GPU 및 멀티 머신을 사용할 수 있음.
      • 추론에는 CPU 또는 GPU(m5, p2, p3, g4dn, g5)를 사용할 수 있음
      81. SageMaker에서의 신경 토픽 모델
      목적
      • 문서를 주제별로 정리합니다.
      • 주제에 기반하여 문서를 분류하거나 요약합니다.
      • TF/IDF만이 아닙니다.
        • 예를 들어 "자전거", "자동차", "기차", "연비" 및 "속도"는 문서를 "교통"으로 분류할 수 있습니다. (하지만 그렇게 부르는 방법은 알 수 없습니다)
      • 비지도 학습
        • 알고리즘은 "신경 가변 추론"입니다.
      훈련 데이터 예상 입력
      • 네 개의 데이터 채널
        • "훈련"은 필수입니다.
        • "검증", "테스트" 및 "보조"는 선택 사항입니다.
      • recordIO-protobuf 또는 CSV
      • 단어는 정수로 토큰화되어야 합니다.
        • 모든 문서는 CSV에서 어휘의 모든 단어에 대한 카운트를 포함해야 합니다.
        • "보조" 채널은 어휘를 위한 것입니다.
      • 파일 또는 파이프 모드
      사용 방법
      • 원하는 주제의 수를 정의합니다.
      • 이러한 주제는 상위 순위 단어를 기반으로 한 잠재적 표현입니다.
      • SageMaker의 두 가지 토픽 모델링 알고리즘 중 하나입니다. 둘 다 시도해 볼 수 있습니다!
      중요한 하이퍼파라미터
      • mini_batch_size와 learning_rate를 낮추면 검증 손실을 줄일 수 있습니다.
        • 훈련 시간이 소요되는 대신입니다.
      • Num_topics
      인스턴스 유형
      • GPU 또는 CPU
        • 훈련에는 GPU가 권장됩니다.
        • 추론에는 CPU를 사용할 수 있습니다.
        • CPU가 더 저렴합니다.
      82. Latent Dirichlet Allocation (LDA) in SageMaker
      목적
      • Latent Dirichlet Allocation
      • Another topic modeling algorithm
        • Not deep learning
      • Unsupervised
        • The topics themselves are unlabeled; they are just groupings of documents with a shared subset of words
      • Can be used for things other than words
        • Cluster customers based on purchases
        • Harmonic analysis in music
      훈련 데이터 예상 입력
      • Train channel, optional test channel
      • recordIO-protobuf or CSV
      • Each document has counts for every word in vocabulary (in CSV format)
      • Pipe mode only supported with recordIO
      사용 방법
      • Unsupervised; generates however many topics you specify
      • Optional test channel can be used for scoring results
        • Per-word log likelihood
      • Functionally similar to NTM, but CPU-based
        • Therefore maybe cheaper / more efficient
      중요한 하이퍼파라미터
      • Num_topics
      • Alpha0
        • Initial guess for concentration parameter
        • Smaller values generate sparse topic mixtures
        • Larger values (>1.0) produce uniform mixtures
      인스턴스 유형
      • Single-instance CPU training
      DD
      DD
      DD
      딥러닝 모델 종류 및 사용 예시
      모델 종류
      상세 사용 예시
      인공 신경망 (ANN)
      - 고객 이탈 예측: 고객 정보 및 행동 데이터를 기반으로 고객 이탈 여부 예측 - 주식 가격 예측: 주가 지표와 경제 데이터를 사용하여 주식 가격 예측 - 음성 인식: 음성 명령을 텍스트로 변환하여 명령 실행
      합성곱 신경망 (CNN)
      - 의료 이미지 분류: X-ray 이미지를 기반으로 질병 분류 - 얼굴 인식: 사진에서 얼굴 인식 및 감정 분석 - 자율 주행 자동차: 도로 상황 분석 및 자율 주행 결정
      순환 신경망 (RNN)
      - 텍스트 생성: 이전 단어로부터 다음 단어 예측하여 자연어 생성 - 시계열 예측: 날씨 데이터 기반으로 다음 날씨 예측 - 음성 생성: 음성 스타일 및 화자 변경하여 음성 생성
      장단기 메모리 (LSTM)
      - 주가 예측: 금융 데이터 시계열을 기반으로 주가 예측 - 기계 번역: 다국어 간 번역 모델로 문장 번역 - 텍스트 요약: 긴 텍스트를 간단한 요약으로 변환
      게이트 순환 유닛 (GRU)
      - 음성 인식: 음성 명령을 인식하여 텍스트로 변환 - 감정 분석: 텍스트 감정 분석 및 감정 카테고리 분류 - 텍스트 생성: 다양한 주제의 텍스트 생성 및 글쓰기
      자동 인코더 (Autoencoder)
      - 이미지 압축: 고해상도 이미지를 저해상도로 압축하여 저장 및 전송 - 특성 추출: 복잡한 데이터에서 중요한 특성 추출 및 시각화 - 노이즈 제거: 이미지 노이즈 제거 및 복원
      변이형 오토인코더 (VAE)
      - 이미지 생성: 실제와 유사한 새로운 이미지 생성 - 데이터 생성: 주어진 데이터 분포를 기반으로 새로운 데이터 생성 - 이상 탐지: 이상 데이터 포인트 감지 및 식별
      순환 신경망 변형 (Transformers)
      - 기계 번역: 한 언어에서 다른 언어로 문장 번역 - 텍스트 분류: 텍스트 감정 분석, 스팸 필터링, 텍스트 분류 등 - 자연어 이해: 질문 응답 시스템, 대화 모델 개발 등
       
      Share article
      RSSPowered by inblog