Comments (5)
The backward bound propagation is the basic procedure in CROWN. It guarantees soundness and correctness of the bounds. For "more accurate" I am not sure what you mean or what method you are comparing to. It would be more helpful if you can clarify your question.
from alpha-beta-crown.
Thanks for your reply.
I understand that backward bound propagation is the basis of this method, my question is why do we need to backpropagate to the first layer to get Λ(0),Ω(0) and then use Theorem 3.2 to calculate fL and fU. Why can't we stop early and backpropagate to only k layers (e.g. both only to the second layer to get only Λ(1),Ω(1), without having to compute Λ(0),Ω(0) again, reducing the time overhead)?
Can propagating to the first layer to get Λ(0),Ω(0) give tighter robustness bounds?
from alpha-beta-crown.
Yes, propagating to the first layer gives you the tightest bound because the input constraints specified by users are tight.
To compute fL and fU you will need the bound for the input layer if you have Λ(0),Ω(0), or intermediate layer bounds such as the bounds after the first layer if you use Λ(1),Ω(1).
For intermediate layers, although you can also use their linear coefficients such as Λ(1),Ω(1) to obtain sound bounds, they tend to be looser because intermediate layer bounds are computed using input constraints, and they are not as tight as the original input constraints.
If your aim is to produce bounds as fast as possible, you could use Λ(1),Ω(1) or other intermediate layer linear coefficients to obtain valid bounds. It's gonna be a trade-off between efficiency and bound tightness.
from alpha-beta-crown.
"they tend to be looser because intermediate layer bounds are computed using input constraints, and they are not as tight as the original input constraints."
What does the input constraints mean here?
When using Λ(1),Ω(1) they tend to be looser, do you mean that the intermediate layers' upper and lower bounds to be looser? Since the intermediate layers' upper and lower bounds are looser, then the fL and fU also to be looser too?
Besides, I have done some experiments before and considered propagating only to Λ(1),Ω(1) to make the computation time shorter. However, I was surprised to find that in some experiments I would get tighter certified lower bound.
My possible explanation was that when calculating the certified lower bound, due to the use of the binary search, propagating only to Λ(1),Ω(1) would result in a looser(compared to propagating to Λ(0),Ω(0)) upper and lower bound on f, which would lead to a higher probability of overlapping different classes in the binary search, further resulting in the equation in the picture being unsatisfied more often and therefore increasing the certified lower bound, is this reasonable?
However, I also note that if my explanation above is correct, then the propagation to Λ(0),Ω(0) loses its meaning. So I think there may be some mistake with my experiment or explanation, can you please help me to see what is wrong with my explanation or if such an experiment result is not possible?
Thanks a lot!
from alpha-beta-crown.
Input constraints are the Lp norm perturbation ball for robustness verification.
Intermediate layer bounds are computed using input constraints, so they are weaker than the input constraints. It is very unlikely that using intermediate layer bounds and Λ(1),Ω(1) produces tighter bounds. It is most likely a bug.
Binary search is irrelevant here. Do not use binary search. When you compare bounds, please compare at a fixed epsilon and look at the lower and upper bounds. Your bug is likely related to binary search.
from alpha-beta-crown.
Related Issues (20)
- Binary out.txt file HOT 1
- CUDA out of memory HOT 6
- need help with Regression model and batch-normalization HOT 1
- alpha-beta-crown behavior HOT 1
- alpha-beta-crown always returns timeout even for a very simple model HOT 1
- GCP-CROWN‘s SDP example error
- Unable to run BAB attack with any given configuration files
- Can I compute the upper bound using incomplete verifier? HOT 13
- RuntimeError onnx network when verifying, while network works at inference
- Documentation info and "save_adv_example" only saving last example
- Can't install HOT 9
- AssertionError on act.inputs HOT 2
- Out-Of-Memory Error / "Killed"
- Explanation of the contents of the results file "out.txt"?
- How to run abcrown.py from inside Python? HOT 1
- It appears that there are missing indentations at line 501 and 502 in abcrown.py. HOT 1
- Inconsistency in Verification Results and Issues with Network Scaling and torch.norm Usage HOT 2
- AttributeError: 'Patches' object has no attribute 'permute' HOT 1
- "NotImplementedError: bound_dynamic_forward is not implemented for BoundMaxPool(...)" encountered while attempting to run vnncomp23's vggnet16 benchmark
- Example using abcrown to verify visual transformer (ViT)
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from alpha-beta-crown.