Skip to main content »

Trinity College Dublin

Projects - for those doing the project version of the course - please submit programmes with a brief description of their output within a week of the end of term.

Choose one or suggest you own.

  1. Look at exercises to Dayan and Abbott. To the first approximation, one project corresponds to doing two thirds of one of the problem sheets there, the difference being that it is given there as a matlab project and here as c++. Not all the problems are computational and some problem sheets are longer than others, so here is a more detailed set of tasks giving problem numbers required for each problem sheet. The choice is one of
    1. Chapter 1 Exercises 1-4.
    2. Chapter 1 Exercises 8-10 and Chapter 2 Exercise 2.
    3. Chapter 1 Exercises 9 & 10 and Chapter 2 Exercise 3.
    4. Chapter 5 Exercises 3-7.
    5. Chapter 5 Exercises 3,4 and 8.
    6. Chapter 6 Exercises 1 and 2.
    7. Chapter 7 Exercises 2 and 3.
    Data is given there as a matlab file, I can convert it to it text file, for example: stim.txt and rho.txt.
  2. Write a programme to calculate the multi-neuron metric between different sets of spike trains; this relates to my own work and if you are interested in the option, come to discuss it with me.
  3. Write a programme that plays games similar to Conway's game of life but with competition between automata using different rules. In other words, have the programme run through different variations of the game rules and assess each combination against some criterion, like complexity of the outcome after some number of iterations, or longevity.
  4. Write a programme that plays the animal guessing game: the programme asks yes/no questions to try and guess an animal: if it gets it wrong it asks you to say what the animal was and to give a question that would have distinguished the animal from the one it guessed. The programme should save all its questions and all its answers in data files and load these up when it opens.
  5. Something to do with evolving a set of neural nets that analysis some sort of data: in other words, have a set of neural nets that make a prediction and then have them die and breed according to how successful they are, see if this succeeds in producing better prediction. If you are interested in the option, come to discuss it with me.
  6. By loading up a corpus of pictures and sampling from them, construct artificial pictures that have the same correlation functions for neighboring pixels. Add a rule for changing part of the image, allow the user to choose which of two pictures is more attractive, save one and provide a new alternative. Another possibility would be to calculate other properties of the image and evolve images to make the property comparable to real images.
  7. Write a programme that loads in a big chunk of text and then tries to make up a sentence by choosing words from the chunk. It should calculate the word-word correlations from the chunk and use that in constructing the putative sentences. Replace the current sentence with the choice. Try again, but this time with the correct three word probabilities, that is, so that the third word is chosen according to the distribution of third words given the previous two. Now, the task is to distinguish between the real text and the artificial text by calculating information theory measures of the properties of the text, the mutual information between a word and the word a number of steps along for example. By multiply repeating the random text construction, test the probability of obtaining the real value.


Sample text If it helps, here is a piece of text: Example.txt/Example.README. If you are using Example.txt be sure to save it as a file by right-clicking, rather than cut and pasting it from the screen, all the carriage returns have been removed so it is one long line and it gets truncated when it is displayed by the browser. Here is a routine for reading a text file in to a vector of words: StringReadIn.cpp. I will prepare sample images soon.