-
Notifications
You must be signed in to change notification settings - Fork 0
/
NEWS
444 lines (360 loc) · 20.9 KB
/
NEWS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
This file contains a summary of important changes from the previous
release of PDP++. See the ChangeLog file for a comprehensive, though
less comprehensible, list.
===========================================
Release 3.1
===========================================
This is primarily a bug fix release -- see the ChangeLog for details
(there were lots of them). A few significant bugs were fixed with
leabra++, including fixing a problem that resulted in the accumulation
of roundoff errors in the weight values, to the point that it could
affect training results on some especially sensitive models (esp those
using shared weights). Also, all new types defined in a css script
(e.g., new classes, enums, etc) are now local to a given script scope,
instead of being globally shared among all scripts, as was the case
previously. This prevents numerous unintentional conflicts between
scripts, and sharing of types across scripts is such a tenuous and bad
idea that it was never really used anyway.
===========================================
Release 3.0
===========================================
IMPORTANT NOTE FOR EXISTING PROJECTS:
- If you have a stopping criterion set on a MonitorStat (e.g.,
stopping when MAX activation exceeds some threshold in the output
layer), then this stopping criterion will be lost when you load the
project. If you look in the spew of messages generated during the
load process, you'll see a message like this:
*** Member: mon not found in type: MonitorStat (this is likely just
harmless version skew)
<<err_skp ->>{name="max_act_Output": disp_opts=" ": is_string=false:
vec_n=0: val=0: str_val="": stopcrit={flag=true: rel=GREATERTHAN:
val=.5: cnt=1: n_met=0: }: };<<- err_skp>>
Just get the stopcrit value (val=.5 in this example) and
relationship (GREATERTHAN) from this and enter it into the first
element in the mon_vals list in the appropriate MonitorStat in the
opened project to restore function (or replace this stat entirely
with a new ActThreshRTStat).
- GraphLog FIXED ranges will be lost upon loading: there is now a
fix_min and fix_max flag inline with the ranges that will need to be
clicked as appropriate (the range values are preserved, just the
flag to fix them is missing). Look for FIXED messages in the spew
as per above.
- SelectEdit (.edits) labels will be lost upon loading, and can be
recovered in the same manner as above.
- NetView Layer fonts will be smaller than before -- use
View:Actions/Set Layer Font to set a larger font. The new default
for new views is 18 point.
- For your additional C++ code: El() function on Lists/Groups/Arrays
renamed to SafeEl() to better reflect its function (index range
checking), and [] operator changed to FastEl() (no index range
checking) instead of SafeEl(), to better reflect typical usage.
- Error functions in BP: if you've written your own, see comments in
ChangeLog (search for date 2002-09-13).
NEW FEATURES:
- Wizard that automates the construction of simulation objects:
creates commonly-used configurations of neworks, environments,
processes, stats and logs.
- Distributed-memory parallel processing via MPI (instead of pthread):
DMEM can be much more efficient than pthread, and is much more
flexible in that it works in both shared and distributed memory
architectures. Support for distributing computation across both
connections and across events is provided, by setting the number of
processors in the Network and the EpochProcess. In both cases, each
processor runs everything redundantly except for a subset of events
or connections -- this makes for relatively little extra code
required to support dmem -- connections/events are divided across
processes, and results are synchronized to keep everything consistent.
- Additional analysis functions: PCA (principal components analysis)
and MDS (multidimensional scaling), and Cluster Plot efficiency
vastly improved to handle large data sets. Also added processes for
automatically computing these functions over hidden layers, etc.
Other new analysis routines include automatic generation of
statistics on environment frequencies -- useful for validating
environments.
- Much improved GraphLog, focusing on discriminating overlapping line
traces (repeated passes through the same set of X axis values --
eg. multiple settles of a network, multiple training runs, etc).
Traces can be color-coded (line_type = TRACE_COLORS), incremented
(producing a 3D-like effect) via trace_incr, and stacked (vertical =
STACK_TRACES). A spike-raster-like plot, or even a continuous
color-coded version, can be achieved by not displaying any vertical
axis values at all (vertical = NO_VERTICAL) and using either
VALUE_COLORS (continuous color-coded) or THRESH_POINTS (thresholded
spike raster). Also, columns of data can be plotted row-wise
instead (e.g., for monitored activations, or COPY aggregators), and
the view_bufsz value is now actually respected, so you can scroll
through large amounts of data instead of seeing it all.
- Log displays are now much more robust when you add or remove data to
be logged -- you should now spend much less time reconfiguring the
log views.
- Color-coded edit dialogs and view window backdrops based on an enhanced
(and customizable) Project view color scheme.
- Ability to save view displays to a JPEG or TIFF file (in addition to
existing Postscript), including automatic saving at each update for
constructing animations.
- Incremental reading of events from a file during processing (FromFileEnv).
- Automatic SimLog creation whenever project is saved -- helps you
keep track of what each project is.
- Added two new algorithms: Long Short Term Memory (Hochreiter,
Schmidhuber et al) implemented as lstm++ (works really well on
sequential learning problems in general), and RNS++, written by Josh
Brown: http://iac.wustl.edu/~jwbrown/rns++/index.html
- Support for g++ 3.x compilers (default for CYGWIN, DARWIN, use
config/Makefile.LINUX.3 for LINUX instead of LINUX.2 (see
README.linux for important details on compiling under LINUX,
including a sstream include file fix for gcc 2.9x (e.g., RedHat
7.x)), and zlib now used instead of forking to call gzip for
loading/saving compressed files: should be much faster and more
reliable under CYGWIN (MS Windows). Check your Makefile.in for
$(X11_LIB) instead of -lX11 if you get link errors involving zlib or
jpeg lib calls. Also, the SIM_NONSHARED makefile variables have
been eliminated -- these were included by default in mk_new_pdp
Makefile.in files, and need to just be cut out of the makefile.
- Numerous small processes and statistics to facilitate auotomation of
common tasks. Also, a better interface for interactive environments
where subsequent events depend on current network outputs (see
demo/leabra/nav.proj.gz for an example).
- Mersenne Twister random number generator now used for all random
number calls (by Makoto Matsumoto and Takuji Nishimura,
http://www.math.keio.ac.jp/~matumoto/emt.html)
- Easier access to view configuration variables through view menu
functions; support for window manager close button; SelectEdit can
include Methods (Functions) in addition to member data; Net log view
usability considerably improved; Added buttons for graphing
activation functions, etc on relevant specs.
===========================================
Release 2.2
===========================================
- IMPORTANT BUGS FIXED:
o If you've tried to use the layer lesion flag, it has been broken
since the parallel-threading code was introduced in 2.1! It
failed to accurately record the layer indexes to run when skipping
over lesioned layers.
o Big memory leak in gcc version 2.96 shipped with red hat linux
7.1/2 fixed: causes it to not call the appropriate Destroy() function
for the array template destructor, so FreeArray_() is never called.
o DARWIN: had the same problem that the CYGWIN code had with random
seeds -- NewInit returns nearly the same value each time.. Fixed
in the same way as CYGWIN. doh.
o rbp: the real_time flag was not working properly, causing a BP to
occur *every trial* instead of at the end of the sequence..
o Several other smaller bugs fixed too -- see ChangeLog for details.
- Configuration files for both the "Settings" menu (taMisc) and the
pdp root object are now savable and automatically loaded from users
home directory as $HOME/.taconfig and $HOME/.pdpconfig. This makes
it much more automatic and easy to set up your own personal
configuration options.
- Added window position offsets (in Settings/taMisc) to correct for
differences between window managers in window placement (I find that
KDE requires X offset of -4 and Y of 24 to match the original fvwm
and other wm locations).
- Default number of colors in a color colorscale
(taMisc::color_scale_size, in the Settings menu) increased from 32
to 128 -- assumes people are probably using 16 bit color these days
If you are running on an 8 bit color display, you can set it back to
32 and save the configuration! Also fixed the way that colorscales
are constructed.
- Non-default values are now shown with a bright yellow highlight.
This is useful esp. for algorithms such as Leabra that have a large
number of parameters that are usually at their default values.
Default values are shown in the help message obtained by clicking on
field name -- these messages are now much more informative by
including help messages for all sub-fields and enums where applicable.
- Windows now automatically scroll while manipulating objects (e.g.,
resizing/moving layers, event specs, grid log headers, etc), so you
no longer have to drag outside the window! Also, weird displacement
of mouse relative to manipulated object bug is now fixed.
- TimeUsed information automatically tracked on processes and pthread
code: easy to get detailed timing data.
- Added a number of useful buttons in various of the displays and
other minor improvements -- see ChangeLog for details.
===========================================
Release 2.1
===========================================
- Mac OSX (Darwin) fully supported, using XFree86 X windows server.
See README.darwin for details.
- SMP parallel processing (pthread-based) for several algos. This
works by compiling a list of layers for each thread to process,
based on the number of connections and units in the layers (separate
list for each). The allocation algorithm tries to distribute the
computation as evenly as possible. This is relatively fine-grained
parallelism, and due to the overhead involved in managing the
threads, it only speeds up relatively large networks (i.e., > 50
units per layer, >= 4 layers). Speedups can by upwards of 1.67
times as fast on dual pentium III systems.
Activate by editing the network and setting the n_threads value.
You can also restrict parallelism to only connection-level
computations --- unit level speedup is quite small (but
measurable..)
Many of the other major improvements have to do with important (but
perhaps small) improvements in the usability of the interface:
- Added a mechanism for consolidating a variety of different
parameters from different objects in to one edit dialog. This is
ideal for playing with various parameters that tend to be scattered
across various different Specs in pdp++. This was done by adding
.edits to Project -- this contains new SelectEdit objects that can
be configured to edit selected fields from any other objects. Every
object now contains a SelectForEdit menu option in their Objects
menu, which asks for which member (field) of the object to stick
onto a SelectEdit object.
- Added a way to make it clearer when there are parameters that are
conditional on others --- if parameters are not currently relevant
for the current setting of a flag variable, then they are not
editable.
- Direct analysis of log data via new Analyze menu: you can get a
cluster plot or distance matrix of monitored state values, or copy
the data over to an environment for further analysis. This may be
easier than using the CopyToEnvStat for ad-hoc analyses.
- Duplicate, ChangeType now works for everything: layers, units, sched
procs. Go crazy!
- Confirmation now obtained for most destructive acts.
- New buttons for easy control of process stepping level: Step Up
moves the step process up one level, and, critically, removes the
previous step process as a network updater. Step Dn moves down one
level, and adds this new level to the network updater. Therefore,
if you want to single-step through cycling for a specific trial, but
skip over previous trials, you can Step at the trial level until you
find the right trial, then Step Dn to the cycle level and step
there, then Step Up to trial again and zip through other trials,
then step down to cycle, etc. Previously, this would have required
coordinated setting of step proc via a menu and the AddUpdater and
RemoveUpdater functions on the network. Also, even when you
manually set the step proc, it now autotmatically ensures that this
proc is updating the network. Basically, you shouldn't find the
need to manually do AddUpdater, etc on the network any more.
- Enviro View GUI enhancements:
o Event groups are now displayed with their own buttons in the view,
and they can thus be manipulated, events transfered into them, etc.
Clicking twice will select the sub-events within the group. Also,
new buttons were added for duplicating, transfering, changing the
types and setting the specs for events/groups. This makes it much
easier to perform all common manipulations of events in the gui.
Also, the Disp toggle now affects display of event patterns, so you
can turn off Disp to operate on large numbers of events without
having to actually display them all.
o If there is only one EventSpec, then when you Edit Spec(s), it is
automatically selected. Also, if only one event spec is selected
for editing, then all clicking actions skip the event spec level,
saving one level of clicking to select patterns, etc. This should
all be very intuitive.
o New buttons: Layout/Updt allows you to either do a linear layout of
all the patterns (stacked one atop the other with one space between
-- useful if you've got a messy layout), or to update the positions
and geometries of all the patterns to correspond with the current
configuration of their corresponding layers. This latter function
should prove extremely convenient. New Child, Copy From, Duplicate
buttons also available.
o middle mouse button now always sets pattern value to 0 (previously
was an undo)
- Project View GUI enhancements:
o New buttons to create top-level groups for procs/specs (for
organizing them), and for creating procs/specs so that these can be
created directly from the interface.
o Transfer, ChangeType enabled for specs, other minor fixes.
- As always, many bug fixes, including window iconification bug with
KDE window manager environment.
===========================================
Release 2.0
===========================================
ISSUES WITH OLD PROJECTS:
- A number of object members have been removed or renamed, so you
should expect a large number of "xxx not found" warnings when
loading old projects -- these can all be ignored.
- Older projects didn't set the other_idx indexes in con groups, which
point to the corresponding sending/receiving con group. These are
now checked for and if not set, nothing can be run. So, you need to
either reconnect your network (ConnectAll) or run FixPrjnIndexes on
the network (avail in the Network Actions menu). A warning will
prompt you to do this.
NEW FEATURES:
- First and foremost, all known reliable means of crashing the
software have been fixed! Please report any further reliable
crashes you find so they can also be fixed.
- Help option added to every object -- pulls up netscape by default
and points it at relevant section of pdp manual.
- New Project View -- provides overall view of the principal objects
in the project (Networks, Environments, Processes, Stats, Logs), or
all of the specs, so you can see what is there at one glance, and
everything can be manipulated just like in the NetView. This is
most important for processes -- you can view/modify what the
processes are connected to, how all the stats are arranged, what
logs they send to, etc. Should make configuring processes much
easier. The spec editing is very useful for more complex setups.
- Environment View totally rewritten -- allows interactive editing of
event specs that control layout of the events, much in the way
networks can be constructed in the NetView. Display of event
information is now *much* more efficient and crashproof. Use
SetToLayer in spec editing to automatically configure a pattern to
fit a given network layer.
- GridLog totally rewritten -- used to crash when resized, etc. Now
can arrange display in the header using left mouse button to move,
middle to resize, and right to edit.
- "Grid View Weights" option in Network/Actions menu -- displays
network weights for an entire layer of units in a grid log view.
- "Dist Matrix Grid" and "Env To Grid" options in Environment. First
displays distance matrix between all items in a grid log, second
sends all patterns to a grid log for easier, more configurable
viewing.
- Cluster Plot in Environment now displays in a Graph Log (used to
require xgraph). Graph Log can now display text data using Y axis
as immediately preceding data column.
- Many improvements to the basic View technology used in the NetView,
EnviroView, and GridLogView:
- Selecting and manipulating (resizing, moving) objects is much more
intuitive. Whatever is current selected is manipulated. Things
that cannot be manipulated are automatically not selected for
manipulation. To manipulate a subobject, just click and release
-- the release will select the next level down (e.g., units within
a unit group), and then the next click will manipulate that
object. Previous system required major finger gymnastics to get
the right thing selected.
- Editing of textual stuff can be accomplished by clicking right
mouse button on the object, which will pull up an edit dialog.
- Images no longer migrate across to different views.
- Display is automatically Init-ialized after moving, resizing, etc.
- NetView/Network improvements:
- much better projection arrow positioning algorithm.
- confusion between View and Select mode minimized because only
units can be selected for Viewing (viewing weights).
- listing of network variables now has weights first, then
unit-level stuff, so it is easier to switch between weights and
activation, esp for algoirthms that have a lot of unit-level
variables.
- New Disp Mode menu on right for selecting how to display values.
- Height-field displays now actually work as expected -- nice for
displaying continuously-varying variables (e.g., Kohonen-style
activation blobs -- see demo/so/som.proj.gz).
- Text display is no longer done with separate objects -- much more
efficient and prevents problems View-ing unit weights with text
displayed.
- Netview is automatically updated when network objects are removed
outside of the netview.
- Left mouse now moves in the X (horiz) and Z (vert) planes, while
right button does X and Y (depth). X-Z is much more common.
- Moved CopyWeights, WriteWeights, ReadWeights to the Network Object
menu instead of the Actions menu -- all basic I/O should be in the
Object menu.
- Imported graphic displays (made by idraw) now work (can be
manipulated, saved, etc w/out crashing)
- Read/WriteOldPDP on Environment changed to Read/WriteText, and
rewritten so they actually work. # endgroup comment is now
superfluous.
- New Object menu options for all objects:
- Duplicate will duplicate object (used to only be on groups)
- CopyTo and CopyFrom used for copying, works even with subclasses
and super-classes of given object
- ChangeType will replace current object with one of a different
(related) type, copying exisiting info.
- With too many items to fit in menus, used to get "Over Max-menu" and
that was it, but now you can select an object from a file-chooser
like object-chooser dialog that shows all the objects.
- Object-chooser also available as a Browse function on root object --
you can traverse the entire object heirarchy and edit anything.
- No more view:: submenu in lots of menus -- was never used anyway.
- Edit dialogs all have a Show menu that enables controlling of what
level of detail is viewed. A Detail level of viewing is now
present, and these details are not visible by default, making it
easier to find the high-priority stuff. If you want to access
something that is not visible, use the Show menu.
- EpochProcesses much more robust to changes in environments during an
epoch -- no more crashing!