GithubHelp home page GithubHelp logo

grknylmz / swift-ai Goto Github PK

View Code? Open in Web Editor NEW

This project forked from swift-ai/swift-ai

0.0 2.0 0.0 27.8 MB

An artificial intelligence and machine learning library in Swift.

License: MIT License

Swift 100.00%

swift-ai's Introduction

Swift AI Banner

Swift AI is a high-performance AI and machine learning library written entirely in Swift. We currently support iOS and OS X, with support for more platforms coming soon!

Features

Swift AI includes a set of common tools used for machine learning and artificial intelligence research. These tools are designed to be flexible, powerful and suitable for a wide range of applications.

  • Feed-Forward Neural Network
    • 3-layer network with options for customization.
    • Example projects for iOS and OS X.
  • Recurrent Neural Network
  • Convolutional Network
  • GPU-Accelerated Networks
  • Genetic Algorithms
  • Fast Matrix Library
    • Matrix class supporting common operators
    • SIMD-accelerated operations
  • Fourier Transform Functions

What It's For

"This is a really cool project, but what can I actually do with it? I know nothing about A.I."

I get this question a lot, so I want to address it here:

Swift AI focuses on a useful branch of artificial intelligence known as machine learning: the science of training computers to take actions without explicit programming. Used appropriately, these tools can give your applications abilities that would normally be impossible or unrealistic using conventional programming techniques.

As an example, consider an app that recognizes handwritten letters on a piece of paper: using the computer science you learned in school, you might be tempted to write each of the rules for classifying each character individually. This would consist of extracting pixel data from the image, reading them in individually, and writing an extremely complicated mathematical model that relates pixel darkness/position into a probability for the letter A, and then likewise for B, C, D, etc. Sound fun? Here's what your program might eventually look like:

if /* massive function for checking the letter A */ {
    return "A"
} else if /* massive, completely unique function for checking the letter B */ { 
    return "B"
} else if ...

Hopefully you've realized by now that this method simply isn't feasible. In the best case scenario, you might end up with thousands of lines of very unreliable code for recognizing only your exact handwriting. In comparison, Swift AI's iOS example app demonstrates how far superior functionality can be accomplished with very few lines of code, using machine learning. And requiring exactly zero explicit rules to be written by the developer.

So how can Swift AI be used in the real world?

Here are a few ideas to get you started:

  • Handwriting recognition
  • Gesture recognition
  • Facial detection
  • Drone stabilization and navigation systems
  • Predicting and identifying medical conditions
  • Song identification (e.g., Shazam)
  • Speech recognition
  • Video game AI
  • Weather forecasting
  • Fraud detection
  • Building smart robots!

Usage and Examples

Please see the documentation for detailed instructions on how to use the various components of Swift AI.

We've also created example projects to demonstrate the usage and potential applications of this library:

  • iOS:
    • 2D function regression (feed-forward neural network)
    • Handwriting recognition (feed-forward neural network)
    • Evolution simulation (genetic algorithm)
  • OS X:
    • XOR logic gate modeling (feed-forward neural network)
    • 2D function regression (feed-forward neural network)
    • Trainer for iOS handwriting recognizer (feed-forward neural network)
  • Swift Playground:
    • Graphing - used in conjunction with OS X regression examples

Installation

Grab the files you need, drag them into your project. That was easy!

Why don't we use CocoaPods/Carthage?

Swift is open-source now, and it remains to be seen how these dependency managers will cooperate with other platforms.

A better alternative will probably be the Swift Package Manager.

Compatibility

Swift AI currently depends on Apple's Accelerate framework for vector/matrix calculations and digital signal processing.

In order to provide support for more platforms (Linux, Windows, etc.), alternative BLAS solutions are being considered. A vanilla Swift implementation is one possibility, but SIMD instructions will be preferred for their significant performance boost. Check back for more updates on this soon.

Using Swift AI?

If you're using Swift AI in one of your own projects, let me know! I'll add a link to your profile/website/app right here on the front page. Feel free to email me at the address shown below.

Contributing

Contributions to the project are welcome. Please review the documentation before submitting a pull request, and strive to maintain consistency with the structure and formatting of existing code. Official guidelines with more details will be provided soon.

Contact

I develop iOS apps, and have experience in engineering. You can reach me here:

Email

Care Enough to Donate?

Take a little, give a little. More donations = less contract work = more time building great open-source projects!

What good will my money do?

Your donation will help a college student get through school, and give you a warm, fuzzy feeling. Every contribution is appreciated.

Donate

swift-ai's People

Contributors

collinhundley avatar neoneye avatar angu avatar perlfly avatar abargh avatar radarhere avatar danappelxx avatar jiritrecak avatar juliofruta avatar marcferna avatar nmac427 avatar timvermeulen avatar pixelspark avatar vittoriom avatar shu223 avatar

Watchers

James Cloos avatar Gurkan Yilmaz avatar

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.