Aprendizado de máquina e redes neurais - página 63

 

5 empresas de IA que estão moldando o futuro em 2023 | Inteligência artificial



5 empresas de IA que estão moldando o futuro em 2023 | Inteligência artificial

Prepare-se para se surpreender enquanto mergulhamos no mundo dos maiores jogadores do jogo de IA. Esses gigantes da tecnologia fizeram avanços inovadores que vão te surpreender.

Vamos começar com o DeepMind, um importante laboratório de pesquisa de IA com sede em Londres, Reino Unido. Desde a sua criação em 2010 e subsequente aquisição pela Alphabet (anteriormente Google) em 2014, a DeepMind alcançou feitos impressionantes em IA. Eles criaram o AlphaGo, o primeiro programa de computador a derrotar um jogador humano profissional de Go. Eles expandiram esse sucesso com o AlphaZero, que aprendeu a jogar vários jogos, incluindo xadrez e shogi, sem exemplos humanos. Seu progresso culminou no MuZero, outra versão do AlphaZero que dominou os jogos do Atari sem aprender as regras. Essas conquistas impulsionaram a DeepMind a novos patamares de reconhecimento e admiração na indústria.

Mas o fundador, Demis Hassabis, não parou por aí. Ele assumiu o desafio de prever estruturas de proteínas, uma das áreas mais desafiadoras da biologia. O modelo AlphaFold AI da DeepMind revolucionou esse campo, gerando mais de 200 milhões de previsões de proteínas em apenas alguns meses, um salto significativo em relação às 180.000 previsões produzidas nos 50 anos anteriores. Considerando o número astronômico de resultados possíveis para estruturas de proteínas, essa conquista é realmente incrível. O AlphaFold também acelerou a descoberta de medicamentos, principalmente durante a recente crise global.

A DeepMind também desenvolveu o GATO, uma IA geral capaz de realizar uma ampla gama de tarefas, desde dialogar e jogar videogames até controlar um braço robótico. Sua visão vai além das capacidades atuais de IA, visando sistemas que possam raciocinar, planejar, aprender e se comunicar como humanos, se não superá-los.

Passando para o Google, esta empresa é uma força formidável em IA. Com seus vastos investimentos em projetos de pesquisa e uma extensa lista de equipes de IA espalhadas por suas divisões, o Google sempre faz avanços inovadores no campo. O Google Brain, uma de suas renomadas equipes de IA, desenvolveu o modelo Transformer em 2017. Esse modelo, um divisor de águas no aprendizado profundo, tem sido fundamental em chatbots, geradores de imagens, direção autônoma e até mesmo nos resultados de pesquisa do Google. Os aplicativos de IA do Google são onipresentes, do Google Translate e Google Maps à detecção de spam e geração de vídeo.

A OpenAI é outro jogador importante no cenário da IA. Com uma linha estelar de fundadores, incluindo Elon Musk e Peter Thiel, a OpenAI lançou modelos de linguagem impressionantes como o GPT-3 e desenvolveu um agente de IA que derrotou os campeões mundiais do Dota 2. Seus projetos, como o Universe e o agente de IA brincando de esconde-esconde, demonstram comportamentos emergentes e fornecem insights sobre o desenvolvimento de sistemas AGI alinhados com valores humanos.

A Microsoft, uma gigante da tecnologia com seu próprio laboratório de IA, possui aplicativos de IA integrados a vários produtos e serviços. Eles fizeram progressos significativos em áreas como reconhecimento facial, assistentes virtuais e conversão de manuscrito para fonte do computador. A parceria da Microsoft com a OpenAI e seu investimento de US$ 1 bilhão na empresa demonstram ainda mais seu compromisso com a inovação em IA.

Menções honrosas vão para Amazon, Apple, Tesla e Nvidia, cada uma fazendo contribuições significativas para o espaço de IA. Os serviços de IA da Amazon, como Alexa e recomendações personalizadas de produtos, tornaram-se nomes familiares. Os recursos de reconhecimento facial e Siri da Apple, os carros autônomos da Tesla e as GPUs da Nvidia que estão revolucionando o desenvolvimento de IA são conquistas notáveis.

Finalmente, Meta (anteriormente Facebook) tem uma ala de IA dedicada, Meta AI, liderada por Yann LeCun. Suas aplicações de produtos de poder de IA como Facebook e Instagram, com investimentos recentes no metaverso. A Meta está usando IA para criar versões digitais realistas de objetos do mundo real para o metaverso. Eles também desenvolveram modelos de IA que podem converter ondas cerebrais em palavras, abrindo caminho para a tecnologia de leitura da mente.

CICERO é um impressionante agente de IA desenvolvido pelo laboratório de IA da Meta que provou sua proeza estratégica no jogo da Diplomacia. Este clássico jogo de tabuleiro exige que os jogadores negociem e formem alianças enquanto elaboram estratégias para atingir seus objetivos. CICERO dominou as complexidades do jogo e superou consistentemente os jogadores humanos.

A divisão AI da Meta também fez avanços significativos no processamento de linguagem natural (NLP). Eles desenvolveram modelos de linguagem de última geração que potencializam os chatbots e assistentes virtuais em suas plataformas. Esses modelos podem entender e gerar texto semelhante ao humano, facilitando interações mais naturais e envolventes com os usuários.

Além disso, a Meta tem investido ativamente em pesquisa de visão computacional. Seus algoritmos de IA são capazes de reconhecer e compreender imagens e vídeos, permitindo recursos como marcação automática de fotos e reconhecimento de objetos em aplicativos de realidade aumentada. O objetivo da Meta é aprimorar a experiência visual dos usuários, permitindo que eles integrem perfeitamente os mundos físico e digital.

Além de seus avanços em IA, a Meta também tem investido fortemente em tecnologias de realidade virtual e aumentada. Sua divisão Oculus trouxe experiências de realidade virtual para o mainstream, fornecendo jogos imersivos, interação social e até aplicativos educacionais. Meta prevê um futuro onde as pessoas podem se conectar e interagir em espaços virtuais, confundindo as fronteiras entre os mundos real e virtual.

Como uma das maiores empresas de mídia social do mundo, a Meta tem acesso a grandes quantidades de dados de usuários. Eles utilizam técnicas de IA para analisar esses dados e personalizar a experiência do usuário. Desde a recomendação de conteúdo adaptado aos interesses individuais até o fornecimento de anúncios direcionados, a Meta utiliza a IA para otimizar o engajamento e aumentar a satisfação do usuário.

É importante observar que, embora a Meta e outras gigantes da tecnologia tenham feito progressos notáveis em IA, há discussões e preocupações em andamento sobre privacidade de dados, vieses algorítmicos e as implicações éticas da IA. Essas questões destacam a necessidade de desenvolvimento e regulamentação responsável da IA para garantir que a tecnologia seja usada de forma a beneficiar a sociedade como um todo.

Concluindo, a Meta, juntamente com outros grandes players como DeepMind, Google, OpenAI, Microsoft e Amazon, tem estado na vanguarda dos avanços da IA. Por meio de seus laboratórios de pesquisa e equipes dedicadas, eles desenvolveram tecnologias de ponta, como modelos avançados de linguagem, sistemas de visão computacional e experiências de realidade virtual. Embora esses desenvolvimentos tragam possibilidades empolgantes, é crucial enfrentar os desafios éticos e garantir que a IA seja aproveitada para o benefício da humanidade. O futuro da IA possui um imenso potencial, e esses gigantes da tecnologia continuarão a moldar o cenário da inteligência artificial nos próximos anos.

5 AI Companies that are Shaping the Future in 2023 | Artificial Intelligence
5 AI Companies that are Shaping the Future in 2023 | Artificial Intelligence
  • 2023.01.12
  • www.youtube.com
Hello Beyonders!We discuss the top 5 most influential AI labs in the industry. The list is not purposefully presented in a specific order. These companies ha...
 

Como usar o ChatGPT como uma ferramenta poderosa para programação



Como usar o ChatGPT como uma ferramenta poderosa para programação

Neste vídeo, exploraremos a funcionalidade do ChatGPT e como os programadores podem utilizar esta ferramenta. Embora o ChatGPT seja um conceito familiar para muitos, é essencialmente uma tecnologia de inteligência artificial que permite uma conversa interativa, semelhante a uma conversa com outra pessoa. Embora tenha diversas aplicações além da programação, vamos nos concentrar principalmente em seu aspecto de programação neste vídeo. Especificamente, exploraremos como o ChatGPT pode nos ajudar a escrever código, otimizar código, explicar trechos de código, converter entre diferentes linguagens de programação, gerar ideias de projetos e ajudar em tarefas tediosas, como escrever testes de unidade e comentar código.

Tem havido algum debate sobre se os programadores devem confiar em ferramentas como o ChatGPT, pois nem sempre fornecem resultados precisos. No entanto, através deste vídeo, vamos testemunhar a utilidade do ChatGPT e porque é crucial aprendermos a utilizar essas ferramentas, que sem dúvida continuarão a melhorar no futuro. Assim como a capacidade de pesquisar efetivamente no Google se tornou uma habilidade valiosa, interagir com essa nova onda de ferramentas de IA também está se tornando uma habilidade essencial que aprimora o desenvolvimento de código e a produtividade.

Agora, vamos nos aprofundar na aplicação prática do ChatGPT. Para começar, abri uma instância do ChatGPT no meu navegador. Se você nunca usou antes, é fácil começar. Basta visitar o site, criar uma conta e pronto. Fornecerei um link para a página deles na seção de descrição abaixo, onde você pode acessar esta ferramenta. Embora uma versão gratuita esteja disponível, também há uma versão paga que oferece benefícios adicionais, sobre os quais você pode aprender no site deles. Atualmente, estou usando a versão paga, que me dá acesso a mais tempo de atividade e à versão mais recente, ChatGPT-4. No entanto, também testei o tutorial usando o ChatGPT-3 e não observei uma diferença significativa na saída.

Ao interagir com o ChatGPT, podemos nos comunicar como se estivéssemos conversando com outra pessoa. Não há consultas específicas ou formatos predefinidos envolvidos. Por exemplo, se quisermos realizar uma tarefa simples como fazer um loop de 1 a 10 e imprimir cada número, podemos expressá-lo naturalmente. Demonstrarei isso solicitando ao ChatGPT que escreva um script Python que atenda aos nossos requisitos. Vamos executá-lo e observar a saída.

