1. About
  2. Features
  3. Explore

Many studies are mainly revolved around solving optimization problems; formulating a cost function and getting the gradient w.r.t some elements. This part can be somewhat challenging mathematically and is required to solve the problem in practice. Or at least, it used to be. I note that I'm not talking about the research of optimization but rather using optimization as a tool.

Symbolic toolboxes (such as Theano, TensorFlow, etc., mainly used when designing neural networks) are abundant and widely used. Using these, we can skip the manual calculation of gradients - we write only the cost function, and the derivation is done for us. Usually even the optimization is performed automatically.

While in the computer vision field it is very common to find studies that skip the math almost entirely, in other fields it is still very common to write the cost function, and at least provide the final equations needed for reproducing the results (more elaborate calculations are usually found in the appendix or supplementary material).

I'm wondering - if I choose to use these symbolic toolboxes in another field, in which it's common to write the entire derivation (or at least the gist of it), will it be frowned upon, even if I specify which software I use and even provide code? I somehow feel as if some fields consider themselves to be more 'mathematical' in substance and will therefore want to see I can calculate myself rather than let a computer do that for me...


1 Answer 1

It's always been normal not to write out long but straightforward calculations in a scientific paper. If there are certain intermediate steps in the calculation that are of interest for their own sake, show them.

will it be frowned upon, even if I specify which software I use and even provide code?

If the calculation is something that can be straightforwardly (but tediously) verified by anyone with knowledge of the field, then I don't see any point in saying what software you used or supplying source code. The reason to give this type of information would be if there was something in the software that could be nontrivial, controversial, etc., so that other people with knowledge of the state of the art might not get the same answer you did.