Date: 11/29 | Title: Perceptron clarification |
[Q] How do I calculate "target-output"? What is target and what is output?
[A] target is the desired output value, and output is the output generated
by the perceptron, given the current connection weights.
For example, here's a training set (table below). The right most column shows
the "target" values for the boolean function AND.
x y | AND
----------------+----
0 0 0
0 1 0
1 0 0
1 1 1
First row: input 0 0, target 0. Last row: input is 1 1, the target is 1.
Output is what you get from your perceptron when you plug in 0 0. It is the
output of the perceptron for the current set of weights.
|
Date: 11/29 | Title: Paper URLs |
Most of the papers you should be able to find on the web without a problem.
Here are the main ones.
Bell 1999
http://www.cnl.salk.edu/~tony/ptrsl.pdf
Dean 1998
http://www.sciencedirect.com/science?_ob=ArticleURL&_udi=B6VH9-3SX87GK-5&_us
er=952835&_rdoc=1&_fmt=&_orig=search&_sort=d&view=c&_acct=C000049198&_versio
n=1&_urlVersion=0&_userid=952835&md5=7d848a80f59cc504f37d8a1e1df42160
* you need to be on the campus network to download the link above.
Cohen and Beal 2000
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.32.7512&rep=rep1&ty
pe=pdf
Choe and Smith 2006
http://faculty.cs.tamu.edu/choe/ftp/publications/choe.aaai06.pdf
Beer 2000
http://eecs.case.edu/~beer/Papers/TICS.pdf
Kwon and Choe 2008
http://faculty.cs.tamu.edu/choe/ftp/publications/kwon.icdl08.pdf
|
Date: 9/16 | Title: Program 2: compiling and turning off tail recursion |
Here's how you compile:
; compile
(compile-file "dfs.lsp")
; load the compiled binary
(load "dfs.sparcf")
; run the function
(dfs '((2 9) (4 (1 30) 2) 5))
Here's how you compile, with tail-recursion turned off:
; compile with tail-recursion off
(compile-file "dfs.lsp" :block-compile nil)
; load the compiled binary
(load "dfs.sparcf")
; turn trace on on the recusrive function
(trace dfs-core)
; run the function
(dfs '((2 9) (4 (1 30) 2) 5))
Here's an example run. Bold is what you enter in the Lisp interpreter.
* (compile-file "dfs.lsp" :block-compile nil)
; Python version 1.1, VM version UltraSparc/Solaris 7 on 16 SEP 08 09:51:43 pm.
; Compiling: /home/faculty/choe/web_project/625/src/dfs.lsp 25 AUG 08 08:57:56 pm
; Converted DFS.
; Compiling DEFUN DFS:
; Converted DFS-CORE.
; Compiling DEFUN DFS-CORE:
; Converted GOALP.
; Compiling DEFUN GOALP:
; Converted MAKE-NODE-LIST.
; Compiling DEFUN MAKE-NODE-LIST:
; Converted EXPAND.
; Compiling DEFUN EXPAND:
; Byte Compiling Top-Level Form:
; dfs.sparcf written.
; Compilation finished in 0:00:00.
#P"/home/faculty/choe/web_project/625/src/dfs.sparcf"
NIL
NIL
* (load "dfs.sparcf")
; Loading #P"/home/faculty/choe/web_project/625/src/dfs.sparcf".
T
* (dfs '((2 9) (4 (1 30) 2) 5))
0: (DFS-CORE ((# # 5)))
0: DFS-CORE returned 30
30
* (trace dfs-core)
Warning: Function DFS-CORE already TRACE'd, retracing it.
(DFS-CORE)
* (dfs '((2 9) (4 (1 30) 2) 5))
0: (DFS-CORE ((# # 5)))
1: (DFS-CORE ((2 9) (4 # 2) 5))
2: (DFS-CORE (2 9 (4 # 2) 5))
3: (DFS-CORE (9 (4 # 2) 5))
4: (DFS-CORE ((4 # 2) 5))
5: (DFS-CORE (4 (1 30) 2 5))
6: (DFS-CORE ((1 30) 2 5))
7: (DFS-CORE (1 30 2 5))
8: (DFS-CORE (30 2 5))
8: DFS-CORE returned 30
7: DFS-CORE returned 30
6: DFS-CORE returned 30
5: DFS-CORE returned 30
4: DFS-CORE returned 30
3: DFS-CORE returned 30
2: DFS-CORE returned 30
1: DFS-CORE returned 30
0: DFS-CORE returned 30
30
*
|
Date: 9/09 | Title: Program 1 Q/A |
Miscellaneous Q/As:
-
[Q] How do I deal with division by zero?
[A] You don't need to be too thorough on this. Just check for
obvious cases in sdiv. For example, if you got (/ x (- 1 1))
as a result of differentiation, trying to evaluate it will
give you a divide-by-zero error. This cannot be checked
easily in sdiv. So, don't worry about such a case. You need
to take care of (/ x 0) though.
-
[Q] How far should simplification go?
[A] Just use the ones mentioned in prog1.pdf, those involving identities
and/or numbers. You don't need
to consider things like x + x to 2x.
-
[Q] How do I do deriv-eval?
[A] There are two ways, a simple approach using (eval (list ....)),
and a more complex one using recursive expression evaluation.
Either one is fine. When doing deriv-eval, assume that only numbers
and the differentiation variable are used. For example, avoid
something like (+ x (* y 3)) since you'll get an error trying
to evaluate y.
|
Date: 8/25 | Title: Nothing here yet |
Nothing here yet.
|