SYNTOLOGY HomeExplorerAtlasCodeMethodologyAboutDevelopersFeedPricing
Paper · 1906.03526 · 2019

Provably Robust Boosted Decision Stumps and Trees against Adversarial Attacks

arXiv · PDF · Open in the Atlas

Code that ran

We lifted 12 functions out of this paper's own repositories and ran 10 of them in a sandbox. "Ran" means the function executed on a synthesized input and returned a value. It is not a reproduction of the paper's results.

RepositoryRoleRan
max-andr/provably-robust-boosting canonical 10 of 12
FunctionStatusWhere it lives
clip Ran max-andr/provably-robust-boosting/utils.py
code served (permissive licence) · get_code("683bc1854d08f77d")
cube_attack Ran max-andr/provably-robust-boosting/attacks.py
code served (permissive licence) · get_code("242a09d9693b5d69")
find_min_yf_point Ran max-andr/provably-robust-boosting/tree_ensemble.py
code served (permissive licence) · get_code("0ea677162ae82cfe")
find_min_yf_tree_par Ran max-andr/provably-robust-boosting/tree_ensemble.py
code served (permissive licence) · get_code("2f6060c220b1f525")
get_contiguous_indices Ran max-andr/provably-robust-boosting/utils.py
code served (permissive licence) · get_code("92eb12a00be37bd9")
minimum Ran max-andr/provably-robust-boosting/utils.py
code served (permissive licence) · get_code("23596bd126ba3587")
normalize_per_feature_0_1 Ran max-andr/provably-robust-boosting/data.py
code served (permissive licence) · get_code("22a45269af07d150")
predict_point Ran max-andr/provably-robust-boosting/tree_ensemble.py
code served (permissive licence) · get_code("b282ba89051ec5db")
split_train_test Ran max-andr/provably-robust-boosting/data.py
code served (permissive licence) · get_code("9ecc4a0f8c651c2d")
split_train_validation Ran max-andr/provably-robust-boosting/data.py
code served (permissive licence) · get_code("0c371bdbcb6a457f")
binary_search_attack Not yet run max-andr/provably-robust-boosting/attacks.py
code served (permissive licence) · get_code("4f36bf322e7ee391")
sampling_attack Not yet run max-andr/provably-robust-boosting/attacks.py
code served (permissive licence) · get_code("7a18374118969762")

Repositories linked to this paper

Some links come from the archived Papers with Code dataset (CC BY-SA 4.0): attribution and licence.

Abstract

The problem of adversarial robustness has been studied extensively for neural networks. However, for boosted decision trees and decision stumps there are almost no results, even though they are widely used in practice (e.g. XGBoost) due to their accuracy, interpretability, and efficiency. We show in this paper that for boosted decision stumps the \textit{exact} min-max robust loss and test error for an $l_\infty$-attack can be computed in $O(T\log T)$ time per input, where $T$ is the number of decision stumps and the optimal update step of the ensemble can be done in $O(n^2\,T\log T)$, where $n$ is the number of data points. For boosted trees we show how to efficiently calculate and optimize an upper bound on the robust loss, which leads to state-of-the-art robust test error for boosted trees on MNIST (12.5% for $ε_\infty=0.3$), FMNIST (23.2% for $ε_\infty=0.1$), and CIFAR-10 (74.7% for $ε_\infty=8/255$). Moreover, the robust test error rates we achieve are competitive to the ones of provably robust convolutional networks. The code of all our experiments is available at http://github.com/max-andr/provably-robust-boosting

For agents

The same record, over MCP at https://syntology.ai/mcp:

get_harvested_code_for_paper("1906.03526")
get_code_for_paper("1906.03526")
have("1906.03526")

Connect an agent — have() is free.