머신 러닝

머신 러닝(ML)은 컴퓨터 시스템이 엄청난 양의 데이터에서 패턴을 찾을 수 있도록 알고리즘과 통계 모델을 사용한 다음, 이러한 패턴을 인식하는 모델을 사용하여 새로운 데이터를 토대로 예측 또는 설명을 생성합니다.

ML seeks to find patterns in massive amounts of data.

머신 러닝이란 무엇이고 어떻게 작동하나요?

간단히 말해, 머신 러닝은 학습 방법이 명시적으로 프로그래밍되지 않아도 학습할 수 있도록 머신을 훈련시키는 것입니다. AI의 하위 집합인 머신 러닝의 가장 기본적인 형태는 알고리즘을 사용하여 데이터를 파싱하고 이를 토대로 학습한 다음, 실제 세계의 어떤 것에 대해 예측이나 결정을 생성하는 것이라 할 수 있습니다.

The progression of AI, machine learning, and deep learning.

다시 말해, 머신 러닝은 알고리즘을 사용하여 머신 러닝 플랫폼에 공급되는 데이터에서 자율적으로 모델을 생성합니다. 일반적인 프로그래밍 또는 규칙 기반 시스템은 프로그래밍된 규칙에서 전문가의 지식을 캡처하지만, 데이터가 변경될 때 이러한 규칙을 업데이트하고 유지 관리하기가 어려울 수 있습니다. 머신 러닝은 알고리즘에 공급되는 증가하는 데이터를 토대로 학습할 수 있다는 이점이 있으며, 데이터 기반의 확률 예측을 제공할 수 있습니다. 오늘날의 빅데이터 애플리케이션에 매우 복잡한 알고리즘을 빠르고 효과적으로 활용하고 적용할 수 있는 기능은 비교적 최근에 개발된 것입니다.

머신 러닝을 사용하면 데이터 정의 패턴이나 일련의 규칙으로 수행할 수 있는 거의 모든 개별 작업을 자동화하여 훨씬 더 효율적으로 만들 수 있습니다. 이를 통해 기업은 고객 서비스 전화 라우팅, 이력서 검토 등 이전에는 사람만이 처리할 수 있었던 프로세스를 혁신할 수 있습니다.

머신 러닝 시스템의 성능은 데이터 세트를 모델로 변환하는 몇 가지 알고리즘의 기능에 의존합니다. 문제와 작업마다 다른 알고리즘이 필요하며, 문제의 해결 여부는 입력 데이터의 품질과 컴퓨팅 리소스의 성능에 따라 달라집니다.

머신 러닝 알고리즘의 사용 사례는 두 가지 주요 기법을 중심으로 지도형, 비지도형, 이 두 가지의 혼합형 등 다양한 유형으로 나뉩니다. 지도 학습 알고리즘은 레이블이 지정된 데이터를 사용하고, 비지도 학습 알고리즘은 레이블이 지정되지 않은 데이터에서 패턴을 찾습니다. 준지도 학습은 레이블이 지정된 데이터와 레이블이 지정되지 않은 데이터를 혼합하여 사용합니다. 강화 학습은 피드백을 기반으로 보상을 극대화하도록 알고리즘을 훈련시킵니다.

지도 학습

예측 분석이라고도 하는 지도 머신 러닝은 알고리즘을 사용하여 레이블과 특징이 있는 데이터 세트에서 패턴을 찾도록 모델을 훈련시킵니다. 그런 다음 훈련된 모델을 사용하여 새로운 데이터 세트의 특징을 토대로 레이블을 예측합니다.

Training models predicting labels.

지도 학습은 분류와 회귀로 더욱 세분화될 수 있습니다.

분류

분류는 레이블이 지정된 예제의 알려진 항목을 바탕으로 항목이 어떤 범주에 속하는지 식별합니다. 아래의 간단한 예제에서는 로지스틱 회귀를 사용하여 사기 또는 사기가 아니라고 알려진 거래의 특성(거래 금액, 시간, 마지막 거래 위치)을 토대로 신용카드 거래가 사기 또는 사기가 아닐 확률(레이블)을 추정합니다.