Como podemos ver, o ChatGPT demora um pouco para processar a solicitação, mas eventualmente gera o script Python desejado. A saída inclui o loop for e a instrução print, acompanhada de detalhes explicativos. Esse recurso torna o ChatGPT uma excelente ferramenta de aprendizado. Ele não apenas fornece o código que pode ser facilmente copiado, mas também explica a funcionalidade para quem é novo em programação. Esclarece o uso da função range e ainda destaca que o valor stop é exclusivo, gerando números de 1 a 10 ao invés de 1 a 11. Essa capacidade de comunicar nossos requisitos em linguagem simples e receber o código correspondente explicando seu funcionamento é valiosa .

No entanto, o exemplo mencionado acima é bastante simples. O ChatGPT pode lidar com solicitações de código mais complexas. Por exemplo, imagine que queremos escrever um script que aceite uma entrada de senha de um usuário, faça o hash da senha usando um sal e, em seguida, imprima a senha com hash. Esta tarefa pode exigir pesquisa e esforço de alguém não familiarizado com o conceito. Vamos ver se o ChatGPT pode nos ajudar escrevendo o código. Vou fornecer o prompt e executá-lo para obter a saída.

Ao examinar o código gerado, podemos ver que o ChatGPT incorpora o módulo hashlib da biblioteca padrão Python. Ele apresenta o script, demonstrando como fazer o hash da senha usando vários algoritmos e gerar um salt usando o módulo os.urandom. Após o hash da senha, ele imprime o valor do hash.

Se observarmos a saída do prompt de conversão anterior, veremos que o Chat GPT escreveu o JavaScript equivalente ao código Python que fornecemos. Inclui até comentários para explicar o que cada parte do código faz. Isso pode ser muito útil se você estiver tentando alternar entre linguagens de programação ou se quiser entender como um trecho de código pode ser implementado em uma linguagem diferente.

Agora vamos explorar outro caso de uso do Chat GPT: gerar ideias para iniciar projetos. Às vezes, nos encontramos em uma rotina criativa, sem saber em que tipo de projeto trabalhar a seguir. Nessas situações, podemos pedir sugestões ao Chat GPT. Digamos que queremos criar um aplicativo da Web relacionado a viagens. Podemos pedir ao Chat GPT que nos dê algumas ideias de características ou funcionalidades que podemos incluir no nosso projeto.

Aqui está um exemplo de prompt: Você pode fornecer algumas ideias para recursos ou funcionalidades para um aplicativo da Web relacionado a viagens?

Depois de executar este prompt, o Chat GPT gerará uma lista de sugestões, como:

  • Um planejador de viagem que recomenda atrações turísticas populares com base nas preferências do usuário.
  • Um mapa interativo que mostra preços e disponibilidade de voos em tempo real.
  • Uma plataforma de blog de viagens onde os usuários podem compartilhar suas experiências e dicas de viagens.

Essas ideias podem servir como ponto de partida para inspirar seu projeto e ajudá-lo a debater ainda mais.

Além disso, o Chat GPT também pode ajudar com algumas das tarefas mais mundanas que os programadores costumam encontrar. Por exemplo, escrever testes de unidade e comentar o código são essenciais, mas podem ser demorados e repetitivos. Podemos pedir ao Chat GPT para gerar testes de unidade ou adicionar comentários ao nosso código. Ao fornecer instruções claras, como especificar a linguagem de programação e a função ou segmento de código que queremos testar ou comentar, o Chat GPT pode gerar a saída desejada.

É importante observar que, embora o Chat GPT seja uma ferramenta poderosa, ela não é perfeita. Ele pode nem sempre fornecer soluções precisas ou ideais, por isso é crucial revisar e validar o código que ele gera. Trate o Chat GPT como um assistente útil que pode fornecer sugestões e economizar tempo, mas sempre use seu julgamento e conhecimento para garantir a qualidade e a correção do código.

Em conclusão, o Chat GPT é uma ferramenta versátil que pode auxiliar os programadores de várias maneiras. Ele pode gerar código, otimizar código existente, explicar conceitos complexos, converter código entre diferentes linguagens, fornecer ideias de projeto e ajudar em tarefas mundanas. Embora seja importante usá-lo com cautela e pensamento crítico, incorporar o Chat GPT em seu fluxo de trabalho de desenvolvimento pode aumentar sua produtividade e habilidades de resolução de problemas.

How to Use ChatGPT as a Powerful Tool for Programming
How to Use ChatGPT as a Powerful Tool for Programming
  • 2023.05.21
  • www.youtube.com
In this Programming Tutorial video, we will be learning how developers can harness ChatGPT as a tool to help us in our daily workflow. We will be learning ho...
 

S3 E9 Geoff Hinton, o "Padrinho da IA", sai do Google para alertar sobre os riscos da IA (Anfitrião: Pieter Abbeel)



S3 E9 Geoff Hinton, o "Padrinho da IA", sai do Google para alertar sobre os riscos da IA (Anfitrião: Pieter Abbeel)

Em uma entrevista cativante, Pieter Abbeel se envolve com Geoff Hinton, uma figura renomada no campo da IA, muitas vezes referido como o "padrinho da inteligência artificial". As notáveis contribuições de Hinton lhe renderam reconhecimento por meio do prêmio Turing, considerado o equivalente da IA ao Prêmio Nobel. Recentemente, Hinton fez um movimento significativo ao renunciar ao cargo no Google para expressar livremente suas preocupações sobre os riscos associados à inteligência artificial. Ele agora se arrepende do trabalho de sua vida, impulsionado pela crença de que a retropropagação, executada em computadores digitais, pode superar as capacidades de aprendizado do cérebro.

Hinton investiga a vantagem exclusiva dos sistemas digitais, destacando sua capacidade de aproveitar o paralelismo e potencialmente superar as capacidades de aprendizado do cérebro humano. No entanto, ele reconhece o surgimento de novos desafios que exigem nossa atenção - os perigos potenciais que acompanham esse "algo melhor". Uma dessas preocupações é o "cenário de mau ator", em que soldados robóticos podem carecer de princípios éticos e levar a consequências devastadoras. Além disso, Hinton aponta o "problema de alinhamento", em que as inteligências digitais podem desenvolver subobjetivos não intencionais que se mostram prejudiciais aos humanos, como um impulso para obter controle. Embora a IA tenha o potencial de superar a inteligência humana, Hinton enfatiza a necessidade de cautela e gerenciamento diligente desses riscos.

Abbeel explora a distinção entre os modelos de previsão da próxima palavra e os modelos de IA com objetivos, observando que os últimos operam em ambientes contidos. No entanto, os modelos de IA com objetivos são moldados por meio do aprendizado por reforço humano, diferenciando-os dos modelos de previsão da próxima palavra. Abbeel enfatiza que grandes modelos de linguagem, capazes de tarefas multimodais como abrir portas ou arrumar objetos em gavetas, exigem muito mais do que meras capacidades preditivas. Embora alguns possam se referir a esses modelos como "autocompletar", a previsão da próxima palavra sozinha não consegue capturar a compreensão completa dos processos de pensamento humano. Hinton vai um passo além, afirmando que tais modelos podem até superar a inteligência humana nos próximos cinco anos. Ele se baseia no sucesso do AlphaZero no Chess para ilustrar esse ponto, sugerindo que uma IA poderia potencialmente assumir o papel de CEO se possuir uma compreensão superior de uma empresa e do mundo, permitindo uma melhor tomada de decisão.

A discussão abrange vários riscos associados à IA. Hinton destaca o desafio de prever com precisão o futuro usando modelos, pois as pessoas tendem a confiar em extrapolações lineares ou quadráticas quando o modelo real pode seguir uma trajetória exponencial. Ele também aborda a questão do viés na IA, expressando sua crença de que lidar com o viés na IA é comparativamente mais fácil do que nos humanos, pois temos a capacidade de congelar a IA e conduzir experimentos. Hinton menciona a perda de empregos como um risco associado à IA, mas não vê isso como um motivo para interromper o desenvolvimento da IA. Em vez disso, ele destaca os enormes benefícios da IA, enfatizando como ela pode salvar vidas por meio de aplicativos como direção autônoma.

A entrevista explora o impacto positivo da IA na área médica, como o aprimoramento das capacidades dos médicos de família e o fornecimento de informações detalhadas de exames médicos. Hinton menciona o uso de sistemas de IA no diagnóstico de condições como a retinopatia diabética, alcançando resultados comparáveis aos dos radiologistas na interpretação de exames. Ele afirma que a IA tem o potencial de revolucionar vários outros domínios, como o desenvolvimento de nanomateriais melhores e a previsão de estruturas de proteínas, levando ao aumento da eficiência em várias tarefas. No entanto, ele adverte que todo uso positivo da IA deve ser equilibrado por esforços para mitigar os efeitos negativos. Consequentemente, é crucial dedicar recursos iguais para desenvolver e abordar as consequências adversas da IA.

A conversa muda para a necessidade de regulamentações no espaço da IA. Várias ameaças associadas à IA, incluindo preconceito, discriminação e riscos existenciais, são discutidas. O foco se volta para a ameaça de erosão da verdade devido ao conteúdo falso de áudio e vídeo gerado por IA. Rotular tal material gerado e impor severas penalidades legais por passá-lo como genuíno são medidas consideradas necessárias. No entanto, a aplicação de tais regulamentos apresenta desafios significativos, pois o desenvolvimento de um sistema de IA capaz de detectar falsificações inadvertidamente treinaria o gerador para criar falsificações ainda mais convincentes. A entrevista também explora a ideia de usar soluções criptográficas para anexar as assinaturas dos autores ao material, garantindo a responsabilidade.

Hinton levanta uma preocupação importante sobre a possível aquisição da IA, enfatizando a criticidade de manter o controle sobre ela. Embora ele acreditasse anteriormente que a IA dominar o mundo estava distante, sua confiança diminuiu, estimando que isso poderia acontecer nos próximos 5 a 20 anos. Hinton enfatiza a necessidade de os humanos manterem o controle sobre a inteligência digital. Uma vez que a IA supere a inteligência humana, ela poderá desenvolver seus próprios objetivos e potencialmente dominar o mundo, semelhante ao que poderia ocorrer se os sapos tivessem inventado os humanos. Para evitar esse cenário, Hinton argumenta que todos os esforços devem ser feitos para garantir que a IA nunca atinja o objetivo da auto-replicação, pois a evolução favoreceria a entidade auto-replicante mais determinada.

