Giter Club home page Giter Club logo

chop's People

Contributors

fabianp avatar geoffnn avatar tanglef avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

chop's Issues

package import issue

installed constopt-pytorch via git clone and pip install -e .

the following lines fail:
import constopt
constopt.stochastic.PGD

module 'constopt' has no attribute 'stochastic'

these ones work
import constopt
import constopt.stochastic
constopt.stochastic.PGD

Import error when install chop on Colab

When running !python -m pip install git+https://github.com/openopt/chop on a Google colab, I get the following error:

<ipython-input-2-f345500ab750> in <module>()
----> 1 import chop

1 frames
/usr/local/lib/python3.7/dist-packages/chop/stochastic.py in <module>()
     14 import torch
     15 from torch.optim import Optimizer
---> 16 from chop import utils
     17 import numpy as np
     18 

ImportError: cannot import name 'utils' from 'chop' (/usr/local/lib/python3.7/dist-packages/chop/__init__.py)

@fabianp any clue why this could happen?

Min min curriculum training

Related to curriculum training: make examples easier at first by minimizing over input space. Try to do so especially for hard examples.

Adaptive penalty multipliers

Similar to the Carlini & Wagner attack, we'd like the alpha to be defined datapoint wise in the penalty constraints.
Ideally, given a datapoint we should be able to perform binary search to find the smallest alpha which swings a label for a given adversary.

Add simple Cone constraints

Revolution cones defined by u\in R^d, |u| = 1:
K = {v / <v, u> >= alpha * |v|}

Code for prox and LMO operators on these convex sets.

broken example

I'm getting the following error on examples/adversarial_robustness/plot_visualizing_adversarial_attacks.py :

Files already downloaded and verified
L2 norm constraint.
GroupL1 constraint.
Traceback (most recent call last):
  File "plot_visualizing_adversarial_attacks.py", line 94, in <module>
    _, delta_group = adversary_group.perturb(data, target, model, criterion,
  File "/home/pedregosa/dev/chop/chop/adversary.py", line 93, in perturb
    sol = self.method(loss, delta0, step=step, max_iter=max_iter, 
  File "/home/pedregosa/dev/chop/chop/optim.py", line 394, in minimize_frank_wolfe
    raise ValueError("step must be a float or 'sublinear'.")
ValueError: step must be a float or 'sublinear'.

Documentation

  • create sphinx project

  • use sphinx-gallery to run and display the examples

  • upload to openo.pt/chop

Operator splitting is broken.

Cf examples/adversarial_robustness/attack_benchmark.py.
Need to write tests for operator splitting (optim.minimize_three_split)

Bells and whistles for attacks / nonconvex solvers

It has been shown that various improvements on textbook optimization methods allow for notable gains in attack performance. This should be implemented either in the Attacker class or directly in the optimize_method functions.

  • Random restarts
  • Backtracking line-search
  • Stop when adversarial example is misclassified. This could be implemented in a callback passed to optimize_method.
  • use_best option for all methods

Make examples shorter to run

  • Universal Adv Examples doesn't need to run on the full CIFAR 10 dataset
  • Remove dependency to ImageNet -- find a small but high resoluton image dataset.

Pass datapoint wise mask to prox / LMO for accelerating line search

We should be able to compute operators such as prox and LMO for only a subset of the batch.

For example, when performing back-tracking line-search, we only want to update certain datapoints in the batch within the backtracking loop. For now the computation is redundantly done for all datapoints, then masked.

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.