Classification.

분류의 다른 예로는 다음과 같은 것이 있습니다.

  • 스팸 탐지
  • 텍스트 감성 분석(Sentiment Analysis)
  • 환자의 위험, 패혈증 또는 암 예측

회귀

회귀는 타깃 결과 레이블과 한 개 이상의 특징 변수 간의 관계를 추정하여 연속적인 숫자 값을 예측합니다. 아래의 간단한 예제에서는, 집의 크기(특징)에 따라 집값(레이블)을 추정하는 데 선형 회귀를 사용합니다.

Regression.

회귀의 다른 예로는 다음과 같은 것이 있습니다.

  • 이상 거래 금액 예측
  • 매출 예측

지도 학습 알고리즘에는 다음이 포함됩니다.

  • 로지스틱 회귀
  • 선형 회귀
  • 서포트 벡터 머신
  • 결정 트리
  • 랜덤 포레스트(Random Forest)
  • 그래디언트 부스팅 결정 트리

비지도 학습

서술적 분석이라고도 하는 비지도 학습에는 레이블이 지정된 데이터가 사전 제공되지 않습니다. 데이터 사이언티스트가 데이터에서 이전에 알려지지 않은 패턴을 찾는 데 도움이 될 수 있습니다. 이러한 알고리즘은 입력 데이터에 내재된 구조를 '학습'하여 유사성 또는 규칙성을 발견하려고 시도합니다. 일반적인 비지도 작업에는 클러스터링과 연관 규칙 학습이 포함됩니다.

클러스터링

클러스터링에서 알고리즘은 입력 예제 간의 유사성을 분석하여 입력을 범주화합니다. 클러스터링의 한 예로는, 제품 및 서비스를 더 잘 맞춤화하기 위해 고객을 세분화하려는 회사를 들 수 있습니다. 고객은 인구 통계, 구매 기록 같은 특징에 따라 그룹화될 수 있습니다. 비지도 학습 기반 클러스터링은 더 가치 있는 결과를 얻기 위해 지도 학습과 결합되는 경우가 많습니다.

Clustering.

클러스터링의 다른 예에는 다음이 포함됩니다.

  • 검색 결과 그룹화
  • 유사한 환자 그룹화
  • 텍스트 분류
  • 이상 탐지(유사하지 않은 것, 즉 클러스터에서 벗어난 이상치를 탐지)

연관 규칙 학습

연관 규칙 또는 빈발 패턴 마이닝은 대규모 데이터 항목 집합에서 동시출현 빈도가 높은 연관 규칙(관계, 종속성)을 찾는 것입니다. 동시출현 연관 규칙의 한 예로는 유명한 맥주와 기저귀의 사례처럼 함께 자주 구매하는 제품 조합을 들 수 있습니다. 식료품 쇼핑객의 행동을 분석한 결과, 기저귀를 사는 남성은 맥주도 함께 구매하는 경우가 많다는 사실이 밝혀졌습니다.

비지도 학습 알고리즘에는 다음이 포함됩니다.

  • K-평균
  • 잠재 디리클레 할당(LDA)
  • 가우시안 혼합 모델(GMM)
  • 교대최소제곱법(ALS)
  • 빈발 패턴 성장(FP-Growth)

머신 러닝의 이점

