bkobilansky / AIToolbox

A toolbox of AI modules written in Swift: Graphs/Trees, Support Vector Machines, Neural Networks, PCA, K-Means, Genetic Algorithms

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

AIToolbox

A toolbox of AI modules written in Swift: Graphs/Trees, Linear Regression, Support Vector Machines, Neural Networks, PCA, KMeans, Genetic Algorithms, MDP, Mixture of Gaussians

This framework uses the Accelerate library to speed up computations. Written for Swift 2.2. Will update to 3 when officially released

SVM ported from the public domain LIBSVM repository See https://www.csie.ntu.edu.tw/~cjlin/libsvm/ for more information

The Metal Neural Network uses the Metal framework for a Neural Network using the GPU. While it works in preliminary testing, more work could be done with this class

Use the XCTest files for examples on how to use the classes

Classes/Algorithms supported:

Graphs/Trees
    Depth-first search
    Breadth-first search
    Hill-climb search
    Beam Search
    Optimal Path search

Alpha-Beta (game tree)

Genetic Algorithms
    mutations
    mating
    integer/double alleles

Constraint Propogation
    i.e. 3-color map problem

Linear Regression
    arbitrary function in model
    convenience constructor for standard polygons
    Least-squares error

Non-Linear Regression
    parameter-delta
    Gradient-Descent
    Gauss-Newton

Neural Networks
    multiple layers, several non-linearity models
    on-line and batch training
    simple network training using GPU via Apple's Metal

Support Vector Machine
    Classification
    Regression
    More-than-2 classes classification

K-Means
    unlabelled data grouping

Principal Component Analysis
    data dimension reduction

Markov Decision Process
    value iteration
    policy iteration
    fitted value iteration for continuous state MDPs - uses Linear Regression class for fit
            (see my MDPRobot project on github for an example use)

Gaussians
    Single variable
    Multivariate - with full covariance matrix or diagonal only

Mixture Of Gaussians
    Learn density function of a mixture of gaussians from data
    EM algorithm to converge model with data

License

This framework is made available with the Apache license.

About

A toolbox of AI modules written in Swift: Graphs/Trees, Support Vector Machines, Neural Networks, PCA, K-Means, Genetic Algorithms

License:Apache License 2.0


Languages

Language:Swift 96.6%Language:Metal 3.2%Language:Objective-C 0.1%