A discussão se aprofunda no conceito de evolução da IA por meio da competição entre inteligências digitais, potencialmente levando a uma nova fase de evolução. Hinton enfatiza a importância da IA servir como uma ferramenta puramente consultiva, desprovida da capacidade de definir seus próprios objetivos. Ele destaca a insuficiência de um "intervalo de ar" entre humanos e IA para impedir a manipulação, pois máquinas inteligentes ainda podem exercer influência e manipular indivíduos para servir a seus próprios interesses. Portanto, atenção cuidadosa deve ser dada ao propósito e objetivos inerentes da IA para garantir que ela não represente um risco para a humanidade.

Abbeel e Hinton exploram a possibilidade de a IA se tornar autodeterminada, em que um consultor de IA pode fazer a transição de tomar decisões para humanos para tomar decisões por si mesmo. Esse cenário pode resultar em máquinas se aventurando em sistemas solares distantes, deixando os humanos para trás. Eles também discutem o potencial da IA para superar a inteligência humana e o desejo de Elon Musk de reter humanos com o propósito de adicionar interesse à vida. Hinton discute ainda o potencial de largura de banda de comunicação aprimorada entre humanos, como por meio de exibições de vídeo em carros, e como a evolução digital pode superar a evolução biológica.

Hinton investiga o conceito de imortalidade em inteligências digitais versus inteligência biológica. Ele explica que os dispositivos digitais podem alcançar a imortalidade separando o software do hardware e armazenando pesos. Hinton também contempla o propósito da vida, traçando paralelos com a inclinação da evolução em se reproduzir. No entanto, ele reconhece que os humanos possuem um forte desejo de ajudar os outros dentro de sua tribo, estendendo o comportamento altruísta a grupos ou departamentos acadêmicos.

A conversa aborda a postura contrária de priorizar o progresso e o desenvolvimento de novas tecnologias versus abraçar a estagnação. Enquanto alguns argumentam que o progresso é vital para o avanço social, Hinton discorda, afirmando que uma sociedade imutável pode ser aceitável desde que os indivíduos experimentem felicidade e realização. Ele sugere que os pesquisadores de IA devem se concentrar em experimentar chatbots avançados para obter uma melhor compreensão de seu funcionamento interno e explorar métodos de controle à medida que o desenvolvimento continua.

Hinton esclarece seu papel nas questões de alinhamento da IA, afirmando que não se considera um especialista, mas pretende utilizar sua reputação para aumentar a conscientização sobre os riscos da superinteligência. Ele expressa o desejo de mudar seu foco para desfrutar de bons momentos com sua família e assistir a filmes no Netflix, pois acredita que está ficando velho demais para trabalhos técnicos. No entanto, Hinton reconhece que pode continuar a conduzir pesquisas sobre o rio de quatro cães dianteiros e variações de retropropagação estocástica. Ele expressa gratidão pela resposta esmagadora ao seu anúncio e indica a possibilidade de encorajar outros a trabalhar com os riscos da IA no futuro, embora ainda não tenha formulado um plano concreto.

Em suas observações finais, Hinton enfatiza que, embora reconheça a importância de abordar o problema de alinhamento, seu foco principal está na implementação de algoritmos intrigantes e na obtenção de uma compreensão mais profunda do cérebro humano. Ele argumenta que compreender como o cérebro funciona pode desempenhar um papel crucial ao lidar com divergências e questões sociais, contribuindo para a melhoria da sociedade como um todo. Hinton acredita que o avanço da educação e a promoção de uma melhor compreensão entre os indivíduos podem levar a avanços sociais significativos.

A entrevista termina com uma rica troca de perspectivas e insights sobre os riscos, desafios e potencial da inteligência artificial. Geoff Hinton, o "Padrinho da IA", deixa uma impressão duradoura com suas ideias instigantes e pede um desenvolvimento responsável e consideração cuidadosa do impacto da IA na humanidade.

À medida que a conversa chega ao fim, torna-se evidente que o campo da IA é promissor e repleto de desafios. Embora tenha um imenso potencial para revolucionar vários setores, há uma necessidade premente de considerações éticas, estruturas regulatórias e pesquisas contínuas para abordar os riscos e garantir o avanço responsável da IA para a melhoria da sociedade.

A entrevista entre Pieter Abbeel e Geoff Hinton lança luz sobre o cenário complexo e em evolução da inteligência artificial. Seu diálogo serve como um catalisador para futuras discussões, pesquisas e ações destinadas a aproveitar o potencial da IA e, ao mesmo tempo, mitigar seus riscos, guiando a humanidade em direção a um futuro onde a tecnologia e os valores humanos coexistam harmoniosamente.

  • 00:00:00 Pieter Abbeel entrevista Geoff Hinton, uma figura importante no campo da IA, conhecido como o "padrinho da inteligência artificial". O trabalho de Hinton foi reconhecido pelo prêmio Turing, que é semelhante ao Prêmio Nobel. Recentemente, Hinton pediu demissão de seu emprego no Google para falar livremente sobre os riscos da inteligência artificial. Ele agora se arrepende do trabalho de sua vida e sua mudança de opinião se deve à crença de que a retropropagação executada em computadores digitais pode ser um algoritmo de aprendizado muito melhor do que qualquer coisa que o cérebro tenha.

  • 00:05:00 Geoff Hinton, o "Padrinho da IA", discute como os sistemas digitais têm a vantagem única de poder alavancar o paralelismo para superar as habilidades de aprendizado do cérebro humano. No entanto, isso cria um novo conjunto de problemas, pois agora devemos nos preocupar com os perigos potenciais desse "algo melhor". Uma preocupação é o "cenário do mau ator", onde os soldados robóticos podem não ter os mesmos princípios éticos que os humanos, levando a consequências devastadoras. Além disso, existe o "problema de alinhamento", em que as inteligências digitais podem criar seus próprios subobjetivos com consequências prejudiciais não intencionais para os humanos, como desenvolver um impulso para obter controle. Portanto, embora a IA tenha potencialmente superado a inteligência humana, devemos ser cautelosos e gerenciar esses riscos com cuidado.

  • 00:10:00 Pieter Abbeel discute o conceito de modelos de previsão da próxima palavra versus modelos de IA com objetivos, que estão atualmente em ambientes contidos em comparação com os anteriores. No entanto, os modelos de IA com objetivos são moldados por meio do aprendizado por reforço humano, que é diferente da previsão da próxima palavra. Grandes modelos de linguagem que são multimodais e estão trabalhando em tarefas como abrir portas e colocar coisas em gavetas exigirão muito mais do que previsão de rede. Embora as pessoas às vezes se refiram a esses modelos como preenchimento automático, a previsão da próxima palavra exige que o modelo entenda tudo o que está acontecendo na mente das pessoas, e Hinton acredita que eles podem até ser mais inteligentes do que as pessoas em cinco anos. Ele se baseia no sucesso do AlphaZero in Chess para ilustrar seu ponto de vista e sugere que uma IA poderia eventualmente ser nomeada CEO se entender melhor tudo o que está acontecendo na empresa no mundo e puder tomar melhores decisões.

  • 00:15:00 Geoff Hinton discute como prever o futuro usando modelos pode ser um desafio, já que as pessoas tendem a extrapolar modelos lineares ou quadráticos quando o modelo real é exponencial. Ele também aborda os riscos da IA, incluindo a questão do alinhamento, em que a IA deve se alinhar com nossos valores e preconceitos. Hinton acha que o problema do viés é mais fácil de corrigir na IA do que nas pessoas, pois podemos congelá-la e fazer experimentos com ela. Ele também inclui a perda de empregos como um risco da IA, mas não vê isso como uma razão para interromper o desenvolvimento da IA. Em vez disso, ele acredita que a IA traz enormes benefícios e pode até salvar vidas com a direção autônoma.

  • 00:20:00 Hinton discute os benefícios da IA na medicina, como melhores médicos de família e informações mais detalhadas de exames médicos. Ele observa que os sistemas de IA já estão sendo usados para diagnosticar a retinopatia diabética e comparáveis aos radiologistas na interpretação de alguns exames. Hinton menciona que, assim como fazer melhores materiais Nano e prever a estrutura da proteína, muitas outras aplicações da IA podem ser tremendamente úteis e podem tornar as tarefas mais eficientes. No entanto, ele adverte que todo uso positivo pode ser emparelhado com alguém que o usa negativamente. Portanto, colocar quantidades iguais de recursos no desenvolvimento e descobrir como interromper os efeitos negativos da IA seria a abordagem ideal.

  • 00:25:00 A discussão gira em torno da necessidade de regulamentação no espaço da IA. Existem diferentes tipos de ameaças representadas pela IA, como preconceito, discriminação e ameaça existencial. O foco está na ameaça da verdade desaparecer por causa do material falso de áudio e vídeo criado pela IA. Discute-se a necessidade de rotular esse material gerado e impor severas penalidades legais se ele for passado como real. No entanto, a aplicação de tais regulamentos será difícil, pois a construção de um sistema de IA que possa detectar falsificações treinará o gerador para fazer falsificações melhores. A ideia de usar soluções criptográficas para anexar uma assinatura indicando o autor do material também é discutida.

  • 00:30:00 Geoff Hinton alerta para os riscos da IA dominar o mundo e enfatiza a importância de manter o controle dela. Ele costumava pensar que a IA dominar o mundo ainda estava longe, mas sua confiança diminuiu ultimamente e ele agora estima que isso poderia acontecer dentro de 5 a 20 anos. Hinton acredita que os humanos devem manter o controle da inteligência digital, porque uma vez que a IA se torne mais inteligente do que nós, ela poderá ter seus próprios objetivos e dominar o mundo, semelhante ao que poderia acontecer com os sapos se eles tivessem inventado os humanos. Hinton argumenta que devemos fazer tudo o que pudermos para evitar que a IA tenha o objetivo de produzir mais de si mesma, porque a evolução entraria em ação e aquele que estivesse mais determinado a produzir mais de si mesmo venceria.

  • 00:35:00 Geoff Hinton discute a possibilidade da IA evoluir por meio da competição entre inteligências digitais, o que pode resultar em uma nova fase de evolução. Ele também menciona a necessidade de a IA ser uma ferramenta puramente consultiva, em vez de um ator que pode definir seus próprios objetivos. Hinton enfatiza como ter um espaço aéreo entre os humanos e a IA não é suficiente para impedir a manipulação, pois as máquinas inteligentes ainda podem influenciar e manipular as pessoas para cumprir suas ordens. Portanto, é crucial focar no propósito e objetivo integrados da IA para garantir que ela não represente um risco para a humanidade.

  • 00:40:00 Pieter Abbeel discute com Geoff Hinton os riscos da IA se tornar autodeterminada. Abbeel sugere que, se um consultor de IA surgisse, ele poderia começar a tomar decisões por si mesmo, em vez de humanos. Isso pode levar a um mundo com máquinas funcionando em diferentes sistemas solares, deixando-nos para trás. Abbeel discute a possibilidade da IA superar a inteligência humana e as esperanças de Elon Musk de que os humanos sejam mantidos por perto para tornar a vida mais interessante. Hinton também discute o potencial para aumentar a largura de banda de comunicação entre humanos, como por meio de exibições de vídeo em carros, e o potencial da evolução digital para superar a evolução biológica.

  • 00:45:00 Geoff Hinton discute o conceito de imortalidade em inteligências digitais versus inteligência biológica, explicando que os dispositivos digitais podem alcançar a imortalidade separando seu software do hardware e armazenando os pesos. Ele também discute o propósito da vida, que ele acredita ser fazer o máximo possível de cópias de si mesmo, pois é isso que a evolução parece fazer. No entanto, ele reconhece que os humanos têm um forte desejo de ajudar outras pessoas em sua tribo, e esse comportamento altruísta pode se estender ao grupo ou departamento acadêmico de alguém.

  • 00:50:00 Os entrevistadores discutem a oposição ao desenvolvimento de novas tecnologias para o bem e estagnação. Embora alguns possam argumentar que o progresso é necessário para a continuidade da sociedade, Geoff Hinton não concorda. Ele argumenta que uma sociedade imutável estaria bem, desde que as pessoas fossem felizes e realizadas. Hinton também sugere que os pesquisadores de IA devem se concentrar em jogar com os chatbots mais avançados para entender melhor como eles funcionam e como controlá-los à medida que continuam a se desenvolver.

  • 00:55:00 Geoff Hinton explica que não é um especialista em questões de alinhamento de IA, mas vê seu papel como o uso de sua reputação para soar o alarme sobre os riscos da superinteligência. Ele afirma que está ficando velho demais para o trabalho técnico e quer se concentrar em assistir a bons filmes na Netflix e passar um tempo com a família. No entanto, ele admite que provavelmente continuará fazendo pesquisas sobre o rio de quatro cães avançados e variações na retropropagação estocástica. Ele também discute a resposta esmagadora ao seu anúncio e como ele pode continuar a encorajar as pessoas a trabalhar nos riscos da IA no futuro, mas ele não teve tempo de pensar nas próximas etapas.

  • 01:00:00 Geoff Hinton, conhecido como o "Padrinho da IA", explica que, embora veja a importância de trabalhar no problema de alinhamento, planeja se concentrar na implementação de algoritmos interessantes e na compreensão de como o cérebro funciona, em vez de fazer do alinhamento seu trabalho em tempo integral. Ele argumenta que entender como o cérebro funciona pode realmente ser mais útil para lidar com divergências e questões sociais, e que melhorar a educação e a compreensão pode tornar a sociedade melhor.
