Category Archives: Academia

Part time academic

As is possibly quite obvious from an earlier post, I am currently engaged in a course of part time graduate studies.

I’m going to ruminate somewhat on the why and the what here, primarily because I’d like to  improve my writing skills (and therefore need to write more often).

I’ve wanted to further my education and specialise my knowledge with post-graduate study since before I completed my undergraduate, yet it took me a few years to figure out which subset of Computer Science I would attempt to become an expert in. That story, however, would be a significant divergence at this point.

In short I’m studying on a part-time, distance learning, taught Masters program in Intelligent Systems (IS) with the Centre for Computational Intelligence (CCI) at De Montfort University (DMU).

This is essentially a graduate program in Artificial Intelligence (AI), for a definition of which I turn to one of the founders of the field:

“… the science of making machines do things that would require intelligence if done by humans” – Marvin Minsky

and for a slightly longer definition I point interested readers to a definition from the Children’s Britannica by Dr Joanna J. Bryson and Dr Jeremy Wyatt.

Why AI? It’s a field I’ve been interested in since first studying a module in Soft Computing during my undergraduate.

The social scientist in me is intrigued by the idea of pure AI; creating artificial life, observing it grow and evolve, understanding how humans interact with it and how it interacts with humans, etc.

The pragmatist (and idealist) in me, however, is extremely intrigued by the application of computational intelligence techniques to augment the human condition. A future where humans can avoid the 3 D’s of robotics – tasks which are dangerous, dirty and dull.

Many examples of such life enhancing work exists. Originally I had thought to mention (and link to) a great many, but instead I’ve opted to mention only a few current projects I’ve read about recently:

It’s worth noting that I don’t believe the two notions of pure AI and applied AI to be contrary. Indeed it seems that many well respected practitioners work on both theoretical and applied elements of CI. I hope to write more on this in the future.

Why DMU and the CCI? Last autumn I took the free Stanford online AI class and had really enjoyed the fact that I could work through the class without being beholden to a strict schedule which might interfere with my 8-10 hour work days. I wanted to continue this with my further education.

With this in mind I did some research into available distance learning programs and the CCI offers a great course structure with interesting modules taught by a department with a strong publication record and experience of real-world applications of CI techniques.

How is the course so far? I’m a huge fan of the organisation and assessment, so far as I’ve experienced in the single module that I’ve completed this far. The course encourages reading papers and practical application of the techniques.

I can’t wait for the next term to start!

Celebrating the life and work of Alan M. Turing

This past weekend I had the pleasure of attending the ACM’s A.M. Turing Centenary Celebration in San Francisco. It was a fantastic event, as one audience member put it – “it’s like opening a computer history book and having all of the characters step out of the page”.

The celebration featured a diverse range of talks and panels and really emphasised how much impact Turing had on the scientific field he’s arguably the Father of (not to mention the other scientific fields he influenced).

Judea Pearl, Barabra Grosz, Raj Reddy and Edward A. FeigenbaumRon Rivest and Adi ShamirVint Cerf"Information, Data, Security In A Networked Future" PanelDonald E. Knuth"The Algorithmic Universe" Panel
Niklaus Wirth"Programming Languages - Past Achievements And Future Challenges" Panel"Computer Architecture" PanelEdmund ClarkDana S. Scott"The Turing Computational Model And How It Shaped Computer Science" Panel
Alan C. KayFernando J. Corbato and Ken Thompson"Systems, Architecture, Design, Engineering, And Verification - The Practice In Research And Research In Practice" PanelButler LampsonRaj Reddy, Barabra Grosz, Edward A. Feigenbaum and Judea PearlEdward A. Feigenbaum
"Human And Machine Intelligence" PanelTelling Mrs Turing About The Turing AwardBlind ChessRhododendron Invitation"Turing The Man" Panel

Each panel and talk was recorded and webcast on the day and are now available online for viewing, I highly recommend viewing them!

Training an artificial neural network

A few days ago I handed in the second assignment on my Artificial Neural Networks (ANN) module.

The task was to train an ANN to detect attacks vs. normal access in the logs of a simulated military network. The data came from KDD Cup 99, of which we used a reduced set for the assignment. This reduced set of 10% was almost half a million records.

We had to use Matlab, which we’ve been using throughout the term, but the assignment was the first time I’d had to do anything which resembled real programming with it. Matlab is a funny beast, particularly on Mac OS.

The Mac OS is the only target platform where Mathworks can’t ship their own JVM, and also the only platform which the version of Matlab I have access to runs in 64bit mode. 64bit mode for a JVM environment is interesting, all it really means (so far as I can tell) is that Matlab has a larger address space.

This meant I could miss a parameter off a function call and accidentally tell Matlab to create a half-a-million columns by half-a-million rows matrix and it will swap till the cows come home, or I run out of disk space, trying to do as I asked. A similar issue was a ‘fast but memory intensive’ algorithm slowing the entire system to a crawl, however things became less painful once a fellow student alerted me to a parameter that would tell Matlab to reduce the memory consumption. Suffice to say that algorithm isn’t so fast when it’s using a slow piece of spinning rust as memory.

In spite of  Matlab I really, really enjoyed the assignment. I had a great time tweaking the network parameters and experimenting to see which things made my network perform better or worse. I enjoyed writing my report on the experiment itself and what I would have liked to do had I more time/a faster machine.

I found two things about the process frustrating:

  1. The assignment was at least partially bounded by the speed of my study computer, a poor white MacBook with 4GB RAM and a 1st gen Intel Core CPU. It ran hot for about 5 days solid generating my final set of results.
  2. Whilst performing the experiments I kept learning new things which I could try, yet that would invalidate earlier experimentation. My take away her is that I need to do a better job in future of designing my experiments rather than just diving in.

Despite all that I’m quite happy with the results. I think the report is one of the better documents I’ve written, despite being a little hastily finished, and the network itself performs admirably. ~65% accuracy on my test data and closer to ~98% when I do some minor post-processing of the outputs.

So, what’s next? I have to give a 15min presentation about the assignment followed by a 15min Q&A session. After that it’s two weeks of lectures left before the end of term.