Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Open Software for Astrophysics, AAS241

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.

Open Software for Astrophysics, AAS241

Slides for my plenary talk at the 241st American Astronomical Society meeting.

Avatar for Dan Foreman-Mackey

Dan Foreman-Mackey

January 12, 2023
Tweet

More Decks by Dan Foreman-Mackey

Other Decks in Science

Transcript

  1. °0.6 °0.3 0.0 0.3 0.6 raw [ppt] 0 5 10

    15 20 25 time [days] °0.30 °0.15 0.00 de-trended [ppt] N = 1000 reference: DFM+ (2017)
  2. °0.6 °0.3 0.0 0.3 0.6 raw [ppt] 0 5 10

    15 20 25 time [days] °0.30 °0.15 0.00 de-trended [ppt] N = 1000 reference: DFM+ (2017)
  3. import numpy as np def log_likelihood(params, x, diag, r) :

    K = build_kernel_matrix(params, x, diag) gof = r.T @ np.linalg.solve(K, r) norm = np.linalg.slogdet(K)[1] return -0.5 * (gof + norm)
  4. import numpy as np def log_likelihood(params, x, diag, r) :

    K = build_kernel_matrix(params, x, diag) gof = r.T @ np.linalg.solve(K, r) norm = np.linalg.slogdet(K)[1] return -0.5 * (gof + norm)
  5. from george.kernels import * k1 = 1.5 * ExpSquaredKernel(2.3) k2

    = 5.5 * Matern32Kernel(0.1) kernel = 0.5 * (k1 + k2)
  6. import numpy as np def log_likelihood(params, x, diag, r) :

    K = build_kernel_matrix(params, x, diag) gof = r.T @ np.linalg.solve(K, r) norm = np.linalg.slogdet(K)[1] return -0.5 * (gof + norm)
  7. import numpy as np def log_likelihood(params, x, diag, r) :

    K = build_kernel_matrix(params, x, diag) gof = r.T @ np.linalg.solve(K, r) norm = np.linalg.slogdet(K)[1] return -0.5 * (gof + norm)
  8. 102 103 104 105 number of data points [N] 10

    5 10 4 10 3 10 2 10 1 100 computational cost [seconds] 1 2 4 8 16 32 64 128 256 direct O(N) 100 101 number o reference: DFM, Agol, Ambikasaran, Angus (2017)
  9. 102 103 104 105 number of data points [N] 10

    4 10 3 10 2 10 1 100 computational cost [seconds] 1 2 4 8 16 32 64 128 256 O(N) 100 101 number o reference: DFM, Agol, Ambikasaran, Angus (2017)
  10. +

  11. 7 [1] 1 (ish) dimensional input [2] specif i c

    type of kernel restrictions:
  12. import numpy as np def linear_least_squares(x, y) : A =

    np.vander(x, 2) return np.linalg.lstsq(A, y)[0]
  13. import jax.numpy as jnp def linear_least_squares(x, y) : A =

    jnp.vander(x, 2) return jnp.linalg.lstsq(A, y)[0]
  14. import jax.numpy as jnp @jax.jit def linear_least_squares(x, y) : A

    = jnp.vander(x, 2) return jnp.linalg.lstsq(A, y)[0]
  15. open software is foundational to astrophysics research let’s consider &

    discuss interface design and user interaction leverage existing infrastructure & learn when to start fresh