Solving the Problem of Problem Solving

We have to re-think the way we think about solving problems. As the problems we deal with increase in complexity, so must the methods we use to solve those problems evolve. And how do we do that? By turning to nature, as the great masters of the past did to unravel the mysteries of the human mind.

Solving problems harder than we can imagine

Having worked in the field of Artificial Intelligence since 2004, I finally feel confident that we have the technological capabilities we need in order to solve very hard problems. Including problems we’re not even thinking about yet. We’re not thinking about those problems because we don’t know how. That’s where AI, and particularly the deep learning method comes in.

The issue is that we humans don’t have a well established method / way for solving problems. So any machine intelligence approach, would be somehow burdened by our inability to deal with hard problems in an effective way. In this article, I propose a simple guideline that will help us address this problem. As a result, providing us with the ground we need in order to empower machine intelligence solutions to support us in areas where we most desperately need it. I will loosely use the example of what I see as one of the biggest and most pressing problems, extreme poverty.

How to Solve Really Hard Problems: Self-Organising Structures

First you have main workgroup, a group of people (or a single individual) who identifies and articulates what the actual problem statement is. For example “extremely poor could be lifted out of their poverty, thus adding $5 trillion in new annual spending to the global economy”. This group is the upstream source for all the other groups, and do nothing except work on the problem definition itself.

Then there is a second group that works on the breaking down of the problem. Dissecting it to its constituents. This group will never work on anything else except identifying the parts that make up the problem-set. For example “information deprivation”, “easily avoidable negative health outcomes” and “lack of skills and jobs” are the main factors related with remaining in poverty.

Then there is a group to further dissect each of these in to contributing causes, more groups to cover each from the angle of relevant interventions and so forth. Each group completely disconnected from anything except their own scope, and their immediate upstream and downstream connecting nodes.

Basically all these groups do is break their subset of the problem further in to ever increasingly actionable items. So far nobody is thinking about solutions. At this point, we could be 10-20 or even 100 layers down in the problem solving structure. Each layer consisting of one or more human or neural network working either individually or in co-operation. The point so far is to stay away as far as possible from any idea of solution.

At some point the solutions layers kick in and start to look at actual ways to replace the negative causes with positive ones. These groups don’t think about things like feasibility, but more groups will be introduced later to take care of that. At that point the prioritization groups, the feasibility groups, and various quality assurance groups, together with many, are introduced to this novel intelligence eco-system.

Every now and then there is a random group introduced, like virus or bacteria, that tries to breakdown the system entirely. Attacking it various ways. To test how much staying power the structure has. Also cancer like mutation functions are introduced randomly or otherwise, and serve the function of creating mutations that can then be adopted or dropped depending on how well they perform in various simulations.

The Nature’s Way

Each of these groups are organizations of people and machines. They could be just one man or machine, or they could be many. At this point, you should think about them as parts of a self-organizing structure. Each on its own having its activity founded on the principles of self-organization.

Each group feeds the one below them with tasks and gives feedback back one step up. This way all the groups are continuously adjusting their organization on the input that is coming to them. So it’s a flux, nothing is fixed, nothing ever stays the same, the only rule is interconnectedness.

Some of the groups could have overlap, so it would not have to take that many people to solve problems using this approach. If you look at nature, these are the kinds of structures you will always find. Cascading flux. One organization doing something to give feedback to the organization its part of and also assigning another organization to do something else. Nature is infinitely efficient, so if we want to tap in to that kind of power to find meaningful and practical solutions to our hardest problems, it seems obvious that we must mimic it.

For some reason we human try to solve problems on our own, or then we try to solve them as a large groups, we are all working more or less on the same thing or a similar thing, working as “peers”.

Further there is no element of continuous self-organization, but instead things have a tendency of reaching a certain kind of stasis. A point in time when the organizer (the problem solver) forgets what got them motivated in the first place, that is the curiosity driven by the uncertain nature of things. Once a satisfying result is achieved, it is almost as if the nature of things no longer was uncertainty.

There is always a sense of glorification that comes with problem solving, so that ends up messing things more. You want to be able to say “I did this” and “I solved this”. But in the way things organize in nature, no such moment exist. No moment is more certain than another, there is no “absolute zero” when something suddenly becomes complete and stops. This is proven with modern science in respect to movement of atoms.

That’s what solving a problem fundamentally is about, an organization of some kind. The identification and mapping out of an organization that was not previously known, or was lost for some reason. It is never more than just a temporary moment in an endless flux. To tell oneself anything but, is to betray the true spirit of problem solving. Nothing can ever be truly and completely known.

We still haven’t solved the most important problem of all. How to solve problems.

If you liked this post, please help up by spreading the word or by following us through email. Thank you 🙂

Autonomio Roadmap

“It takes a long journey to know the horse’s strength” – Chinese Proverb

For the foreseeable future, Autonomio r&d efforts are focused on three aspects:


The main distinction between these three is that CORE and STATS have the potential to effect the results, where as NON-STATS never can. The naming convention has been agreed upon to clearly facilitate for this dichotomy. Below I will provide a brief outline for each aspect.


Here our goal is to remove all doubt from the user in regards to the integrity and reliability of the system:

– ensure that outputs have 100% integrity
– move testing to “expected output validation”
– establish 100% code coverage


Here our goal is to push deep learning implementation to the next level. The focus is to significantly expand the supported/covered workflow in comparison to currently available platforms (Keras etc.). In practice this means to extend the workflow to cover things that the user does just before and just after using a typical deep learning system. Mainly this effort will consist of two separate parts:

– a deep learning based abstraction layer that automatically configures the model for optimal output
– an abstraction layer that performs robust validation far beyond the means presented in current systems or literature

Philosophically speaking, the focus is on moving away from the idea of artificial intelligence or augmented intelligence, towards autonomous intelligence capability.


Here our goal is to reduce barriers to every day use of deep learning, state- of-the-art language processing and particularly the seamless integration of the two. The research and development that focus on this third aspect, leverage means other than those commonly considered in deep learning technology development. Namely workflow/process automation, visualization, various other UX factors, and modernization of documentation in to something that is easily accessible as part of common workflows, but without ever distracting advanced users.

– create a layperson ready version of key aspects of Keras documentation (losses, etc)
– run a design thinking workshop to identify key data scientist needs
– screen record deep learning workflows and quantify the results

If you liked this post, please help up by spreading the word or by following us through email. Thank you 🙂

Two Fundamental Goals of Deep Learning in the Next Decade

1) Improve the effectiveness with which individuals and organizations access insights and reliable predictions for decision making.

2) To develop and popularize a discipline by which greater effectiveness can be systematically achieved by practitioners

If you liked this post, please help up by spreading the word or by following us through email. Thank you 🙂