Skip to content

dmeoli/optiml

Repository files navigation

OptiML

Build Status Coverage Status Python Version PyPI Version PyPI Downloads Binder

OptiML is a sklearn compatible implementation of Support Vector Machines and Deep Neural Networks, both with some of the most successful features according to the state of the art.

This work was motivated by the possibility of being able to solve the optimization problem deriving from the mathematical formulation of these models through a wide range of optimization algorithms object of study and developed for the Numerical Methods and Optimization course @ Department of Computer Science @ University of Pisa under the supervision of prof. Antonio Frangioni.

Contents

  • Numerical Optimization

    • Unconstrained Optimization
      • Line Search Methods
        • 1st Order Methods
          • Steepest Gradient Descent
          • Conjugate Gradient
            • Fletcher–Reeves formula
            • Polak–Ribière formula
            • Hestenes-Stiefel formula
            • Dai-Yuan formula
        • 2nd Order Methods
          • Newton
          • Quasi-Newton
            • BFGS
            • L-BFGS
      • Stochastic Methods
        • Stochastic Gradient Descent
          • Momentum
            • Polyak
            • Nesterov
        • Adam
          • Momentum
            • Polyak
            • Nesterov
        • AMSGrad
          • Momentum
            • Polyak
            • Nesterov
        • AdaMax
          • Momentum
            • Polyak
            • Nesterov
        • AdaGrad
        • AdaDelta
        • RMSProp
          • Momentum
            • Polyak
            • Nesterov
        • Schedules
          • Step size
            • Decaying
            • Linear Annealing
            • Repeater
          • Momentum
            • Sutskever Blend
      • Proximal Bundle with cvxpy interface to ecos, osqp, scs, etc.
    • Constrained Quadratic Optimization
      • Box-Constrained Quadratic Methods
        • Projected Gradient
        • Frank-Wolfe or Conditional Gradient
        • Active Set
        • Interior Point
      • Lagrangian Dual
      • Augmented Lagrangian Dual
  • Machine Learning

    • Support Vector Machines
      • Formulations
        • Primal
        • Wolfe Dual
        • Lagrangian Dual
      • Support Vector Classifier
        • Losses
          • Hinge (L1 Loss) l1_svc_loss
          • Squared Hinge (L2 Loss) l2_svc_loss
      • Support Vector Regression
        • Losses
          • Epsilon-insensitive (L1 Loss) l1_svr_loss
          • Squared Epsilon-insensitive (L2 Loss) l2_svr_loss
      • Kernels
        • Linear

          SVC SVR
          linear_dual_l1_svc_hyperplane linear_dual_l1_svc_hyperplane
        • Polynomial

          SVC SVR
          poly_dual_l1_svc_hyperplane poly_dual_l1_svc_hyperplane
        • Gaussian

          SVC SVR
          gaussian_dual_l1_svc_hyperplane gaussian_dual_l1_svc_hyperplane
        • Laplacian

          SVC SVR
          laplacian_dual_l1_svc_hyperplane laplacian_dual_l1_svc_hyperplane
        • Sigmoid

      • Optimizers (ad hoc)
    • Neural Networks
      • Neural Network Classifier
      • Neural Network Regressor
      • Losses
        • Mean Absolute Error (L1 Loss)
        • Mean Squared Error (L2 Loss)
        • Binary Cross Entropy
        • Categorical Cross Entropy
        • Sparse Categorical Cross Entropy
      • Regularizers
        • L1 or Lasso
        • L2 or Ridge or Tikhonov
      • Activations
        • Linear
        • Sigmoid
        • Tanh
        • ReLU
        • SoftMax
      • Layers
        • Fully Connected
      • Initializers
        • Xavier or Glorot (normal and uniform)
        • He (normal and uniform)

Install

pip install optiml

License License: MIT

This software is released under the MIT License. See the LICENSE file for details.