[PYTHON] Organize machine learning and deep learning platforms


Recently, the openness of the platform has become popular, so let's reorganize the machine learning platform and deep learning platform (framework).

Main platforms

PaaS service

name URL
Google Cloud Platform https://cloud.google.com/
Azure Machine Learning https://azure.microsoft.com/ja-jp/services/machine-learning
Amazon Machine Learning https://aws.amazon.com/jp/machine-learning
Bluemix IBM Watson https://www.ibm.com/watson/

Learning framework (Python)

name URL
Theano http://deeplearning.net/software/theano/index.html
TensorFlow https://www.tensorflow.org/
Caffe http://caffe.berkeleyvision.org/
Chainer http://chainer.org/
Keras https://keras.io/

A brief description of the PaaS service

The services provided by each vendor include pre-learned model translation and image / video recognition.

Google Cloud Platform Screen Shot 0029-07-04 at 10.53.49 PM.png

It will be a machine learning platform provided by Google. A managed service that makes it easy to build machine learning models for any data, regardless of size. You can also use TensorFlow prepared on the cloud.

Contents of machine learning

・ Cloud Machine Learning Engine You can learn from various data such as supervised regression / classification and unsupervised clustering. The algorithm used is not disclosed.

Azure Machine Learning Screen Shot 0029-07-04 at 10.56.59 PM.png

Azure Machine Learning is a cloud predictive analytics service that enables you to quickly create and deploy predictive models as an analytics solution. With a library of ready-to-use algorithms, you can create models on an internet-connected PC and quickly deploy your forecasting solution.

Contents of machine learning

· Azure ML You can also learn from various data such as supervised regression / classification and unsupervised clustering. You can select the algorithm to use. (There are too many algorithms and it is over-engineered.)

Amazon Machine Learning amazon_machine_learning.png

Amazon Machine Learning is a managed service for building machine learning models and generating predictions, allowing you to develop robust, scalable, and advanced applications. Amazon Machine Learning allows you to use powerful machine learning technologies without the need for extensive background knowledge of machine learning algorithms and techniques.

Contents of machine learning

・ Amazon Machine Learning You can also learn from various data such as supervised regression / classification and unsupervised clustering.

[Algorithm used] Regression: Linear Regression Classification Binary classification: Logistic Regression Multiclass classification: Multinomial logistic Regression

Bluemix IBM Watson IBM-Watson-Logo.png

IBM defines AI as "Augmented Intelligence" rather than "Artificial Intelligence" to expand and enhance human knowledge, and provides customers with IBM Watson as a core cognitive solution. It offers. IBM Watson is a technology platform that uses natural language processing and machine learning to uncover insights from large amounts of unstructured data.

Contents of machine learning

You can also learn from various data such as supervised regression / classification and unsupervised clustering. Also, since there are multiple learned APIs, it is convenient when creating a new service.   [Algorithm used] private It seems that "consider multiple available algorithms and select the one that meets your needs."

A brief description of the learning framework

It is a framework distributed by OSS.

Theano main-thumb-t-449747-200-vosprwwgrsgxbcuogpvzqfdrnccpscnt.jpeg


Called the grandfather of the deep learning framework, many global researchers use Theano written in Python.

merit and demerit

Computational graphs are easy to read and abstracted
Recurrent neural networks fit well into computational graphs
High-level rappers (Keras, Lasagne) save you time
Error messages may not be useful
Compile time may be longer for larger models
Insufficient support for pre-trained models
Single GPU

TensorFlow tensor-flow_opengraph_h.png


TnesorFlow is the latest library of neural networks developed by Google under the project "Google Brain".

High-level functionality can be implemented and calculations can be represented in data flows and graphs. The inside of the library is made in C ++, but Python is also included and it has a structure that can be used flexibly.

merit and demerit

Computational graph abstraction
Compile time is shorter than Theano
Visualize with TensorBoard
Parallel processing of data and model
Slower than other frameworks
There are not many pre-trained models.
Computational graphs are slow because they are just Python.
No commercial support
Drop out to Python to load every new batch of training
Dynamic typing errors are prone to large software projects

Caffe caffe-logo.jpg


Caffe is a well-known and widely used machine vision library that is a C and C ++ port of the fast convolutional network implemented by Matlab. Caffe focuses on image processing and does not target other deep learning such as text, voice, and time series data.

merit and demerit

Suitable for feed forward networks and image processing
Suitable for fine tuning existing networks
Train your model without writing code
Python interface is very useful
C on new GPU layer++/Need to write CUDA
Not suitable for recurrent neural networks
For large networks (GoogLeNet,ResNet) Difficult to use
Not extensible
No commercial support
It takes time to develop

