We all are in the era of Artificial Intelligence. Tech giants like Google, Microsoft, and Facebook are investing in AI. Amazon's Alexa also shows the tough competition in today’s AI market. Not only Google & Apple but also other companies can dominate the tech market if they have the power of AI. There is a huge opportunity in 2018 for people who are looking for jobs in Machine Learning, Deep Learning, and AI. Sometimes, it seems like both Machine Learning & AI are similar but they actually differ from each other. In short, we can define this in a better way:
Artificial Intelligence is the broader concept of machines being able to carry out tasks in a way that we would consider “smart”.
Here, I'm going to explain the role of a programming language in the production of AI product. The programming language here we consider is Python. If you looking for an opportunity in AI, you must understand the power of Python.
Python is a powerful high-level, object-oriented and most popular open source programming language created by Guido van Rossum. It has simple easy-to-use syntax, making it the perfect language for individuals trying to get started with computer programming for the first time.
Python is a general-purpose language. It has a wide range of applications from Web development (like Django, Flask & Web2py), scientific and mathematical computing (Orange, SymPy, NumPy) to desktop graphical user Interfaces (Pygame, Panda3D).
If you are a beginner you can easily start with python. There are plenty of resources available on the internet to learn Python. Here, I suggest you a few books if you really don't know anything about Python:
Think Python: How to Think Like a Computer Scientist
Python for you and me
In this section, we will be looking at powerful and popular Python libraries that are used for Artificial Intelligence. We will be looking at their advantages and drawbacks, and their features. So, Let's begin and explore these fantastic Python libraries:
TensorFlow is an open-source software library for dataflow programming and is widely used for machine learning applications such as neural networks. TensorFlow was developed by the Google Brain team for internal Google use. It was released under the Apache 2.0 open source license on November 9, 2015
"Computation using data flow graphs for scalable machine learning."
TensorFlow is an interface for expressing Machine Learning algorithm & implementation for executing such an algorithm. It helps in creating ensemble algorithms for today's most challenging problems.
Rich Documentation with a great community
Predefined implementation available as well as open-source
It requires knowledge of Python
Computation is a bit slow
Overkill for simpler tasks
2. PyTorch :
PyTorch is a Python-based open-source Machine Learning library with GPU support. It is a python package that provides two high-level features:
Tensor computation (like numpy) with strong GPU acceleration
Deep Neural Networks built on a tape-based autodiff system
PyTorch is a cousin of lua-based Torch framework which is actively used at Facebook. The main feature is that Neural Networks can be built dynamically making a way for learning more advanced and complex AI tasks.
"Best fits for those who looking for more Pythonic Environment."
PyTorch is fast and lean because it gives features to integrate acceleration libraries such as Intel MKL and NVIDIA (CuDNN, NCCL) to maximize the speed.
"PyTorch is quite fast – whether you run small or large neural networks."
Deep learning research platform that provides maximum flexibility
Fast & Lean
Pretty good documentation
PyTorch only supports Linux and osx.
3. Keras :
Keras is an open-source high-level neural networks Library, written in Python. It runs on top of TensorFlow, CNTK, or Theano. Keras is a layer-oriented and an easy to use neural network library that promotes a simple and clean syntax. I suggest using Keras If you're using a known network design.
As Keras code is portable, there is no need to change your code written in Keras, whether you change your backend from Theano to TensorFlow. Keras is more mature then PyTorch with great community support.
Documentation is very clean
Keras code is Portable
Community support is really good
Keras is not the best choice when you are implementing your own layers and doing prototyping and research
4. Scikit Learn :
Scikit-learn is probably the most useful library for machine learning in Python. Scikit-learn was initially developed by David Cournapeau as a Google summer of code project in 2007. It is on NumPy, SciPy, and matplotlib. This library contains a lot of efficient tools for machine learning and statistical modeling including classification, regression, clustering and dimensionality reduction.
The library is built upon the SciPy (Scientific Python) that must be installed before you can use scikit-learn. This stack that includes:
NumPy: Base n-dimensional array package SciPy: Fundamental library for scientific computing Matplotlib: Comprehensive 2D/3D plotting IPython: Enhanced interactive console Sympy: Symbolic mathematics Pandas: Data structures and analysis
Scikit-Learn is characterized by a clean, uniform, and streamlined API, as well as by very useful and complete online documentation. A benefit of this uniformity is that once you understand the basic use and syntax of Scikit-Learn for one type of model, switching to a new model or algorithm is very straightforward.
Easy to use
supports most practical tasks
Bad for deep learning
Getting into Machine Learning and AI is not an easy task. Implementing some useful task to build an AI model requires a lot of efforts. Open source projects can be useful for data scientists. You can learn by reading the source code and build something on top of the existing projects.
Lots of people start contributing to opensource just because of this awesome open source projects. Here, I will demonstrate the five most popular open source projects which are widely used for developing any AI models:
1. TensorFlow : 169% up, from 493 to 1453 contributors
2. Keras : 656 contributors
3. PyTorch : 613 contributors
4. Scikit Learn : 1069 contributors
5. Theano : 330 contributors
Machine learning is about teaching computers how to learn from data to make decisions or predictions. For true machine learning, the computer must be able to learn to identify patterns without being explicitly programmed to.
You may also hear it labeled with several other names or buzzwords:
Data Science, Big Data, Artificial Intelligence, Predictive Analytics, Computational Statistics, Data Mining, Etc...
The best way to dive into AI is to learn a thing on your own which is known as The Self-Starter Way. Self-Starter way is far better than the academic approach where you don't have to follow lots of guidelines. Doing Practice is the only way to learn things.