Elements of Artificial Neural Networks
K.Mehrotra, C.K.Mohan, and S.Ranka
Published by MIT Press, 1997

Check it out, you'll like it; it's introductory, covers many recent topics, presents algorithms using pseudo-code (Pascal/C style), and emphasizes general principles.

Transparency masters are ready (19 July 1997), and include abbreviated text and figures for the entire book, in large bold-font, ready to be used in a classroom. I'll be glad to send these (and Answers to Exercises) to instructors using the book as a textbook in a course, just let me know of your (physical) mailing address, and the institution where the course is being taught.

The rest of this page contains errata, info. about useful web-sites, and program and data files directly related to the book.

ERRATA (as of 23 Apr. 1999; please let me know if you find other errors):
p.42, Exercise 7a., first line, replace ``Present a 2-class classification example to illustrate that minimizing mean squared error'' to: ``For a two-class classification problem, discuss whether minimizing the Euclidean distance measure (p.36), averaged over all input data'' -- there is a corresponding error in the solutions manual mailed to instructors before Sept.'97.
p.50, section 2.3.1, the remark ``Termination is assured if ...'' should be taken to mean ``Termination in a reasonably short period of time is assured if ...''; the proof in p.53 holds even if the learning rate is large.
p.58, line 9, replace (i0, i1, ..., in) by (i0,j, i1,j, ..., in,j).
p.58, equation in the last line, omit i before the second equals sign, and at the end of the line change the subscript of i from `j' to `k,j'.
p.58, fourth and fifth lines from bottom (equation lines), insert 2 before first left parenthesis.
p.59, lines 6, 8 and 10, clarity would be enhanced if we omit the subscript `j'.
p.84, line 10, change `a value closer to 1' to `a large value'.
p.96, ninth line, fifth word, replace ``are'' by ``is''; tenth line from bottom, replace ``equating'' by ``setting''.
p.97, first line, replace ``derivative'' by ``derivatives''; second paragraph, fourth line, replace ``The secant method, which'' by ``A simple method that''; replace the equation after the second paragraph by
dE'(w)/dwj =~ (E'(w0,w1, ..., wj+t, ..., wn) - E'(w))/t
(in this equation, `d' is used instead of the partial derivative symbol, `t' is used instead of `tau', and `=~' is used to mean ``approximately equals''). Delete the sentence after next, ``By substitution...''.
p.115, line 12 in Figure 4.5, replace `(Ek - E)2/ epsilon2' by `(Ek2 - E2)/ epsilon'. Same change is also required in line 5 after Figure 4.5.
p.125, Figure 4.13, to the right of the horizontal line, change the subscript of ß from 2 to 0.
p.131, Figure 4.19, all the connections leading into the output node should be shown using solid lines, in all three figures. Also, in the last figure, the connection between the two hidden nodes should be shown using solid line. A better figure is the following: corrected Cascade Correlation figure (4.19)
p.138, algorithm in Figure 4.25, in the right hand side of the equation on the third line before the caption, replace `fk' by `f', `U union I' (under the summation sign) by `U', `wi,j' (just after summation sign) by `wk,l', and `zk' by `zl'. Same changes also on p.139, same equation in fifth line from top.
p.146: replace each (xp - µi)2 by (||xp - µi||)2, and (xi - µi)2 by (||xi - µi||)2
p.147, Equation 4.21: multiply the right-hand-side by a factor of 1/sigma2.
p.147, fourth paragraph (beginning ``Various''), the reference in line 4, replace `Alkeson (1993)' by `Atkeson (1991)'. Relevant references for that paper and the one that occurs two lines earlier (missing from the Bibliography):
S. M. Botros and C. G. Atkeson, `Generalization Properties of Radial Basis Functions,' in Advances in Neural Information Processing Systems, Vol. 3, pp. 707-713, Morgan Kaufmann Publishers, Inc., 1991.
A.Saha and J.D.Keeler, `Algorithms for better representation and faster learning in radial basis function networks,' in Advances in Neural Information Processing Systems II (ed. D.Touretzky), pages 482-489, Morgan Kauffmann Pub., 1990.
p.155, ex.3c: an extra pair of parentheses is needed in the right-hand-side: it should read exp(-(d/c)2).
p.166, end of first line: under the square-root sign, change the subscript of the summation sign to `k=1', and the subscript of w to `j,k'.
p.176, lines 5-6: replace ``. In other words,'' by ``, e.g., ''
p.178, Fig. 5.12, Phase 2, item 2(c), second line: replace vk*j and vk*l by vj,k*
p.179, equation in sixth line: replace both occurrences of wj*l by vl,j*
p.196, first line (after figure): delete `then'
p.198, last line: replace `Lampinen (1993)' by `Lampinen and Oja (1992)'
p.201, lines 4-5: replace `has a fixed number of neighbors' by `belongs to some hyper-tetrahedron'
p.203, equation in fifth line from the bottom, replace `w' (after the comma) by `W' and replace `(i - wj)2' by `(||i - wj||)2'; in the next line, after `where ', add `P(i) describes the probability distribution of the input vectors, '
p.209, third line of second paragraph: replace `inverse' by `pseudo-inverse'.
p.210, top half of the page: the eigen-values should be one-fifth of the values mentioned (for gamma1, gamma2, gamma3); also the eigen-vectors should be listed in exactly the opposite order as in the text, so that the first row of W1 and W2 should be (-0.126 -0.542 -0.162).
p.225, Example 6.3, the weight matrix Omega should have been calculated in a different manner, using equation 6.11 (bottom of p.223), instead of as shown.
p.250, end of first paragraph, last sentence should be shortened, to read `The state change is accepted with probability 1/(1+exp(Delta E / tau)).' [where Delta and tau refer to the greek letters].
p.251, replace expression `min(...)' in lines 12 and 27 by `1/(1+exp(Delta E / tau))', [where Delta and tau refer to the greek letters].
p.263, ex.1b: replace `generalized inverse' by `pseudo-inverse'.
p.282, first line, insert parentheses surrounding the expression following `exp', so that it reads `(exp((E(current state) - E(new state))/T))'
p.284, line 16, change `100011' to `010011'.

[Thanks to Prof. Jim Reggia, Prof. Bob Keller, Jeff Miller, Bing Chen, Ayed Salman and William W. Simons for catching some of these errors.]

Other Internet Sites: Many neural network programs are available over the internet, e.g., at 1, 2. Examples of NN applications may be found at 3, 4, 5. Data for some large problems can be extracted from the Univ. of California at Irvine database (here's a list of files obtainable from there by ftp); e.g., the 3-class iris flowers classification problem data can be found at Iris-data-file.

Program and Data Files:
The following are some computer programs and data files related to the text. ALL the files should be readable as of 19 May 1997: please send me email (ckmohan@syr.edu) if there's a file you're looking for but are unable to access. All the foll. files have also been tarred into a single file and compressed/zipped; they can be extracted from bf.tar.gz or bookfiles.tar.Z
[Note: On Aug.27, 1997, I generalized the genetic algorithm program to many-bin graph partititioning.]

C Program files Documentation/Data files
Sunspot data (Sec.1.5.6)
Perceptron, Pocket, LMS (Ch.2)
Backpropagation (Sec.3.3)
Another Backprop. (Sec.3.3)
Specialized backpropagation for classification (Sec.3.3) Respiratory data for training (Sec.3.7.1)
Respiratory data for testing (Sec.3.7.1)
Data for two-dimensional corners problem(Sec.4.2)
Recurrent Backpropagation (Sec.4.3.1)
Learning Vector Quantizer (LVQ1) (Sec.5.2)
Counter-propagation (Sec.5.3) README for Counter-prop. (Sec.5.4)
Adaptive Resonance Theory (ART1) (Sec.5.4) README for ART1 (Sec.5.4)
Kohonen's Self-Organizing Map (Sec.5.5.1)
Discrete Hopfield Network for Association (Sec.6.2.1)
Continuous Hopfield Network for Association (Sec.6.2.3) README for Hopfield Network program (Sec.6.2.3)
Boltzmann Machine Training (Sec.6.4)
Boltzmann Machine Output Generation (Sec.6.4) README for Boltzmann Machine program (Sec.6.4)
Simulated Annealing for graph bipartitioning (Sec.7.3)
Genetic Algorithm (Sec.7.5)
6-dim. Myoelectric data for training (Sec.3.7.2)
Myoelectric data for testing (Sec. B.2)
A 3-class classification problem (6-dim. myoelectric data) (Sec. B.2)
Stock prices data, formatted to predict stock of company G from most recent stock prices of companies A, I and G (Sec. B.7)
Gold daily opening price data (London) for 2004, in reverse chronological order, beginning Dec.30 and ending Jan.2; this should replace the old data in the text (Sec.B.3), which was for 1993.
Raw stock price data for company A (columns indicate date, opening and closing prices, daily highs and lows, and volume) (Sec. B.7)
3-dim. corners data for clustering, classification, and function approximation (Sec. B.5)