Padrões bonitinhos.

Inteligência Artificial: o que é aprendizado de máquina?

Por
29/1/15, 16h07 9 min 18 comentários

Nota do editor: O Gabriel é leitor das antigas e fiquei muito feliz quando ele mandou um e-mail perguntando se tinha interesse em publicar este texto. Além de sempre aparecer nos comentários do Manual, ele é programador, graduado em Sistemas de Informação e mestrando em Ingeligência Artificial. Siga-o no Twitter e leia outros textos dele no Medium.


Stephen Hawking e Stuart Russel alertaram as pessoas sobre os perigos do avanço da Inteligência Artificial (IA). O temor é que os avanços estão ocorrendo muito rapidamente e não estamos preocupados o bastante com as implicações disso:

Os benefícios potenciais são grandes; tudo que a civilização tem a oferecer é produto da inteligência humana; nós não podemos prever o que poderemos atingir quando essa inteligência é amplificada pelas ferramentas que a IA pode prover, mas erradicação da guerra, doença e pobreza seriam as prioridades na lista de qualquer um. O sucesso na criação da IA seria o maior evento da história humana. Infelizmente, ele pode ser o último, a não ser que saibamos como evitar os riscos.

Apesar de ser tentador discutir a dominação pelas máquinas, esse é um problema a longo prazo. Acho que estamos preocupados até demais com ele e menos do que deveríamos com os mais imediatos. Hoje e a curto prazo, os possíveis problemas trazidos pela IA são menos apocalípticos.

Aprendizado de Máquina

É difícil definir sucintamente o que é IA. No famoso livro Inteligência Artificial, utilizado como bibliografia básica em várias universidades, os autores gastam 30 páginas discutindo o assunto. Há diversas abordagens diferentes de IA para solucionar uma grande variedade de problemas. Uma dessas abordagens é o aprendizado de máquina, uma das áreas mais relevantes dentro da IA e que será analisada a seguir.

Os algoritmos de aprendizado de máquina procuram padrões dentro de um conjunto de dados. Esses algoritmos existem há bastante tempo, mas nunca houve uma quantidade tão grande de dados digitais disponíveis para alimentar esses algoritmos como hoje graças a dois fatores: a informatização em massa e o surgimento da Internet.

Na época da mídia física, as possibilidades de recomendação automática eram bem limitadas: a sua biblioteca de CDs/fitas/LPs, por exemplo, era inacessível aos algoritmos. A Amazon poderia usar as suas compras de discos e comparar com as de outras pessoas, mas todos os discos que você ganhou de presente ou comprou em outro lugar continuariam inacessíveis a ela.

A venda digital de músicas aumentou as possibilidades, tanto que a Apple tentou emplacar o Genius e até a rede social Ping na iTunes Store. Não deu certo, mas não por falta de dados brutos. Assim, foram os serviços de streaming que realmente cumpriram a promessa do aprendizado de máquina aplicado à música.

Esses serviços (Spotify, Rdio, Pandora) conhecem todas as suas bibliotecas, playlists e quem você segue. Mais importante ainda, eles têm essas informações de vários outros usuários, podendo comparar o seu comportamento com o dos demais. Muitas outras áreas tiveram esse boom de informações disponíveis como as músicas, o que fez aumentar o interesse da academia e do mercado nas técnicas de aprendizado de máquina.

Redes neurais

Existem vários algoritmos de aprendizado de máquina. Um dos mais famosos são as chamadas redes neurais. A ideia das redes neurais é mimetizar o comportamento de nosso cérebro, pois há uma série de atividades melhor desempenhadas por pessoas do que por computadores.

Para uma criança é trivial olhar duas imagens distintas contendo uma laranja e identificar a existência da laranja em ambas, por exemplo. Já para um computador, a não ser que as imagens sejam exatamente iguais, é um problema longe de ser trivial verificar se existe uma laranja na imagem. Se as pessoas conseguem fazer essa tarefa com tanta facilidade, por que não tentar imitar o nosso sistema cognitivo nos algoritmos?

Um punhado de laranjas lado a lado.
Foto: free photos/Flickr.

Para entender como os algoritmos das redes neurais tentam imitar o nosso cérebro é requisito ter alguma bagagem em programação e matemática. Além disso, seria necessário um artigo razoavelmente extenso para esmiuçar os detalhes. Entretanto, é fácil explicar qual a utilidade delas. Um único tipo de rede neural é capaz de realizar tarefas complexas de classificação completamente distintas entre si: o algoritmo que identifica se há laranjas em fotos é o mesmo que identifica se uma notícia deve ser colocada na seção de esportes ou na de ciência, por exemplo.

