How to get started with AI

Artificial Intelligence (AI) is the study of computer science focusing on developing software or machines that exhibit human intelligence.

A lot of people think that AI is just a sci-fi concept that’s being used in movies like Star Wars, Terminator or Lucy, but there is a lot more to it. AI is a very broad topic ranging from a simple calculator to self-drive technology to something that might change the future.

Primary Goals and Applications of AI
The primary goals of AI include deduction and reasoning, knowledge representation, planning, natural language processing (NLP), learning, perception and the ability to manipulate and move objects. Long-term goals of AI research includes achieving Creativity, Social Intelligence, and General (Human Level) Intelligence.

AI has heavily influenced different sectors, that we may not recognize. Ray Kurzweil says “Many thousands of AI applications are deeply embedded in the infrastructure of every industry”. John McCarthy, one of the founders of AI, once said that “as soon as it works, no one calls it AI anymore.”

While, there are various different forms of AI as it’s a broad concept, we can divide it into the following three categories based on AI’s capabilities –

Weak AI – Also referred as Narrow AI, a weak AI focuses on one narrow task. There is no self-awareness, genuine intelligence in case of a weak AI.

Siri is a good example of a weak AI combining several weak AI techniques to function. It can do a lot of things for the user, but fails when asked question outside the limits of application.

Strong AI – Also  referred as General AI, or Human-Level AI, it’s a computer that is as smart as a human brain. This sort of AI will be able to perform all tasks that a human could do. There is a lot of research going in this field, but we still have to conquer it.

Artificial Superintelligence – Nick Bostrom, leading AI thinker, defines it as “an intellect that is much smarter than the best human brains in practically every field, including scientific creativity, general wisdom and social skills.”

Artificial Superintelligence is the reason for why many prominent scientists and technologists including Stephen Hawking and Elon Musk have raised concerns regarding the possibility of human extinction.

How to Get Started?
The first thing that you need to do is learn a programming language. Though there are a lot of languages that you can start with, Python is the preferred choice of many to start with because of libraries better suited for Machine Learning.

Here are some good resources for Python –
https://www.codecademy.com/learn/python
http://learnpythonthehardway.org/
https://www.coursera.org/specializations/python
http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-00-introduction-to-computer-science-and-programming-fall-2008/

Introduction to Bots
A BOT is the most basic example of a weak AI that can do automated tasks on your behalf. Chat bots were one of the first automated programs to be called as ‘bots’.

Web crawlers used by Search Engines like Google are a perfect example of sophisticated and advanced BOT.

You are advised to learn the following before you start programming bot in order to make your lives easier –

xpath – This will help you to inspect and target HTML and build your bot from what you see there. You can learn more about xpath here – http://wiht.link/XSLT-intro

regex – regex will help you to process the data you feed your bot by cleaning up or targeting (or both) the parts that matter to your logic. You can learn and practice regex here – http://regexr.com/

REST – This is really important as you will eventually work with APIs. You can use requests to do this for its simplicity. Learn more about it here –http://docs.python-requests.org/en/latest/index.html

How to Build Your First Bot?
You can start learning how to create bots in Python through the following two tutorials in the simplest way –

http://www.makeuseof.com/tag/build-basic-web-crawler-pull-information-website/
http://code.tutsplus.com/tutorials/how-to-build-a-python-bot-that-can-play-web-games–active-11117

You can also start by using APIs and tools that offer the ability to build end-user application. This helps you by actually building something without worrying too much about the theory at first. Some of the APIs that you can use for the same are –
https://cloud.google.com/prediction/docs
http://www.diffbot.com/products/
http://mallet.cs.umass.edu/
http://scrapy.org/
http://products.wolframalpha.com/api/

We are also listing a few BOT problems for you to practice and try out before you take the ultimate challenge –
https://www.hackerearth.com/problem/multiplayer/tic-tac-toe/
https://www.hackerearth.com/problem/multiplayer/hex/
https://www.hackerearth.com/battle-of-bots-2/multiplayer/dots-and-boxes/
https://www.hackerearth.com/battle-of-bots/multiplayer/isola/

What now?
Once you have a thorough understanding of your preferred programming language and enough practice with the basics, you should start to learn more about Machine Learning. In Python start learning Scikit-learn, NLTK, SciPy, PyBrain, and numpy libraries which will be useful while coding Machine Learning algorithms.

It is also very important to familiarize yourself with Advanced Math and Stats as it will help you a lot in writing ML algorithms.

Some Books for AI –
http://aima.cs.berkeley.edu/
http://wps.aw.com/wps/media/objects/5771/5909832/PDF/Luger_0136070477_1.pdf
https://grey.colorado.edu/CompCogNeuro/index.php/CCNBook/Main
http://psych.colorado.edu/~oreilly/comp_ex_cog_neuro.html

We also encourage you to participate in various AI & BOT Programming Contest at different places on the Internet –
https://www.hackerearth.com/
https://www.kaggle.com/
http://www.codingame.com/
https://en.wikipedia.org/wiki/RoboCup
https://www.hackerrank.com/

https://codingsec.net/2016/03/get-started-artificial-intelligence/