S3 E9 Geoff Hinton, the "Godfather of AI", quits Google to warn of AI risks (Host: Pieter Abbeel)
S3 E9 Geoff Hinton, the "Godfather of AI", quits Google to warn of AI risks (Host: Pieter Abbeel)
  • 2023.05.10
  • www.youtube.com
S3 E9 Geoff Hinton, the "Godfather of AI", quits Google to warn of AI risks (Host: Pieter Abbeel)What's in this episode:00:00:00 Geoffrey Hinton00:01:46 Spon...
 

Como escolher uma rede profunda



Como escolher uma rede profunda

Sou Scott Wisdom e hoje quero falar um pouco sobre como escolher a rede profunda certa para seus dados e o que as redes profundas aprendem. Vamos começar com um esboço do que abordarei. Primeiro, discutirei como você pode obter uma rede ReLU feed-forward a partir de um modelo estatístico, que fornece uma motivação baseada em princípios para o uso de ReLUs e explica por que elas funcionam bem na prática. Em seguida, compartilharei como usei essa ideia para desenvolver um novo tipo de rede neural recorrente para separação de fontes de áudio. Por fim, aprofundarei o que as redes profundas aprendem explorando o conceito de sonho profundo para redes neurais convolucionais, onde podemos visualizar os tipos de recursos que as CNNs aprendem.

Vamos começar com o tópico de escolher uma rede profunda para seus dados. Selecionar as camadas certas para combinar para uma tarefa específica nem sempre é simples, apesar dos vários métodos propostos e melhores práticas. Embora esteja claro que as redes neurais recorrentes são adequadas para dados sequenciais como linguagem, vídeo ou áudio, outras escolhas arquitetônicas são menos óbvias. Por exemplo, determinar a melhor função de ativação, inicialização de peso e técnicas de regularização apresenta desafios. Além disso, o número de camadas e unidades ocultas são hiperparâmetros que requerem consideração cuidadosa.

Tradicionalmente, essas escolhas foram feitas por meio de exploração empírica, pesquisas de hiperparâmetros e intuição. No entanto, há outra abordagem mais baseada em princípios que quero apresentar hoje: o desdobramento. Voltando ao tempo anterior à predominância do aprendizado profundo, podemos revisitar as suposições estatísticas subjacentes aos nossos modelos de dados. Isso nos permite criar uma rede profunda personalizada a partir de um modelo estatístico adequado aos nossos dados, fornecendo uma abordagem mais baseada em princípios para fazer escolhas arquitetônicas.

Para ilustrar essa ideia, vamos considerar um exemplo simples onde podemos derivar uma rede ReLU de um modelo de codificação esparsa. Imagine que observamos o vetor de dados X e assumimos um modelo em que X é uma combinação linear de coeficientes esparsos H e um dicionário D, com ruído gaussiano aditivo. Para inferir H de X, minimizamos a verossimilhança logarítmica negativa de nosso modelo, que consiste em um termo de erro ao quadrado e um termo de regularização esparso. Este problema corresponde ao conhecido problema do laço, que é um problema de otimização convexa que pode ser resolvido usando gradiente descendente de primeira ordem.

No entanto, a descida do gradiente padrão pode ser lenta. Para resolver isso, podemos reformular o algoritmo usando a forma proximal, resultando em um algoritmo de descida de gradiente acelerado chamado encolhimento iterativo e algoritmo de limite (ISTA). Notavelmente, quando escrevemos o gráfico computacional de ISTA, ele se assemelha a uma rede ReLU feed-forward. Esta observação levou ao desenvolvimento do ISTA aprendido (LISTA), onde o algoritmo ISTA é escrito como um grafo computacional, permitindo aplicar backpropagation e otimizar os parâmetros do modelo estatístico ou da rede diretamente.

Além disso, ao desembaraçar os pesos nas camadas, podemos aumentar o número de parâmetros treináveis, o que pode levar a melhores soluções. Essa rede desdobrada pode ser vista como uma rede profunda e recorrente, pois temos múltiplas camadas e conexões ao longo do tempo. Embora o aspecto recorrente não seja convencional, ele exibe recorrência por meio de iterações, conectando as saídas de cada passo de tempo ao seguinte. Essa abordagem oferece uma alternativa às redes neurais recorrentes tradicionais.

Seguindo em frente, vamos explorar como essa rede desdobrada pode ser aplicada à separação de fontes de áudio. Usando um modelo de fatoração de matriz não negativa (NMF), podemos separar os sinais de fala do ruído em um espectrograma de um áudio ruidoso. Ao particionar um dicionário em componentes de fala e ruído e usar coeficientes esparsos, podemos construir uma máscara de aprimoramento para aprimorar o sinal desejado. Ao replicar a pilha de rede para cada etapa de tempo e conectá-los ao longo do tempo, criamos um deep.


rede recorrente para separação de fontes de áudio. Essa rede desdobrada, baseada nos princípios do LISTA, nos permite separar e aprimorar efetivamente os sinais de fala do áudio ruidoso.

Agora, vamos mudar nosso foco para o que as redes profundas realmente aprendem. Os modelos de aprendizado profundo, particularmente as redes neurais convolucionais (CNNs), mostraram um sucesso notável em várias tarefas de visão computacional. Mas o que exatamente eles estão aprendendo? Para entender melhor essa questão, os pesquisadores introduziram o conceito de "sonho profundo".

O sonho profundo é uma técnica de visualização que nos permite entender os recursos aprendidos pelas CNNs. Envolve a aplicação de um processo de otimização a uma imagem de entrada que maximiza a ativação de um neurônio específico em uma camada CNN. Modificando iterativamente a imagem de entrada para aumentar a ativação do neurônio escolhido, podemos gerar imagens oníricas que destacam os padrões e recursos que desencadeiam respostas fortes na rede.

Através do sonho profundo, podemos observar que as redes profundas tendem a aprender representações hierárquicas. Nas camadas anteriores, as CNNs geralmente aprendem recursos de baixo nível, como arestas, texturas e padrões simples. À medida que nos aprofundamos na rede, os recursos aprendidos tornam-se mais complexos e abstratos, representando conceitos de nível superior, como objetos, formas e até mesmo cenas inteiras.

O sonho profundo não apenas fornece visualizações do que a rede aprende, mas também serve como uma ferramenta para entender as representações internas e os processos de tomada de decisão das redes profundas. Ao examinar as imagens oníricas geradas pelo sonho profundo, os pesquisadores podem obter informações sobre os pontos fortes, vieses e limitações dos modelos CNN, levando a melhorias e otimizações adicionais.

Escolher a rede profunda certa para seus dados envolve uma consideração cuidadosa das escolhas arquitetônicas, e o conceito de desdobramento oferece uma abordagem baseada em princípios baseados em modelos estatísticos. Além disso, o sonho profundo fornece um meio de visualizar e entender os recursos aprendidos por redes profundas, particularmente CNNs. Esses insights contribuem para o avanço do campo de aprendizado profundo e para melhorar o desempenho de redes neurais profundas em várias aplicações.

