Skip to content

Improve advice / diagnostics when VI gives terrible results #6271

Open
@ricardoV94

Description

@ricardoV94

I have never used VI before, so I don't know if it's expected to fail so easily:

import pymc as pm

with pm.Model():
    x = pm.Normal("x")
    # increasing the distance between prior and posterior makes no difference for VI
    # e.g., sigma=1e-3 or observed=100
    y = pm.Normal("y", x, sigma=0.5, observed=10)  
    
    nuts = pm.sample()
    vi = pm.fit()
    
print((
    nuts.posterior["x"].mean().values, 
    vi.sample().posterior["x"].mean().values
))  # (array(8.01670159), array(3.11480314))

Metadata

Metadata

Assignees

Labels

VIVariational Inferencequestion

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions