Selected Works [cs.LG, astro-ph.IM]Submitted 3 August 2026UC Berkeley, University of MinnesotaJoseph Ong

Selected Works in Machine Learning, Astrophysics, and Computer Vision: A Survey of Recent Contributions

Joseph Ong1,2

1UC Berkeley, 2University of Minnesota


† This is not a real preprint. It is a portfolio site. The research described is real.


ACKNOWLEDGMENTS


The authors thank you for reading this far. In less formal terms, these are real projects, built over the last two years, either as a research question I was interested in or to fix a minor inconvenience. Feel free to click on any of the projects to see my write-up.


research.

Recovering parameters from signals that are noisy, incomplete, or only arrive once.

GW150914 strain data and Q-transform spectrogram

AMPLFI

Reads a gravitational-wave detection and returns the masses, spins and distance of the black holes that made it, in one forward pass instead of hours of sampling. I extended a normalizing-flow pipeline with CNN encoders that read Q-transform spectrograms instead of raw detector strain.

Gravitational waves, events that occur from two extremely large masses merging (usually two black holes), have only been detected recently, and the field is growing fast. When they are detected, we only see a "chirp" that looks like a growing sine wave. The chirp itself carries the masses, spins and distance, but pinning down where on the sky it came from takes several detectors and the tiny differences in when the wave reached each one. Previous methods involved Bayesian samplers that took hours per event to recover parameters from a gravitational wave. However, for useful observations, follow-up telescopes need to be pointed in minutes. AMPLFI skips the sampler: a normalizing flow maps detector data directly to a posterior over the parameters. My contribution, in Michael Coughlin’s group at the University of Minnesota over the summer of 2026, was the front end. Instead of feeding the network raw one-dimensional strain, I reworked it to read Q-transform spectrograms through CNN encoders. These are time-frequency images where a chirp traces a clean rising arc, and where the signal separates from detector noise far more cleanly. That matters most for the low-signal events, which are both the hardest to characterize and the ones the sampler is slowest on. Getting the encoder and the flow to train together stably took months, across a parameter space spanning several orders of magnitude in both mass and distance.

Predicted vs. observed microlensing light curve

LIGHT

Forecasts a microlensing event’s light curve from the first half of its observations. An LSTM proposes the shape of the curve from the Paczyński parameters, then a χ² optimizer snaps that guess onto the points with the lensing equation.

A microlensing event happens when a massive object drifts in front of a star and its gravity magnifies the background star’s light. Through the Undergraduate Laboratory at Berkeley’s Physics Division (ULAB) across 2025 and 2026, we built LIGHT, short for Light-curve Inference for Gravitational-lensing Hypothesis Testing, on a data pipeline built by others on the team. I trained an LSTM to read the observed points and fit the five Paczyński parameters, using 4,312 curves from the OGLE database which were cut off somewhere in the first half. Then I handed that prediction to a χ² optimizer so the final fit snaps onto the curve while obeying the lensing equations. Together they reach R²=0.81 on the five parameters. The two models are complementary: the LSTM provides the educated guess to get within the ballpark, and the optimizer snaps that guess onto the points based on the lensing equations. The project is being written up as a Research Note of the AAS.

github.com/joseph-ongg/LIGHT
Synthesized fluent input with per-token neuron activation highlighted

Text-Dreaming with LARGO for LLM Neurons

Verifies an LLM neuron’s description by optimizing for an input that activates it the most. Instead of going through an entire dataset for maximum activating examples, I optimize a soft prompt in embedding space and have an LLM verbalize it into fluent text.

The standard way to find an LLM neuron’s description is by feeding it a large dataset and finding its max activating example. However, this induces dataset biases, so it may not catch some things that weren’t in the dataset. For example, there was a neuron whose dataset description said it triggered on the word 'extra' in medical contexts, but the highest activation I found was on mentions of the Pope. Text dreaming is a different way to find a max activating example by optimizing a soft prompt inside the model. Optimizing inside a model is a non-trivial task because text is translated to embedding vectors which can be optimized, but not all embedding vectors can be brought back to text, so optimizations must stay near real tokens. I use a text optimization method, LARGO, as the base for my neuron optimization. LARGO is a method that starts with a simple embedding optimization, then asks the model itself what the optimized embedding means. This cycle is repeated over and over again to get my results. I use this on MLP neurons in Llama 3.1 8B, and reach ~1.10x the dataset max activation, beating every neuron-optimization method so far. That sounds small until you consider that my optimizer only ever saw 25,600 pieces of text, and it still beat the best example in a dataset far larger than that. The work is ongoing with Nathan Hu at Stanford, now on automated interpretability where we have a model generate and score neuron explanations.

personal projects.

One of these tells you which dining hall is worth the walk. Some are deployed, some are half-finished, one is this site.