기계 학습의 통계 프로그래밍: Pyro와 TFP의 대조
게시 됨: 2021-01-29머신 러닝에서 통계적 또는 확률적 프로그래밍은 아래와 같이 2가지 프로그래밍 언어를 사용하여 수행됩니다. 간단한 소개를 하자면, 확률적 프로그래밍은 통계적 모델링을 위한 도구입니다. 기본적으로 통계 모델을 만들고 설계할 수 있는 언어를 사용하여 문제를 해결하는 것을 의미합니다.
컴퓨터 프로그래밍 언어를 사용하여 통계의 개념을 적용하는 것입니다. 확률 모델을 사용하여 모델의 하이퍼파라미터에 대한 우리의 믿음이 출력을 어떻게 변경할 수 있는지 추론할 수 있습니다.
목차
유명한 확률 프로그래밍 언어
1. 파이로
Pyro는 Python으로 작성되고 백엔드에서 Pytorch가 지원하는 PPL(확률적 프로그래밍 언어)입니다. Pyro를 사용하면 심층 확률 모델링, 베이지안 모델링에 액세스할 수 있으며 최신 딥 러닝 알고리즘의 장점을 결합할 수 있습니다. 다음과 같이 설치할 수 있습니다.
pip3 Pyro-ppl 설치
또는 소스에서 설치하려면 다음 명령을 사용하십시오.
자식 클론 https://github.com/pyro-ppl/pyro.git

CD 파이로
pip 설치 .[기타]
간단한 코드 줄을 사용하여 Pyro 가져오기:
수입 파이로
2. 텐서 흐름 확률(TFP)
TFP는 GPU 및 TPU에서 확률 모델과 딥 러닝 모델의 조합을 가능하게 하는 TensorFlow에 구축된 Python 라이브러리입니다. 관련 예측을 이해하고 수행하기 위해 도메인 지식을 통합하려는 모든 사람이 사용할 수 있습니다. TFP를 설치하려면 명령 또는 아나콘다 프롬프트에 다음 명령을 입력하십시오.
pip install – tensorflow-probability 업그레이드
TFP는 다음 명령 줄을 사용하여 코드에서 사용할 수 있습니다.
tfp로 tensorflow_probability 가져오기
세계 최고의 대학에서 온라인으로 인공 지능 과정 에 참여하십시오. 석사, 대학원 대학원 과정, ML 및 AI 고급 인증 프로그램을 통해 빠르게 경력을 쌓을 수 있습니다.
파이로와 TFP의 대조
1. 문서
Pyro와 TFP에 대한 문서는 훌륭하고 풍부하지만 신경망의 전망에서 TFP에 대한 설명은 적습니다. pyro에서 pyro.nn 모듈은 심층 확률 프로그래밍의 맥락에서 유용한 신경망 모듈의 구현을 나타냅니다. TFP에서 tfp.layers는 그들이 나타내는 기능에 대한 불확실성이 있는 신경망 레이어를 나타내며 TensorFlow 레이어를 확장합니다.
2. 언어
TFP와 Pyro의 사용자는 모두 파이썬으로 작성합니다. 그러나 TFP의 경우 관련된 API는 매우 장황합니다. 즉, 솔루션에 도달하기 위해 더 많은 코드 줄을 작성해야 하는 경우가 있습니다. 우리가 전체 프로그램을 더 잘 제어할 수 있기 때문에 때때로 좋을 수 있고 Pyro 내에서 더 짧은 형식으로 사용할 수 있을 때 나쁠 수 있습니다.
3. 램프업 시간
Pyro를 사용하면 코드 실행이 더 빠르고 효율적이며 학습하는 데 새로운 개념이 필요하지 않습니다. 반면에 TFP는 자리 표시자, 변수 범위 지정 및 세션과 같은 개념이 필요하므로 실행하는 데 더 많은 시간이 걸립니다.
4. 배포
TFP와 Pyro는 모두 소규모 서버 측에서 쉽게 배포할 수 있습니다. 모바일 및 마이크로컴퓨터 또는 임베디드 배포의 경우 TensorFlow는 Pytorch와 달리 효율적으로 작동합니다. Pytorch에 비해 Android 및 IOS에서 TensorFlow를 배포하는 데 더 적은 노력이 필요합니다.
5. 그래프
Tensorflow는 Torch 및 Theano와 같은 다른 라이브러리와 비교할 때 고유한 더 나은 계산 그래프 시각화를 제공합니다. Edward는 TensorFlow를 기반으로 하며 TensorBoard로 계산 그래프, 분산 교육, CPU/GPU 통합, 자동 미분 및 시각화와 같은 기능을 지원합니다. 그러나 Pyro는 시연 또는 시각화 기능을 제공하지 않습니다.

