You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: _posts/2019-12-14-initial-post.md
+1-1
Original file line number
Diff line number
Diff line change
@@ -9,6 +9,6 @@ All good open source projects should have a blog, and Turing is one such project
9
9
- Development updates and major release announcements.
10
10
- Research updates.
11
11
- Explorations of Turing's internals.
12
-
- Updates to Turing's sattelite projects [AdvancedHMC.jl](https://github.com/TuringLang/AdvancedHMC.jl) or [Bijectors.jl](https://github.com/TuringLang/Bijectors.jl).
12
+
- Updates to Turing's satellite projects [AdvancedHMC.jl](https://github.com/TuringLang/AdvancedHMC.jl) or [Bijectors.jl](https://github.com/TuringLang/Bijectors.jl).
Copy file name to clipboardExpand all lines: _posts/2020-02-12-jsoc.md
+4-4
Original file line number
Diff line number
Diff line change
@@ -7,7 +7,7 @@ Last year, Turing participated in the Google Summer of Code (GSoC) through the J
7
7
8
8
If you are not aware, Google provides funds to students around the world to develop a project of their choice over the summer. Students receive funds from Google and spend three months on any open source project.
9
9
10
-
The Turing development team has prepared a list of possible projects that we have deemed valuable to the project and easy enough that it could feasibly be created in the three-month limit. This list is not exlusive -- if you have a good idea, you can write it up in your proposal, though it is recommend that you reach out to any of the Turing team on Julia's [Slack](https://julialang.slack.com/) (you can get an invite [here](https://slackinvite.julialang.org/)) or [Discourse](https://discourse.julialang.org/c/domain/probprog). Messages on Discourse should be posted to the "Probabilistic programming" category -- we'll find you!
10
+
The Turing development team has prepared a list of possible projects that we have deemed valuable to the project and easy enough that it could feasibly be created in the three-month limit. This list is not exclusive -- if you have a good idea, you can write it up in your proposal, though it is recommend that you reach out to any of the Turing team on Julia's [Slack](https://julialang.slack.com/) (you can get an invite [here](https://slackinvite.julialang.org/)) or [Discourse](https://discourse.julialang.org/c/domain/probprog). Messages on Discourse should be posted to the "Probabilistic programming" category -- we'll find you!
11
11
12
12
Possible project ideas:
13
13
@@ -16,9 +16,9 @@ Possible project ideas:
16
16
-**Automated function memoization by model annotation**. Function memoization is a way to reduce costly function evaluation by caching the output when the same inputs are given. Turing's Gibbs sampler often ends up [rerunning expensive functions](https://turing.ml/dev/docs/using-turing/performancetips#reuse-computations-in-gibbs-sampling) multiple times, and it would be a significant performance improvement to allow Turing's model compiler to automatically memoize functions where appropriate. A student working on this project would become intimately familiar with Turing's model compiler and build in various automated improvements.
17
17
-**Making Distributions GPU compatible**. Julia's GPU tooling is generally quite good, but currently Turing is not able to reliably use GPUs while sampling because [Distributions.jl](https://github.com/JuliaStats/Distributions.jl) is not GPU compatible. A student on this project would work with the Turing developers and the Distributions developers to allow the use of GPU parallelism where possible in Turing.
18
18
- **Static distributions**. Small, fixed-size vectors and matrices are fairly common in Turing models. This means that sampling in Turing can probably benefit from using statically sized vectors and matrices from [StaticArrays.jl](https://github.com/JuliaArrays/StaticArrays.jl) instead of the dynamic normal Julia arrays. Beside the often superior performance of small static vectors and matrices, static arrays are also automatically compatible with the GPU stack in Julia. Currently, the main obstacle to using StaticArrays.jl is that distributions in [Distributions.jl](https://github.com/JuliaStats/Distributions.jl) are not compatible with StaticArrays. A GSoC student would adapt the multivariate and matrix-variate distributions as well as the univariate distribution with vector parameters in Distributions.jl to make a spin-off package called StaticDistributions.jl. The student would then benchmark StaticDistributions.jl against Distributions.jl and showcase an example of using StaticDistributions.jl together with [CuArrays.jl](https://github.com/JuliaGPU/CuArrays.jl) and/or [CUDAnative.jl](https://github.com/JuliaGPU/CUDAnative.jl) for GPU-acceleration.
19
-
-**GPnet extensions**. One of Turing's sattelite packages, [GPnet](https://github.com/TuringLang/GPnet.jl), is designed to provide a comprehensive suite of Gaussian process tools. See [this issue](https://github.com/TuringLang/GPnet.jl/issues/2) for potential tasks -- there's a lot of interesting stuff going on with GPs, and this task in particular may have some creative freedom to it.
20
-
-**Better chains and model diagnostics**. One package that Turing (and many others) rely on heavily is [MCMCChains.jl](https://github.com/TuringLang/MCMCChains.jl), a package designed to format, store, and analyze parameter samples generated during MCMC inference. MCMCChains is currently showing its age a little and has many [bad design choices](https://github.com/TuringLang/MCMCChains.jl/issues/171) that need to be fixed. Alternatively, a student could contstruct a far more lightweight chain system.
21
-
-**Model comparison tools**. Turing and its sattelite packages do not currently provide a comprehensive suite of model comparison tools, a critical tool for the applied statistician. A student who worked on this project would implement various model comparison tools like [LOO and WAIC](https://mc-stan.org/loo/), among others.
19
+
-**GPnet extensions**. One of Turing's satellite packages, [GPnet](https://github.com/TuringLang/GPnet.jl), is designed to provide a comprehensive suite of Gaussian process tools. See [this issue](https://github.com/TuringLang/GPnet.jl/issues/2) for potential tasks -- there's a lot of interesting stuff going on with GPs, and this task in particular may have some creative freedom to it.
20
+
-**Better chains and model diagnostics**. One package that Turing (and many others) rely on heavily is [MCMCChains.jl](https://github.com/TuringLang/MCMCChains.jl), a package designed to format, store, and analyze parameter samples generated during MCMC inference. MCMCChains is currently showing its age a little and has many [bad design choices](https://github.com/TuringLang/MCMCChains.jl/issues/171) that need to be fixed. Alternatively, a student could construct a far more lightweight chain system.
21
+
-**Model comparison tools**. Turing and its satellite packages do not currently provide a comprehensive suite of model comparison tools, a critical tool for the applied statistician. A student who worked on this project would implement various model comparison tools like [LOO and WAIC](https://mc-stan.org/loo/), among others.
22
22
-**MLE/MAP tools**. [Maximum likelihood estimates](https://en.wikipedia.org/wiki/Maximum_likelihood_estimation) (MLE) and [maximum a posteriori](https://en.wikipedia.org/wiki/Maximum_a_posteriori_estimation) (MAP) estimates can currently only be done by users through a [clunky set of workarounds](https://turing.ml/dev/docs/using-turing/advanced#maximum-a-posteriori-estimation). A streamlined function like `mle(model)` or `map(model)` would be very useful for many of Turing's users who want to see what the MLE or MAP estimates look like, and it may be valuable to allow for functionality that allows MCMC sampling to begin from the MLE or MAP estimates. Students working on this project will work with optimization packages such as [Optim.jl](https://github.com/JuliaNLSolvers/Optim.jl) to make MLE and MAP estimation straightforward for Turing models.
23
23
-**Particle sampler improvements**. Turing's development team has spent a lot of time and energy to make inference methods more modular, but Turing's particle samplers have not yet been modernized and spun off into a separate package. Two packages that resulted from this were [AdvancedHMC](https://github.com/TuringLang/AdvancedHMC.jl) for Hamiltonian MCMC methods, and [AdvancedMH](https://github.com/TuringLang/AdvancedMH.jl) for Metropolis-Hastings style inference methods. A student who worked on this project would become very familiar with Turing's inference backend and with particle sampling methods. This is a good project for people who love making things efficient and easily extendable.
Copy file name to clipboardExpand all lines: _posts/2020-05-04-Imperial-Report13-analysis.md
+2-2
Original file line number
Diff line number
Diff line change
@@ -36,10 +36,10 @@ We want to emphasise that we do not provide additional analysis of the Imperial
36
36
37
37
For our next steps, we're looking at collaboration with other researchers and further developments of this and similar models.
38
38
There are some immediate directions to explore:
39
-
1.Incoporation of more sources of data, e.g. national mobility, seasonal changes and behavior changes in individuals.
39
+
1.Incorporation of more sources of data, e.g. national mobility, seasonal changes and behavior changes in individuals.
40
40
2. How the assumptions incorporated into the priors and their parameters change resulting posterior.
41
41
3. The current model does not directly include recovery as a possibility and assumes that if a person has been infected once then he/she will be infectious until death. Number of recovered cases suffers from the same issues as the number of cases: it cannot be directly observed. But we can also deal with it in a similar manner as is done with number of cases and incorporate this into the model for a potential improvement.
42
-
This will result in a plethora of different models from which we can select the most realistic one using different model comparions techniques, e.g. leave-one-out cross-validation (loo-cv).
42
+
This will result in a plethora of different models from which we can select the most realistic one using different model comparison techniques, e.g. leave-one-out cross-validation (loo-cv).
43
43
44
44
Such model refinement can be potentially valuable given the high impact of this pandemic and the uncertainty and debates in the potential outcomes.
Copy file name to clipboardExpand all lines: _posts/2021-02-04-gsoc.md
+1-1
Original file line number
Diff line number
Diff line change
@@ -18,7 +18,7 @@ If you are interested in exploring any of these projects, please reach out to th
18
18
19
19
For this project, a student might improve the performance of the various statistical functions provided by MCMCChains, changing the back end to use a data storage format that maintains the shape of parameter samples, or improve the general plotting functionality of the package.
20
20
21
-
There's lots of fun little things to do for MCMCChains. Check out this [meta-issue](https://github.com/TuringLang/MCMCChains.jl/issues/246) for more details and dicussions.
21
+
There's lots of fun little things to do for MCMCChains. Check out this [meta-issue](https://github.com/TuringLang/MCMCChains.jl/issues/246) for more details and discussions.
0 commit comments