A diferença de uma rede neural para outra é o processo de treinamento. A partir dos exemplos mostrados a ela, a rede neural vai ajustando seus parâmetros de acordo com as respostas. Pensando no problema de identificar laranjas: se a foto tiver uma laranja e a rede neural disser que não há, ela alterará seus parâmetros para tentar classificar corretamente os próximos exemplos. Ou seja, a rede neural regula as “sinapses” do “cérebro” para classificar novos exemplos automaticamente. Para treinar a rede neural com o intuito de classificar notícias, ao invés de imagens contendo laranjas, devem ser exibidos exemplos de notícias de cada categoria para a rede neural.

Há outros algoritmos para classificação, mas baseados em princípios de funcionamento distintos que nada têm a ver com o conceito de neurônios e cérebro. Por exemplo, algoritmos de classificação bayesianos baseados em cálculo de probabilidades. O algoritmo procura solucionar a seguinte equação:

arg max c P(c|o)

Traduzindo da matemática para o português: encontrar a classe c mais provável (arg max c) dado o que foi observado (P(c|o)). Para classificar notícias em categorias, o objetivo do algoritmo poderia ser interpretado da seguinte forma: dadas as palavras encontradas no texto da notícia, definir se é mais provável pertencer a classe de notícias de esportes ou de ciência.

Apesar de usar um conceito completamente diferente das redes neurais, o classificador estatístico tem o mesmo objetivo, ou seja, a partir de um conjunto de exemplos classificados, o algoritmo é treinado para fazer isso automaticamente. Ambos os algoritmos são considerados como aprendizado de máquina.

Além da tarefa de classificação, há algoritmos que resolvem outros tipos de problemas. O famoso cientista Andrew Ng trocou o Google pelo Baidu e disse que focará no aprendizado não supervisionado. Nesse tipo de técnica, a ideia é que o algoritmo identifique grupos sem que ninguém mostre exemplos de classes. Por exemplo, imagine que o Facebook submeta os artistas curtidos de cada usuário para um algoritmo de agrupamento não supervisionado. Ele provavelmente criará grupos de pessoas que gostam de determinados gêneros musicais.

As técnicas de aprendizado de máquina passaram por notáveis melhorias nos últimos anos, mas o mais impressionante é como elas estão presentes de diversas formas em nosso dia a dia. Pela flexibilidade desses algoritmos com funcionamento baseado em informações estatísticas, eles estão sendo utilizados para muitas finalidades, inclusive algumas menos óbvias que as citadas.

Aprendizado de máquina é pensar?

Alan Turing aos 16 anos.
Alan Turing. Foto: Sherborne School/AFP/Getty Images.

O computador que passou no teste de Turing gerou burburinho na Internet, mas não é algo tão impressionante do ponto de vista técnico. Inclusive, outros computadores já tinham passado em testes similares. É um teste com validade prática para aplicações como chatbots e assistentes como a Siri e a Cortana, mas não está muito relacionado com o avanço em outras áreas, como o reconhecimento de imagens discutido anteriormente. Por isso, muitos cientistas simplesmente não estão preocupados em passar nesse teste.

O algoritmo que passa no teste de Turing não conseguirá classificar notícias em classes, muito menos identificar laranjas em fotos. Ele está focado em enganar um ser humano, não em pensar como um ser humano completo que conseguiria fazer essas duas tarefas e muitas outras. Isso nos leva a outro questionamento: quando a máquina estará realmente pensando?

Alguns acham que é uma impossibilidade o computador pensar, independentemente do quanto eles avancem, pois um computador não é um ser consciente. Um computador, para ser pensante, deveria conseguir concluir a famosa frase Descartes: “Penso, logo existo.” Outros, como eu, acham isso irrelevante: o computador não precisa funcionar como cérbero humano, mas ser inteligente à sua própria maneira. O famoso cientista da computação Edsger Dikjstra disse que “a questão de saber se as máquinas podem pensar (…) é tão relevante como a questão se os submarinos sabem nadar”. Não importa se é um modelo estatístico ou uma rede neural e sim as competências do computador. Se ele puder fazer tudo com um ser humano, ele está pensando.

Não importa qual seja a sua visão sobre o problema, a ideia de um computador pensante é para depois. Os algoritmos ainda estão sendo aplicados com o objetivo de resolver problemas específicos, como os descritos nesse texto, e não com um caráter generalista de reproduzir as competências de um ser humano completo no computador.