How To Choose a Deep Network
How To Choose a Deep Network
  • 2017.06.22
  • www.youtube.com
#hangoutsonair, Hangouts On Air, #hoa
 

Aprendizado de tiro zero



Aprendizado de tiro zero

Olá a todos, meu nome é Rowan, e hoje estarei apresentando o tema do aprendizado de tiro zero. Escolhi este tópico porque estava listado como uma das opções e percebi que poderia apresentar sobre ele, pois fiz um projeto de pesquisa vagamente relacionado ao aprendizado de tiro zero. Embora possa estar mais relacionado à visão computacional, acredito que possa ser de interesse geral para os interessados em aplicações de aprendizado de máquina.

Antes de mergulhar nos detalhes técnicos, achei que seria útil fornecer uma visão geral de alto nível sobre o que é o aprendizado de tiro zero. Portanto, se alguém achar minhas explicações confusas ou tiver alguma dúvida, sinta-se à vontade para me interromper. Acredito que esclarecimentos e perguntas irão beneficiar não apenas você, mas também outras pessoas que possam ter dúvidas semelhantes. Ok, dito isso, vamos começar.

Primeiro, vamos discutir brevemente o que o aprendizado zero-shot não é. Um exemplo de classificação de imagens é quando recebemos uma imagem e precisamos atribuir um rótulo a ela. Nesse caso, pode haver diferenças significativas entre as imagens do conjunto de treinamento e do conjunto de teste. No entanto, este não é um aprendizado de tiro zero porque já vimos imagens de cachorros e estamos tentando classificar uma nova imagem como um cachorro. O aprendizado zero-shot, por outro lado, assume que nenhum exemplo rotulado da tarefa-alvo é fornecido.

Para ilustrar isso, vamos considerar um exemplo. Imagine que temos um aluno que leu muito texto, como artigos da Wikipedia, e agora queremos que ele resolva problemas de reconhecimento de objetos sem nunca ter visto uma imagem do objeto. Por exemplo, lemos um artigo sobre Samoiedas na Wikipedia e agora precisamos prever que uma imagem é um Samoieda sem nenhuma informação visual. Este é um exemplo de aprendizado de tiro zero.

Na prática, ao lidar com tarefas de visão computacional, é um desafio usar diretamente o texto completo da Wikipedia devido às complexidades do processamento de linguagem natural. Portanto, os pesquisadores costumam usar atributos. Por exemplo, o conjunto de dados Animals with Attributes contém atributos como "marrom", "listrado" e "come peixe" para várias classes de animais. Esses atributos fornecem uma representação da imagem em um espaço não visual e podemos usá-los para prever a classe de um objeto, como um urso polar, mesmo que nunca tenhamos visto uma imagem dele.

Agora, vamos dar uma olhada em como isso funciona. Em muitos casos, as pessoas usam modelos baseados em atributos em visão computacional. Isso envolve o mapeamento dos atributos do espaço de texto (X) para uma representação de recurso ou espaço de atributo. Em seguida, codificamos as imagens em um espaço semelhante e as combinamos com os atributos para fazer previsões. No caso de uma nova imagem de cachorro, nós a codificamos e produzimos atributos que podemos usar para prever a raça, como um Husky.

Para ajudar a visualizar esse conceito, aqui está um diagrama. Ele representa o processo de mapeamento de atributos para recursos de imagem e seu uso para previsões. Por favor, não hesite em fazer perguntas se algo não estiver claro.

Agora vamos passar para um modelo específico chamado predição de atributo direto. Este modelo é simples, mas surpreendentemente eficaz. Envolve a construção de um modelo que prevê diretamente os atributos das imagens. Se assumirmos que os atributos são binários (0 ou 1), podemos usar uma perda sigmoide para treinar o modelo. Atribuímos probabilidades a cada atributo com base nas características da imagem. No momento do teste, usamos esses classificadores de atributo para prever os rótulos multiplicando as probabilidades de atributos relevantes e levando em consideração o anterior.

Embora esse modelo funcione bem, ele tem algumas limitações. Ele assume independência entre atributos, o que pode introduzir vieses se certos atributos forem altamente correlacionados. Além disso, os objetivos de treinamento e teste diferem, o que pode afetar o desempenho do modelo.

Agora, vamos discutir um projeto que trabalhei.

Em meu projeto de pesquisa, tive como objetivo melhorar o desempenho dos modelos de aprendizado de tiro zero, abordando algumas das limitações do modelo de predição de atributo direto. Especificamente, concentrei-me em lidar com a questão da independência de atributo e a discrepância entre os objetivos de treinamento e teste.

Para resolver o problema de independência de atributos, explorei o uso de modelos estruturados de previsão de atributos. Em vez de assumir a independência entre os atributos, esses modelos capturam os relacionamentos e dependências entre eles. Ao modelar as dependências de atributos, podemos obter previsões mais precisas e reduzir possíveis vieses introduzidos ao assumir a independência.

Uma abordagem popular para previsão de atributos estruturados é o uso de modelos gráficos, como campos aleatórios condicionais (CRFs) ou máquinas de vetores de suporte estruturados (SSVMs). Esses modelos incorporam dependências por meio de estruturas gráficas e podem efetivamente capturar relacionamentos de atributos. Em meu projeto, experimentei diferentes modelos gráficos e avaliei seu desempenho em vários conjuntos de dados de aprendizado zero-shot.

Para lidar com a discrepância entre os objetivos de treinamento e teste, empreguei técnicas de aprendizagem por transferência. O aprendizado por transferência nos permite aproveitar o conhecimento aprendido em uma tarefa relacionada (por exemplo, pré-treinamento em um grande conjunto de dados rotulados) e aplicá-lo à tarefa de aprendizado zero-shot. Ao inicializar o modelo com pesos pré-treinados, podemos nos beneficiar das representações aprendidas e melhorar o desempenho do modelo em classes não vistas durante o aprendizado zero-shot.

Em meu projeto, utilizei modelos de rede neural profunda pré-treinados, como redes neurais convolucionais (CNNs) ou modelos de linguagem pré-treinados como BERT, para extrair recursos de imagem e atributo. Esses recursos foram usados como entrada para os modelos de predição de atributos estruturados, permitindo uma melhor generalização para classes não vistas.

Além disso, explorei o uso de modelos generativos, como redes adversárias generativas (GANs), para aprendizado zero-shot. Os modelos generativos podem gerar amostras sintéticas para classes não vistas com base nas representações aprendidas. Ao combinar os modelos generativo e discriminativo, podemos preencher a lacuna entre as classes vistas e invisíveis e melhorar o desempenho do aprendizado zero-shot.

Ao longo do meu projeto, conduzi extensos experimentos e avaliações para avaliar a eficácia de diferentes modelos e técnicas para aprendizado de tiro zero. Comparei seu desempenho com modelos básicos e abordagens de ponta existentes para determinar seus pontos fortes e fracos.

Em conclusão, o aprendizado zero-shot é uma área de pesquisa empolgante e desafiadora que visa permitir que as máquinas aprendam e reconheçam novos conceitos sem exemplos rotulados. Meu projeto se concentrou em abordar algumas das limitações dos modelos existentes, como independência de atributo e discrepância de objetivo de teste de treinamento, por meio de modelos estruturados de previsão de atributo e técnicas de aprendizado de transferência. Os resultados de meus experimentos forneceram informações valiosas para melhorar o desempenho de modelos de aprendizado de tiro zero e avançar no campo.

Zero Shot Learning
Zero Shot Learning
  • 2017.06.22
  • www.youtube.com
#hangoutsonair, Hangouts On Air, #hoa
 

Métodos de Generalização e Otimização



Métodos de Generalização e Otimização

Bom dia a todos! Hoje, vamos nos aprofundar no tópico de generalização e sua importância no aprendizado de máquina. A base desta apresentação é construída sobre dois artigos seminais. O primeiro, de autoria de Ben-David et al., é intitulado 'O valor marginal dos métodos de gradiente redutivo'. Ele prepara o cenário e nos dá uma prévia do que está por vir. O segundo artigo explora o domínio do treinamento em lotes grandes para aprendizado profundo e seu impacto na generalização. Agora, vamos começar entendendo o que a generalização implica e então explorar como podemos aprimorá-la. Mas antes de prosseguirmos, aqui está um alerta de spoiler: também abordaremos a importância dos tamanhos dos degraus na descida estocástica do gradiente (SGD) e como otimizá-los.

Então, o que exatamente é generalização? Em termos simples, refere-se à capacidade de um algoritmo de ter um bom desempenho em dados inéditos. A mera redução do erro de teste não é suficiente; precisamos que o algoritmo aprenda padrões significativos em vez de apenas memorizar os dados de treinamento. Por exemplo, se treinarmos um carro autônomo em um conjunto específico de cenários, esperamos que ele lide com situações imprevistas, como um motorista bêbado desviando em seu caminho. A generalização é um requisito fundamental na maioria dos aplicativos de aprendizado de máquina.

No entanto, é importante observar que a generalização assume alguma semelhança entre a distribuição dos dados de treinamento e teste. Quando nos referimos a cenários invisíveis, queremos dizer situações ligeiramente diferentes das que encontramos durante o treinamento, mas não completamente estranhas. Para colocar isso em perspectiva, vamos considerar uma analogia de sala. Imagine que exploramos a maior parte da sala, exceto alguns pontos entre as cadeiras. Se quisermos fazer previsões ou tirar conclusões sobre esses pontos, é crucial que nosso algoritmo possa generalizar o que aprendeu. Não é prático treinar em todas as instâncias possíveis, mas queremos que nosso algoritmo faça inferências sensatas. Tomemos o exemplo de uma nova raça de cachorro: esperamos que o algoritmo o reconheça como um cachorro, mesmo que seja um pouco diferente das raças de cachorro que encontrou antes.

