Introduction
I feel the need to write a brief and concise introduction to my research in the field of cognitive sciences. Starting with a disclaimer saying that I am an amateur โ I dediced to become a self-taught researcher some years ago. You can read more about my personal reasons of why I'm working on this at my personal blog.
Besides my personal interests behind this work, there is a very precise goal that I have in mind. I want to create a digital assistant that's capable of understanding the software I use in my day-to-day, and I want it to help me build more software tools and help me with my digital tasks in general.
In order to arrive to that goal, I've been gathering resources, polishing ideas and developing experiments. We can divide those into a few major subfields, I'll explain each in more detail.
- ๐ Cognitive Architecture
- ๐ Technical Implementation
- ๐ Experiments
- ๐ World Building
- ๐ก Developmental Training
Cognitive Architecture
Being a software developer and designer, thinking in terms of architecture is second nature to me. Thus, it became obvious that this would be a crucial model to think about this question: What cognitive architecture is needed in order for a system to produce an experience of a world that overlaps with ours and is capable of being manually taught by us?
I try to answer that question by all means available to me โ introspection, drugs, meditation, trauma โ and by looking at the work of others such as Joscha Bach, Numenta, Daniel Everett, Eckhart Tolle, and more.
There have been more resources that I've studied but since this research vault is relatively recent, I don't have references to all those sources.
Another tool I came up with was to look at specific words that point to direct aspects of our experience and world that are necessary for useful communication with humans: โ Words for analysis.
Similar to the selected words for analysis, I have a set of concept files that I call ๐ Cognitive Mechanisms where each refers to a specific system that serves a function in a high-level sense. For example ๐งฉ Motivation, ๐งฉ Focus, or ๐งฉ Mirror neurons. As you'll notice, some of the mechanisms have nothing written on them. This means that the idea is at the "seed" stage โ it has been planted but it hasn't been hydrated yet.
Read the ๐ Cognitive Architecture document for more details.
Technical Implementation
Since my goal is to actually create a piece of software, it's important to also think of the technical limitations and substrate for implementing a cognitive architecture. I don't believe that deep learning will be a part of the technical implementation but I do think that it will be a tool when working on my experiments. The most developed concept right now is that of the ๐ Ego Cells which are a type of cellular automata.
There will obviously be more concepts and tools but I see them as appearing through experimentation rather than anticipating how the software will look like.
Read the ๐ Technical Implementation document for more details.
Experiments
The experiments I'm building have the purpose of helping me figure out the basic building blocks in all major topics of my work. You can take a look at all the experiments I've worked on or start with my first experiment: ๐ฌ Experiment 001a - Parsing Markdown with Cellular Automata.
One of the most important experiments that will definetly take a long time to work on is the experiment where I try to proof the hypothesis that it's possible to implement a system that can host an artificial mind that can be taught english to speak about its life and experience. That experience will obviously not overlap entirely with the human experience but there will be some small overlap. Language based communication is about finding symbols and references to talk about the shared experience with another being.
Read the ๐ Experiments document for more details.
World Building
One could say that my approach is that of the Embodied Cognition Theory. We humans are entirely defined by the world we live in โ from our physical composition to our human & animal experience. I believe we take that for granted.
Thus, in order to arrive at my goal of creating artificial minds, I need to be very intentional when it comes to designing the world they are going to live in and experience. It is important for them to have a real experience that's designed to overlap in some aspects with our own world and experience of it.
This overlap corresponds to the specific objects and experiences that both us and artificial minds can refer to about our worlds.
Read the ๐ World Building document for more details.
Developmental Training
As I wrote in another one of my blog posts, I don't think that pushing a ton of training data to a program will give me the result I want. We humans (and some other animals) for example, don't learn that way at all. We learn from our parents, school, etc and it takes a lot of time, in fact it takes about 1/4th of our lifetime to become independent adults in modern society. Learning as humans is a whole big topic in itself.
So when I say ๐ก Developmental Training I'm thinking about this question: How can we teach an artificial mind about their world so that it becomes skilled in surviving in it? This is a deep topic that will require tons of experimentation.
Final words
I'll repeat myself. I'm an amateur. If you find that what I'm saying makes sense, or not, please reach out. I'd love to chat with you. Oh, also let me know if you'd like to receive some kind of notification of when I publish something significant โ I'm still deciding about how to do that or if I should have a mailing list.
Thanks for reading this far,
Fernando Garcia.