tpetricek / tomasp.net

Source code for my web site and blog - yet another remake!
25 stars 19 forks source link

question on the "deep learning" post: what is it that you call the ML program? (does it include the training code?) #31

Open gasche opened 3 years ago

gasche commented 3 years ago

This is a question arising from the deep learning post. You talk of comparing "ordinary programs" with "machine learned programs", but what is it actually that you call the program in the second category?

You seem to suggest the latter, minimalist view, when you talk of a program "obtained by training". But I think this is a non-obvious choice that should be clarified and discussed.

There actually is a similar question with meta-programs, for example Coq proofs. When we talk of Compcert, the formally-correct compiler program, let's assume that we encompass the proofs in our view of what the program is. (They certainly are where most of the programming effort goes.) Are we talking of the tactics code (the scripts the human wrote), or of the CIC proof terms?

For meta-programs, or even for programs that get compiled to a lower-level representation, there is a pretty clear consensus I think that we include the source that the humans wrote in part of the "program". (It depends on the context, it matters a lot where we talk about programming, it matters less when we talk about program execution, and it is an interesting question when we talk about monitoring/auditing/certification.) This point of view would suggest including the training code (and the training run data) as part of our view of the "program" in the machine-learned setting.