# Is it necessary to know the details behind the AI algorithms and models?

I am interested in the field of artificial intelligence. I began by learning the various machine learning algorithms. The maths behind some were quite hard. For example, back-propagation in convolutional neural networks.

Then when getting to the implementation part, I learnt about TensorFlow, Keras, PyTorch, etc. If these provide much faster and more robust results, will there be a necessity to code a neural network (say) from scratch using the knowledge of the maths behind back-prop, activation functions, dimensions of layers, etc., or is the role of a data scientist only to tune the hyper-parameters?

Further, as of now the field of AI does not seem to have any way to solve for these hyperparameters, and they are arrived at through trial and error. Which begs the question, can a person with just basic intuition about what the algorithms do be able to make a model just as good as a person who knows the detailed mathematics of these algorithms?

This is a good question. I tend to think the answer is yes it is necessary to know the details, because a person without mathematical understanding of these algorithms cannot consistently make a model as good as someone who does have that understanding.

The reason is right at the core of computer science: abstractions are useful, but usually obscure details. When those details matter, someone who only knows the abstraction and not the details that lie beneath can't understand what's going on.

As an example, if you don't understand the math behind optimizing the weights of a neural network, it might not be apparent how parameters like the learning rate are impacted by properties like network depth when some of the inputs have not been properly normalized. If you understand the optimization process mathematically, you can reason through the effects even if you are trying to work on an unfamiliar problem. This ability to reason through the probable effects of parameter decisions in new domains is the main thing that you miss by working from intuition.

• Ummm...I don't think the problem you highlighted will differentiate them... Practioners will be able to write programs when a given problem is given, they can easily use predefined solutions to optimise weights and what not...It's just a checklist they have to eliminate..So it really will not differentiate them from data scientists – user9947 Sep 6 '18 at 8:55
• @DuttaA, they can solve a problem that other people already have solved. If you give them a truly new problem, then by definition, they can't have good intuitions about how to solve it: it's new, so there won't be any tutorials it generally accepted practices. Without a formal way to reason about their techniques, I would be surprised to see such a person succeed without much trial and error. In contrast, someone who can reason mathematically about a method can often reach informed conclusions on a new problem without needing to experiment. – John Doucette Sep 6 '18 at 10:25
• Andrew Ng actually strongly advised against intuition though. – user9947 Sep 6 '18 at 10:37
• @DuttaA ... that's my point! Without a mathematical foundation, you're inherently relying on intuition if you're working on a novel problem. This is the main difference between people who do and do no have mathematical training. – John Doucette Sep 6 '18 at 10:53

In my answer I will call people who do not know mathematics behind ML algorithms as data science practitioners and those who know as data scientists (this terms may not be true in real life).

So with the advent of Neural Networks the importance of understanding maths behind ML algorithms has diminished significantly since earlier based on different data parameters you had to do something called $feature$ $engineering$. This needed some kind of knowledge in statistics and basic co-ordinate geometry.

Nowadays practitioners can easily apply well known models to problems without any thought process or mathematics involved. Examples of this include CNN architectures like AlexNet, LeNet, ResNet, etc, RNN architectures like LSTM's and GRU's. We even are copying the weights of pre-trained models.

So what edge does a data scientist hold over practitioners? To me here is a list of points on which data scientists hold an edge:

• Hyper-parameter tuning: In any NN there are minimum of 3-4 hyper-parameters. Which gives rise to $^4C_n = 16$ where $n$ varies from 0 to 4 possible tunings. A data scientist from loss curves, accuracy graphs, and other score graphs will be easily able to narrow down to the tuning required to make the NN perform the best. Whereas, a practitioner may have to try out the entire 16 combinations (each combination requiring many combinations of values for each) to be able to get to the solution. Time and resource consuming.
• Special Architectures: Some problems require out of the box thinking to come up with the best solution. Like a combination of CNN and RNN is used to predict captions for images, CNN's may be used in field of sequence processing (like genetic sequences). Such uncommon/unconventional solutions to problems can only be applied by a person who knows how a NN works in details.
• Intuition: Although strongly advised against by Andrew Ng in his course, I believe every ML programmers out there use NN architectures and solutions which they believe will work best entirely due to gut feeling (rather than going through tedious methodical way of using it on small scale problems of the same type). In this scenario data scientists are bound to get a more accurate model working just due to the fact they know the mathematics and the working of a NN. They will have an intuitive understanding of how the model will work on the data to perform the task at hand.

These I feel are some of the places where a scientist holds an edge over practitioners. I may have missed some other edges that a Data scientist may hold over practitioners, you are free to edit it in.

• Wow. Cool answer. So I guess it is worth spending time to crunch the numbers. – pranav Sep 6 '18 at 9:41