General AI is complicated to design from scratch, especially if we want to teach it everything at once (so-called ‘end-to-end’). It is more feasible to do if the whole problem of learning and designing is deconstructed into several (less complicated) “sub-problems” which we know how to tackle. For example, it is clear that we want the AI to understand and remember images, so it needs the ability to analyze them and a memory to store data. We want it to be able to communicate with humans, so It will need to write, read and understand language. It will also need to learn and adapt to new things, and much more. We call solutions for each sub-problem skills.
A skill can be seen as an ability or heuristic which helps the AI solve a particular problem. Importantly, each skill can also be used for learning other skills, significantly reducing the search space for solving other sub-problems.
Skills can range from simple and concrete (like the ability to recognize faces, add numbers, open doors, etc.) to more abstract ones (like the ability to build a model of the world, to compress temporal / spatial data, to receive an error signal and adapt accordingly, to acquire new knowledge without forgetting older knowledge, etc.). Skills also provide a simple way to measure how the system works, as it is clear how to measure which system is better in understanding speech, classification, and game playing. However, evaluating general AI as a whole is still unclear.
General AI will essentially be a system that exhibits a very large set of skills. Some of those skills might be hard coded by programmers, but most will be learned. Take, for example, the evolution of humans. Evolution provided us with some hardcoded skills or predispositions, but most of what we know we need to learn during our lifetimes – from our parents, the environment, or society. Those skills cannot be hardcoded because humans, just like an AI, need to be able to adapt to unknown future situations. Sometimes it is also easier to teach the desired skill than to add it as a part of the design. On the other hand, letting the AI discover all skills by itself would be slow and inefficient. This means that our job is to identify essential skills and find the most efficient ways to transfer them to a general AI system – by hardcoding them or by teaching them. It is not necessary to find the best skills. Any skills which have the desired properties and which enable the AI to further learn and improve itself can move us closer to general AI.
Just like an AI has to use efficient methods when searching for problem solutions, AI researchers must also look for efficient shortcuts to narrow the search for the general AI architecture, optimal curriculum, etc., as we can’t effectively explore the entire space of potential solutions. We can, for example, draw inspiration from evolution, animal brains, or other systems designs. Part of the problem is also what general AI architecture and skill set is easier for us to attain now, with our current knowledge and resources. The framework, roadmap, the Institute are all part of a method for narrowing the search for the architecture and the curriculum to teach it. Individual sub-problems can be also outsourced to other researchers and institutions.
We can ask questions like, “What is the minimal skill set that is sufficient for human-level AGI?” If we can optimize the process by cutting out all unnecessary skills, we can get to our goal faster. On the other hand, the learning algorithm alone wouldn’t be sufficient; we also need thousands or millions of learned skills for the particular domain. Without them, the AI wouldn’t be able to start solving the problems we need. For example, driving a car is not a crucial skill for a researcher AI living only in the world of internet and scientific publications, but a skill such as the ability to generalize to similar, but previously unseen situations is universal, and falls into the category of necessary skills for every general AI).