Giter Site home page Giter Site logo

goal's Introduction

Goal: Geometric OptimizAtion Libraries

Goal (Geometric OptimizAtion Libraries) is a collection of Haskell libraries for numerical optimization and machine learning. Expanding on vectors with static sizes, Goal furnishes vectors with additional type-level structure based on ideas from differential geometry. The goals of Goal are to provide types, classes, and functions that are:

  • practical, and provide a safe and effective means of expressing and applying efficient optimization algorithms.
  • intuitive, such that types and classes can be easily read and understood, and meaningfully describe their values and functions.
  • evocative, such that the correspondence between Goal types and mathematical constructs promotes an appreciation and understanding of mathematical optimization and geometry.

For more detailed explanations of the Goal libraries, visit the individual package pages. At my blog you may find examples and tutorials for Goal.

The central packages of the Goal libraries are:

Core

goal-core re-exports a number of other libraries, and provides a set of additional utility functions useful for scientific computing. In particular, implementations of Mealy Automata (Circuits), tools for working with CSV files and gnuplot, and a module which combines vector-sized vectors with hmatrix.

Geometry

goal-geometry provides the basic types and classes which drive the manifold/geometry based approach of Goal. Points and manifolds, dual and multilinear spaces, function spaces and multilayer neural networks, and generic optimization routines are defined here.

Probability

goal-probability provides tools for implementing and applying basic statistical models. The core concept of goal-probability are statistical manifolds, i.e. manifold of probability distributions, with a focus on exponential family distributions.

Graphical

goal-graphical provides tools for with dynamical and graphical models. Various graphical models are defined here, e.g. mixture models and restricted Boltzmann machines, dynamical models such as HMMs and Kalman filters, and in both cases algorithms for fitting them e.g. expectation maximization and contrastive divergence minimization.

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.