Giter VIP home page Giter VIP logo

Comments (4)

huanzhang12 avatar huanzhang12 commented on June 22, 2024

@zhiluwang Thanks for reporting your issue to us! At this point, the get_upper_bound feature is still not ready to use, however we are working on completing this feature in the next release. If your aim is to get an upper bound of the objective of the robustness verification problem, one easy way to obtain an upper bound is by doing a PGD attack.

If you want to get an guaranteed upper bound for a function within a bounded input perturbation, you can do so by flipping the objective g(x) = -f(x), so the lower bound reported by our tool is the actual upper bound you need. Let me know what is your exact use case so we can help you further.

from alpha-beta-crown.

zhiluwang avatar zhiluwang commented on June 22, 2024

@huanzhang12 Thank you for the clarification. I am looking for using alpha-beta-crown for output range analysis of regression networks so I would like to evaluate an over-approximated upper bound. And my current solution is just like you mentioned, flipping the objective. I just thought that if lower and upper bounds can be derived together, it should be more efficient.

On the other hand, it seems that higher-level APIs are designed for classification networks. For output range analysis of regression networks, I currently call the incomplete_verifier() first and then call bab(). I set y=None and arguments.Config["specification"]["norm"] = np.inf to get a tight lower bound. Please correct me if there're better functions to use.

from alpha-beta-crown.

huanzhang12 avatar huanzhang12 commented on June 22, 2024

@zhiluwang Yes, so far the API is indeed designed for classification network, and some minor changes are need to handle regression, although in principle they are the same the problem.

I am actually working on a more general interface at this time, but due to my limited availability I can't finish it very soon. The way you are currently doing should be correct. When you call bab(), I believe you will also need to give it a target (target class) and for regression, setting it to 0 should work.

from alpha-beta-crown.

zhiluwang avatar zhiluwang commented on June 22, 2024

@huanzhang12 Got it. Thank you.

from alpha-beta-crown.

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.