Marvin Minsky Biografia Artigo Frames Entrevista Exclusiva Susan Möller Ferreira Guilherme Osório Moreira Júlio César Narciso Luciano Ribeiro da Costa Marvin Minsky Suas pesquisas levaram a avanços teóricos e práticos em: inteligência artificial, psicologia cognitiva, redes neurais teoria das funções recursivas máquinas de Turing Marvin Minsky 09.ago.1927 Formação de Matemático Professor no Massachusetts Institute of Technology (MIT) - 1958 Laboratório de Inteligência Artificial do MIT (1959). Toshiba Professor of Media Arts and Science Marvin Minsky Pioneiro da robótica mecânica baseada em inteligência e telepresença Construiu a primeira tartaruga mecânica para o LOGO Construiu a primeira rede de aprendizagem neural (SNARC, 1951). Recebeu o Turing Award (1970) Alguns Trabalhos "Steps Towards Artificial Intelligence" (1959) analisou tudo o que existia sobre o assunto "Matter, Mind, and Models" (1963) tratou do problema de se fazer máquinas com autoconsciência “Perceptrons,” (1969) caracteriza as capacidades e limitações das máquinas de reconhecimentos de padrões e aprendizagem baseadas em redes neurais Alguns Trabalhos “A Framework for Representing Knowledge" (1974) ele criou um modelo de representação do conhecimento para muitos fenômenos em cognição, entendimento da linguagem, e percepção visual "The Society of Mind" (Sociedade da Mente, 1985), a qual combina insights da psicologia do desenvolvimento da criança e suas experiências com pesquisa em Inteligência Artifical. Alguns Trabalhos “The Emotion Machine” (in press) descreve os papéis dos sentimentos, metas, emoções e pensamentos conscientes, em termos de processos que motivam e regulam as atividades dentro das nossas mentes A Framework for Representing Knowledge Marvin Minsky [1974] MIT-AI Laboratory Memo 306, June, 1974. http://web.media.mit.edu/~minsky/ [email protected] Thinking always begins with suggestive but imperfect plans and images; these are progressively replaced by better–but usually still imperfect–ideas. Parte - Introdução Crítica inicial Trabalhos anteriores Idéia central dos Frames Here is the essence of the theory: When one encounters a new situation ... one selects from memory a structure called a Frame. A frame is a data-structure for representing a stereotyped situation, like being in a certain kind of living room, or going to a child's birthday party ... This is a remembered framework to be adapted to fit reality by changing details as necessary. Parte um - LOCAL AND GLOBAL THEORIES FOR VISION Visão e reconhecimento de imagens Visão simbólica. Enfrentamento de cenário Parte dois - LANGUAGE, UNDERSTANDING, AND SCENARIOS Linguística. Fábula Discurso e visão Novamente o cenário There was once a Wolf who saw a Lamb drinking at a river and wanted an excuse to eat it. For that purpose, even though he himself was upstream, he accused the Lamb of stirring up the water and keeping him from drinking Parte três - LEARNING, MEMORY, AND PARADIGMS Cenário Enfrentamento Acomodação Conhecimento Parte quatro - CONTROL Pensamento-Busca Entendimento-Instanciação Manipulação top-down ou lateral? Controle central ou local? Tributo a Fahlman - hierarquia The following essay was written by Scott Fahlman (in 1974 or 1973?), when a student at MIT. It is still one of the clearest images of how societies of mind might work. I have changed only a few terms Parte cinco - SPATIAL IMAGERY Orientação e posicionamento Frames globais e locais GSF !? ... I do not like the following model very much, but something of its sort seems needed ... Parte seis - Criticism of the Logistic Approach Abordagem Lógica Pontos de falha I here explain why I think that more "logical" approaches will not work. There have been serious attempts, from as far back as Aristotle, to represent common sense reasoning by a "logistic" system Idéia básica Situação nova => Frame => Adaptação Frame Estrutura estereotipada de informação Categoria de perguntas a fazer Instruções de uso, expectativas Organização hierárquica múltipla Valores default e demons Lógica inadequada Frames •Os quadros foram introduzidos por Marvin Minsky –“A Framework to Represent Knowledge” As aplicações propostas por Minsky: •análise de cenas, modelagem da percepção visual e compreensão de linguagem natural. Inspirados na forma como as pessoas resolvem problemas O artigo não propõe: •metodologia de implementação, nem definição formal do método. Frames e as linguagens de programação orientadas a objetos Desde 1975, diversos sistemas foram implementados baseados na idéia de quadros, e diversas definições formais foram propostas •O método de quadros dá origem às idéias que levaram à concepção das linguagens de programação orientadas a objetos •A ideia da hierarquia do frame é muito similar a ideia de hierarquias de classe encontrado em programação orientada a objeto. Características •Um frame é identificado por um nome e descreve um objeto complexo através de um conjunto de atributos •Um Sistema de Frames é um conjunto de frames organizados hierarquicamente. Classificação dos Frames • Construtores: definem a estrutura das informações para a base de conhecimentos • Frames instâncias: objetos do mundo real represantados na base de conhecimento Frames: atributos (slots) Frames Possuem pelo menos dois atributos: Nome Ako ou is-a A fim de melhorar a estruturação (hierarquia), privilegiam dois tipos de relações: ako: relação entre classe e sub-classe is-a: relação entre classe e instância. Cada atributo aponta para um outro frame ou para um tipo primitivo, ex. string; consiste em um conjunto de facetas (atributos de atributos). Exemplo: Classes e Instâncias Animal faz comer Pássaro Ako Babalu é-um Comer Mamífero Ako tem Cão Ako Comer pêlos Facetas Descrevem restrições simultâneas para os valores que um“slot” possa ter. Propriedades Valor: especifica o único valor possível. Valor default: especifica o valor assumido pelo atributo caso não haja nenhuma informação a esse respeito. Tipo: indica o tipo de dado do valor. Domínio: descreve os valores possíveis para o atributo. Procedimentos Demons como os triggers nos bancos de dados Uma Representação Abstrata de um Frame < Nome do Frame> < atributo1 > < faceta1 >: valor < atributo2 > < atributo3 > < faceta1 >: valor < faceta2 >: valor < faceta3 >: valor < faceta1 >: valor < faceta2 >: valor < faceta3 >: valor Procedimentos Demons Definição São procedimentos anexados aos frames, disparados por consultas ou atualizações. Podem inferir valores para atributos a partir de valores de outros atributos especificados anteriormente em qualquer frame do sistema. Procedimentos Demons: when-requested quando o valor é pedido mas não existe ainda when-read quando valor é lido when-written quando valor é modificado when-deleted quando o valor é eliminado Exemplo: Procedimentos Demons Ako: Lugar-coberto Cômodo Atributo Default Tipo Se-necessário Nº de paredes 4 número Formato retangular símbolo Altura 3 número Área número número Volume Área * Altura Ako Sala Ako: Cômodo Atributo Mobiliário Finalidade Área Default (sofá,mesa,cadeiras) convivência 25 Tipo lista de símbolos símbolo número Herança de Propriedades Três tipos de informações podem ser de herdadas valor (= POO) procedimento (= POO) valor default Idéia: herdar das classes superiores em caso de conflito, vale a informação mais específica Existem dois tipos de herança: Herança simples existe uma única super-classe para cada classe Herança múltipla uma classe pode ter mais de uma super-classe, podendo herdar propriedades ao longo de diversos caminhos diferentes (= o caos) Frames: Exemplo Nós iremos iniciar com um simples pedaço de informação: Há uma categoria de coisas chamada carros. Dada esta informação, nós podemos iniciar a construção de um frame: Nome: carro Ako: coisas Frame Carro Mais Informação: um carro tem 4 rodas, é movido por um motor, e roda com gasolina ou alcool. Nós podemos agora adicionar 3 slots para o frame. O último dos três tem uma restrição ao invés de um valor específico . “um carro tem 4 rodas, é movido por um motor que roda com gasolina ou álcool.” Nome: carro Nome: Ako: coisas Slots: Valor: Rodas 4 Movido por Motor combustível ? Restrições: gasolina or álcool carro subclasse_de coisas com rodas: 4, movido_por: motor, combustível: [valor: desconhecido, tipo: [gasolina,álcool]]. Frame Carro Mais informação: aqui é um tipo particular de carro chamado volkswagen (VW), produzido na Alemanha. Nós podemos adicionar um segundo frame para nosso sistema, com um slot. Nós não necessitamos repetir os slots e valores do frame anterior: eles irã ser herdados. “Há um tipo particular de carro chamado VW, produzido na Alemanha.” Nome: VW Ako: carro Slots: Nome: Produzido em Valor: Alemanha ‘VW’ subclasse_de carro com Restrições: produzido_em:‘Alem anha’. Car Frames Mais Informações: Há um tipo particular de VW chamado Golf, no qual tem um teto solar. Nós podemos adicionar um terceiro frame para nosso sistema , com um slot. Uma vez de novo, nós não repetimos os slots nos frames anteriores, porque eles serão herdados. “Há um tipo particular de VW chamado Golf, no qual tem teto solar.” Nome: Golf Ako: VW Slots: Nome: teto Valor: solar Restrições: ‘Golf’ subclasse_de VW com teto: solar. Frame Carro Mais informação: Há um tipo particular de Golf chamado TDi, no qual roda com gasolina. Um Tdi tem 4 cilindros e um motor com capacidade de 1.8 litros. Nós podemos adicionar o quarto frame para nosso sistema, com 3 slots. Um dos slots (combustível) já estava no sistema, mas aparece aqui por que ele agora tem um valor específico ao invés de uma restrição. “Há um tipo particular de Golf chamado Tdi, no qual roda com álcool, tem 4 cilindros e tem um motor de 1.8 litros.” Nome: TDi Nome: Ako: Slots: Valor: Combustível gasolina Capacidade Do motor 1.8 litros cilindros 4 Golf Restrições: ‘TDi’ subclasse_do ‘Golf’ com combustível: gasolina, Capacidade do motor:1.8, cilindros: 4. Frame Carro Mais Informação: meu carro, chamado C637SRK, é um Golf Tdi. Ele não tem teto solar. Nós podemos adicionar um quinto frame para nosso sistema com dois slots. Ao contrário dos frames anteriores, este é frame de instancia. Um dos slots (teto) já estava no sistema , mas aparece aqui porque o valor contradiz com o valor no qual seria herdado. “Há um carro chamado C637SRK no qual é uma instancia de um Golf TDi.” Nome: C637SRK É um: TDi Slots: Nome: Valor: Propietário Luciano Teto Não-teto solar Restrições: ‘C637SRK’ instancia_de ‘TDi’ com propietário: Luciano, teto: não teto solar. Sistema de Frames (Herança simples): Coisas ... Golf Ako: VW Teto: solar Carro Ako: Coisas Rodas: 4 Movido por: Motor Combustível:? [gasolina ou álcool] VW Ako: Carro Produzido em: Alemanha TDi Ako: Golf Combustível: álcool Capacidade do motor: 1.8 litros cilindros 4 C637SRK É um: TDi Propietário: Luciano Teto: Não-teto solar Sistema de Frames (Herança múltipla): Toyota Ako: Carro Produzido em: Japao Eletrico Ako: Motor … Prius Ako: Toyota Movido por: Híbrido Ako: Eletrico, Combustão … G587THG É um: Prius Propietário: Guilherme Cor: Azul Combustão … Ako: Motor Linguagens orientadas a frames • KRL (Knowledge Representation Language), • KL-ONE (Knowledge Representation ONE), • FRL-0 (Frame Representation Language 0), etc. Também é possível implementar frames utilizando Lisp ou Prolog. Entrevista Exclusiva