머신 러닝은 다음을 포함한 다양하고 광범위한 이점을 비즈니스에 제공합니다.

  • 기업은 신속한 분석 예측 및 적시 처리를 통해 데이터 기반의 신속한 결정을 내릴 수 있습니다.
  • 고위험 환자를 신속하게 식별하고, 다양한 의약품을 추천하고, 재입원을 예측함으로써 정확한 의료 예측 및 진단을 촉진합니다.
  • 데이터 중복 및 기타 부정확성으로 인한 오류를 크게 줄임으로써 데이터 입력 시 시간이 많이 걸리는 문서 작업을 간소화하는 동시에 단순 데이터 입력 작업으로부터 근로자를 해방시킵니다.
  • 금융 규칙과 모델의 정밀도를 개선하여 포트폴리오 운용을 향상하고, 알고리즘 트레이딩, 대출 심사를 지원하며, 중요한 사기 탐지 기능을 강화합니다.
  • 효율적이고 예측적인 유지 관리 계획을 수립하여 예측적 유지 관리의 효율성을 높입니다.
  • 고객 세분화 및 생애 가치 예측을 개선하고, 마케터에게 유용한 정보를 제공하여 리드를 최적화하고, 웹 트래픽을 극대화하고, 우편 및 이메일 캠페인의 수익을 제고합니다.

머신 러닝 사용 사례

가속 컴퓨팅과 ML이 의료용 지능형 컴퓨팅를 강화하고 있습니다. 임베디드에서 엣지, 모든 클라우드에 이르기까지 어디에든 배포할 수 있는 이미징, 유전체학, 환자 모니터링, 신약 개발용 단일 플랫폼을 제공하는 NVIDIA Clara™는 정밀 의학으로의 여정을 혁신하고 가속화할 수 있도록 의료업계를 지원합니다.

최고의 소매업체들은 ML을 활용해 재고손실을 줄이고 예측을 개선하고 창고 물류를 자동화하고 매장 내 프로모션을 결정하고 실시간으로 가격을 책정하고 고객 맞춤화 및 추천 서비스를 제공하여 매장에서든 온라인에서든 더 나은 쇼핑 경험을 지원합니다.

소비자 행동을 이해하는 것이 소매업체에게 그 어느 때보다 중요해졌습니다. 성장을 촉진하기 위해 지능형 추천이 맞춤형 마케팅에 활용되고 있습니다. 온라인 소매업체는 수익을 개선하기 위해 GPU 기반 머신 러닝(ML) 및 딥 러닝(DL) 알고리즘을 사용하여 더 빠르고 정확한 추천 엔진을 구축하고 있습니다. 쇼핑객의 구매 및 웹 활동 기록에서 머신 러닝 모델로 공급된 데이터는 분석을 거쳐 추천을 생성하고 소매업체의 상향 판매 노력을 지원하는 데 사용됩니다.

금융기관에서는 ML을 채택하여 더 스마트하고 안전한 서비스를 제공하고 있습니다. GPU 기반 ML 솔루션은 방대한 양의 데이터에서 주요 인사이트를 식별한 다음, 자동화를 통해 직원의 반복 과제를 줄이고, 위험 계산과 사기 탐지를 가속화하고, 더 정확한 추천 시스템으로 고객 서비스를 개선할 수 있습니다.

NVIDIA는 사전 훈련된 모델과 소프트웨어 솔루션을 제공하여 ML 적용 과정을 크게 간소화합니다. 예를 들어, NVIDIA의 Metropolis 플랫폼을 통해 개발자는 소매 재고 관리를 개선하고, 손실 방지 노력을 강화하고, 소비자의 결제 경험을 간소화하는 ML 애플리케이션을 구축할 수 있습니다.

실제 사례로, Walmart는 직원 워크플로를 관리하고 특정 매장에서 고기와 농산물의 신선도를 보장하기 위해 NVIDIA의 기술을 사용하고 있습니다. 마찬가지로, BMW는 NVIDIA의 엣지 AI 솔루션을 사용하여 제조 시설에서 광학 검사를 자동화하고 있습니다. 세계 최대의 무선 네트워크를 운영 중인 China Mobile은 NVIDIA의 플랫폼을 사용하여 5G 네트워크에서 AI 기능을 제공하고 있습니다.

머신 러닝이 중요한 이유