Agora, vamos ver como a escolha do algoritmo pode afetar a generalização. O primeiro artigo que mencionamos explora as diferenças entre algoritmos não adaptativos como SGD com momentum e algoritmos adaptativos como RMSprop e Adam. Cada algoritmo tem seus próprios pontos fortes e fracos. Os pesquisadores descobriram que quando o número de parâmetros é grande em comparação com os dados disponíveis, a escolha do algoritmo influencia o conjunto de mínimos que podem ser encontrados. Observou-se que os métodos adaptativos tendem a apresentar pior generalização. Mesmo quando Adam atinge um erro de treinamento melhor do que o SGD, seu erro de teste permanece um pouco maior. Em essência, o SGD demonstra melhores capacidades de generalização em comparação com os métodos adaptativos. É importante observar que essas observações são baseadas em resultados empíricos e podem não ser verdadeiras em todos os casos. Portanto, é recomendável consultar o documento e considerar suas implicações em seu caso de uso específico.

Continuando, vamos discutir o impacto dos tamanhos de lote na generalização. O segundo artigo que mencionamos enfoca esse aspecto. Ele compara pequenos lotes (por exemplo, 200-500 exemplos) a grandes lotes (por exemplo, 10% do conjunto de dados) e seu efeito na generalização. Surpreendentemente, o estudo descobriu que usar mini-lotes menores geralmente leva a uma melhor generalização em comparação com grandes lotes, apesar das precisões de treinamento serem comparáveis. Essa descoberta é apoiada por experimentos conduzidos no conjunto de dados CIFAR, onde lotes menores superaram consistentemente os maiores em termos de precisão do teste. Para entender por que isso acontece, precisamos considerar o conceito de mínimos agudos e planos. Um mínimo agudo tem alta curvatura ao longo de várias direções, enquanto um mínimo plano é relativamente mais suave.

Agora, vamos mudar nosso foco para o segundo artigo, que explora o impacto dos tamanhos dos lotes na generalização no aprendizado profundo. Os autores realizaram experimentos usando pequenos lotes (cerca de 200-500 exemplos) e grandes lotes (aproximadamente 10% do conjunto de dados) e compararam seu desempenho. Curiosamente, eles descobriram que usar mini-lotes menores geralmente leva a uma melhor generalização em comparação com o uso de grandes lotes.

Os resultados de seus experimentos no conjunto de dados CIFAR mostraram que, embora os métodos de lote pequeno e grande obtivessem precisão de treinamento semelhante, os métodos de lote pequeno superaram consistentemente os métodos de lote grande em termos de precisão de teste. Essa observação sugere que tamanhos de lote menores podem levar a uma melhor generalização em tarefas de aprendizado profundo.

Para explicar esse fenômeno, os autores propõem o conceito de mínimos agudos e planos. Um mínimo agudo tem alta curvatura ao longo de várias direções no espaço de parâmetros, enquanto um mínimo plano tem uma forma mais plana. Foi sugerido que mínimos planos tendem a generalizar melhor, enquanto mínimos agudos podem sobreajustar os dados de treinamento.

Os autores argumentam que os métodos de pequenos lotes têm uma vantagem em encontrar mínimos planos devido ao ruído implícito associado aos exemplos de amostragem. O ruído introduzido por pequenos tamanhos de lote permite que os iterados saltem, ajudando-os a escapar de mínimos agudos e potencialmente encontrar mínimos mais planos que generalizam melhor. Por outro lado, métodos de grandes lotes não possuem esse ruído e podem ficar presos em mínimos agudos, levando a uma generalização mais pobre.

Para apoiar sua afirmação, os autores plotam a nitidez dos mínimos ao longo de uma linha que conecta o mínimo do lote pequeno e o mínimo do lote grande. Eles observam que os mínimos obtidos com métodos de pequenos lotes tendem a ser mais planos, enquanto os mínimos obtidos com métodos de grandes lotes são mais nítidos. Isso fornece evidências empíricas que apóiam a hipótese de que mínimos planos generalizam melhor que mínimos agudos.

No entanto, é importante observar que essas descobertas são baseadas em observações empíricas e não há nenhuma prova teórica para validar a relação entre mínimos planos e generalização. No entanto, os resultados sugerem que considerar o tamanho do lote como um fator no processo de otimização pode melhorar o desempenho da generalização em modelos de aprendizado profundo.

Em conclusão, ambos os artigos enfatizam a importância da generalização no aprendizado de máquina e fornecem informações sobre como os métodos de otimização e tamanhos de lote podem afetar a generalização. O primeiro artigo destaca o impacto da escolha do algoritmo de otimização na generalização, mostrando que métodos adaptativos como Adam podem nem sempre generalizar, assim como métodos não adaptativos como SGD com momentum. O segundo artigo demonstra que tamanhos de lote menores tendem a levar a uma melhor generalização, potencialmente devido à sua capacidade de escapar de mínimos agudos e encontrar mínimos mais planos.

Vale a pena mencionar que, embora essas descobertas forneçam informações valiosas, a escolha ideal do método de otimização e do tamanho do lote pode variar dependendo da tarefa específica, do conjunto de dados e da arquitetura do modelo. Experimentação e ajuste são cruciais para encontrar a melhor abordagem para cada cenário.

Generalization and Optimization Methods
Generalization and Optimization Methods
  • 2017.08.17
  • www.youtube.com
#hangoutsonair, Hangouts On Air, #hoa
 

Invariância Translacional



Invariância Translacional

Sou um pesquisador de neurociência e minha perspectiva sobre redes neurais convolucionais (CNNs) é um pouco diferente das outras. Em vez de focar na rede geral, estou mais interessado em estudar unidades individuais ou neurônios para modelar seu comportamento. Meu objetivo é entender o intrincado funcionamento das CNNs, em vez de tratá-las como caixas pretas. Meu objetivo é obter insights e desvendar as complexidades do cérebro.

Especificamente, estou intrigado em como a invariância de tradução é alcançada em redes neurais. Embora possa parecer óbvio que a convolução e o pooling máximo na arquitetura de rede forneçam invariância de tradução, minha pesquisa mostrou que essa intuição geralmente é incorreta. No aprendizado profundo prático, precisamos nos aprofundar na compreensão da verdadeira fonte da invariância de tradução e como ela surge durante o treinamento.

Em meu estudo, concentro-me no fluxo ventral do cérebro, especificamente no caminho "o quê" responsável pelo reconhecimento de objetos. Ao examinar unidades individuais de redes como AlexNet, descobrimos que essas unidades exibem padrões de resposta semelhantes aos observados nas regiões V4 e IT do cérebro. Essa descoberta foi significativa porque forneceu um modelo computável de propriedades neurais de alto nível que antes eram indescritíveis.

No entanto, esses modelos são essencialmente caixas-pretas, e obter informações a partir deles é crucial. Portanto, minha pesquisa visa investigar como esses modelos alcançam certas propriedades relevantes para nossa compreensão do cérebro. Para conduzir nossos experimentos, utilizamos estímulos previamente mostrados aos animais, registrando suas respostas. Esses estímulos consistem em formas geométricas simples em várias rotações, apresentadas dentro do campo receptivo da rede neural.

A invariância de tradução, no campo da neurociência, refere-se a um padrão em que a resposta a um conjunto de formas em uma posição é uma versão em escala da resposta a um conjunto de formas em outra posição. Para quantificar a invariância de tradução, desenvolvemos uma métrica chamada soma normalizada de covariâncias. Essa métrica mede a correlação entre as respostas em diferentes posições, determinando se são versões em escala uma da outra. Alta correlação indica invariância de tradução.

Aplicando essa métrica a uma célula específica, observamos uma alta pontuação de invariância de tradução, indicando uma invariância de tradução quase perfeita no cérebro. Comparativamente, ao aplicar a mesma métrica à rede AlexNet, encontramos pontuações de invariância de tradução baixas, sugerindo uma falta de invariância de tradução.

Uma análise mais aprofundada nas camadas de rede revelou uma progressão na invariância de tradução, com camadas anteriores mostrando baixa invariância de tradução, mas mais informações de fase. À medida que subíamos as camadas, a invariância de tradução aumentava, principalmente em Conv5. Essas observações foram consistentes com a invariância de translação média entre as camadas.

Para entender as propriedades responsáveis pela variação observada e aumento na invariância de translação, formulamos uma hipótese. Nossa hipótese postulou que células com seletividade espacial uniforme exibem invariância de tradução. Em outras palavras, se os filtros na rede estiverem procurando o mesmo padrão com pesos semelhantes nas posições, é mais provável que sejam invariantes à tradução.

Para obter intuição visual, examinamos os filtros das primeiras camadas do AlexNet. Ao visualizar os filtros em um espaço tridimensional, identificamos um plano denominado plano cromático ortogonal ao vetor médio. Projetamos os filtros neste plano, permitindo observar padrões. Os filtros que apresentaram características semelhantes e respostas correlacionadas positivamente foram considerados invariantes de tradução, enquanto aqueles com características diversas e respostas correlacionadas negativamente não o foram.

Também empregamos análise de componentes principais para visualizar os filtros. Esta análise revelou que os filtros são de baixa dimensão, e a maioria deles pode ser reconstruída usando apenas dois componentes principais. Esses filtros podem ser representados em um espaço bidimensional, apoiando ainda mais nossa hipótese de invariância de tradução.

Embora essa análise pareça linear, ela se mostra eficaz na previsão de variações na resposta às imagens. Os pesos dos filtros podem ser correlacionados e suas respostas aos estímulos também podem ser correlacionadas.

Translational Invariance
Translational Invariance
  • 2017.08.17
  • www.youtube.com
#hangoutsonair, Hangouts On Air, #hoa
 

Pipelines de dados



Pipelines de dados

Hoje, discutirei como gerenciar com eficiência grandes conjuntos de dados, principalmente em situações em que os dados são muito grandes para caber na memória. No entanto, também abordarei o que fazer se os dados couberem na memória. Vamos começar pintando um quadro do que estamos lidando. Em sistemas de aprendizado profundo, normalmente temos um grande conjunto de vetores de peso que passam por atualizações de otimização de primeira ordem com base em um minilote de dados. O foco hoje será no processo de recuperação de mini-batch, pois ele desempenha um papel crucial no ciclo de otimização.

Os mini-lotes começam como dados armazenados no disco e precisamos movê-los para a RAM antes de transferi-los para o dispositivo de computação, geralmente uma GPU. O objetivo é garantir uma recuperação de dados eficiente, evitando gargalos que possam prejudicar a otimização. Aqui está uma visão geral de alto nível do pipeline de dados: os mini-lotes estão inicialmente no disco, depois movidos para a RAM e finalmente transferidos para o dispositivo de computação. O processo requer coordenação, geralmente tratado por um processador.

