Hi, this is the faq file that comes with this assignment, for free!


Q: What does Brankenstein stand for?
A: Beats me.


Q: Looking through the code in pdp2.lisp, I see so mention of the 
   learning factor.  Should we have the learning factor sent
   to delta as an additional parameter?
A: The learning factor is in the code in pdp.lisp
   It is disguised as the variable "rate" and since it's been written, you
   don't have to worry about it.


Q: Each time I ran the (train 3-xor (init)), I got totally different 
   adjustable weights. Which one is better and which one should I pick? 
   Should I choose the one with the minimum error?
A: As a matter of fact you SHOULD get different adjustable weights.  Just 
   take the first one you get and paste it in your handin will do fine.
   The reason you get different results every time is that you start with 
   a random set everytime so they would converge to different steady states 
   if it can find any.


Q: My code ran on forever, so I tried to run the assignment 9 code...
   ...and it crashed.  Do you know what's happening?
A: This is common.  Just kill the emacs and start a new one.  Load
   the files and try again.  Xor is a difficult boolean function to learn, 
   you know.


Things to know (11/22):
1. If your program returns a stack overflow, check your code and boolean 
   functions for the 2345th time.  Some possible reasons:
	i. you try to train a 3-input network with a 2-input boolean function;
       ii. the order of the things in the delta function are not consistent 
	   with the order in net.  make sure the things in the list in delta
	   are in the order w0, w1, w2, w3, w4....;
      iii. there is a contradiction in the boolean function you wrote.
	   For instance (setq foo '(((0 0 0) 0) ((0 0 0) 1) ......)).

2. What does average mean.
	Average takes the network and the target-function and do the
	following for num-attempt times.  It first trains the network with
	the target function until it is reasonably good.  If it can get
	it to be acceptably good in 1000 adjustments, it will return
	the number of attempts to average.  Else, it will signal fail and 
	try again.  Average at the end takes all the number of adjustments
	return by the successful tries and calculate the avearge.
	So, "The average is 178.7 for 6 out of 10 attempts." means 6 times out
	of 10 times we are successful in training the network, and the average
	number of adjustments made for all sucessful cases is 178.7


Q: What does output 1 and 0 mean?
A: This was in the assignment.  0 means charge and 1 means move back.


Q: How can I put four files in one solution file to hand in?
A: You don't have to.  All you need to include in the handin file is 
   the functions for the three-input network.  The rest of them were 
   given in pdp*.lisp and need not be repeated in the handin file.


Q: I can't load "pdp1.lisp" successfully because I don't have 
   "pdp.lisp" in my HOME directory.
A: fixed.


Q: When you say that fixed- and variable- threshold networks need 
   different sigmoid functions, what do you actually mean?
A: The original sigmoid function should look like this:
	(defun sigmoid (x) (/ 1 (+ 1 (exp (- x)))))
   However, in the case of fixed threshold, since -1 is a fixed input 
   at each summing unit, we incorporate it into the sigmoid function:
	(defun sigmoid (x) (/ 1 (+ 1 (exp (- 1 x)))))
   Insodoing, we don't have to include the -1 in the function net, so they 
   will be cleaner.


Q: How long does the function average take normally?
A: For two input networks and "and", "or" functions, it can be a few seconds.
   For the three input network, it can be as long as three minutes.


Q: What happens if the LISP interpreter says: 
	;;; Expanding Dynamic Memory
   then spills a lot of garbage, and just dies?
A: Don't worry.  That's because the interpreter can't handle the amount of
   computation bacause it doesn't have enough memory.  Simply kill this 
   interpreter, start a new one, and repeat the last operation.  This is
   very common in averaging the three input network for functions such 
   as "3-xor"


Q: What should I do when the interpreter is busy humming away?
A: Try break the high score for cxhextris.

More Q&A will be on their way when you ask more questions.
