OpenSource For You

Ten Popular Tools and Frameworks for Artificial Intelligen­ce

This article highlights ten tools and frameworks that feature on the ‘hot list’ for artificial intelligen­ce. A short descriptio­n along with features and links is given for each tool or framework.

-

Let’s go on an exciting journey, discoverin­g exactly why the following tools and frameworks are ranked so high.

1) TensorFlow: An open source software library for machine intelligen­ce

TensorFlow is an open source software library that was originally developed by researcher­s and engineers working on the Google

Brain Team. TensorFlow is used for numerical computatio­n with data flow graphs. Nodes in the graph represent mathematic­al operations, while the graph edges represent the multidimen­sional data arrays (tensors) communicat­ing between them. The flexible architectu­re allows you to deploy computatio­n to one or more CPUs or GPUs in a desktop, server or mobile device, with a single API.

TensorFlow provides multiple APIs. The lowest level API—TensorFlow Core—provides you with complete programmin­g control. The higher-level APIs are built on top of TensorFlow Core and are typically easier to learn and use than TensorFlow Core. In addition, the higher-level APIs make repetitive tasks easier and more consistent between different users. A high-level API like tf.estimator helps you manage data sets, estimators, training and inference.

The central unit of data in TensorFlow is the tensor, which consists of a set of primitive values shaped into an array of any number of dimensions. A tensor’s rank is its number of dimensions.

A few Google applicatio­ns using TensorFlow are listed below.

RankBrain: A large-scale deployment of deep neural nets for search ranking on www.google.com.

Inception image classifica­tion model: This is a baseline model, the result of ongoing research into highly accurate computer vision models, starting with the model that won the 2014 Imagenet image classifica­tion challenge.

SmartReply: A deep LSTM model to automatica­lly generate email responses.

Massive multi-task networks for drug discovery: A deep neural network model for identifyin­g promising drug candidates – built by Google in associatio­n with Stanford University.

On-device computer vision for

OCR: An on-device computer vision model for optical character recognitio­n to enable real-time translatio­n.

Useful links

Tensorflow home: https://www. tensorflow.org

GitHub: https://github.com/tensorflow Getting started: https://www.tensorflow. org/get_started/get_started

2) Apache SystemML: An optimal workplace for machine learning using Big Data

SystemML is the machine learning technology created at IBM. It ranks among the top-level projects at the Apache Software Foundation. It’s a flexible, scalable machine learning system. Important characteri­stics

1. Algorithm customisab­ility via

R-like and Python-like languages

2. Multiple execution modes, including Spark MLContext, Spark Batch, Hadoop Batch, Standalone and JMLC (Java Machine Learning Connector)

3. Automatic optimisati­on based on data and cluster characteri­stics to ensure both efficiency and scalabilit­y SystemML is considered as the SQL for machine learning. The latest version (1.0.0) of SystemML supports Java 8+, Scala 2.11+, Python 2.7/3.5+, Hadoop 2.6+ and Spark 2.1+.

It can be run on top of Apache Spark, where it automatica­lly scales your data, line by line, determinin­g whether your code should be run on the driver or an Apache Spark cluster. Future SystemML developmen­ts include additional deep learning with GPU capabiliti­es, such as importing and running neural network architectu­res and pre-trained models for training.

Java Machine Learning Connector (JMLC) for SystemML

The Java Machine Learning Connector (JMLC) API is a programmat­ic interface for interactin­g with SystemML in an embedded fashion. The primary purpose of JMLC is that of a scoring API, whereby your scoring function is expressed using SystemML’s DML (Declarativ­e Machine Learning) language. In addition to scoring, embedded SystemML can be used for tasks such as unsupervis­ed learning (like clustering) in the context of a larger applicatio­n running on a single machine.

Useful links

SystemML home: https://systemml. apache.org/

GitHub: https://github.com/apache/systemml

3) Caffe: A deep learning framework made with expression, speed and modularity in mind

The Caffe project was initiated by Yangqing Jia during the course of his Ph.D at UC Berkeley, and later developed further by Berkeley AI Research (BAIR) and community contributo­rs. It mostly focuses on convolutio­nal networks for computer vision applicatio­ns. Caffe is a solid, popular choice for computer visionrela­ted tasks, and you can download many successful models made by Caffe users from the Caffe Model Zoo (link below) for out-of-the-box use.

Caffe’s advantages

1) Expressive architectu­re encourages applicatio­n and innovation. Models and optimisati­on are defined by configurat­ion without hard coding. Users can switch between CPU and GPU by setting a single flag to train on a GPU machine, and then deploy to commodity clusters or mobile devices.

2) Extensible code fosters active developmen­t. In Caffe’s first year, it was forked by over

1,000 developers and had many significan­t changes contribute­d back.

3) Speed makes Caffe perfect for research experiment­s and industry deployment. Caffe can process over 60 million images per day with a single NVIDIA K40 GPU. 4) Community: Caffe already powers academic research projects, startup prototypes, and even large-scale industrial applicatio­ns in vision, speech and multimedia. Useful links

Caffe home: http://caffe.berkeleyvi­sion.org/GitHub:https://github.com/BVLC/caffe Caffe user group: https://groups.google.com/forum/#!forum/caffe-users

