Algorithmic Thinking & Deep Learning

Hello friends!

A “self-reflection-meta-cognition” style kinda question ahead on deep learning.


The gist

Is algorithmic thinking effective for creating models the way it is effective for creating algorithms?


A Perception Of Problem Solving

The first thing I want to mention is looking at all of this deep learning and machine learning stuff with an eye of problem solving. That’s what we do in Kaggle competitions. Asking the question, “What problem am I solving with this?” etc. By solving problems I don’t necessarily mean some high class stuff but the fact that ML and DL is pretty much like the input-output thing from CS. Instead of creating an algorithm, we create a model.

Thinking Pattern

Now, since essentially we have to solve problems, in our case, using ML or DL, is there a way of thinking that is different than coding?!
I am used to the traditional algorithmic way of thinking when approaching a problem which is a result of most CS education. That’s what we do. We have bunch of “psets” and we solve it. I was wondering if the same thinking pattern would be in sync when we do deep learning or is it different? If yes, then how? So far I feel it is the same. Whenever I am working on a lesson notebook, or trying a Kaggle competition, I (tend to?) think in an algorithmic way. Is this the right way to approach solving problems using deep learning? Ofcourse there are deep learning techniques embedded inside but essentially it is all computational thinking that is happening.

In my experience, algorithmic thinking can be quite useful at times, e.g. when you’re trying to learn the architecture of a model. However, I wouldn’t go as far as to say this is the only way of approaching ml as a whole, because a lot of the time your job is to iterate, to prepare the training data, to test hypothesis why something is working or not, and I’d say that this is a broader “thinking pattern” then just thinking about algorithms, perhaps you could call it the usage of the scientific method in some scenarios.

Also, talking about self-reflection, I wouldn’t try to force a system like “algorithmic thinking” onto ml as a whole and instead just be open to what approaches are out there and work well for every given circumstance and learn new approaches to actively avoid the law of instruments.

1 Like