Hướng dẫn conditional density estimation python - python ước tính mật độ có điều kiện

tải PDF

Tóm tắt: Nó được biết đến trong thiên văn học rằng việc truyền bá sự không chắc chắn dự đoán không phải là Gaussian trong các ước tính dịch chuyển đỏ trắc quang là chìa khóa để giảm sự thiên vị trong các phân tích vũ trụ học hạ nguồn. Tương tự, các phương pháp suy luận không có khả năng, bắt đầu nổi lên như một công cụ để phân tích vũ trụ, đòi hỏi một đặc tính của cảnh quan không chắc chắn đầy đủ của các tham số quan tâm được đưa ra. Tuy nhiên, hầu hết các phương pháp học máy (ML) hoặc dựa trên đào tạo với dự đoán hoặc phân loại điểm mục tiêu phần mềm nguồn mở, và do đó không thể định lượng được sự không chắc chắn trong các cài đặt suy luận và tham số phức tạp. Thay thế cho các phương pháp tập trung vào việc dự đoán phản hồi (hoặc tham số) $ \ mathbf {y} $ từ các tính năng $ \ mathbf {x} $, chúng tôi cung cấp các công cụ ước tính mật độ điều kiện không theo tỷ lệ (CDE) để xác thực và xác thực toàn bộ mật độ xác suất function (pdf) $ \ mathrm {p} (\ mathbf {y} | \ mathbf {x}) $ của $ \ mathbf {y} $ đã cho (tức là, có điều kiện trên) $ \ mathbf {x} $. Vì không có phương pháp CDE phù hợp với một kích cỡ, mục tiêu của công việc này là cung cấp một loạt các công cụ thống kê và phần mềm nguồn mở để đánh giá CDE và phương pháp không tham số có thể phù hợp với các loại cài đặt khác nhau và dễ dàng phù hợp với đến vấn đề trong tay. Cụ thể, chúng tôi giới thiệu bốn gói phần mềm CDE trong $ \ texttt {python} $ và $ \ texttt {r} $ dựa trên các phương thức dự đoán ml được điều chỉnh và tối ưu hóa cho cde: $ \ texttt {nnkcde} $, $ \ texttt {rfcde , $ \ texttt {flexCode} $ và $ \ texttt {DeepCde} $. Hơn nữa, chúng tôi trình bày gói $ \ texttt {cdetools} $, bao gồm các chức năng để tính toán chức năng mất CDE để điều chỉnh và đánh giá chất lượng của các tệp PDF riêng lẻ, cùng với các chức năng chẩn đoán. Chúng tôi cung cấp mã mẫu trong $ \ texttt {python} $ và $ \ texttt {r} $ cũng như các ví dụ về các ứng dụng để ước tính dịch chuyển đỏ trắc quang và suy luận vũ trụ không có khả năng thông qua CDE. It is well known in astronomy that propagating non-Gaussian prediction uncertainty in photometric redshift estimates is key to reducing bias in downstream cosmological analyses. Similarly, likelihood-free inference approaches, which are beginning to emerge as a tool for cosmological analysis, require a characterization of the full uncertainty landscape of the parameters of interest given observed data. However, most machine learning (ML) or training-based methods with open-source software target point prediction or classification, and hence fall short in quantifying uncertainty in complex regression and parameter inference settings. As an alternative to methods that focus on predicting the response (or parameters) $\mathbf{y}$ from features $\mathbf{x}$, we provide nonparametric conditional density estimation (CDE) tools for approximating and validating the entire probability density function (PDF) $\mathrm{p}(\mathbf{y}|\mathbf{x})$ of $\mathbf{y}$ given (i.e., conditional on) $\mathbf{x}$. As there is no one-size-fits-all CDE method, the goal of this work is to provide a comprehensive range of statistical tools and open-source software for nonparametric CDE and method assessment which can accommodate different types of settings and be easily fit to the problem at hand. Specifically, we introduce four CDE software packages in $\texttt{Python}$ and $\texttt{R}$ based on ML prediction methods adapted and optimized for CDE: $\texttt{NNKCDE}$, $\texttt{RFCDE}$, $\texttt{FlexCode}$, and $\texttt{DeepCDE}$. Furthermore, we present the $\texttt{cdetools}$ package, which includes functions for computing a CDE loss function for tuning and assessing the quality of individual PDFs, along with diagnostic functions. We provide sample code in $\texttt{Python}$ and $\texttt{R}$ as well as examples of applications to photometric redshift estimation and likelihood-free cosmological inference via CDE.

Lịch sử đệ trình

Từ: Niccolò Dalmasso [Xem email] [V1] Thứ Sáu, ngày 30 tháng 8 năm 2019 03:56:17 UTC (1.733 KB) [V2] Sat, ngày 21 tháng 12 năm 2019 02:49:21 UTC (294 KB)
[v1] Fri, 30 Aug 2019 03:56:17 UTC (1,733 KB)
[v2] Sat, 21 Dec 2019 02:49:21 UTC (294 KB)

Hướng dẫn conditional density estimation python - python ước tính mật độ có điều kiện

Ước tính mật độ có điều kiện (CDE)

Sự mô tả

Thực hiện các phương pháp khác nhau để ước tính mật độ có điều kiện

  • Phương pháp dựa trên mạng lưới thần kinh tham số
    • Mạng mật độ hỗn hợp (MDN)
    • Mạng hỗn hợp kernel (KMN)
    • Bình thường hóa dòng chảy (NF)
  • Phương pháp không tham số
    • Ước tính mật độ hạt nhân có điều kiện (CKDE)
    • Ước tính mật độ hạt nhân lân cận (NKDE)
  • Phương pháp bán kết
    • Ước tính mật độ điều kiện bình phương nhỏ nhất (LSKDE)

Ngoài việc ước tính mật độ xác suất có điều kiện, gói có chức năng rộng rãi để tính toán:

  • Khoảnh khắc trung tâm: trung bình, hiệp phương sai, sai lệch và kurtosis mean, covariance, skewness and kurtosis
  • Phân kỳ thống kê: KL-Divergence, JS-Divergence, Hellinger Khoảng cách KL-divergence, JS-divergence, Hellinger distance
  • Phần trăm và sự thiếu hụt dự kiến

Đối với các mô hình tham số (MDN, KMN, NF), chúng tôi khuyên bạn nên sử dụng việc chính quy nhiễu được hỗ trợ bởi việc thực hiện của chúng tôi. Để biết chi tiết, chúng tôi đề cập đến việc chính quy nhiễu giấy để ước tính mật độ có điều kiện.

Cài đặt

Để sử dụng thư viện, bạn có thể trực tiếp sử dụng chỉ mục gói Python:

hoặc sao chép kho lưu trữ github và chạy

Lưu ý rằng gói chỉ hỗ trợ các phiên bản TensorFlow trong khoảng từ 1.4 đến 1.7.

Tài liệu và giấy

Xem tài liệu ở đây. Một bài báo về các thực tiễn và điểm chuẩn tốt nhất về ước tính mật độ có điều kiện với các mạng thần kinh giúp sử dụng rộng rãi thư viện này có thể được tìm thấy ở đây.

Cách sử dụng

Mã sau đây được cắt giữ một ví dụ dễ dàng để trình bày cách sử dụng gói CDE.

from cde.density_simulation import SkewNormal
from cde.density_estimator import KernelMixtureNetwork
import numpy as np

""" simulate some data """
density_simulator = SkewNormal(random_seed=22)
X, Y = density_simulator.simulate(n_samples=3000)

""" fit density model """
model = KernelMixtureNetwork("KDE_demo", ndim_x=1, ndim_y=1, n_centers=50,
                             x_noise_std=0.2, y_noise_std=0.1, random_seed=22)
model.fit(X, Y)

""" query the conditional pdf and cdf """
x_cond = np.zeros((1, 1))
y_query = np.ones((1, 1)) * 0.1
prob = model.pdf(x_cond, y_query)
cum_prob = model.cdf(x_cond, y_query)

""" compute conditional moments & VaR  """
mean = model.mean_(x_cond)[0][0]
std = model.std_(x_cond)[0][0]
skewness = model.skewness(x_cond)[0]

Trích dẫn

Nếu bạn sử dụng triển khai CDE của chúng tôi trong nghiên cứu của mình, bạn có thể trích dẫn nó như sau:

@article{rothfuss2019conditional,
  title={Conditional Density Estimation with Neural Networks: Best Practices and Benchmarks},
  author={Rothfuss, Jonas and Ferreira, Fabio and Walther, Simon and Ulrich, Maxim},
  journal={arXiv:1903.00954},
  year={2019}
}

Nếu bạn sử dụng chính quy hóa tiếng ồn để thường xuyên hóa mô hình mật độ MDN, KMN hoặc NF, vui lòng trích dẫn

@article{rothfuss2019noisereg,
    title={Noise Regularization for Conditional Density Estimation},
    author={Jonas Rothfuss and Fabio Ferreira and Simon Boehm and Simon Walther 
            and Maxim Ulrich and Tamim Asfour and Andreas Krause},
    year={2019},
    journal={arXiv:1907.08982},
}

Làm

  • Tạo một nhánh chỉ cho các công cụ ước tính có điều kiện của chúng tôi + gói Python
  • Hỗ trợ cho các phiên bản TensorFlow> 1.7 (sự giúp đỡ của bạn sẽ được đánh giá cao ở đây)