icnn  by locuslab

TensorFlow code for Input Convex Neural Networks research paper

created 9 years ago
295 stars

Top 90.7% on sourcepulse

GitHubView on GitHub
1 Expert Loves This Project
Project Summary

This repository provides TensorFlow code for Input Convex Neural Networks (ICNNs), a class of neural networks designed to be convex with respect to their inputs. It enables researchers and practitioners to reproduce experiments from the ICML 2017 paper "Input Convex Neural Networks" and apply ICNNs to tasks like synthetic classification, multi-label classification, image completion, and reinforcement learning.

How It Works

ICNNs achieve input convexity by enforcing specific architectural constraints and using optimization techniques like the bundle entropy method. This approach guarantees desirable properties such as a unique global minimum for the loss function, simplifying optimization and improving generalization. The code implements ICNNs using TensorFlow, allowing for integration with existing deep learning workflows.

Quick Start & Requirements

  • Install: Clone the repository and install dependencies.
  • Prerequisites: Python, NumPy, TensorFlow (r10), OpenAI Gym, and Mujoco.
  • Experiments: Scripts are provided for synthetic classification, multi-label classification, image completion, and reinforcement learning. The RL experiments can be run using python src/main.py with specified model and environment flags.

Highlighted Details

  • Reproduces experiments from the ICML 2017 paper "Input Convex Neural Networks."
  • Implements ICNNs using TensorFlow.
  • Includes applications in classification, image completion, and reinforcement learning.
  • Offers a bundle entropy method for optimization.

Maintenance & Community

The project is authored by Brandon Amos, Leonard Xu, and J. Zico Kolter. The reinforcement learning components are based on the SimonRamstedt/ddpg repository.

Licensing & Compatibility

The source code is primarily licensed under the Apache 2.0 License, with portions from third-party sources carrying their respective licenses (e.g., MIT for DDPG components). This license is generally permissive for commercial use.

Limitations & Caveats

The bundle entropy method implementation is noted as still in progress with ongoing numerical issue fixes. Some multi-label classification experiments may be slightly inconsistent with the published paper.

Health Check
Last commit

6 years ago

Responsiveness

Inactive

Pull Requests (30d)
0
Issues (30d)
0
Star History
3 stars in the last 90 days

Explore Similar Projects

Feedback? Help us improve.