@@ -111,8 +111,12 @@ pl = scatter(X0.state[1,:],X0.state[2,:], msw = 0, ms = 1, color = "blue", alpha
111
111
X1true = sampleX1 (n_inference_samples)
112
112
scatter! (X1true[1 ,:],X1true[2 ,:], msw = 0 , ms = 1 , color = " orange" , alpha = 0.5 , label = " X1 (true)" )
113
113
scatter! (samples. state[1 ,:],samples. state[2 ,:], msw = 0 , ms = 1 , color = " green" , alpha = 0.5 , label = " X1 (generated)" )
114
+ savefig (" readmeexamplecat.svg" )
114
115
```
115
116
117
+ ![ Image] ( https://github.com/user-attachments/assets/2c057698-bd1f-4dc1-9aaa-833af8a71196 )
118
+
119
+
116
120
## Tracking trajectories
117
121
118
122
``` julia
132
136
X1true = sampleX1 (n_inference_samples)
133
137
scatter! (X1true[1 ,:],X1true[2 ,:], msw = 0 , ms = 1 , color = " orange" , alpha = 0.5 , label = " X1 (true)" )
134
138
scatter! (samples. state[1 ,:],samples. state[2 ,:], msw = 0 , ms = 1 , color = " green" , alpha = 0.5 , label = " X1 (generated)" )
135
- ```
139
+ ```
140
+ ![ Image] ( https://github.com/user-attachments/assets/85f3714d-27ba-4683-9c63-2bcb7fcaaf16 )
141
+
142
+ ## Variations:
143
+
144
+ These can be found in [ examples] ( https://github.com/MurrellGroup/Flowfusion.jl/tree/main/examples ) .
145
+
146
+ ### Flow matching
147
+
148
+ with ` P = Deterministic() `
149
+
150
+ ![ Image] ( https://github.com/user-attachments/assets/e82ac33a-6f28-4731-b39d-8ad9757159f7 )
151
+
152
+ ### Flow matching on a manifold
153
+
154
+ with ` P = Deterministic() ` and ` X0 = ManifoldState(Torus(2), ...) `
155
+
156
+ ![ Image] ( https://github.com/user-attachments/assets/b6a1a27f-f0fc-4bc4-af10-bb8b5e7aa8cf )
157
+
158
+ ### Diffusion on a manifold
159
+
160
+ with ` P = ManifoldProcess(0.2) ` and ` X0 = ManifoldState(Torus(2), ...) ` :
161
+
162
+ ![ Image] ( https://github.com/user-attachments/assets/43a7f061-a95e-44ad-bbb5-631d91633a54 )
163
+
164
+ ### Discrete flow matching
165
+
166
+ with ` P = NoisyInterpolatingDiscreteFlow(0.1) ` and ` X0 = DiscreteState(...) ` :
167
+
168
+ ![ Image] ( https://github.com/user-attachments/assets/d9497f36-c87d-4676-915a-5b067d4f486b )
169
+
170
+ ### Partial observation conditioning
171
+
172
+ with ` X0 = MaskedState(state, cmask, lmask) `
173
+
174
+ ![ Image] ( https://github.com/user-attachments/assets/e3e84290-2a57-4d2d-8ebc-ad91800e8fea )
175
+
176
+ ### Discrete distributions via diffusion on the probability simplex
177
+
178
+ with ` P = ManifoldProcess(0.5) ` and ` X0 = ManifoldState(ProbabilitySimplex(32), ...) ` :
179
+
180
+ <video src =" https://github.com/user-attachments/assets/b3692a2f-5d5b-4924-82bb-f5477230b45d " controls ></video >
181
+
182
+ ## Literature:
183
+
184
+ For background reading please see:
185
+
186
+ - [ Denoising Diffusion Probabilistic Models] ( https://arxiv.org/abs/2006.11239 )
187
+ - [ Flow Matching for Generative Modeling] ( https://arxiv.org/abs/2210.02747 )
188
+ - [ Denoising Diffusion Bridge Models] ( https://arxiv.org/abs/2309.16948 )
189
+ - [ Flow matching on general geometries] ( https://arxiv.org/pdf/2302.03660 )
190
+ - [ Diffusion on Manifolds] ( https://arxiv.org/abs/2303.09556 )
191
+ - [ Flow Matching (a review/guide)] ( https://arxiv.org/abs/2412.06264 )
192
+ - [ Discrete Flow Matching] ( https://arxiv.org/abs/2407.15595 )
193
+
194
+ Except where noted in the code, this package mostly doesn't try and achieve faithful reproductions of approaches described in the literature, and prefers to be inspired by, rather than constrained by, precise mathematical correctness. The main goals are:
195
+ - Bringing a variety of different processes under a single unified and flexible framework
196
+ - Providing processes that work, practically speaking
0 commit comments