Can you teach an old dog new tricks?

I graduated from software engineering (specialization: AI and robotics) a long time ago. The AI specialization was a big deciding factor for me. I was an avid science fiction reader (dreamer?) and had ideas of building the first “positronic” brain (please don’t laugh, I’m still uncomfortable as to how naive I was).

When I finally got to the AI courses (after three years of engineering), I was a bit disappointed. The courses were less about Neural Networks (NNs) and a lot more about “general” Machine Learning (ML) (e.g. linear regression and the like). The little we learned about NNs was theoretical and very very basic (e.g. perceptrons).

Fast forward a couple of decades and things are different. First, data sets are much larger and more readily available. CPUs are more powerful. This makes the analysis of these data sets feasible and relatively cheap. Finally, you also have a rich eco-system of languages (e.g. Python, R) and frameworks (TensorFlow, Pytorch) that make the NNs accessible for laymen.

Given all of this, I decided to take a couple of months off to get back to AI. I’m unsure if this is a career move or will just be a hobby. My younger self’s interest in AI and NNs might have faded and been replaced by other things but since I don’t want to live with past regrets, I’ll give it a go.

I’ve built myself a study plan. I have time-boxed this experiment until January. After that, I’ll make a decision as to what to do next.

So my approach to learning AI is as follows:

Learning Python

First, most frameworks and tools use Python as their “preferred” language. I have no experience with Python. My first goal is to first become knowledgeable about Python. The ideal would be for me to be able to say I’m an intermediate Python programmer. Here, I’m hoping that my experience with other languages, Java, Ruby, Javascript will help. The resources I will use are:

I like the Jose Portilla courses, there’s a lot of exercises which are a must to learn a new language. I probably also need to think about a project or two to learn the language better.

Learning Machine Learning Techniques

Next, I want to get a broad overview of the current state of machine learning. The following resources will be used:

The second resource is a university course book, I’m unsure that this is the level where I should take this but since I haven’t looked the AI in many years, I’ll at least take a quick look at it as a refresher.

Learning Neural Networks

So there’s a decision that I’ll need to make here. Should I select PyTorch or TensorFlow? Are these two frameworks so dissimilar that I really need to select one? I’m not sure. For the moment though, I’ll focus on TensorFlow as online courses are more readily available. By the time I get to this section of my curriculum, things might be different though. We’ll see. For the moment though, the resources I’ll use are:

I’ll try to blog a little bit about what I find out during this experiment.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: