Work
A selection of works in machine learning, computer vision, generative models, and applied AI. Ordered by depth and impact, not by date.
For my internships, see Experience
Hero work
-
Reimplemented PatchCore (Roth et al., 2022) end-to-end for cold-start defect detection. GPU-first, FAISS-free. On MVTec AD, 99.03% image AUROC and 98.01% pixel AUROC, within 0.13pp of the official Amazon Science baseline.
-
Ten-agent system evaluating real-estate purchases in Aix-en-Provence using six public data sources. Two independent valuations arbitrated explicitly, shared API budget, 161 unit tests and 24 end-to-end tests with real public APIs.
-
Full MLOps pipeline for credit default prediction. LightGBM tuned with Optuna, tracked in MLflow, served via Docker. Decision threshold optimized for asymmetric business cost (FN×10), per-prediction SHAP explanations to justify any refusal.
Main projects
-
Reimplemented DreamBooth (Ruiz et al., 2022) for few-shot personalization of Stable Diffusion v1.5 from 3-5 photos. Diffusion loss + prior preservation loss, full Streamlit pipeline across five pages, evaluation with DINO, CLIP-I, CLIP-T.
-
Three-class sentiment classifier on 37,427 Google Play Store reviews. Fine-tuned DistilBERT with multi-seed soft-voting ensemble. 95.19% test accuracy, 93.90% macro F1.
-
Three-tier portfolio optimization on S&P 500 sectors: convex Markowitz baseline, then NSGA-II with cardinality constraints and transaction costs, then bootstrap robustness with VaR. Interactive Streamlit dashboard.
-
Compared five models on German Credit along two axes: business cost and explainability. Decision Tree dominates the Pareto frontier (lowest cost, highest auditability) even though MLP wins on accuracy — a clean demonstration that accuracy is the wrong objective for regulated decisions.
Supporting work
-
Kaggle competition entry comparing two approaches at equal compute. Primary: CycleGAN with ResNet-9 generator and PatchGAN discriminator. Alternative: Stable Diffusion v1.5 + LoRA + img2img. Four notebook variants tuned for different GPUs.
-
Compared Scikit-learn, TensorFlow, PyTorch on UCI Online News Popularity (39,000 Mashable articles), framed as a multi-task system. Counter-intuitive finding: a simple sklearn MLP beats deep multi-task models on sentiment.
-
Two image classifiers on five flower classes for an in-class tournament. CNN side: ConvNeXt V2 Large. ViT side: DeiT-Small/16. Both fine-tuned with timm, with augmentation and early stopping.