Introduction

Daniel Pacheco
5 min readMay 29, 2016

--

First and foremost I would like to tell you about myself and what I will be discussing here. This is my first blog on Medium and it is very exciting, so any feedback is very welcome.

I am currently a Computer Science student at Birmingham City University and right now at this moment there is only 1 more exam left which is for Artificial Intelligence (AI) and Machine Learning (ML) and then I will be graduating.

This article will be putting together some of the most interesting facts and observations I have learnt when studying this module at university.

What is Artificial Intelligence and Machine Learning?

I don’t claim to be an expert in the subject, but I have come across various different definitions for what is AI, and this is why I would like to firstly give to you what is my understanding of it.

Artificial Intelligence can be quite hard to define, but we can try to break it down into artificial and intelligence.

Artificial is defined by Oxford Dictionary as “Made or produced by human beings rather than occurring naturally, especially as a copy of something natural”. We can also define it as non-organic.

Intelligence is more difficult to define

What is an intelligent being? is it someone who remembers things easily? someone who can learn fast? or someone who can solve problems logically? or is it a combination of different factors?

There could be multiple answers to this question and hence why the difficulty in expressing what is artificial intelligence, but for the purpose of this article let’s define it as a non-organic being which appears to be intelligent.

The human brain

Scientists are trying to understand how the brain works and using this observable knowledge to create a machine learning algorithms that can essentially learn in a similar way that humans do.

Currently there are a collection of different algorithms which tackle one problem at a time. Dr. Pedro Domingos author of “The Master Algorithm”, talks about 1 algorithm which can obtain self-awareness: observes and studies data, uses the data to predict, and acts based on predictions, changing the world as we know it.

At the moment, we are not even close to obtaining this master algorithm, but it is no longer just science fiction neither. There are various AI algorithms which can predict the weather, tell you what books or movies you may like and even save you from all the spam e-mails which otherwise would fill your inbox with junk. All these examples are the product of a machine learning algorithm.

Survival of the Fittest

I have come across a few different algorithms and techniques, most of them were taught in our AI module at university. Some I came across while doing independent research. Now I would like to talk a bit about my all-time favourite: genetic algorithms.

Genetic algorithms, follow the process of natural selection. If you believe in the evolutionary theory (some people still don’t believe in this theory, which is worrisome) then you are halfway there to understand genetic algorithms.

The process in which a genetic algorithm works can be explain in 5 steps:

  1. Create the first generation
  2. Evaluate each “person” in that generation
  3. Order the list of people in this generation by fitness
  4. Take the fittest people from the list (the unfit majority will disappear)
  5. Breed next generation and go to step 2 again

Well this is a basic idea of how a genetic algorithm works, there are a few things which were not mentioned such as neural networks and the weightings in the links between layers, and also the mutation which is normally added during step 5. The following video should give you an idea of what was explained above.

Computer learns how to play Super Mario

The way Mar/IO’s algorithm learnt to play the game was by rewarding Mario when he reached a certain distance. This is the way we measure if the algorithm is improving or not. When the algorithm is not improving it will begin to make small changes in the neural network using a back propagation method to ensure that what has been learnt before is not discarded. This is how Mario is able to reach the end of the map by being rewarded when he learns something new.

Observe and try — whether you fail or succeed

At my university, me and a group of friends began developing a platform which would assist students with their early stages of programming. The most commonly used methods to learn computer programming involves reading material, watching online video tutorials and individually practiced exercises. These methods currently used may seem efficient at first sight although our idea of having short term rewards for simple tasks would motivate students to learn programming in a more efficient manner. Our idea does this in 3 succinct steps for the learner:

  1. Observe and analyse code
  2. Guess what the outcome of the code would be
  3. Be rewarded when outcome is guessed correctly

Our platform, presents students with simple snippets of code and allows them to use their common sense and knowledge to attempt guessing the outcome of the code. For example, what is the result of the following expression in Python?

2 + 3 * 5 ==

Simply using common sense, anyone can deduct that we have to calculate this expression, now there could be two possible results here: 25 or 17, and this would be dependent on the programming language itself. But, if a person fails they won’t be able to move to the next question, if they answer it correctly then they understand it and a next question will be shown.

There are a few things that can be learnt from this example, when answered correctly:

  1. How to do simple arithmetic in Python
  2. Python uses infix notation (placement of operators between operands)
  3. Python does order of precedence (therefore correct answer would be 17)

The follow up question could be of the same sort. Students will become more and more engaged because of the quick feedback loop, if they guess it correctly then it means they understand, if they don’t then they will try until they learn it. There will be similar questions all the way to ensure they really understand it, and it wasn’t just a lucky guess.

Students when rewarded, become more productive and engaged, that’s why me and my team have a fundamental belief that learning should be fun.

If you want to know more about our project, you can see it here:

Voting for us will increase our chance in getting this project funded.

I hope you enjoyed reading this article as much as I enjoyed writing it. Thank you for reading and if you have any feedback, please do not hesitate to get in touch with me.

--

--