Mercurial > pylearn
comparison doc/v2_planning/formulas.txt @ 1051:bc246542d6ff
added file for the formulas commitee.
author | Frederic Bastien <nouiz@nouiz.org> |
---|---|
date | Wed, 08 Sep 2010 15:39:51 -0400 |
parents | |
children | 42ddbefd1e03 |
comparison
equal
deleted
inserted
replaced
1050:573363a9b5c7 | 1051:bc246542d6ff |
---|---|
1 Math formulas | |
2 ============= | |
3 | |
4 Participants | |
5 ------------ | |
6 - Fred* | |
7 - Razvan | |
8 - Aaron | |
9 - Olivier B. | |
10 - Nicolas | |
11 | |
12 TODO | |
13 ---- | |
14 * define a list of search tag to start with | |
15 * propose an interface(many inputs, outputs, doc style, hierrache, to search, html output?) | |
16 * find existing repositories with files for formulas. | |
17 * move existing formulas to pylearn as examples and add other basics ones. | |
18 ** theano.tensor.nnet will probably be copied to pylearn.formulas.nnet and depricated. | |
19 | |
20 Why we need formulas | |
21 -------------------- | |
22 | |
23 Their is a few reasons why having a library of mathematical formula for theano is a good reason: | |
24 | |
25 * Some formula have some special thing needed for the gpu. | |
26 * Sometimes we need to cast to floatX... | |
27 * Some formula have numerical stability problem. | |
28 * Some formula gradiant have numerical stability problem. (Happen more frequently then the previous ones) | |
29 * If theano don't always do some stability optimization, we could do it manually in the formulas | |
30 * Some formula as complex to implement and take many try to do correctly. | |
31 | |
32 Having a library help in that we solve those problem only once. | |
33 | |
34 Formulas definition | |
35 ------------------- | |
36 | |
37 We define formulas as something that don't have a state. They are implemented as python function | |
38 that take theano variable as input and output theano variable. If you want state, look at what the | |
39 learner commity will do. | |
40 | |
41 Formulas doc must have | |
42 ---------------------- | |
43 | |
44 * A latex mathematical description of the formulas(for picture representation in generated documentation) | |
45 * Tags(for searching): | |
46 * a list of lower lovel fct used | |
47 * category(name of the submodule itself) | |
48 * Tell if we did some work to make it more numerical stable. Do theano do the optimization needed? | |
49 * Tell if the grad is numericaly stable? Do theano do the optimization needed? | |
50 * Tell if work on gpu/not/unknow | |
51 * Tell alternate name | |
52 * Tell the domaine, range of the input/output(range should use the english notation of including or excluding) | |
53 | |
54 List of existing repos | |
55 ---------------------- | |
56 | |
57 Olivier B. ? | |
58 Xavier G.: git@github.com:glorotxa/DeepANN.git, see file deepANN/{Activations.py(to nnet),Noise.py,Reconstruction_cost.py(to costs),Regularization.py(to regularization} | |
59 | |
60 Proposed hierarchy | |
61 ------------------ | |
62 | |
63 Here is the proposed hierarchy for formulas | |
64 | |
65 pylearn.formulas.costs: generic / common cost functions, e.g. various cross-entropies, squared error, | |
66 abs. error, various sparsity penalties (L1, Student) | |
67 | |
68 pylearn.formulas.regularization: formulas for regularization | |
69 | |
70 pylearn.formulas.linear: formulas for linear classifier, linear regression, factor analysis, PCA | |
71 | |
72 pylearn.formulas.nnet: formulas for building layers of various kinds, various activation functions, | |
73 layers which could be plugged with various costs & penalties, and stacked | |
74 | |
75 pylearn.formulas.ae: formulas for auto-encoders and denoising auto-encoder variants | |
76 | |
77 pylearn.formulas.noise: formulas for corruption processes | |
78 | |
79 pylearn.formulas.rbm: energies, free energies, conditional distributions, Gibbs sampling | |
80 | |
81 pylearn.formulas.trees: formulas for decision trees | |
82 | |
83 pylearn.formulas.boosting: formulas for boosting variants | |
84 | |
85 pylearn.formulas.maths for other math formulas | |
86 | |
87 pylearn.formulas.scipy.stats: example to implement the same interface as existing lib | |
88 | |
89 etc. |