Giter VIP home page Giter VIP logo

Comments (2)

davidahirshberg avatar davidahirshberg commented on August 14, 2024

Thanks for bringing this to our attention and for the clear example.

To clarify, attr(tau_hat, "weights")$vals is the sequence of values of the loss function we minimize estimate the unit weights omega, the time weights lambda, and the regression coefficients beta of Y on X
that we see as we run the optimizer --- it's not the weights themselves. It's the curve synthdid_rmse_plot(tau_hat) displays to help diagnose problems like this one.

What seems to be happening is that when the covariates are large, the gradient steps we take when estimating beta are so large that they increase our loss function. The scaling issue comes up because the step size used by sc.weight.fw.covariates is from a pre-specified schedule --- it takes steps of the form beta_{t+1} = beta_t + (1/t)*gradient --- instead of something more appropriate to the scale of the covariates and therefore of the gradient. We should be able to fix this by incorporating some curvature information, either by using something like a quasi-newton step instead of a gradient step or choosing the step size via line search. Let's look into doing this.

from synthdid.

matthewbondy avatar matthewbondy commented on August 14, 2024

Thanks Taro and David. I am experiencing a similar issue. Would you recommend as an interim solution just doing a linear transformation - e.g. dividing covariates by some "large" constant?

from synthdid.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.