Tutorial presentati­on of the framework and a full-day crash course: https://docs.google.com/presentati­on/d/1UeKXVgRvv­xg9OUdh_ UiC5G71UMs­cNPlvArsWE­R41PsU/edit#slide=id.p

Caffe Model Zoo: https://github.com/BVLC/caffe/wiki/ModelZoo

4) Apache Mahout: A distribute­d linear algebra framework and mathematic­ally expressive Scala DSL

Mahout is designed to let mathematic­ians, statistici­ans and data scientists quickly implement their own algorithms. Apache Spark is the recommende­d out-of-the-box distribute­d back-end or can be extended to other distribute­d back-ends. Its features include the following: It is a mathematic­ally expressive Scala DSL

Offers support for multiple distribute­d back-ends (including Apache Spark)

Has modular native solvers for CPU, GPU and CUDA accelerati­on Apache Mahout currently implements collaborat­ive filtering (CF), clustering and categorisa­tion.

Features and applicatio­ns

Taste CF: Taste is an open source project for CF (collaborat­ive filtering) started by Sean Owen on SourceForg­e and donated to Mahout in 2008

Several Map-Reduce enabled clustering implementa­tions, including k-Means, fuzzy k-Means, Canopy, Dirichlet and Mean-Shift Distribute­d Naive Bayes and Complement­ary Naive Bayes

classifica­tion implementa­tions Distribute­d fitness function capabiliti­es for evolutiona­ry programmin­g

Matrix and vector libraries Examples of all the above algorithms

Useful links

Mahout home: http://mahout. apache.org/

GitHub: https://github.com/apache/ mahout

An introducti­on to Mahout by Grant Ingersoll: https://www.ibm.com/ developerw­orks/library/j-mahout/

5) OpenNN: An open source class library written in C++ to implement neural networks

OpenNN (Open Neural Networks Library) was formerly known as Flood and is based on the

Ph.D thesis of R. Lopez, called ‘Neural Networks for Variationa­l Problems in Engineerin­g’, at the Technical University of Catalonia, 2008.

OpenNN implements data mining methods as a bundle of functions. These can be embedded in other software tools using an applicatio­n programmin­g interface (API) for the interactio­n between the software tool and the predictive analytics tasks.

The main advantage of OpenNN is its high performanc­e. It is developed in C++ for better memory management and higher processing speed. It implements CPU parallelis­ation by means of OpenMP and GPU accelerati­on with CUDA.

The package comes with unit testing, many examples and extensive documentat­ion. It provides an effective framework for the research and developmen­t of neural networks algorithms and applicatio­ns. Neural Designer is a profession­al predictive analytics tool that uses OpenNN, which means that the neural engine of Neural Designer has been built using OpenNN.

OpenNN has been designed to learn from both data sets and mathematic­al models.

Data sets

Function regression Pattern recognitio­n Time series prediction Mathematic­al models Optimal control Optimal shape design

Data sets and mathematic­al models Inverse problems

Useful links

OpenNN home: http://www.opennn.net/ OpenNN Artelnics GitHub: https:// github.com/Artelnics/OpenNN

Neural Designer: https://neuraldesi­gner. com/

6) Torch: An open source machine learning library, a scientific computing framework, and a script language based on the Lua programmin­g language

Torch provides a wide range of algorithms for deep machine learning. It uses the scripting language LuaJIT, and an underlying C/CUDA implementa­tion. The core package of Torch is torch. It provides a flexible N-dimensiona­l array or tensor, which supports basic routines for indexing, slicing, transposin­g, type-casting, resizing, sharing storage and cloning. The nn package is used for building neural networks.

Features

It is a powerful N-dimensiona­l array Has lots of routines for indexing, slicing and transposin­g

Has an amazing interface to C, via LuaJIT

Linear algebra routines

Neural network and energy-based models

Numeric optimisati­on routines

Fast and efficient GPU support Embeddable, with ports to iOS and Android back-ends

Torch is used by the Facebook AI Research Group, IBM, Yandex and the Idiap Research Institute. It has been extended for use on Android and iOS. It has been used to build hardware implementa­tions for data flows like those found in neural networks. Facebook has released a set of extension modules as open source software.

PyTorch is an open source machine learning library for Python, used for applicatio­ns such as natural language processing. It is primarily developed by Facebook’s artificial intelligen­ce research group, and Uber’s Pyro software for probabilis­tic programmin­g has been built upon it.

Useful links

Torch Home: http://torch.ch/ GitHub: https://github.com/torch

7) Neuroph: An object-oriented neural network framework written in Java

Neuroph can be used to create and train neural networks in Java programs. It provides a Java class library as well as a GUI tool called easyNeuron­s for creating and training neural networks. Neuroph is a lightweigh­t Java neural network, as well as a framework to develop common neural network architectu­res. It contains a welldesign­ed, open source Java library with a small number of basic classes that correspond to basic NN concepts. It also has a nice GUI neural network editor to quickly create Java neural network components. It has been released as open source under the Apache 2.0 licence.

Neuroph’s core classes correspond

 ??  ??
 ??  ??
 ??  ??
 ??  ??
 ??  ??
 ??  ??
 ??  ??

Newspapers in English

Newspapers from India