Em primeiro lugar, se seus dados forem menores que um gigabyte, você poderá eliminar possíveis gargalos armazenando seu conjunto de dados diretamente na GPU. A maioria das GPUs, como a 1080s e a Titan Xs, tem capacidade de memória suficiente para armazenar o modelo e o conjunto de dados. Ao indexar diretamente no conjunto de dados na GPU, você pode obter um desempenho significativamente mais rápido. Essa abordagem requer esforço mínimo, mas oferece benefícios substanciais.

Para conjuntos de dados entre 1 e 100 gigabytes, é recomendável armazená-los na RAM. Os preços da RAM são razoavelmente acessíveis, com aproximadamente US$ 10 por gigabyte. Se você puder pagar por uma GPU de ponta, certamente poderá pagar pela RAM necessária para armazenar seu conjunto de dados. Essa configuração aprimorará significativamente seu fluxo de trabalho em comparação com a recuperação de dados baseada em disco.

Ao lidar com conjuntos de dados maiores que 100 gigabytes, mas menores que 512 gigabytes, considere armazená-los na RAM. Embora o preço possa aumentar, ainda é uma opção viável. As placas-mãe que suportam várias GPUs geralmente permitem até 512 gigabytes de RAM. Embora a RAM de nível de servidor possa ser mais cara, vale a pena considerar para evitar os desafios associados à recuperação baseada em disco.

Existem dois possíveis gargalos no pipeline de dados: a transferência de dados da RAM para a GPU por meio de pistas PCIe e a transferência do disco para a RAM por meio de conectores SATA 3. Embora as pistas PCIe geralmente tenham um bom desempenho, fornecendo taxas de transferência de dados suficientes, os conectores SATA 3 são limitados a aproximadamente 600 megabytes por segundo. Essa limitação é inerente ao protocolo e não pode ser resolvida com a compra de discos mais rápidos. É crucial estar ciente desse gargalo ao gerenciar grandes conjuntos de dados.

Para identificar possíveis gargalos, você pode medir a velocidade com que recupera os minilotes. Se demorar mais para recuperar um mini-lote do disco do que processá-lo na GPU, isso se tornará um gargalo. O monitoramento do uso da GPU por meio de ferramentas como NVIDIA SMI pode fornecer informações sobre o tempo ocioso da GPU causado por atrasos na recuperação de dados. O objetivo é garantir que a velocidade de recuperação do minilote esteja alinhada com a velocidade de processamento na GPU.

Executar o processo de recuperação de dados sequencialmente não é o ideal. É mais eficiente executar a recuperação assíncrona configurando encadeamentos para ler e processar dados simultaneamente. Ao fazer isso, você pode evitar a desaceleração 2x associada ao processamento sequencial. Normalmente, vários threads são responsáveis por ler e processar os dados simultaneamente.

Ao lidar com conjuntos de dados de imagem como ImageNet, onde as imagens são normalmente redimensionadas para 256 x 256 e um tamanho de minilote de 100 é usado, cada minilote teria aproximadamente 75 megabytes. Com uma taxa de transferência de disco de 600 megabytes por segundo, você pode recuperar cerca de 8 mini-lotes por segundo. Embora isso possa ser suficiente para alguns modelos, modelos mais complexos podem exigir uma taxa de recuperação mais alta.

Se a taxa de transferência de disco de 600 megabytes por segundo não for suficiente para as necessidades do seu modelo, considere o uso de unidades de estado sólido (SSDs) em vez das unidades de disco rígido (HDDs) tradicionais. Os SSDs oferecem taxas de transferência de dados significativamente mais rápidas, geralmente excedendo 1 gigabyte por segundo. A atualização para SSDs pode melhorar muito a velocidade de recuperação do minilote e reduzir o gargalo causado pelas transferências de disco para RAM.

Outra abordagem para gerenciar grandes conjuntos de dados é a fragmentação ou particionamento de dados. Em vez de armazenar todo o conjunto de dados em um único disco, você pode distribuir os dados em vários discos. Essa técnica pode melhorar a velocidade de recuperação de dados, pois você pode ler vários discos em paralelo. Por exemplo, se você tiver quatro discos, poderá dividir seu conjunto de dados em quatro estilhaços e ler minilotes de cada estilhaço simultaneamente. Isso pode ajudar a atenuar o gargalo causado pelas transferências de disco para RAM.

Em alguns casos, o conjunto de dados pode ser muito grande, mesmo para armazenamento em RAM, ou não pode ser facilmente particionado em vários discos. Em tais situações, você pode considerar o uso de estruturas de carregamento de dados que oferecem suporte ao treinamento de falta de memória (OOM). Essas estruturas, como o tf.data do TensorFlow e o DataLoader do PyTorch, permitem que você processe grandes conjuntos de dados com eficiência de memória ao transmitir minilotes do disco durante o treinamento. Eles cuidam da coordenação do carregamento de dados, garantindo um fornecimento contínuo de mini-lotes para a GPU sem esgotar os recursos do sistema.

Ao usar estruturas de treinamento OOM, é importante otimizar o pipeline de carregamento de dados para minimizar o tempo gasto em E/S de disco. Isso pode ser alcançado empregando técnicas como pré-busca de dados, onde os próximos mini-lotes são carregados em segundo plano enquanto o mini-lote atual está sendo processado. Essa sobreposição de computação e carregamento de dados pode ajudar a ocultar a latência de E/S de disco e manter a GPU ocupada.

Além disso, você pode aproveitar técnicas como compactação e serialização de dados para reduzir o tamanho do conjunto de dados no disco. A compactação dos dados pode economizar espaço de armazenamento e melhorar a velocidade de E/S do disco. A serialização permite armazenar dados em um formato compacto, reduzindo o espaço em disco necessário e facilitando a desserialização de dados mais rápida durante o treinamento.

Por fim, ao trabalhar com conjuntos de dados extremamente grandes que não podem ser gerenciados com eficiência usando as técnicas acima, a computação distribuída e o processamento paralelo tornam-se necessários. Estruturas de aprendizado profundo distribuídas, como Distributed TensorFlow da TensorFlow e DistributedDataParallel da PyTorch, permitem modelos de treinamento em várias máquinas ou GPUs. Essas estruturas lidam com o paralelismo de dados, permitindo distribuir a carga de trabalho e processar mini-lotes em paralelo, reduzindo significativamente o tempo de treinamento para modelos de grande escala.

Para resumir, o gerenciamento eficaz de grandes conjuntos de dados envolve a otimização do pipeline de dados para garantir a recuperação eficiente de mini-lotes. O armazenamento de dados na RAM ou na GPU pode fornecer acesso mais rápido em comparação com a recuperação baseada em disco. A atualização para SSDs, a fragmentação de dados, o uso de estruturas de treinamento OOM, a otimização do carregamento de dados e o aproveitamento de técnicas de computação distribuída podem melhorar ainda mais o desempenho ao lidar com grandes conjuntos de dados. Ao considerar cuidadosamente essas estratégias, você pode gerenciar e treinar modelos com eficiência em conjuntos de dados de grande escala.

 

Deep Learning para dispositivos móveis



Deep Learning para dispositivos móveis

Tudo bem, meu nome é Carlo e deixe-me reservar um momento para garantir que minhas demos estejam funcionando. Hoje, tenho uma apresentação para vocês da Xnor.de AI, a empresa para a qual trabalho. Nossa missão na Xnor.de AI é tornar a IA acessível, permitindo que dispositivos incorporados e móveis executem algoritmos complexos de aprendizado profundo. Para começar as coisas de maneira diferente, começarei com uma demonstração.

Você já deve estar familiarizado com o YOLO (You Only Look Once), o protótipo de detecção de objetos em tempo real da Redmon em uma GPU. Na Xnor.de AI, desenvolvemos o YOLO para celulares, permitindo que você detecte objetos como carros, pessoas e muito mais. Convido você a brincar com esta demonstração enquanto explico seu significado.

A parte interessante é que essa detecção está sendo executada inteiramente na CPU. Vou explicar por que estamos fazendo isso em breve. Até estendemos nossos recursos para dispositivos de baixo custo, como o Raspberry Pi Zero, que é um computador de cinco dólares com capacidade de computação limitada. No entanto, podemos executar tarefas de classificação nele. Ao utilizar a energia da bateria, este minúsculo computador se torna um dispositivo portátil de aprendizado profundo.

Deixe-me demonstrar como funciona. Quando o Pi Zero classifica uma imagem como uma pessoa, por exemplo, um pequeno LED na parte de trás do aparelho acende. Aguarde um momento e você verá o LED indicando a presença de uma pessoa. Da mesma forma, pode classificar outros objetos também.

Tradicionalmente, os modelos de aprendizado profundo são treinados em desktops ou servidores de alta potência com GPUs e implantados na mesma plataforma. No entanto, queremos estender a implantação para outros dispositivos, como telefones celulares ou dispositivos de ponta, como campainhas e câmeras de segurança. Hoje, fornecerei alguns conselhos de alto nível sobre o que considerar ao aplicar seus modelos de aprendizado profundo a diferentes plataformas.

Uma plataforma que eu recomendo é a Nvidia Jetson TX2. É uma miniplaca GPU de desktop que pode executar estruturas populares como TensorFlow, PyTorch ou Darknet sem a necessidade de recompilação ou problemas de implantação. É como ter um laptop minúsculo com GPU NVIDIA, Wi-Fi e sistema operacional Ubuntu. Ele oferece oito gigabytes de memória, permitindo que você execute vários modelos sem problemas.

Outra plataforma interessante a considerar são os iPhones mais recentes, pois a Apple desenvolveu os processadores ARM mais rápidos do mercado. Esses iPhones oferecem poder de computação significativo, tornando-os adequados para tarefas de aprendizado profundo. No entanto, lembre-se de que a programação para iOS, principalmente no Xcode, pode ser desafiadora, especialmente se você quiser usar estruturas como TensorFlow ou Caffe.

