graph TD subgraph "Isotropic π΅" direction TD I1["Same correlation\nin all directions"] I2["l1 = l2"] I3["CMP: circular\npolishing pattern"] end subgraph "Anisotropic πΆ" direction TD A1["Different correlation\nper direction"] A2["l1 β l2"] A3["Litho scan: stripe\npattern in y-direction"] end style I1 fill:#bbdefb style I2 fill:#64b5f6,color:#fff style I3 fill:#e3f2fd style A1 fill:#ffe0b2 style A2 fill:#ff9800,color:#fff style A3 fill:#fff3e0
graph TD subgraph "Isotropic Model β" WRONG["Assume l1 = l2\nOne length scale"] ERR1["Underestimates\nx-correlation"] ERR2["Overestimates\ny-correlation"] WRONG --> ERR1 WRONG --> ERR2 end subgraph "Anisotropic Model β " RIGHT["Estimate l1, l2\nseparately"] OK1["Correct\nx-correlation"] OK2["Correct\ny-correlation"] RIGHT --> OK1 RIGHT --> OK2 end style WRONG fill:#ffcdd2 style ERR1 fill:#ef9a9a style ERR2 fill:#ef9a9a style RIGHT fill:#c8e6c9 style OK1 fill:#a5d6a7 style OK2 fill:#a5d6a7
graph LR K["k(x, x')"] --> K1["kβ(x, x')\nββ in x"] K --> K2["kβ(y, y')\nββ in y"] style K fill:#9c27b0,color:#fff style K1 fill:#2196f3,color:#fff style K2 fill:#ff9800,color:#fff
graph LR W["x ~ N(0, I)\nIndependent noise π²"] --> M["y = L @ x\nLinear transform"] C["K = LLα΅\nCholesky factor"] --> M M --> Y["y ~ N(0, K)\nCorrelated field β "] style W fill:#e3f2fd style C fill:#f3e5f5 style M fill:#ffcc80 style Y fill:#c8e6c9
graph TD subgraph "Why Cholesky? π€" A["We want correlated\nsamples y ~ N(0, K)"] --> B["We can generate\nuncorrelated x ~ N(0, I)"] B --> C["Need transform:\ny = f(x)"] C --> D["Cholesky: K = LLα΅"] D --> E["Then: y = Lx\nworks perfectly! β "] end style A fill:#e3f2fd style B fill:#fff9c4 style C fill:#ffe0b2 style D fill:#f3e5f5 style E fill:#c8e6c9
graph LR D["2D Data\nX: (nΓ2)"] --> S["Compute\nAnisotropic Distances"] S --> K["Build\nCovariance Matrix\nV = K(lβ,lβ) + ΟβΒ²I"] K --> L["Cholesky\nV = LLα΅"] L --> N["Negative Log Likelihood\n-log L / M"] N --> O["Optimizer\nL-BFGS-B\n4 params: lβ,lβ,Ο,Οβ"] O --> Q{"Converged?"} Q -->|No| K Q -->|Yes| R["Estimated ΞΈΜ\nlβ, lβ, Ο, Οβ"] style D fill:#2196f3,color:#fff style K fill:#9c27b0,color:#fff style L fill:#e91e63,color:#fff style O fill:#f44336,color:#fff style R fill:#4caf50,color:#fff
graph TD subgraph "3D search (isotropic)" I["β only β line search"] end subgraph "4D search (anisotropic)" A["ββ, ββ β plane search\nMore local minima β οΈ"] end style I fill:#bbdefb style A fill:#ffe0b2
graph LR A["True: lβ=1.0, lβ=4.0\nπΆ"] --> F["Fit: isotropic β"] F --> BAD["β compromise β 2.0\nunderestimates x, overestimates y"] BAD --> E1["x-dir: over-estimate\ncorrelation range β"] BAD --> E2["y-dir: under-estimate\ncorrelation range β"] style A fill:#ffe0b2 style F fill:#ffcdd2 style BAD fill:#ef9a9a style E1 fill:#ffab91 style E2 fill:#ffab91
graph LR ISO["Isotropic\nlec03a"] --> ANISO["Anisotropic\nthis talk"] ISO --> NONPARA["Non-parametric\nlec03b"] style ISO fill:#64b5f6,color:#fff style ANISO fill:#ff9800,color:#fff style NONPARA fill:#4caf50,color:#fff