You may not require a large, in-house team to develop AI. There are many ways to engage with AI including third party AI APIs, outsourcing, managed services, creating an in-house AI team, or a ‘hybrid’ approach that combines an in-house team with third party resources. Extensive AI development, however, requires knowledge of AI hardware, development frameworks and techniques. Below, we provide a blueprint for AI development.
We begin by describing the advantages and disadvantages of different development strategies, so you can identify the ideal approach for your company.
The purpose and characteristics of AI frameworks (such as TensorFlow and PyTorch) and popular AI techniques (such as Support Vector Machines and Naïve Bayes) can be confusing. To catalyse your experimentation with AI, we then highlight and explain the AI frameworks and techniques best suited to solve a range of problems.
You may be able to solve the problem you have identified by using an AI application programming interface (API) from a third party. These services fulfil specific, limited functions to a moderate or high standard at low cost. API calls can process your data and provide an immediate result.
Most AI APIs solve problems in the domains of vision and language. Language APIs include transcription, translation and topic extraction. Vision APIs include object recognition, scene detection and logo identification. Numerous AI APIs are available from Amazon, Google, IBM and Microsoft. Features vary (Fig. 13-15) and are advancing rapidly.
Amazon | Microsoft | IBM | ||
---|---|---|---|---|
Object detection | ✔ | ✔ | ✔ | ✔ |
Scene detection | ✔ | ✔ | ✔ | ✘ |
Face detection | ✔ | ✔ | ✔ | ✔ |
Face recognition (human face identification) | ✔ | ✔ | ✘ | ✘ |
Facial analysis | ✔ | ✔ | ✔ | ✔ |
Inappropriate content detection | ✔ | ✔ | ✔ | ✔ |
Celebrity recognition | ✔ | ✔ | ✔ | ✘ |
Text recognition | ✔ | ✔ | ✔ | ✔ |
Written text recognition | ✘ | ✔ | ✔ | ✘ |
Search for similar images on web | ✘ | ✘ | ✔ | ✘ |
Logo detection | ✘ | ✘ | ✔ | ✘ |
Landmark detection | ✘ | ✔ | ✔ | ✘ |
Food recognition | ✘ | ✘ | ✘ | ✔ |
Dominant colours detection | ✘ | ✔ | ✔ | ✘ |
Source: Altexsoft
Amazon | Microsoft | ||
---|---|---|---|
Object detection | ✔ | ✔ | ✔ |
Scene detection | ✔ | ✔ | ✔ |
Activity detection | ✔ | ✘ | ✘ |
Facial recognition | ✔ | ✔ | ✘ |
Facial and sentiment analysis | ✔ | ✔ | ✘ |
Inappropriate content detection | ✔ | ✔ | ✔ |
Celebrity recognition | ✔ | ✔ | ✘ |
Text recognition | ✔ | ✔ | ✘ |
Person tracking on videos | ✔ | ✔ | ✘ |
Audio transcription | ✘ | ✔ | ✔ |
Speaker indexing | ✘ | ✔ | ✘ |
Keyframe extraction | ✘ | ✔ | ✘ |
Video translation | ✘ | 9 languages | ✘ |
Keywords extraction | ✘ | ✔ | ✘ |
Brand recognition | ✘ | ✔ | ✘ |
Annotation | ✘ | ✔ | ✘ |
Dominant colour detection | ✘ | ✘ | ✘ |
Real-time analysis | ✔ | ✘ | ✘ |
Source: Altexsoft. Check with Amazon, Microsoft and Google to see their latest features beyond those shown above.
Amazon | Microsoft | IBM | ||
---|---|---|---|---|
Speech recognition (speech into text) | ✔ | ✔ | ✔ | ✔ |
Text into speech conversion | ✔ | ✔ | ✔ | ✔ |
Entities extraction | ✔ | ✔ | ✔ | ✔ |
Key phrase extraction | ✔ | ✔ | ✔ | ✔ |
Language recognition | 100+ languages | 120 languages | 120+ languages | 60+ languages |
Topics extraction | ✔ | ✔ | ✔ | ✔ |
Spell check | ✘ | ✔ | ✘ | ✘ |
Autocompletion | ✘ | ✔ | ✘ | ✘ |
Voice verification | ✔ | ✔ | ✘ | ✘ |
Intention analysis | ✔ | ✔ | ✔ | ✔ |
Metadata extraction | ✘ | ✘ | ✘ | ✔ |
Relations analysis | ✘ | ✔ | ✘ | ✔ |
Sentiment analysis | ✔ | ✔ | ✔ | ✔ |
Personality analysis | ✘ | ✘ | ✘ | ✔ |
Syntax analysis | ✘ | ✔ | ✔ | ✔ |
Tagging parts of speech | ✘ | ✔ | ✔ | ✘ |
Filtering inappropriate content | ✘ | ✔ | ✔ | ✘ |
Low-quality audio handling | ✔ | ✔ | ✔ | ✔ |
Translation | 6 languages | 60+ languages | 100+ languages | 21 languages |
Chatbot toolset | ✔ | ✔ | ✔ | ✔ |
Source: Altexsoft. Check with Amazon, Microsoft, Google and IBM to see their latest features beyond those shown above.
Transferring large volumes of data can become expensive. If you are using Amazon, Google, IBM or Microsoft for other aspects of your platform, and your platform provider’s APIs fulfil your requirements, your existing vendor may be an attractive option.
Many other companies, however, offer high-quality APIs in the fields of vision, language and forecasting (Fig. 16). Access a fuller list of nearly 200 APIs at www.programmableweb.com/category/artificial-intelligence/api (source: Programmable Web).
Category | Company | Website |
---|---|---|
VISION | Clarifai | https://clarifai.com/developer/guide/ |
EveryPixel | https://api.everypixel.com/ | |
Infinite Loop | http://imagerecognition.apixml.net/ | |
Prisma Labs | https://prismalabs.ai/api-sdk.html | |
Reconess | https://reconess.com/ | |
LANGUAGE | Aylien | https://aylien.com/ |
Indata Labs | https://indatalabs.com/ | |
Meaning Cloud | https://www.meaningcloud.com/ | |
Spot Intelligence | https://www.spotintelligence.com/ | |
Tisane | https://tisane.ai/ | |
Automated Insights | https://automatedinsights.com/ | |
FORECASTING | Ayasdi | https://www.ayasdi.com/platform/ |
Infosys Nia | https://www.edgeverve.com/artificial-intelligence/nia/ | |
Nexosis | https://docs.nexosis.com/ | |
Unplugg | https://unplu.gg/test_api.html |
Source: MMC Ventures
Overall, APIs are ideal if you seek an immediate, low cost solution to a generic problem. APIs will be insufficient, however, if you have a niche challenge, seek greater control and configurability, or seek long-term differentiation through AI (Fig. 17).
Source: MMC Ventures
Many companies adopt a ‘hybrid’ approach (page 54), using APIs for rapid proofs-of-concept while transitioning to an in-house team that can deliver improved, differentiated, domain-specific capabilities over time.
“APIs can cost as little as tens or hundreds of pounds to use – making AI accessible to companies of all sizes and organisations that seek proof of value before committing to greater budgets.”
Several vendors offer managed AI services. A step beyond pre-tuned, function-specific APIs, managed services enable you to upload your data, configure and train your own AI models using a simple interface, and refine the results. These services abstract away much of the difficult of developing AI and enable you to develop a custom solution rapidly, via a simplified interface and limited coding.
Peak, a leading managed AI service company in which we have invested, offers an effective solution. Solutions are also available from Amazon (SageMaker), Google (AutoML), IBM (Watson), Microsoft (Azure) and Salesforce.
If basic APIs will not satisfy your requirements, managed AI services offer a fast, flexible, way to develop bespoke solutions at a lower cost than building an in-house team. Managed services are also ideal for prototyping. If you require more control, flexibility, autonomy and ownership in time, however, significant re-development may be required.
Source: MMC Ventures
If a suitable API or third party product is unavailable, you will need to build an AI solution. However, investing in an in-house team is expensive – at least £500,000 per year, typically, even for a small team. There are cost-effective alternatives. Several companies provide outsourced AI capabilities, ranging from contractor developers, who work with your own engineers, to complete, outsourced AI development.
The nature of AI development enables reseachers to work on multiple workstreams simultaneously, so outsourcing can be cheaper than maintaining a permanent team. Conversely, transferring large volumes of data securely and frequently, and retraining models on an ongoing basis, can become expensive. Whether outsourcing is appropriate will depend upon a range of considerations including:
Overall if maximising speed and minimising initial costs are your highest priorities, and APIs are unavailable, consider outsourcing (Fig. 19).
Source: MMC Ventures
“If maximising speed and minimising initial costs are your highest priorities, and APIs are unavailable, consider outsourcing.”
Investing in an in-house AI team offers maximum control, capability and competitive differentiation – at a price.
An in-house team may be necessaryif your challenge cannot be solved with existing AI techniques and solutions, if you face significant restrictions on your ability to pass data to third parties, or if you seek competitive differentiation through AI. Before incurring the cost and complexity of an AI team, however, explore whether alternative methods can deliver your requirements faster and for a lower cost (Fig. 20). A hybrid strategy, described below, may be ideal.
To develop an in-house AI team, review all chapters of this Playbook for best practices regarding strategy, talent, data, development, production and regulation & ethics.
Source: MMC Ventures
For many companies, a ‘hybrid’ approach to AI is ideal. Plan for an in-house team that will address your requirements to a high standard over time, but use third party APIs (or even a non-AI solution) to solve an initial, simpler version of your challenge.
A hybrid approach may enable you to prove the viability or value of your idea and justify in-house spend. It can also serve as a cost-effective way to identify the aspects of your challenge can be readily addressed and those that will require bespoke work.
A hybrid strategy offers a rapid, low cost start that suits many companies (Fig. 21). Initial investment in hardware, team and software can be minimal. Many APIs offer free trial periods in which you can assess scope for results. Even if your data restrictions prohibit use of third party APIs, you can adopt a hybrid approach with in-house developers using pre-trained AIs. Further, many academic papers and coding competition entries have code uploaded to GitHub and many have unrestricted licenses.
If you adopt a hybrid approach, develop a data strategy (Chapter 1) and pipeline of training data upfront. You can continue to use third-party APIs if they fulfil your needs unless costs become prohibitive, you wish to build resilience, or you seek improved results and differentiation with your own technology. As you gather additional data, you can create more accurate and complex models in-house, as needed and when the business case has been proven.
While the risk of interruption to services from Amazon, Google, IBM and Microsoft is low, vendors do occasionally remove APIs. Smaller vendors offering APIs may be acquired, or their services changed or discontinued. If you adopt a hybrid approach, develop a strategy for resilience. Once elements of your product are in place, examine the pre-trained models and consider moving these services in-house if you can achieve results comparable with the API. You may be able to use your chosen APIs in perpetuity and continually develop niche AI to complement these – a popular approach.
“A hybrid approach gives me flexibility. I don’t need to reinvent the wheel and can focus on doing very specific tasks better than anyone else in the world.”
Dr Janet BastimanStoryStream
Source: MMC Ventures
To develop AI – via a managed service provider, outsourcer or in-house team – you have choices to make regarding your AI technology stack. The stack comprises six layers: hardware; operating systems; programming languages; libraries; frameworks and abstractions (Fig. 22).
We offer hardware recommendations overleaf. The problem domain you are tackling (assignment, grouping, generation or forecasting) will then favour particular machine learning techniques and associated libraries and frameworks. Select components for your development stack accordingly.
The degree of abstraction you select will depend upon the skill of your development team, the speed of development you require and the degree of control you seek over the models you develop. Greater abstraction offers faster development and requires less skill, but limits your ability to tune models to your requirements. The size and speed of your models may also be limited.
Not all problems require the full stack; some solutions can be achieved rapidly, without frameworks or abstractions.
Abstractions (e.g. Keras, Digits)
Frameworks (e.g. TensorFlow, PyTorch)
Libraries (e.g. NumPy, Pandas)
Languages (e.g. Python, R)
Operating System/CUDA (e.g. Linux, Windows)
Hardware (e.g. GPUs, CPUs)
Source: MMC Ventures
Research and development requires hardware. To process models quickly, ensure your team has hardware with graphical processing units (GPUs) that support NVIDIA’s Compute Unified Device Architecture (CUDA) libraries. These allow your AI programmes to use the specialised mathematics of the GPUs and run at least ten times faster than on a CPU. For many, a laptop with a high performance graphics card is ideal. Current, potentially suitable cards include the NVIDIA GTX 1050 Ti, 1070, 1080 and the RTX 2080.
For greater power, desktop machines with more powerful GPUs are preferable – but at the expense of flexibility for your team. If you are a multi-premise team, or expect your personnel to travel, your team may expect a laptop in addition to a desktop machine you provide for research.
For large models, or rapid training, you will require dedicated servers. Buying and hosting servers yourself, either on-premise or in a data centre, is the most cost-effective over the long term but requires considerable upfront capital expenditure. The majority of early stage companies will find it more appropriate to use cloud-based servers offered by large providers including Google, Amazon and Microsoft. All offer GPU servers, costed according to usage time. Using the cloud providers, at least at the early stages of your AI initiatives, will enable you to control costs more effectively and push the decision regarding buying hardware to later in the process when you have a minimum viable product.
For each problem domain (assignment, grouping, generation and forecasting – see Chapter 1, ‘Strategy’) – there are numerous established machine learning techniques.
Techniques vary in their data requirements, training dynamics, deployment characteristics, advantages and limitations. While deep learning methods are powerful, other techniques may be sufficient or better suited. Experiment with multiple techniques. Below, we highlight techniques popular for each domain.
Classification problems, which offer a defined, correct output to ease development, are frequently an attractive starting point for AI. While convolutional neural networks became popular, in part, due to their efficacy in solving classification problems there are many alternative techniques you can apply – many of which offer effective results and are quicker to implement.
Technique | Approach | Advantages | Challenges |
---|---|---|---|
Support Vector Classification (SVC) | “SVC is effective when classifying images or text and you have fewer than 10,000 examples. Plot data in multi-dimensional space, based upon the number of variables in each example, and the SVC algorithm will determine the boundaries of each class (Fig. 24). New examples are classified based upon their relationship to the calculated boundaries. “ | Effective when there are many variables.
Memory-efficient. |
Prone to overfitting.
Cannot directly provide probability estimates to evaluate results. |
Naïve Bayes | Naïve Bayes assumes that variables are independent and is particularly effective for text classification. Classifications are developed based upon the probability of each variable being contained within a specific class. Probabilities are then combined to provide an overall prediction. | Fast to train and run.
Effective for text and variables. |
Highly sensitive to training data.
Probability for classifications is unreliable. |
K–Nearest Neighbours Classification (KNN) | “KNN is a productive statistical technique when you possess a complete data set. All training data is mapped into vectors, from an origin based on the variables in the data. Each point in space is assigned a label. New data is then classified by mapping it to the same space and returning the label of the closest existing datapoints (Fig. 26). “ | Effective when boundaries between classes are poorly defined. | All data must be stored in memory for classification; predictions require additional resources and time. |
Convolutional Neural Networks (CNNs) | “CNNs comprise multiple layers of neurons. Data passing through the network is transformed, by examining overlaps between neighbouring regions to create areas of interest. The final layer of the network is then mapped to target classes. “ | Excels with complex data and multiple output classes. | Compuationally expensive.
Slow to train. |
Source: MMC Ventures
Source: Haydar Ali Ismail, (https://bit.ly/2vcSDLf)
Source: Rajeev D. S. Raizada, Yune-Sang Lee (https://doi.org/10.1371/journal. pone.0069566)
Source: Savan Patel (https://bit.ly/2GAYWR5)
“While convolutional neural networks are popular, there are many alternative techniques you can apply – many of which are quicker to implement.”
Regression problems quantify the extent to which a feature exists. Because they are also assignment problems, the techniques used for assignment frequently overlap with those used for regression.
Technique | Approach | Advantages | Challenges |
---|---|---|---|
Support Vector Regression (SVR) | “SVR is similar to SVC; training data plotted in multi-dimensional space. However, unlike SVC (where hyperplanes are generated to maximise distance from the data), with SVR hyperplanes are matched as closely as possible to the data. “ | Effective with large numbers of variables.
Versatile. Can extrapolate for new data. |
Prone to overfitting.
The prediction is provided without confidence in its correctness; confidence must be determined through indirect methods. |
Least Absolute Shrinkage and Selection Operator (Lasso) | “Lasso minimises the number of variables used to make a prediction. If there are multiple, correlated variables Lasso will select one at random. “ | Fast predictions.
Well suited to situations in which few variables are important for a prediction. |
Minimising input variables may cause overfitting to training data.
Selected variables may oversimplify the problem. |
Convolutional Neural Networks (CNNs) | “CNNs can also be used for regression assignment tasks. Unlike when used for classification, the CNN provides a single neuron, with the prediction value as an output. “ | Effective for complex problems. | Difficult to determine which inputs contribute to a prediction.
Difficult to determine confidence in the prediction. |
Source: MMC Ventures
If you have unlabelled data and seek to cluster it into similar groups, you will require techniques that expose similarity. Definining similarity can be challenging when there are many dimensions to the data.
Technique | Approach | Advantages | Challenges |
---|---|---|---|
Meanshift Clustering | “Meanshift clustering discovers groups within a data set by selecting candidates for the centre of a group from the arithmetic mean of the datapoints in the region. The process continues until there are a distinct set of groups, each with a centre marker (Fig. 29). “ | You do not need to know in advance how many clusters you expect. | The algorithm’s scalability is limited due to the number of calculations between neighbours in each iteration. |
K-Means (Lloyd’s algorithm) | K-Means groups data into a pre-defined number of clusters of equal variance (data spread within the group). | Scalable to large data sets. | Defining the number of clusters in advance can be difficult because it requires some knowledge of the probable answers. If data is irregularly shaped, when plotting in multi-dimensional space the algorithm can become confused and suggest peculiar distributions. |
Gaussian Mixture Models (GMMs) | GMMs can offer more flexibility than K-Means. Instead of assuming that points are clustered around the mean of each group, GMMs assume a Gaussian distribution and can offer ellipse shapes (Fig. 30). | Because they draw upon probabilities, GMMs can label datapoints as belonging to multiple classes – which may be valuable for edge cases. | If the Gaussian distribution assumption is invalid, the clustering may perform poorly with real data. |
Source: MMC Ventures
Source: Miroslav Radojević (https://bit.ly/2GWfm5W)
Source: John McGonagle, Geoff Pilling, Vincent Tembo (https://bit.ly/2tzlc5k)
Since its inception, AI has been used to synthesise text; MIT’s ELIZA natural language processing programme, created from 1964 to 1966, offered the illusion of understanding in psychology and other domains. In the decades since, the quality of generation techniques has been transformed – particularly following the introduction of Generative Adversarial Networks (GANs) – while domains of application have broadened to include visual imagery and sound.
Technique | Approach | Advantages | Challenges |
---|---|---|---|
Pattern matching | Pattern matching is among the most nai_ve of techniques but offers the illusion of intelligence in text generation. Using a dictionary of phrases and key words to recognise input statements, it is possible to create moderately effective responses with little effort. | Useful for repetitive situations that may be fully mapped – such as sports reporting or basic customer support. | Rapidly becomes nonsensical when inputs are outside a predefined area. |
Probabilistic prediction | Probabilistic prediction can be effective for text generation. Given a word or words from a sentence, probabilistic models determine a word or phrase to follow and recommend the text with the highest probability. | Improve quickly with use. | Addresses a set of problems limited in scope. |
Variational Auto- Encoders (VAEs) | VAEs train from real-world data. VAEs use a convolutional neural network to encode data into a vector and a second network to deconvolve the vector back to the original image (Fig. 32). After training the network, varying the input vector will provide realistic outputs. | Compare the output directly to the original. | The likelihood of a realistic output decreases if the difference between the original data vector and new input vector becomes too great.
Image outputs can be blurry. |
Generative Adversarial Networks (GANs) | Generative Adversarial Networks (GANs) comprise a generator network such as DCGAN (Deep Convolutional GAN) and a discriminator network (a standard classification CNN) (Fig. 33). The generator attempts to create an output that will fool the discriminator, while the discriminator becomes increasingly sophisticated at identifying outputs that are unreal. With sufficient training, the generator network learns to create images or text that are indistinguishable from real examples. | Create realistic outputs from random input noise. | Cannot generate outputs with specific features unless the GAN searches the entire input space. Random inputs give random (although realistic) outputs; you cannot force a specific output condition.
The discriminator identifies only real images and fakes, not whether the output includes elements of interest. The more complex the image or text being created, the harder to create realistic output. Current research centres on splitting the challenge into multiple generative steps. |
Source: MMC Ventures
Source: Kevin Frans (https://bit.ly/2GDnUiJ)
Source: Thalles Silva (https://bit.ly/2MZGKAs)
Applying techniques to predict the future is challenging; forecasts may be affected by variables outside the data available to you. While the past is not always indicative of the future, AI forecasting techniques are effective when there are causal or periodic effects. Understanding the volume of data you require may need initial knowledge of causal and periodic effects, in the absence of which your model may miss these relations.
“While the past is not always indicative of the future, AI forecasting techniques are effective when there are causal or periodic effects.”
Technique | Approach | Advantages | Challenges |
---|---|---|---|
Causal models | A sub-class of assignment problem, causal models can use the same techniques – with the additional consideration of variables’ rate of change – to predict new values. | Straightforward to implement. | Consider a point in time; may fail to take into account longer- term trends. |
Hidden Markov Models (HMMs) | Markov models provide a sequence of events based upon the previous time step. HMMs assume that predictions of the future can be based solely upon the present state; further history is irrelevant. | Well suited to learning and predicting sequeneces within data based upon probability distributions. | Challenging to train. Rapidly become inaccurate if sequences change. |
Auto-Regression Moving Average (ARMA) | Despite dating from the 1950s, ARMA remains useful. ARMA considers past values and uses regression to model and predict a new value, while a moving average calculates the error. A further algorithm determine the best fit for future predictions. | Considers past values and prediction error, offering greater adaption than HMMs. | Can oversimplify problems that have complex periodicity, or randomness, in the time series. |
Source: MMC Ventures
If your team is developing an AI solution, use libraries to accelerate development. The algorithms described above have been coded into efficient libraries for Python and R. Implementing an algorithm directly in Python will be slower – in some cases 60 times slower (Fig. 35).
Implementation | Run time |
---|---|
Pure Python (with list comprehensions)
TensorFlow on CPU NumPy |
18.65 seconds
1.20 seconds 0.32 seconds |
Run time for a linear regression problem implemented in pure Python, using TensorFlow (on CPU for comparability) and using in-built functions in NumPy (a Python library for numerical analysis). |
Source: https://realpython.com/numpy-tensorflow-performance/ (Renato Candido)
There are many libraries available to support numerical analysis. The most popular include:
In addition to libraries there are specific applications, such as Matlab and Mathematica, which offer extensive functions. While popular in academic settings, they are rarely used in industry given the high cost of software licenses compared with the free libraries available.
Deep learning frameworks are typically more extensive than numerical analysis libraries and serve as ‘scaffolding’ for your projects. Your choice of framework will impact speed of development as well as the features and scalability of your solution.
With numerous frameworks available, take time to evaluate your project priorities and the framework best suited to your goals. The most popular framework may not be optimal for your initiative. When selecting a framework consider its advantages and limitations, the skills it requires, availability of skills, and scaling and speed requirements (both for development and production).
Unless you are using a pre-trained network, if you have implemented models in a single framework then reimplementing them in another will involve retraining from scratch. You may elect to use multiple frameworks for different problems, particularly if doing so allows consistency with existing development languages.
Frameworks evolve at different speeds and, particularly when maintained by a single business or university, may be discontinued with limited notice. In a rapidly evolving field, frameworks with high levels of community support can be attractive.
Framework | Features | Maintained by | Community Support | Availability of Talent | Advantages | Challenges |
---|---|---|---|---|---|---|
TensorFlow | One of the most widely used frameworks, TensorFlow is implemented as a Python library, enabling rapid development of a wide variety of projects.
There are many example projects for TensorFlow, and numerous code samples (available with an open source license) for different classes of problem that can be adapted rapidly for your own tasks. |
High | High | Numerous example projects are available.
Becoming a standard as many training courses use TensorFlow. Allows lower-level data manipulation for tuning. |
Significant computational overhead.
Less efficient than numerical libraries for certain calculations. Challenging to optimise. |
|
Caffe/Caffe2 | Caffe is one of the earlier frameworks implemented in C++ with a Python interface. Originally designed for convolutional neural networks, Caffe grew to support feed-forward networks.
Facebook recently introduced Caffe2 which is built for mobile, includes pre-trained models, and is likely to be merged with PyTorch (also from Facebook). |
Berkeley Vision (Caffe)
Facebook (Caffe2) |
Medium | Medium | Widely used in the academic community. | Challenging to compile.
Limited support. |
Theano | Among the oldest deep learning libraries, Theano is more mathematical than many and positioned between analytical libraries such as NumPy and abstract frameworks such as TensorFlow.
Much academic research was undertaken in Theano, with Python, and many early adopters of AI employed it. |
University of Montreal | Low | Medium | Efficient and scalable.
Straightforward to implement new algorithms. Used for many early machine learning courses. |
No longer developed or supported.
Developers with experience may advocate for its use. |
MXNet | MXNet supports a wide range of programming languages including C++, R, Python and Javascript, and is maintained by the open source community. | Apache | Medium | Low | Fast and scalable; designed for high performance. | Little support in academia or industry except niche, high performance use cases. |
Torch/PyTorch | Torch provides numerous pre- trained models and development that is similar to traditional programming.
While Torch supported only the Lua language, PyTorch supports Python. |
Low | Low | Uses standard debugging techniques
Supports distributed training. |
PyTorch 1.0 was recently released (October 2018); change may be rapid.
Limited available Lua talent for Torch. |
|
DeepLearning4J | DeepLearning4J is written for Java and Scala, and supports a wide variety of networks. | Eclipse Foundation | Low | Low | Fast and scalable.
Can operate with an existing Java stack. |
Lacking support for Python, its use is uncommon.
Few examples. |
Chainer | Chainer is a smaller library for Python, used extensively for natural language tasks (speech recognition, sentiment analysis and, translation). | Preferred Networks | Low | Low | Networks can be modified while running. | Challenging to debug.
Few examples. |
Digits | NVIDIA’s framework is freely available to participants in the Company’s developer programme or users of the NVIDIA cloud.
Digits abstracts much of the programming into a visual interface, which allows researchers to focus on network design instead of coding data import routines or network architecture components. Digits will operate with Tensorflow or on a standalone basis. |
NVIDIA | Low | Low | Enables rapid prototyping.
Highly optimised. |
Low levels of support in academia and industry.
Few available examples. Restrictive abstraction. |
Keras | Keras is a Python library that allows rapid prototyping of neural networks. Not a framework in its own right, we consider it here as an extension to Theano and TensorFlow. | François Chollet | Medium | Medium | Enables rapid prototyping and experimentation.
Accessible for beginners and useful for all levels of experience. |
Requires additional frameworks.
Challenging to customise networks beyond the abstraction layer; re-working may be required to utilise underlying frameworks. |
Source: MMC Ventures
“APIs can cost as little as tens or hundreds of pounds to use – making AI accessible to companies of all sizes and organisations that seek proof of value before committing to greater budgets.”