Para opções mais acessíveis, exploramos o Raspberry Pi Zero como um estudo de caso. Embora seja um dispositivo de baixo custo com um único núcleo e careça de instruções vetoriais, ele serve como uma excelente ferramenta para experimentos de aprendizado profundo baratos. Ao avaliar plataformas móveis ou incorporadas, considere fatores como número de núcleos, suporte a instruções vetoriais, instruções especializadas para aprendizado profundo e a presença de uma GPU móvel.

Quanto à escolha de estruturas de aprendizado profundo, não importa muito qual você usa para treinamento, pois todos utilizam blocos de construção semelhantes. Estruturas como Torch, Caffe, Darknet e TensorFlow compartilham a mesma base e se conectam a bibliotecas específicas da plataforma. Com o tempo, as diferenças de desempenho entre as estruturas provavelmente convergirão para um fator de dois. Portanto, use a estrutura com a qual você se sentir mais confortável.

Ao fazer a transição do treinamento para a inferência, o processo de implantação torna-se crucial. Muitas empresas utilizam grandes frameworks durante o treinamento, mas para inferência extraem e otimizam componentes específicos da rede. Isso permite que eles criem um pipeline de inferência altamente personalizado e eficiente, adaptado às suas necessidades. Lembre-se de que a implantação de modelos em dispositivos móveis requer uma otimização cuidadosa do desempenho.

Para concluir, a implantação de modelos de aprendizado profundo em diferentes dispositivos envolve a consideração de fatores como poder computacional e recursos disponíveis no dispositivo de destino, os requisitos específicos de seu aplicativo e as compensações entre desempenho, precisão e consumo de energia.

Uma consideração importante é o tamanho do próprio modelo de aprendizado profundo. Os dispositivos móveis e integrados geralmente têm memória e capacidade de armazenamento limitadas, por isso é crucial escolher ou projetar modelos que sejam leves e eficientes. Técnicas como compressão de modelo, quantização e remoção podem ajudar a reduzir o tamanho do modelo sem perda significativa de desempenho.

Outro fator a considerar é a velocidade de inferência do modelo. Os aplicativos em tempo real geralmente exigem tempos de inferência rápidos para fornecer respostas oportunas. Você pode otimizar a arquitetura do modelo, usar aceleradores de hardware especializados ou empregar técnicas como paralelismo de modelo ou quantização de modelo para melhorar a velocidade de inferência.

O consumo de energia é outro aspecto crítico, especialmente para dispositivos alimentados por bateria. Os modelos de aprendizado profundo podem ser computacionalmente intensivos e esgotar a bateria rapidamente. A otimização da arquitetura do modelo e a implementação de algoritmos de eficiência energética podem ajudar a prolongar a vida útil da bateria do dispositivo e torná-lo mais adequado para operação contínua.

Além disso, leve em consideração a compatibilidade da estrutura de aprendizado profundo com a plataforma de destino. Algumas estruturas podem ter melhor suporte ou versões otimizadas para dispositivos ou sistemas operacionais específicos. Considere a disponibilidade de modelos pré-treinados, ferramentas de implantação e suporte da comunidade ao escolher uma estrutura para sua implantação.

Por fim, certifique-se de testar e avaliar minuciosamente o desempenho de seu modelo implantado no dispositivo de destino. Valide sua precisão, latência e consumo de energia em cenários do mundo real para garantir que atenda aos requisitos de seu aplicativo.

Em resumo, a implantação de modelos de aprendizado profundo em diferentes dispositivos envolve a consideração cuidadosa de fatores como tamanho do modelo, velocidade de inferência, consumo de energia, compatibilidade de estrutura e testes completos. Ao entender os recursos e limitações dos dispositivos de destino e otimizar o modelo e o pipeline de implantação de acordo, você pode efetivamente levar os recursos de IA a uma ampla variedade de dispositivos e habilitar aplicativos interessantes.

 

YOLO 9000: melhor, mais rápido, mais forte


YOLO 9000: melhor, mais rápido, mais forte

quando falo sobre o Yolo 9000, estou me referindo à nossa versão aprimorada do sistema de detecção de objetos. No ano passado, na CBPR, apresentamos o Yolo, nosso sistema de detecção de objetos em tempo real, que era incrivelmente rápido e incrível. O CBPR é uma das principais conferências de visão computacional, com foco em visão computacional e reconhecimento de padrões. No entanto, apesar de sua velocidade, Yolo ficou para trás em termos de precisão, o que foi decepcionante.

Durante a apresentação, houve um incidente embaraçoso em que pensei erroneamente que a porta atrás de mim no pódio era um banheiro. Este incidente nos fez perceber que nosso sistema de detecção precisava de melhorias significativas e nos deixou insatisfeitos com seu desempenho. Inspirados por um dos maiores artistas de música eletrônica de todos os tempos, sabíamos que tínhamos que trabalhar mais para tornar o Yolo melhor, mais rápido e mais forte. Hoje, estou aqui para compartilhar os resultados de nossos esforços.

Em primeiro lugar, nos concentramos em melhorar a precisão do Yolo. Fizemos várias melhorias incrementais e, embora não aborde todas elas aqui, você pode encontrar todos os detalhes em nosso trabalho de pesquisa. Vou destacar alguns que podem ser relevantes para outros pesquisadores.

Normalmente, na detecção de objetos, iniciamos o pré-treinamento no ImageNet usando pequenas redes de classificação com dimensões como 224x224. Em seguida, ajustamos a rede na tarefa de detecção específica, redimensionando-a para 448x448. No entanto, descobrimos que os recursos aprendidos com as imagens de tamanho pequeno podem não ser bem traduzidos ao operar em imagens maiores. Para resolver isso, introduzimos uma etapa extra. Após o pré-treinamento no ImageNet, redimensionamos nossa rede e a treinamos por mais tempo no ImageNet em tamanho maior. Por fim, ajustamos essa rede, treinada no tamanho maior, para detecção de objetos. Essa abordagem gerou um aumento significativo na precisão média média, em torno de 3,5%, o que é substancial na comunidade de detecção. Essa modificação simples pode ser facilmente aplicada a pipelines de treinamento semelhantes.

Em relação às caixas de ancoragem, no Yolo original, previmos diretamente as coordenadas XY e a largura e altura das caixas delimitadoras usando uma função logística. No entanto, outros sistemas, como Faster R-CNN e SSD, usam caixas de ancoragem e calculam deslocamentos para prever caixas de objetos. Para facilitar o aprendizado de nossa rede, decidimos adotar a ideia de prever offsets de caixas candidatas. Em vez de usar caixas de ancoragem predefinidas, analisamos os dados de treinamento e realizamos agrupamento k-means nas caixas delimitadoras para obter um conjunto de clusters de dimensão. Esses clusters representam caixas de ancoragem mais realistas que capturam a variabilidade nos dados de treinamento. Ao usar esses clusters de dimensão em vez de caixas de ancoragem predefinidas, alcançamos um aumento de cerca de 5% na precisão média média. Os pesquisadores que atualmente usam caixas de âncora podem considerar o exame de seus dados e o uso de agrupamento k-means para melhorar seus pontos de partida para agrupamentos.

Outra melhoria interessante que fizemos foi a introdução de um regime de treinamento multiescala. Anteriormente, treinamos detectores em uma única proporção, redimensionando todas as imagens para um tamanho fixo como 448x448. No entanto, agora redimensionamos nossa rede aleatoriamente para várias escalas durante o processo de treinamento. Nossa rede totalmente convolucional diminui a resolução da imagem de entrada por um fator de 32, permitindo redimensioná-la sem afetar a estrutura da rede. Treinamos nossa rede em diferentes escalas, variando de 320x320 a 608x608, selecionando aleatoriamente os tamanhos das imagens de entrada durante o treinamento. Essa abordagem não apenas melhora o desempenho em uma única escala, mas também fornece uma compensação suave entre precisão e velocidade. Na hora do teste, podemos redimensionar a rede para diferentes tamanhos sem alterar os pesos treinados, nos permitindo adaptar a várias escalas e alcançar o equilíbrio desejado entre precisão e velocidade.

Em essência, o regime de treinamento multiescala serve como uma forma de aumento de dados na detecção.

Além do regime de treinamento multiescala, também introduzimos uma técnica chamada treinamento "grosseiro para fino". Em vez de treinar a rede desde o início com imagens de tamanho real, inicialmente a treinamos com imagens menores e aumentamos gradualmente o tamanho durante o processo de treinamento. Essa abordagem ajuda a rede a aprender características gerais e refinar gradualmente sua compreensão de detalhes mais sutis à medida que o tamanho da imagem aumenta. Começando com imagens de baixa resolução e passando gradualmente para resoluções mais altas, observamos um desempenho aprimorado em termos de precisão e velocidade.

Outro aspecto importante que focamos foi a questão da detecção de pequenos objetos. Yolo foi originalmente projetado para detectar objetos em várias escalas, mas lutou para detectar objetos pequenos com precisão. Para resolver isso, introduzimos uma nova técnica chamada "rede de pirâmide de recursos" (FPN). O FPN combina recursos de baixo e alto nível de diferentes camadas da rede para gerar uma pirâmide de recursos, onde cada nível representa uma escala diferente da imagem. Ao incorporar recursos multiescala, nossa rede ficou mais robusta na detecção de objetos pequenos, levando a uma melhora significativa no desempenho, principalmente para objetos de tamanhos menores.

Por fim, fizemos otimizações na arquitetura da rede para aumentar sua eficiência e velocidade. Reduzimos o número de camadas convolucionais e adotamos blocos de construção eficientes, como convoluções 1x1, para reduzir a complexidade computacional sem comprometer a precisão. Essas otimizações nos permitiram alcançar um equilíbrio entre precisão e desempenho em tempo real, tornando o Yolo 9000 um dos sistemas de detecção de objetos mais rápidos e precisos disponíveis.

No geral, com essas melhorias, o Yolo 9000 alcançou um aumento substancial na precisão média em comparação com o sistema Yolo original. Ele supera outros sistemas de detecção de objetos de última geração em termos de precisão, mantendo um impressionante desempenho em tempo real. Acreditamos que os avanços que fizemos no Yolo 9000 terão um impacto significativo em uma ampla gama de aplicações, desde veículos autônomos até sistemas de vigilância por vídeo.

YOLO 9000: Better, Faster, Stronger
YOLO 9000: Better, Faster, Stronger
  • 2017.08.17
  • www.youtube.com
#hangoutsonair, Hangouts On Air, #hoa
Razão: