on

### The Power of Why

## Flow

An example to follow along: Suppose we are building a simple neural network.

In hand: Problem

To reach: Solution

## Approach

Treat the whole system as a bunch of states with the initial state being the ‘Problem’ and the final state being the ’Solution’, others to join soon

## First Start with a Why

To make this easier, imagine the state where we are in the Solution state, without taking care about any other dependencies. That’s two states to play with, the Problem and the Solution.
Now, asking the ‘Why’ question makes more sense. This helps focus on the real requirements of the system we are designing. For a Cats/Dogs Recognizer, the Solution state is where the input image has labeled text output as Cat or Dog.

Ask ‘Why’. Why is this system being built in the first place?

Answers could be:

- I am studying machine learning, I want to learn this skill, and this problem seems to be a ‘Hello World’ program in Image Processing
- I am working for a client who has tons of images that need to be sorted as Cats or Dogs
- I am an academic researcher in machine learning, and I am looking at ways to solve this problem more efficiently or using noble approaches

How does it help ? So, once we can identify 1, 2 or 3 as the answer to Why, we can get into the How. Let’s see where we reach at once we get past this ste p in each of the cases.

**In #1**, I am learning, my sole purpose is to improve my machine learning skills, that’s the point I want to be at after finishing the Cats/Dogs Problem. But will it help me do that ? - It may. It may not. But we are now in a state where we can start looking at resources according to the level of expertise we want to get in machine learning.

**In #2**, it’s clear that we may not need to dig deeper on actual implementation, we just want to help the client label his pictures, and we want to get it done in time for some favor in return.

**In #3**, it’s clear that I already understand the Solution state I am trying to reach, but what I am looking is for noble approaches to reach there.

If I can get up to this state, I can now look for the ‘How’. Following along with the Cats and Dogs Problem, there are tons of ways to solve this. Here ways could mean the approaches put behind the working of the algorithm, or solving it using machine learning frameworks. Things that still don’t change are the Problem state and the Solution state.

**For #1**, under the assumption that time is not that critical part of the learning, I can play around with tons of ways, implementing it using a neural network from scratch, or may use several already available machine learning models/frameworks to solve it.

**For #2**, I would be looking for the state-of-the-art methods available, the ones that are easy to implement, yet have high performance.

**For #3**, It is more like an open ended ask. Although we know the Solution state, we may not be able to come up with an approach right away.

So, that’s the answer to How. By now, it’s already clear how When is also tied to How. Time is always a factor whenever we are solving any problem. So, in some cases, although we may come up with the best answer to How, we may have to compromise, and go for the second best Answer.

This is the approach that helps me most of the time whenever I am starting out on a new project. With tons and tons of available resources and approaches to solve the same problem, it’s easy to get overwhelmed and finally lose the motivation. So, having an strategy on decision making really helps. Another advantage of this approach is we can break down the problem into subproblems and treat them as mini sub states. I am still a beginner in machine learning, means most of my Whys in this domain end up at #1. I also happen to write about how I approach to learning machine learning in this blog. You can find out in other posts.