2025 At-Home Round

๐ŸŒง๏ธ Weather

Predict rain from satellite images plus context features โ€” fusing two data types in one model.

CVTabularMultimodal fusionโ˜…โ˜…โ˜…โ˜† fusion practice

๐Ÿ“œThe task, in plain English

Predict rainfall from GOES-16 satellite imagery combined with context features (sun angle, time of day, location). Neither source is enough alone: clouds look different at different sun angles and locations.

InputSatellite image bands + a small vector of numeric context features
OutputRain prediction
Really testsFusing image features with tabular features in one network โ€” a pattern 2026's Robot Delivery reuses (grid + 13-dim vector)

๐Ÿ”งThe baseline you're given

Typically an image-only CNN or a features-only model. Limitation: ignores half the signal โ€” the fusion is the point.

๐Ÿš€Baseline vs. solution

โš ๏ธ The baseline (what you are given)
  • Uses image OR features, not both
  • Basic CNN, default preprocessing of satellite bands
โœ… The winning approach
  • Two-branch network: CNN encodes the image โ†’ feature vector; concatenate the context features; a small MLP head makes the prediction
  • Normalize satellite bands per channel; normalize tabular features too (models hate mixed scales)
  • Sanity baseline first: gradient boosting on context features alone โ€” know what the "cheap" signal is worth before fusing

๐Ÿง’Explain it like I'm brand new

Fusion in one sentence: run the image through a CNN until it becomes a vector of learned features, then just staple the extra numbers onto that vector (concatenate) and let a final small network combine them. That "encode โ†’ concat โ†’ head" template is the standard way to mix images/audio/text with plain numbers, and it appears in 2026's Robot task verbatim.

๐Ÿ’ฌThe Gemma 4 playthrough (2000-token limit)

Chat 1 ยท Two-branch skeleton
YOU
Write ONLY a PyTorch nn.Module: branch A = a provided encoder `enc` mapping (B,C,H,W) to (B,512); input B = (B,7) float features. Concat both, then Linear(519โ†’64) โ†’ ReLU โ†’ Linear(64โ†’1). Code only, max 20 lines.
Same shape ritual: random tensors in, print output shape, then train on 100 samples to see the loss move before the full run.

๐ŸŽฏTakeaways & what Day 1 might do with this

  • Pattern family: multimodal fusion (encode โ†’ concat โ†’ head).
  • Also a lesson in cheap baselines: always know what tabular-only or majority-class scores before investing in the fancy model.