Hero vs Non-Hero: How ML/AI is different
Oct 13, 2022 | Jagannath Rajagopal | 3 min read
There isn’t always a roadmap for this.
One difference in the nature of Hero methods vs non-Hero methods, is the level of understanding of the problem world and data. Non-Hero development is mature; one can relatively easily write and build to a set of requirements, with much of the difficulty arising from the process and human side of things. Hero development includes this and one additional challenge — the world and data may be unknown, invisible and always changing. This makes it hard to build to a set of requirements as we may not know what to require until we actually perform some modelling.
Sometimes, we may be able to “write requirements” since the objective of the experiment is to make and validate hypotheses about the space. We see this often in simulation problems. Even here, there is a hypothesis validation exercise that will precede the build; there is no build if the hypothesis is invalid! Exploration is akin to experimentation. Without this initial part where we are learning about the problem, it makes no sense to build anything.
Hero problems may sometimes have a large variety of inputs aka features or dimensions in fancy math parlance. Human beings can visualize up to 3 dimensions in a plot and as we add more dimensions, the shapes get more and more complex. For Hero problems that are more than 3D, we will never know what the shapes look like as we cannot visualize them. Which means that learning the data can only be done by modelling it.
I’ve created a LOT of resources on Hero Methods. Here’s my course on Design Thinking for Hero Methods. Here’s my YouTube channel with previews of course videos. Here’s my website; navigate through the courses to find free previews & pdfs.
In RL, there is the technical notion of exploration vs exploitation which applies largely to life in a deeper sense, but specifically to the process of Hero development. Exploration is about discovering what works, learning a world, and building experience; exploitation is about applying learnings and experience to make things work.
Given learning is cyclical in nature, we go back and forth between ideas and test many things before we can tell what works. Learning is not linear, but the most common project methodology — the waterfall — is.
Taking all of the above into consideration, in Hero projects and programs, there is the need to systematically perform, and include the step of exploration prior to writing requirements and development. Exploration is about small PoCs, the use of experimental languages like Python/R, and iteration. Exploitation is about using standard project methodologies, writing requirements, building code optimized towards the end objective (like C++ if fast inference is needed) etc.
In other words, Design for Hero Methods is synonymous with Exploration.
At Kado, we focus on exploration. In our use cases (downloadable pdfs in the course modules), the hierarchical and pipeline steps are suggestions for experiments. Most likely, when experiments fail, the solution is typically to test other methods. If methods don’t work, we change the approach. So, for example, if scaling does not work, try customization. If customization does not work, try building a model with the full data set. If that does not work, change your hierarchy level.