TensorBoard에 대한 Edward 간섭, 출처: Edward
6. 마르코프 사슬 몬테카를로
TFP는 TensorFlow의 샘플 확률 분포와 값 반복 알고리즘을 사용하는 수많은 Markov Chain Monte Carlo(MCMC) 알고리즘(메트로폴리스, 깁스, 해밀토니안 등)을 구현합니다. 2018년까지 Pyro는 Markov chain Monte Carlo를 수행하지 않았습니다. 업데이트되었으며 전체 MCMC, HMC 및 NUTS를 지원합니다.
7. 옵티마이저
TFP가 Nelder-Mead, BFGS 및 L-BFGS(제약 없는 비선형 최적화 문제를 결정하기 위해)를 포함하여 TensorFlow의 여러 최적화 프로그램을 구현하는 것처럼 Pyro는 PyTorch에 있는 최적화 프로그램을 구현합니다. pyro.optim 모듈은 Pyro에서 최적화를 지원합니다. . 두 개의 PPL은 기본 모듈(TensorFlow 및 PyTorch)에 종속되어 있다고 말할 수 있습니다.
원천
8. 바이젝터
TFP에서 바이젝터는 확률 밀도에 대한 변수의 변화를 포함합니다. 한 공간에서 다른 공간으로 매핑할 때 초기 공간의 확률 밀도에서 대상 공간의 밀도로의 맵에도 영향을 줍니다.
그러나 다른 공간에 매핑할 때 후자 공간의 확률 밀도 계산에서 이러한 매핑 계정을 추적해야 합니다. 따라서 바이젝터는 부드러운 매핑에 사용됩니다. 파이로에서는 문서에 바이젝터에 대한 언급이 없으므로 바이젝터가 없다고 가정합니다.
9. 시계열
pyro.contrib.timeseries 모듈은 예측 애플리케이션에 유용한 베이지안 시계열 모델 모음을 제공합니다. 이것은 Pyro의 기존 Forecaster 개체를 사용하여 달성할 수 있습니다. 모델에 입력 데이터를 제공한 후 정보에 입각한 예측을 수행하는 방법을 모델에 알려줍니다.
데이터와 확률적 프레임워크만 있으면 간단합니다. 그러나 TFP는 베이지안 구조적 시계열 모델(tfp.sts)을 위한 프레임워크와 함께 CNN 및 RNN과 같은 Tensorflow의 시계열 모델을 사용합니다. 베이지안 구조적 시계열은 아직 출시되지 않은 시계열 모델을 피팅하기 위한 고급 인터페이스입니다.
원천
10. 배포
랜덤 변수(예: Bernoulli, Gaussian)의 속성(예: 평균, 분산)을 구성하고 구성하기 위한 기본 클래스입니다. 한 가지 예는 정규 분포일 수 있습니다. Pyro의 대부분의 배포판은 PyTorch 배포판 주위의 얇은 래퍼입니다. PyTorch 배포 인터페이스에 대한 자세한 내용은 torch.distributions.distribution.Distribution에서 확인할 수 있습니다. 그러나 TFP에는 tfp.distributions 모듈이 있습니다.
원천
원천
11. 일반화 선형 모형(GLM)
통계에서 일반화된 선형 모델은 정규 분포가 아닌 다른 오류 분포 모델을 갖는 응답 변수를 허용하는 일반 선형 회귀의 유연한 일반화입니다. TFP에서 tfp.glm 모듈에는 혼합 효과 회귀 모델을 맞추기 위한 고급 인터페이스가 포함되어 있습니다. 그러나 Pyro에는 GLM용 모듈이 없습니다.
원천
결론
이러한 요소를 사용하여 Pyro가 TFP와 크게 다르지 않다는 결론을 내리는 것이 안전합니다. 둘 다 Python 프로그래밍 언어를 기반으로 합니다. Python API는 잘 문서화되어 있습니다. 그러나 Pytorch는 램프 업 시간이 좋기 때문에 TensorFlow보다 훨씬 빠릅니다. 이 두 프레임워크 중에서 결정하는 것은 각 프레임워크에 대한 학습 방법을 얼마나 쉽게 찾을 수 있는지에 달려 있습니다. 선택은 조직의 요구 사항에 따라 달라집니다.

머신 러닝에 대해 자세히 알아보려면 IIIT-B & upGrad의 기계 학습 및 AI 경영자 PG 프로그램을 확인하세요. 이 프로그램은 일하는 전문가를 위해 설계되었으며 450시간 이상의 엄격한 교육, 30개 이상의 사례 연구 및 과제, IIIT를 제공합니다. -B 동문 자격, 5개 이상의 실용적인 실습 캡스톤 프로젝트 및 최고의 기업과의 취업 지원.
참고문헌
시작하기 – Pyro 문서
모듈: tfp | 텐서플로우 확률
기계 학습은 통계와 어떻게 연결되고 그 반대도 마찬가지입니까?
통계는 데이터를 나타내고 결론이나 추론을 도출하기 위해 통계 모델을 구축하는 데 사용됩니다. 기계 학습은 이 통계 모델을 사용하여 데이터를 이해하고 정확한 예측을 수행합니다. 따라서 통계는 기계 학습을 적절하고 쉽게 수행하는 데 도움이 되는 통계 모델을 구축하는 데 사용됩니다.
통계 지식이 없어도 기계 학습을 알 수 있습니까?
통계와 기계 학습은 상호 연결되어 있습니다. 통계를 알면 통계 모델의 형태로 데이터를 표현한 다음 머신 러닝으로 분석하고 예측할 수 있습니다. 따라서 머신 러닝에 앞서 통계를 아는 것은 상당히 도움이 될 것입니다. 따라서 통계의 기본 사항만 알면 진행이 가능합니다. 기계 학습을 잘하기 위해 통계 전문가가 될 필요는 없습니다.
TensorFlow는 초보자가 배우기 쉽습니까?
TensorFlow는 처음부터 끝까지 실행되는 오픈 소스 기계 학습 플랫폼입니다. TensorFlow를 사용하면 초보자와 전문가 모두 기계 학습 모델을 간단하게 만들 수 있습니다. 머신 러닝 분야에서 일하고 싶다면 6개월에서 12개월 사이에 TensorFlow 능력을 연구하고 완성해야 합니다. 그러나 R 및 Python과 같은 프로그래밍 언어의 기본 사항을 알고 있다면 큰 문제가 없을 것입니다.