annotate doc/v2_planning/arch_src/plugin_JB_comments_YB.txt @ 1242:316410a38f6f

comment on Yoshua's comment on James architecture
author Razvan Pascanu <r.pascanu@gmail.com>
date Thu, 23 Sep 2010 12:10:14 -0400
parents 067b2f9ba122
children 808e38dce8d6
rev   line source
1238
067b2f9ba122 comments by YB on JB's arch_sr/plugin_JB.py
Yoshua Bengio <bengioy@iro.umontreal.ca>
parents:
diff changeset
1
067b2f9ba122 comments by YB on JB's arch_sr/plugin_JB.py
Yoshua Bengio <bengioy@iro.umontreal.ca>
parents:
diff changeset
2 YB. I am very worried about this proposal. It looks again like we would be
067b2f9ba122 comments by YB on JB's arch_sr/plugin_JB.py
Yoshua Bengio <bengioy@iro.umontreal.ca>
parents:
diff changeset
3 creating another language to replace one we already have, namely python,
067b2f9ba122 comments by YB on JB's arch_sr/plugin_JB.py
Yoshua Bengio <bengioy@iro.umontreal.ca>
parents:
diff changeset
4 mainly so that we could have introspection and programmable changes
067b2f9ba122 comments by YB on JB's arch_sr/plugin_JB.py
Yoshua Bengio <bengioy@iro.umontreal.ca>
parents:
diff changeset
5 into an existing control flow structure (e.g. the standard DBN code).
067b2f9ba122 comments by YB on JB's arch_sr/plugin_JB.py
Yoshua Bengio <bengioy@iro.umontreal.ca>
parents:
diff changeset
6
067b2f9ba122 comments by YB on JB's arch_sr/plugin_JB.py
Yoshua Bengio <bengioy@iro.umontreal.ca>
parents:
diff changeset
7 I feel that the negatives outweigh the advantages.
067b2f9ba122 comments by YB on JB's arch_sr/plugin_JB.py
Yoshua Bengio <bengioy@iro.umontreal.ca>
parents:
diff changeset
8
067b2f9ba122 comments by YB on JB's arch_sr/plugin_JB.py
Yoshua Bengio <bengioy@iro.umontreal.ca>
parents:
diff changeset
9 Please correct me:
067b2f9ba122 comments by YB on JB's arch_sr/plugin_JB.py
Yoshua Bengio <bengioy@iro.umontreal.ca>
parents:
diff changeset
10
067b2f9ba122 comments by YB on JB's arch_sr/plugin_JB.py
Yoshua Bengio <bengioy@iro.umontreal.ca>
parents:
diff changeset
11 Disadvantages:
067b2f9ba122 comments by YB on JB's arch_sr/plugin_JB.py
Yoshua Bengio <bengioy@iro.umontreal.ca>
parents:
diff changeset
12
067b2f9ba122 comments by YB on JB's arch_sr/plugin_JB.py
Yoshua Bengio <bengioy@iro.umontreal.ca>
parents:
diff changeset
13 * much more difficult to read
067b2f9ba122 comments by YB on JB's arch_sr/plugin_JB.py
Yoshua Bengio <bengioy@iro.umontreal.ca>
parents:
diff changeset
14 * much more difficult to debug
067b2f9ba122 comments by YB on JB's arch_sr/plugin_JB.py
Yoshua Bengio <bengioy@iro.umontreal.ca>
parents:
diff changeset
15
067b2f9ba122 comments by YB on JB's arch_sr/plugin_JB.py
Yoshua Bengio <bengioy@iro.umontreal.ca>
parents:
diff changeset
16 Advantages:
067b2f9ba122 comments by YB on JB's arch_sr/plugin_JB.py
Yoshua Bengio <bengioy@iro.umontreal.ca>
parents:
diff changeset
17
067b2f9ba122 comments by YB on JB's arch_sr/plugin_JB.py
Yoshua Bengio <bengioy@iro.umontreal.ca>
parents:
diff changeset
18 * easier to serialize (can't we serialize an ordinary Python class created by a normal user?)
067b2f9ba122 comments by YB on JB's arch_sr/plugin_JB.py
Yoshua Bengio <bengioy@iro.umontreal.ca>
parents:
diff changeset
19 * possible but not easier to programmatically modify existing learning algorithms
067b2f9ba122 comments by YB on JB's arch_sr/plugin_JB.py
Yoshua Bengio <bengioy@iro.umontreal.ca>
parents:
diff changeset
20 (why not the usual constructor parameters and hooks,
067b2f9ba122 comments by YB on JB's arch_sr/plugin_JB.py
Yoshua Bengio <bengioy@iro.umontreal.ca>
parents:
diff changeset
21 when possible, and just create another code for a new DBN variant when it can't fit?)
067b2f9ba122 comments by YB on JB's arch_sr/plugin_JB.py
Yoshua Bengio <bengioy@iro.umontreal.ca>
parents:
diff changeset
22 * am I missing something?
067b2f9ba122 comments by YB on JB's arch_sr/plugin_JB.py
Yoshua Bengio <bengioy@iro.umontreal.ca>
parents:
diff changeset
23
067b2f9ba122 comments by YB on JB's arch_sr/plugin_JB.py
Yoshua Bengio <bengioy@iro.umontreal.ca>
parents:
diff changeset
24 I am not convinced that any of the stated advantages can't be achieved in more traditional ways.
067b2f9ba122 comments by YB on JB's arch_sr/plugin_JB.py
Yoshua Bengio <bengioy@iro.umontreal.ca>
parents:
diff changeset
25
1242
316410a38f6f comment on Yoshua's comment on James architecture
Razvan Pascanu <r.pascanu@gmail.com>
parents: 1238
diff changeset
26 RP comment: James or anybody else correct me if I'm wrong. What I think James
316410a38f6f comment on Yoshua's comment on James architecture
Razvan Pascanu <r.pascanu@gmail.com>
parents: 1238
diff changeset
27 proposed is just a way encapsulating different steps of the program in some
316410a38f6f comment on Yoshua's comment on James architecture
Razvan Pascanu <r.pascanu@gmail.com>
parents: 1238
diff changeset
28 classes. These classes are serializable. They are not a programming language
316410a38f6f comment on Yoshua's comment on James architecture
Razvan Pascanu <r.pascanu@gmail.com>
parents: 1238
diff changeset
29 per se. The way I see it is like dividing your program in a set of functions.
316410a38f6f comment on Yoshua's comment on James architecture
Razvan Pascanu <r.pascanu@gmail.com>
parents: 1238
diff changeset
30 Each function is a control flow element applied to something ( like a CALL to
316410a38f6f comment on Yoshua's comment on James architecture
Razvan Pascanu <r.pascanu@gmail.com>
parents: 1238
diff changeset
31 a python function ). The idea is to wrap this functions around something to
316410a38f6f comment on Yoshua's comment on James architecture
Razvan Pascanu <r.pascanu@gmail.com>
parents: 1238
diff changeset
32 make them serializable, and also offer the added advantage that you have a
316410a38f6f comment on Yoshua's comment on James architecture
Razvan Pascanu <r.pascanu@gmail.com>
parents: 1238
diff changeset
33 graph that presents the order in which you should call the functions and you
316410a38f6f comment on Yoshua's comment on James architecture
Razvan Pascanu <r.pascanu@gmail.com>
parents: 1238
diff changeset
34 can play with that order.
1238
067b2f9ba122 comments by YB on JB's arch_sr/plugin_JB.py
Yoshua Bengio <bengioy@iro.umontreal.ca>
parents:
diff changeset
35
1242
316410a38f6f comment on Yoshua's comment on James architecture
Razvan Pascanu <r.pascanu@gmail.com>
parents: 1238
diff changeset
36 That is why I was trying to convince James to re-write things ( using some
316410a38f6f comment on Yoshua's comment on James architecture
Razvan Pascanu <r.pascanu@gmail.com>
parents: 1238
diff changeset
37 syntactic sugar) to make it look less intimidating ( I believe it can look
316410a38f6f comment on Yoshua's comment on James architecture
Razvan Pascanu <r.pascanu@gmail.com>
parents: 1238
diff changeset
38 much more "traditional" that it looks right now). I think a programming
316410a38f6f comment on Yoshua's comment on James architecture
Razvan Pascanu <r.pascanu@gmail.com>
parents: 1238
diff changeset
39 language might also be a overloaded term that so we might speak about
316410a38f6f comment on Yoshua's comment on James architecture
Razvan Pascanu <r.pascanu@gmail.com>
parents: 1238
diff changeset
40 different things. But if all that his proposal does is to offer some wrapper
316410a38f6f comment on Yoshua's comment on James architecture
Razvan Pascanu <r.pascanu@gmail.com>
parents: 1238
diff changeset
41 around python function that makes them serializable, and generate a execution
316410a38f6f comment on Yoshua's comment on James architecture
Razvan Pascanu <r.pascanu@gmail.com>
parents: 1238
diff changeset
42 order graph in which you can possible do simple operations ( like
316410a38f6f comment on Yoshua's comment on James architecture
Razvan Pascanu <r.pascanu@gmail.com>
parents: 1238
diff changeset
43 substitutions and replacements) I would not call it a programming language.
316410a38f6f comment on Yoshua's comment on James architecture
Razvan Pascanu <r.pascanu@gmail.com>
parents: 1238
diff changeset
44
316410a38f6f comment on Yoshua's comment on James architecture
Razvan Pascanu <r.pascanu@gmail.com>
parents: 1238
diff changeset
45 I think the advantage of making the program aware where in its own execution
316410a38f6f comment on Yoshua's comment on James architecture
Razvan Pascanu <r.pascanu@gmail.com>
parents: 1238
diff changeset
46 flow it is and what is its execution flow can be quite useful for automating
316410a38f6f comment on Yoshua's comment on James architecture
Razvan Pascanu <r.pascanu@gmail.com>
parents: 1238
diff changeset
47 some of the things we want.