CSE 87: Neural Networks as Models of the Mind

Professor Gary Cottrell

Phone: 858-534-6640

Office: CSE Building 4130

Email: gary@ucsd.edu

NOTE: Class meets for almost two hours: 9AM-10:50AM

CLASS MEETS FIVE TIMES ONLY!!! ATTENDANCE MATTERS!!!

Most quarters, the class meets Wednesdays in the CSE building, room B220.

Class begins on the first Wednesday of the quarter, and generally meets every week for five weeks. If my travel schedule means we have to skip a week, I will let you know via email.



Course Description

This is a one-credit course that meets 5 times, one hour and 50 minutes per session. This course will explore connectionist (a.k.a. Parallel Distributed Processing, or Neural network) models and their relation to cognitive processes. We will cover what neural networks are, their use and current learning methods for them. We will also look at the application of these models to several problems in cognitive modeling. The use of demonstration programs will be an integral part of the course. Each week I will try to limit myself to talking for one hour, and then we will "play" on the computer for an hour.

Week 1 will motivate why we are interested in neural networks as models of cognition. We will also try out a simple model or two on the computer, using the cs program. Week 2 will cover more models, especially so-called "attractor networks" as models of memory, using the Jets & the Sharks example (iac program). Week 3 will introduce learning using perceptrons and back propagation, using A Neural Network Playground. In week 4, we will use an implementation in Matlab of neural networks by my former student,  Honghao Shan. Here, we will train a network in real time to recognize facial expressions, identity, and gender (trigger warning: it only uses two genders). Week 5 I will give a talk on my own research, and briefly go over why neural nets are so "hot" right now - because they are the basis for Deep Learning. We will see some demos of what can be done with Deep Learning on the web.

Required Work

The only required work consists of attending class each week. I will actually take attendance. If you miss one class with a good excuse, that’s ok. If you miss two classes, you will receive an NP, unless you write a five-page paper covering some aspect of neural networks of interest to you. This may be a "thought piece", suggesting how neural nets may explain some aspect of human cognition, or a simple regurgitation of some of the things you learned in the course, or a write-up of a (very small!) project using the PDP simulation software (see the "Explorations" book below).

Recorded zoom lectures:

Slides

Some of the slides I present are available here:
Recommended Text

Explorations in Parallel Distributed Processing, McClelland & Rumelhart, MIT Press, 1988. This book is a self-paced exploration using running programs of cognitive models. All of the simulators are on your machines right now. Also recommended is Parallel Distributed Processing, Vols 1 and 2, edited by Rumelhart and McClelland. MIT Press, 1986. These books are ones you will want to have if you plan on eventually doing research in Cognitive Science.

All three of these books are available free online as downloadable pdf’s on Jay McClelland’s website. In particular, much of the class is inspired by this chapter. Here is the chapter on backpropagation learning.

First day computer instructions:
  1. Log in to windows (not Unix!) using your UCSD email as your login and your email password.
  2. PDPTool should already be installed and on your desktop. If not, follow theses directions:
    1. Install PDPTool using the following steps:
    2. Click on pdptool.zip to  download it to your desktop.
    3. Extract the archived files into a new folder called "pdptool". Usually this can be done by right-clicking on the file..
  3. Start Matlab: go to programs, and then whatever version of MatLab you have.
  4. Within Matlab, set your path variable to point to PDPTool using the following steps:
    1. On some matlabs, from the File menu, select Set path. A dialog box opens. OR, in some matlabs, look for the "set path" button about 4/5 of the way across the page at the top. Click on it.
    2. Click the "Add with subfolders" button. A directory browser window opens.
    3. Locate the folder called "pdptool" (should be on your desktop). Select it and click OK.
    4. Click the "Save" button on the dialog box to save the path for future sessions. If it doesn't allow you to do that, don't worry, just go to the next step. In that case, you will have to do this every time we use this program.
    5. Click the "Close" button.
  5. At the Matlab command prompt, type "pdp" to start the program.
  6. In order to run the Necker Cube example, type "cube" and hit <enter> or <return>.