Funk2: Trust Presentation online Movie, PDF, and Transcript


Funk2 Trust Presentation PDF


    
    
Morgan, B.;"Funk2: Causal Reflective Programming (Trust Presentation)";Research Presentation; Massachusetts Institute of Technology;2008 April

Funk2 Trust Presentation Media


    
    
Morgan, B.;"Funk2: Causal Reflective Programming";Research Presentation Movie; Massachusetts Institute of Technology;2008 April

Funk2 Trust Presentation Transcript


Slide 1: Funk2 Causal Reflection / Reflective Programming Language / Neural Models of Mind Project

    
    

Hi, my name is Bo Morgan. I'm working in the Responsive Environments Group under Joseph Paradiso. I'm working on a new programming language to study a form of human learning called credit assignment. What this language allows us to do as programmers of artificial intelligence systems is causal reflection. What this means is that the program keeps track of everything that is does. Programming languages that do this don't normally exist because they require a lot of memory in the computer system. Although, when you make failures or successes in your life, executing certain actions, this helps for you to think back through your memories of what you have done. This form of learning hasn't been pursued for 30 or 35 years and is inspired by Marvin Minsky. I'm working with Gerry Sussman on this work, which was his PhD 35 years ago. The artificial intelligence that I'm thinking about is very human, in the sense that I'm thinking of human brains and how this could be a help for understanding mental illnesses that we don't have artificial intelligence algorithms for yet. So, computational understanding of human learning would maybe help us to understand things like schitzophrenia and autism, things that we really don't have a clue because robots don't exhibit these mental illnesses yet.


Slide 2: Trustworthy Control Systems

    
    

So, basically, the theory is that you can build layers of computation if you have these sorts of memory traces left by the algorithm. So, typically, artificial intelligence algorithms deal with the physical world, their perceptions of the physical world and the motor control they can perform on that. So, that little puzzle piece down there is meant to be the physical world. Normal artificial intelligence algorithms written in contemporary languages operate in this first kind of cloud of resources here. Some of them are distributed processors, but basically, they don't remember what they have done in the past. What this allows us to do is add layers to this theory. Marvin Minsky has just written a book called The Emotion Machine, which has six of these layers for describing the many different ways that humans are reflective. I threw the word consciousness up there because that's a word that he throws around to use those ideas, so that's the grounding for that idea there.


Slide 3: Reflective Control Model

    
    

Specifically, what we can start to play with are recognizing faults in plans, faults in planning processes, faults in the knowledge representations that could be used in those planning processes, conflicts in the goals that we might give the computer to pursue for us. So, as we have a set of distributed resources that we want the computer to plan how to use, computers often make plans for these, or programmers will program plans for these computers to execute, which are then compiled into a set of scripts, which are very detailed lists of things that the computer should perform. Because we've kept track of everything that the computer has done, that whole compiling process including all of the assumptions and the memory and knowledge that was used to generate that fine sequence of commands is all kept track of. So, if any of those fine sequences of commands fails, we can trace it back to a faulty piece of knowledge.


Slide 4: Reliable Models of Self-Reflective Priorities

    
    

In terms of human reflection and understanding how this could help us to trust our understandings of other human beings, part of this theory involves switching resources, and so, we often rearrange goals ourselves when we are trying to pursue different types of activities. Someone may think of themselves as a student in one context, in which case the goals and their priorities and the way that they are managing their mental resources would be arranged in a very specific way. Whereas, if they are a mother or a boss in a completely different context, they can quickly rearrange their mental state, often this might require a few minutes or hours to get back into that state, but rearranging goal structures very quickly managing the otherwise conflicting sets of resources that would be needed. You can't do all of these things at the same time.


Slide 5: Recognition of Critical Patterns

    
    

People throw around the word reflection a lot. I'm going to go through some of the details of how I imagine this. This is inspired by a biological analogy, a spatial parallel processing analogy. You can think of this as a DNA strand. A normal computer program can be broken down into creating memory, reading from memory, and writing to memory. The CRW's are the nucleotides in a DNA sequence. These are laid out.


Slide 6: Recognition of Critical Patterns

    
    

You have a processor, which is like a normal computer, called a thread, which then runs along this sequence. This is like transcriptase. So, it is reading along this sequence of bytecode commands. This is what a normal A.I. algorithm does. The additional feature that I've added to this new language is that it keeps track of every single step that this new language, Funk2, performs.


Slide 7: Recognition of Critical Patterns

    
    

So, you get these causal trace histories. This should twirl off into a double helix, but I didn't have the graphics down.


Slide 8: Recognition of Critical Patterns

    
    

Once you have these causal trace histories, you can then start to build these layers of reflection. These are implemented by having critical patterns that can be always watching for things in the causal trace histories, that can look for, "Oh, this is a very encouraging, successful pattern, maybe we should devote more resources to this processor," or "Last time this pattern showed up, 10 minutes later, there was a screw-up in the system; we should look for that as a critical potential failure pattern."


Slide 9: Recognition of Critical Patterns

    
    

With these critics that are looking down from the next layer are associated codes and processes that could be executed as they match, so this requires hundreds of thousands of different parallel threads that could be executing simultaneously and watching one another---not necessarily in strict hierarchy, but in a sort of heterogenous system.


Slide 10: Responsible Software Learns Through Self-Reflection

    
    

We are applying this in a very human, social problem solving environment. These two robots are working together. They are speaking to one another in very simple terms. They have goal structures. They can infer one another's goal structures. So, what this language allows us to do is the recognition of problems in a control system that has been programmed by a human being, it works very well, but we can also have other algorithms that have been trained to look for the problems in that human-programmed, very good control system. We can then program reactions to those patterns that have been recognized in the human programmed control system. Then, we can also develop new forms of learning algorithms that can use these sorts of reflective traces. This form of learning, again, hasn't been studied for 35 years, as far as I can tell. I'm working with a few groups on the fourth floor studying the modern reinforcement learning methods, connecting this to the mathematics. Thank you.


λ

Blue%20Ribbon%20Online%20Free%20Speech%20Campaign