Chainer tensor-flow_opengraph_h.png


Chainer is an open source neural network framework with a Python API. The core development team is active in Preferred Networks, a Tokyo-based machine learning startup, with many engineers from the University of Tokyo. Until the advent of CMU's DyNet and Facebook's PyTorch, Chainer was the main neural network framework for dynamic computational graphs and was a network that allowed input of various lengths, making it popular for natural language processing work. It is a high function. Using its own benchmarks, Chainer is faster than other frameworks for Python and features TensorFlow, the slowest test group including MxNet and CNTK.

merit and demerit

Intuitive calculation graph can be constructed
Relatively easy to debug
Calculation speed tends to be slow
I'm worried if I can keep up with the update
The user population is still small(Outside Japan)

Keras 1b042898-d4d8-4a90-b7aa-831eea3a5f83.png


Keras is a library used at the top of Theano and TensorFlow, which does not have a wrapper for deep learning of high-speed calculation libraries, and provides an intuitive API.

When you start deep learning, the programming barrier stands out. However, with Keras, even if you have no programming experience, you can quickly learn a simple network.

Probably okay even if you have no programming experience
The framework continues to grow rapidly
Many users
Keras is arguably the most beginner-friendly
The contents of the process are completely unknown from the code
It is troublesome to let the original processing
Cannot be changed after building the calculation graph

at the end

There is no difference between PaaS companies in what they can achieve, so I think the game will be ease of use.

Regarding the framework, SONY was released the other day! It seems that OSS will continue to increase in the future!

I think it's best to choose what you need to achieve what you want to do, but I feel that what is absolutely necessary is the fundamentals such as algorithm selection and neural design.

Recommended Posts

Organize machine learning and deep learning platforms
Machine learning and mathematical optimization
Artificial intelligence, machine learning, deep learning to implement and understand
Significance of machine learning and mini-batch learning
Classification and regression in machine learning
Machine learning
Deep Learning
Machine learning beginners take Coursera's Deep learning course
[Machine learning] OOB (Out-Of-Bag) and its ratio
Introduction to Deep Learning ~ Convolution and Pooling ~
Meaning of deep learning models and parameters
Personal notes and links about machine learning ① (Machine learning)
Machine learning algorithm classification and implementation summary
Python and machine learning environment construction (macOS)
"OpenCV-Python Tutorials" and "Practical Machine Learning System"
Deep Learning Memorandum
Python Deep Learning
Deep learning × Python
[Memo] Machine learning
Machine learning classification
Machine Learning sample
Study machine learning and computer science. Resource list
Chainer and deep learning learned by function approximation
Recommended study order for machine learning / deep learning beginners
A memorandum of studying and implementing deep learning
Extend and inflate your own Deep Learning dataset
[Note] Python, when starting machine learning / deep learning [Links]
Machine learning Training data division and learning / prediction / verification
Parallel learning of deep learning by Keras and Kubernetes
Introduction to Deep Learning ~ Localization and Loss Function ~
[For beginners of artificial intelligence] Machine learning / Deep Learning Programming Learning path and reference books
Machine learning tutorial summary
First Deep Learning ~ Struggle ~
Machine learning with Raspberry Pi 4 and Coral USB Accelerator
About machine learning overfitting
I installed and used the Deep Learning library Chainer
Python: Deep Learning Practices
"Apache Flink" new machine learning interface and Flink-Python module
Deep learning / activation functions
Deep Learning from scratch
"Deep Learning from scratch 2" Self-study memo (No. 21) Chapters 3 and 4
Machine Learning: Supervised --AdaBoost
Machine learning logistic regression
[Machine learning] Understanding SVM from both scikit-learn and mathematics
Deep learning image analysis starting with Kaggle and Keras
Easy machine learning with scikit-learn and flask ✕ Web app
Python learning memo for machine learning by Chainer Chapters 1 and 2
Deep learning 1 Practice of deep learning
Machine learning support vector machine
Deep learning / cross entropy
First Deep Learning ~ Preparation ~
First Deep Learning ~ Solution ~
Machine learning linear regression
I tried deep learning
Machine learning course memo
Machine learning library dlib
Machine learning (TensorFlow) + Lotto 6
Extract music features with Deep Learning and predict tags
Somehow learn machine learning
Machine learning engineer lawyer explains AI and rights story
DNN (Deep Learning) Library: Comparison of chainer and TensorFlow (1)