Lendo as notícias, pode-se ter a falsa sensação que a IA está próxima da singularidade. Uma manchete “Rede neural com aprendizado profundo sabe identificar rosto de pessoas em fotos” soa muito mais interessante do que “Máquina de Suporte de Vetores com função kernel não-linear identifica rosto de pessoas em fotos”. Entretanto, são feitos mais ou menos equivalentes que pouco têm a ver com a ideia de construir um computador pensante.

Questões filosóficas à parte, as tecnologias de IA me parecem muito limitadas no atual estágio para que nos preocupemos com uma versão real de Matrix. Entretanto, isso não significa que não devemos nos preocupar com a disseminação do aprendizado de máquina e outras áreas da Inteligência Artificial. Mas esse é um assunto que fica para os próximos textos.

Imagem do topo: Fabricio Marques.

  • Mateus Azevedo

    Já tinha lido outras opiniões sobre esse assunto e acho muito interessante esse debate sobre IA, se em algum momento máquinas serão, de fato, inteligentes.

    Minha opinião (de leigo no assunto), é que máquinas só serão inteligentes mesmo quando não necessitarem que algorítmos sejam programados para cada tarefa “específica”.
    Imagino algo como uma máquina saber classificar notícias e identificar laranjas (mantendo os exemplos do texto), mas que também aprenda a fazer uma limonada ou cortar legumes. Ou qualquer outra coisa que um ser humano pode aprender sem a necessidade de ser “reprogramada”.

    • asantos77.df

      Tem razão, Mateus ! Este super algoritmo que é reprogramado automaticamente já existe e se chama código genético. Então , a chave pra evolução da IA esta profundamente arraigada na compreensão do que é a vida. Nossa ciência baseada profundamente em títulos e não em realizações é a culpada por acharmos que redes sociais são o auge da tecnologia. O pedantismo dos físicos em glorificar a mecânica quântica e afirmar que Einstein e Newton estavam equivocados também se mostra uma barreira quase intransponível. O fato, é que a mecânica quântica foi criada por 6 europeus antes da era da informática. Agora , se pergunte…. Uma teoria que almeja explicar o tudo e que ao mesmo tempo não consegue explicar porque criamos toda a tecnologia que nos cerca só pode está equivocada em algum ponto. Talvez, aceitar a incerteza tenha sido o calcanhar de Aquiles da Mecânica Quântica. É ridículo ver os físicos tentando construir computadores ” Quânticos” que sejam funcionais e comerciais. E ainda, mais ridículo é ver os engenheiros se omitirem ao não avisarem aos ingênuos físicos que é impossível construir um código genético baseado tão somente na interpretação de Coppenhagen.

  • Chicão

    Show Ghedin. Confesso que no inicio fiquei com receio de vc ser levado pelos pensamentos desses filosofos que não frequentaram as aulas de calculo 1, 2, álgebra linear e geometria analitica, bem como as aulas de IA.
    Mas nos últimos parágrafos vc deu o rumo certo. E é exatamente esse rumo que era falado nos laboratórios do curso de TI que me formei.

    Fiquei curioso quanto ao rapaz que trocou google pelo baidu. Guardei para ler depois.

    No texto tem uma palavra repetida: “padrões dentro dentro de”

    • Opa, corrigi o “dentro” duplicado. Valeu!

      E créditos a quem os merece: o texto é do Gabriel Arruda. Daqui a pouco ele aparece aqui para debatê-lo contigo :-)

      PS sobre teu e-mail sem endereço de retorno: vi o tal Vivaldi sim, mas preguiiiiça de baixar navegador em alpha e que usa o mesmo motor do Chrome. Se ninguém usa o Opera, quem usará um “fork” dele?

      • Chicão

        Opa. Eu realmente não tinha visto o nome do Gabriel. Obrigado.
        Sim. Faz sentido. Eu mesmo baixei e não instalei hehe.
        No mais, o Vivaldi é uma mistura de fork’s mesmo.

    • Ainda bem que você gostou. :)

      A ideia era explicar de forma superficial aprendizado de máquina, só para entender o conceito. Estranhamente, não achei nenhum material desses para curiosos, mas sempre pessoas discutindo direto a sociologia/filosofia da questão.

  • Juan Lourenço

    Bem interessante e realmente acho que estamos longes de máquinas com pensamento abstrato o suficiente pra criar coisas do nada, mas é certo que, mesmo seguindo algumas regras pré-estabelecidas, elas podem aprender coisas arranca-cargos, como projetar edifícios, desenhar peças mais eficientes para a indústria e por aí vai. Um futuro em que elas nos dominam, não sei, mas que elas podem tomar nosso lugar em quase todo tipo de função, podem sim.

    • Taylan Branco Meurer

      Criar coisas do nada, ainda não estamos certos se isso é possível. Depende bastante do que você entende como nada, coisas e criar.

  • Marno

    Daqueles posts que vão para o Pocket

  • Luis Henrique

    Essa matéria me fez parar para pensar como é que “escutamos” a voz do nosso pensamento. É algo bem abstrato, não? E as musiquinhas que tocam na cabeça, como é possível sintetizá-las nos neurônios?

  • Witaro

    Bacana, Gabriel. Há um aspecto em certas técnicas (como a das redes neurais) que vale a pena ressaltar, ainda que de forma beeem simplista. Nessa linha de técnicas (conhecidas tbm como conexionistas) nós delegamos a um processo automatizado a construção de caminhos para resolver um problema, ou seja, damos uma espécie de autonomia para a máquina criar “raciocínios válidos” alinhados com aquilo que queremos que ela consiga classificar/detectar (o “problema”). Não programamos esses “raciocínios válidos”, apenas um equivalente “matemático” a uma rede de neurônios que individualmente são bem simples. Nestes neurônios artificiais valores internos são modificados através de uma bateria de casos/exemplos fornecidos com dados de entradas (por exemplo, fotos) e saídas desejadas (“há laranja”, “não há laranja”). Não programamos explicitamente nada, ou seja, não programamos algo como “se existir um conjunto de pixels da cor laranja então há uma laranja”. Deixamos a rede e o processo de treinamento criarem conexões internas não programadas e desconhecidas (caixa preta) que consigam detectar bem padrões outrora “treinados”. Delegar a aprendizagem ao invés de tentar programar aquilo que imaginamos aprender (nossos “raciocínios humanos”) é algo como, numa versão simplista, dar um pouco de livre arbítrio para as máquinas. E se é dando um pouco de “autonomia” (menos controle nosso) que conseguimos melhores resultados dessas “inteligências”, não é de se estranhar que muitos acreditem que a mítica “história” de criatura se rebelando contra criador possa se repetir aqui. Projetamos(*) a nós mesmos nessas construções que denominamos “artificiais”, mas no fundo tememos que nos imitem para além daquilo que temos de bom. Esses medos falam mais de quem somos hoje do que sobre o futuro da I.A. (embora seja bom ficar atento sim, hehe).

    (*) “Projetamos”, no sentido de fazermos projeção no sentido psicológico, ou seja, de nos vermos inconscientemente espelhados em alguém/algo. Deixei a palavra propositalmente ambígua nessa forma com o sentido alternativo de “criarmos um projeto/design”. Afinal, ironicamente pode-se dizer que estamos brincando de criar algo à nossa imagem e semelhança…

    • Perfeito: a ideia é realmente análoga, meu problema com isso é que os modelos conexionistas não são assim tão distintos de outros também baseados em representação vetorial que fazem o mesmo tipo de mágica saindo da caixa preta (SVM). Em outras palavras, apenas acho que os nomes pomposos soam de forma diferente para os leigos.

    • asantos77.df

      Por que construímos máquinas ? Será que não se deve ao fato de o triangulo de pascal ser uma máquina perfeita com entrada, saída, memoria, processamento, nascimento e morte ? Coloque a Teoria da informação e a termodinâmica trabalhando juntas e você terá o neurônio com entrada ilimitada tão sonhado pela IA muito similar ao cérebro humano. Será que toda a nossa ciência não foram meras tentativas de construir tal sistema ?

  • Gostei da contraposição com o cogito cartesiano (que define a criação do sujeito moderno) com a posição de pensamento do Edsger Dikjstra (Se ele puder fazer tudo com um ser humano, ele está pensando). Eu parei para pensar na seguinte pergunta: como é que vou entender a cognoscibilidade de uma IA onde ela, por exemplo, inicie com redes neurais ou qualquer outro modelo mimético estabelecido de raciocínio na máquina e acabe criando uma forma própria de pensar? Vou um pouquinho além: e se essa IA tenha criado para si uma forma própria de pensar que nenhum humano seria capaz?

    • Acredito que não entenderemos. Atualmente, já é muito difícil para um arquiteto identificar em modelos espaciais, que representam os dados em altas dimensões (redes neurais inclusive), que informação o algoritmo está usando para dar as respostas.

      Se hoje, que desempenha funções simples, não existe uma percepção clara do que ocorre…imagine quando ele fizer coisas realmente complexas.

  • Pingback: Como a Inteligência Artificial pode poupar tempo e ajudar seu e-commerce -()

  • Pingback: Como a Inteligência Artificial pode poupar tempo e ajudar seu e-commerce - Caderno de estudo TI()

  • Pingback: Como o leitor enxerga o Manual do Usuário()