기업은 시장 및 환경 데이터를 센싱하고, 분석과 머신 러닝을 사용하여 복잡한 패턴을 인식하고, 변화를 감지하고, 수익에 직접 영향을 미칠 예측을 생성하는 등 점점 더 데이터 중심적이 되어 가고 있습니다. 데이터 중심 기업은 데이터 사이언스를 사용하여 쏟아지는 데이터를 관리하고 이해합니다.

데이터 사이언스는 모든 산업의 일부입니다. 소매, 금융, 의료, 물류 분야의 대기업들은 데이터 사이언스 기술을 활용하여 경쟁력, 대응력, 효율성을 개선합니다. 광고 회사는 데이터 사이언스를 사용하여 광고를 더 효과적으로 타겟팅합니다. 모기지 회사는 데이터 사이언스를 통해 채무불이행 위험을 정확히 예측하여 수익을 극대화합니다. 소매업체는 이를 공급망을 간소화하는 데 사용합니다. 사실 빅데이터 혁명은 2000년대 중반에 Hadoop, 넘파이(NumPy), Scikit-learn, Pandas, Spark와 같은 오픈 소스 기반의 대규모 데이터 분석 및 머신 러닝 소프트웨어가 등장하면서 촉발되었습니다.

오늘날 데이터 사이언스와 머신 러닝은 세계 최대의 컴퓨팅 분야가 되었습니다. 예측 머신 러닝 모델의 정확도를 조금만 개선해도 수십억 달러의 수익으로 이어질 수 있습니다. 예측 모델의 훈련은 데이터 사이언스의 핵심입니다. 사실 데이터 사이언스를 위한 IT 예산의 대부분은 머신 러닝 모델의 구축에 지출됩니다. 여기에는 데이터 변환, 특징 공학, 훈련, 평가, 시각화가 포함됩니다. 최상의 모델을 구축하기 위해 데이터 사이언티스트는 수많은 이터레이션(iteration)을 통해 훈련, 평가, 재훈련을 수행해야 합니다. 현재는 이러한 이터레이션에 며칠이 소요됩니다. 이 때문에 프로덕션에 배포하기 전 수행 가능한 이터레이션 횟수가 제한되고 최종 결과물의 품질에 영향을 미칩니다.

전사적으로 분석과 머신 러닝을 실행하려면 대규모 인프라가 필요합니다. Fortune 500대 기업은 컴퓨팅을 스케일아웃하고 수천 개의 CPU 서버에 투자하여 대규모 데이터 사이언스 클러스터를 구축합니다. CPU 스케일아웃은 더 이상 효과적이지 않습니다. 매년 전 세계의 데이터는 두 배씩 늘어나고 있지만, CPU 컴퓨팅은 무어의 법칙의 종식되며 한계에 부딪쳤습니다. 수천 개의 효율적인 소형 코어로 구성된 GPU의 대규모 병렬 아키텍처는 여러 작업을 동시에 처리할 수 있도록 설계되었습니다. 과학 컴퓨팅과 딥 러닝이 NVIDIA GPU 가속화로 전환한 것과 유사하게, 데이터 분석과 머신 러닝도 GPU 병렬성 및 가속화의 이점을 누릴 수 있습니다.

GPU가 머신 러닝에 유용한 이유

NVIDIA는 엔드투엔드 데이터 사이언스 훈련 파이프라인을 전적으로 GPU에서 실행할 수 있도록 오픈 소스 데이터 분석 및 머신 러닝 가속화 플랫폼인 RAPIDS™를 개발하였습니다. 이 제품군은 저수준 컴퓨팅 최적화를 위해 NVIDIA® CUDA® 프리미티브에 의존하지만, 사용자 친화적인 파이썬 인터페이스를 통해 GPU 병렬성 및 고대역폭 메모리를 활용할 수 있도록 지원합니다.

RAPIDS 라이브러리에서 사용되는 데이터는 전적으로 GPU 메모리에 저장됩니다. 이 라이브러리는 분석에 최적화된 데이터 형식인 Apache Arrow™ 형식의 공유 GPU 메모리를 사용하여 데이터에 액세스합니다. 따라서 서로 다른 라이브러리 간에 데이터를 전송할 필요가 없습니다. 또한 Arrow API를 통해 표준 데이터 사이언스 소프트웨어와의 상호 운용성 및 데이터 수집을 지원할 수 있습니다. 고속 GPU 메모리에서 전체 데이터 사이언스 워크플로를 실행하고 GPU 코어에 데이터 로드, 데이터 조작, ML 알고리즘을 병렬화하면 엔드투엔드 데이터 사이언스 워크플로를 50배 더 빠르게 수행할 수 있습니다.

분석과 데이터 사이언스의 일반적인 데이터 준비 작업에 초점을 맞춘 RAPIDS는 일반적인 직렬화 비용 없이도 Scikit-learn 및 다양한 머신 러닝 알고리즘과 통합되는 익숙한 데이터프레임 API를 제공합니다. 이를 통해 데이터 준비부터 머신 러닝과 딥 러닝(DL)에 이르는 엔드투엔드 파이프라인을 가속화할 수 있습니다(DL). 또한 RAPIDS에는 멀티 노드 멀티 GPU 배포에 대한 지원도 포함되어 있어 훨씬 더 큰 규모의 데이터 세트에서 대폭적으로 가속화된 처리와 훈련을 수행할 수 있습니다.

RAPIDS 구성 요소:

ML and DL all on GPU.

데이터프레임 - cuDF - Apache Arrow를 기반으로 하는 GPU 가속 데이터프레임 조작 라이브러리입니다. 모델 훈련을 위한 데이터 관리를 지원하도록 설계되었습니다. 코어 가속 저수준 CUDA C++ 커널의 파이썬 바인딩은 Pandas API를 미러링하여 Pandas로부터의 원활한 온보딩과 전환을 지원합니다.

머신 러닝 라이브러리 - cuML - 이 GPU 가속 머신 러닝 라이브러리 컬렉션은 궁극적으로 Scikit-learn에서 제공하는 모든 머신 러닝 알고리즘의 GPU 버전을 제공합니다.

그래프 분석 라이브러리 - cuGRAPH - 이 그래프 분석 라이브러리 컬렉션은 RAPIDS 데이터 사이언스 소프트웨어 제품군에 원활하게 통합됩니다.

딥 러닝 라이브러리 - RAPIDS는 네이티브 CUDA array_interface와 DLPak을 지원합니다. 즉, Apache Arrow로 저장된 데이터를 텐서플로, 파이토치, MxNet 등 array_interface를 수용하는 딥 러닝 프레임워크에 원활하게 푸시할 수 있습니다.

시각화 라이브러리 - RAPIDS에는 Apache Arrow를 기반으로 긴밀하게 통합된 데이터 시각화 라이브러리가 포함될 것입니다. 네이티브 GPU 인메모리 데이터 형식은 대규모 데이터 세트에서도 고성능 고FPS 데이터 시각화를 제공합니다.

GPU와 RAPIDS를 통한 아파치 스파크 3.0 가속화

ML과 DL이 대규모 데이터 세트에 점점 더 많이 적용됨에 따라 머신 러닝용 원시 입력 데이터를 준비하는 데 필요한 데이터 전처리의 도구로 스파크가 널리 사용되고 있습니다. 

Spark 2.x

NVIDIA는 아파치 스파크 커뮤니티와 협력하여 스파크의 네이티브 처리에 GPU를 도입했습니다. 이제 아파치 스파크 3.0과 아파치 스파크용 RAPIDS 가속기를 사용하면 데이터 수집과 데이터 준비부터 모델 훈련과 튜닝까지 포괄하는 단일 파이프라인을 GPU 기반 클러스터에 구축하여 병목 현상을 제거하고 성능을 높이고 클러스터를 간소화할 수 있습니다.

Spark 3.0