lar - Smart TV
Usando redes neurais. Redes neurais: o que são e como as marcas as utilizam

Redes neurais (redes neurais artificiais) são um sistema de processadores simples (neurônios artificiais) conectados e interagindo entre si. Esses processadores geralmente são bastante simples (especialmente se comparados aos processadores usados ​​em computadores pessoais). Cada processador em tal rede lida apenas com os sinais que recebe periodicamente e com os sinais que envia periodicamente para outros processadores. E ainda assim, quando conectados a uma rede suficientemente grande e com interação controlada, esses processadores juntos são capazes de realizar tarefas bastante complexas, uma vez que as redes neurais aprendem à medida que funcionam.

Não é nenhum segredo que as redes neurais são agora usadas com mais frequência na fotografia. Já vimos como eles conseguem trabalhar com animação em um computador normal, e as pinturas vão à venda por um preço mais alto do que as obras de artistas famosos. Não é de surpreender que tenham sido as redes neurais que formaram a base do aplicativo FaceApp, que em questão de dias ganhou popularidade em todo o mundo, invadindo a App Store e o .

Elon Musk depois de colonizar Marte

O Google revelou uma nova rede neural experimental, Translatotron, capaz de traduzir diretamente a fala para outro idioma sem usar sua representação de texto, e armazenar os dados de voz e a velocidade de fala do locutor, segundo o blog da empresa. Um sistema de memória de longo prazo é capaz de receber entradas de voz e processá-las como um espectrograma e, em seguida, gerar um novo espectrograma a partir daquele no idioma alvo. Sob certas condições, isto aumentará não só a velocidade da tradução, mas também a sua precisão. Uma descrição mais completa do novo desenvolvimento pode ser encontrada em artigo publicado no repositório online de artigos científicos arXiv.org.

1.2 Áreas de aplicação de redes neurais

As redes neurais artificiais são atualmente amplamente utilizadas na resolução de uma variedade de problemas e são ativamente utilizadas onde soluções algorítmicas convencionais se revelam ineficazes ou completamente impossíveis. Entre as tarefas que as redes neurais artificiais são confiáveis ​​para resolver estão as seguintes: reconhecimento de texto, sistemas de segurança e vigilância por vídeo, automação de processos de reconhecimento de imagem, controle adaptativo, aproximação de funcionais, previsão - e isso não é tudo. Usando redes neurais, você pode reconhecer sinais ópticos ou de áudio. As implementações de hardware de RNA são ideais para solucionar problemas de identificação e controle, pois, graças à sua estrutura paralela, proporcionam altíssima velocidade de operações.

As capacidades descritas referem-se principalmente a redes neurais em camadas treinadas pelo algoritmo de retropropagação e a redes neurais crescentes baseadas em variantes do algoritmo de correlação em cascata. Mas existem outras classes de redes neurais - redes neurais de memória associativa, redes neurais para quantização de dados, compressão de dados através da construção de componentes principais independentes, redes neurais para separar uma mistura de sinais, etc. a gama de problemas resolvidos pelas redes neurais é muito, muito ampla, uma vez que o próprio conjunto de algoritmos de redes neurais é amplo.

1.3 Classificação de redes neurais

Há uma ampla gama de maneiras bastante universais de organizar ferramentas e o processo real de uso de redes neurais em diversas bases de software e hardware. Você sempre pode escolher o mais ideal para um determinado problema - tudo é determinado pelas propriedades do problema e pelos requisitos para a solução.

No entanto, o uso de redes neurais é complicado por vários motivos. É impossível criar uma RNA universal que seja adequada para vários tipos de problemas. As redes neurais são usadas em duas versões:

1) É construída uma rede neural que resolve uma determinada classe de problemas,

2) Para cada instância do problema, é construída uma determinada rede neural que encontra uma solução quase ótima para esse problema.

Existem vários tipos de redes neurais. Sua classificação é apresentada na Figura 1.1

Figura 1.1 Classificação da RNA


A família mais comum de redes de ação direta são os perceptrons multicamadas, nos quais os neurônios são organizados em camadas e conectados por conexões unidirecionais que vão da entrada à saída da rede. As redes feedforward são estáticas no sentido de que, para uma determinada entrada, produzem um conjunto de valores de saída que são independentes do estado anterior da rede.

As redes recorrentes são dinâmicas, pois devido ao feedback, as entradas dos neurônios nelas são modificadas, o que leva a uma mudança no estado da rede. O comportamento das redes recorrentes é descrito por equações diferenciais ou diferenças, geralmente de primeira ordem. Isso expande muito as áreas de aplicação das redes neurais e os métodos de treiná-las. A rede é organizada de modo que cada neurônio receba informações de outros neurônios, possivelmente de si mesmo e do ambiente.

Também podemos distinguir duas abordagens principais para a implementação de redes neurais: digital e analógica. As vantagens das implementações analógicas são: alta velocidade, confiabilidade e economia. No entanto, o âmbito do possível uso em massa de neurochips analógicos treináveis ​​é bastante estreito. Isso se deve à grande complexidade da implementação em hardware de algoritmos de treinamento altamente eficazes e à necessidade de treinamento especial de usuários potenciais para uma organização ideal do processo adaptativo. Ao mesmo tempo, neurocomputadores analógicos treinados (redes neurais) com uma estrutura de conexão fixa ou ligeiramente ajustável - neuroprocessadores - podem se espalhar.

A tarefa de criar processadores neurais se resume a treinar um modelo de rede neural digital para se comportar em um computador digital normal.

As redes também podem ser classificadas pelo número de camadas. Neste caso, a não linearidade da função de ativação desempenha um papel importante, pois se não possuísse esta propriedade ou não fizesse parte do algoritmo de funcionamento de cada neurônio, o resultado do funcionamento de qualquer rede neural de n camadas seria reduzido a multiplicar o vetor do sinal de entrada φ por uma matriz de coeficientes de ponderação. Ou seja, de fato, tal rede neural é equivalente a uma rede neural de camada única com uma matriz de pesos de camada única W. Além disso, às vezes a não linearidade é introduzida nas conexões sinápticas.

1.4 Estrutura e princípios de funcionamento de uma rede neural

Um elemento de limiar binário foi escolhido como modelo de neurônio, calculando a soma ponderada dos sinais de entrada e gerando um sinal de saída de valor 1 se esta soma exceder um determinado valor de limiar, e 0 caso contrário. Até o momento, este modelo não sofreu grandes alterações. Novos tipos de funções de ativação foram introduzidos. O modelo estrutural de um neurônio técnico é apresentado na Figura 1.3

Figura 1.3 Modelo formal de um neurônio artificial

A entrada de um neurônio artificial recebe vários sinais, cada um dos quais é a saída de outro neurônio ou o sinal de entrada de um modelo de rede neural. Cada entrada é multiplicada por um peso correspondente, semelhante à força sináptica de um neurônio biológico. O peso determina o quanto a entrada correspondente de um neurônio afeta seu estado. Todos os produtos são somados para determinar o nível de ativação dos neurônios. O estado do neurônio é determinado pela fórmula.

onde φ é o conjunto de sinais que chegam à entrada do neurônio,

w i – coeficientes de peso do neurônio.

, (1.2)

onde n é a dimensão do vetor de entrada,

w 0 – “viés neural” introduzido para inicializar a rede - conectado à entrada fixa +1,

F – função de ativação do neurônio.

Os neurônios podem ser agrupados em uma estrutura de rede de várias maneiras. As características funcionais dos neurônios e a forma como eles são combinados em uma estrutura de rede determinam as características da rede neural. Para resolver problemas de identificação e controle, as mais adequadas são as redes neurais multicamadas (MNNs) de ação direta ou perceptrons multicamadas. Ao projetar um MNN, os neurônios são combinados em camadas, cada uma das quais processa um vetor de sinais da camada anterior. A implementação mínima é uma rede neural de duas camadas que consiste em uma camada de entrada (distribuição), intermediária (oculta) e de saída.


Figura 1.4 Diagrama de blocos de uma rede neural de duas camadas.

A implementação do modelo de rede neural direta de duas camadas tem a seguinte representação matemática:

, (1.7)

onde n φ é a dimensão do vetor de entradas φ da rede neural;

n h – número de neurônios na camada oculta;

θ – vetor de parâmetros ajustáveis ​​da rede neural, incluindo coeficientes de ponderação e vieses neurais (w ji, W ij)

f j (x) – função de ativação dos neurônios da camada oculta;

F i (x) – função de ativação dos neurônios da camada de saída.

Um perceptron é uma rede que consiste em várias camadas de neurônios formais conectadas sequencialmente (Figura 1.3). No nível mais baixo da hierarquia existe uma camada de entrada, composta por elementos sensoriais, cuja tarefa é apenas receber e distribuir informações de entrada pela rede. Depois, há uma ou, menos comumente, várias camadas ocultas. Cada neurônio da camada oculta possui diversas entradas conectadas às saídas dos neurônios da camada anterior ou diretamente aos sensores de entrada φ 1 ..φ n , e uma saída. Um neurônio é caracterizado por um vetor único de parâmetros ajustáveis ​​θ. A função de um neurônio é calcular a soma ponderada de suas entradas com sua posterior transformação não linear em um sinal de saída:




Sistemas especialistas (A. Baturo), além de palestras do prof. UM. Gorban em redes neurais. Anexo 1. Cartazes de defesa do diploma. TECNOLOGIA PARA EXTRAÇÃO DE CONHECIMENTO DE REDES NEURAIS: ¨ APROBAÇÃO, ¨ DESIGN DE SOFTWARE, ¨ USO EM PSICOLINGUÍSTICA OBJETIVO DO TRABALHO ¨ aprovação de tecnologia flexível para extração...

A capacidade do MP de extrapolar o resultado de forma acrítica é considerada seu ponto fraco. As redes RBF são mais sensíveis à “maldição da dimensionalidade” e enfrentam dificuldades significativas quando o número de entradas é grande. 5. MODELAGEM DE REDES NEURAIS PARA PREDIÇÃO DO VALOR DE IMÓVEIS 5.1 ​​Características da previsão de redes neurais no problema de avaliação do valor de imóveis O uso de redes neurais pode ser...

Analise suas tendências e preveja a situação no futuro. Todos os participantes do mercado de valores mobiliários planejam suas operações somente após uma análise cuidadosa. Os métodos estatísticos de previsão da evolução do mercado de valores mobiliários baseiam-se na construção de índices de ações, cálculo de indicadores de dispersão, variação, covariância, extrapolação e interpolação. Os índices de ações são os mais populares em...


Em 20/05/06 (lista de preços Platan) – 2.654 rublos. APÊNDICE D Dados iniciais para a execução da parte organizacional e econômica Tema do trabalho final de qualificação: Sistema de rede neural para diagnóstico e controle de unidade de bombeamento de poço profundo com haste de sucção. Local de estágio pré-diploma: UGATU Preço semelhante: 40.000 rublos. Preço de venda: 35.000 rublos. Demanda de quantidade: 1 peça Descarga...

No primeiro semestre de 2016, o mundo ouviu falar de muitos desenvolvimentos no campo das redes neurais - Google (player da rede Go AlphaGo), Microsoft (uma série de serviços para identificação de imagens), startups MSQRD, Prisma e outros demonstraram seus algoritmos.

Para favoritos

Os editores do site dizem o que são redes neurais, para que são necessárias, por que tomaram conta do planeta agora, e não anos antes ou depois, quanto você pode ganhar com elas e quem são os principais players do mercado. Especialistas do MIPT, Yandex, Mail.Ru Group e Microsoft também compartilharam suas opiniões.

O que são redes neurais e quais problemas elas podem resolver?

As redes neurais são uma das direções no desenvolvimento de sistemas de inteligência artificial. A ideia é modelar o mais próximo possível o funcionamento do sistema nervoso humano – nomeadamente, a sua capacidade de aprender e corrigir erros. Esta é a principal característica de qualquer rede neural - ela é capaz de aprender e agir de forma independente com base na experiência anterior, cometendo cada vez menos erros a cada vez.

A rede neural imita não apenas a atividade, mas também a estrutura do sistema nervoso humano. Tal rede consiste em um grande número de elementos de computação individuais (“neurônios”). Na maioria dos casos, cada “neurônio” pertence a uma camada específica da rede. Os dados de entrada são processados ​​sequencialmente em todas as camadas da rede. Os parâmetros de cada “neurônio” podem mudar dependendo dos resultados obtidos em conjuntos anteriores de dados de entrada, alterando assim a ordem de funcionamento de todo o sistema.

O chefe do departamento de pesquisa Mail.ru do Grupo Mail.Ru, Andrey Kalinin, observa que as redes neurais são capazes de resolver os mesmos problemas que outros algoritmos de aprendizado de máquina, a diferença está apenas na abordagem do treinamento.

Todas as tarefas que as redes neurais podem resolver estão de alguma forma relacionadas ao aprendizado. Entre as principais áreas de aplicação das redes neurais estão previsão, tomada de decisão, reconhecimento de padrões, otimização e análise de dados.

O diretor de programas de cooperação tecnológica da Microsoft na Rússia, Vlad Shershulsky, observa que as redes neurais são agora usadas em todos os lugares: “Por exemplo, muitos grandes sites da Internet as utilizam para tornar as reações ao comportamento do usuário mais naturais e úteis para seu público. As redes neurais são a base da maioria dos sistemas modernos de reconhecimento e síntese de fala, bem como de reconhecimento e processamento de imagens. Eles são usados ​​em alguns sistemas de navegação, sejam robôs industriais ou carros autônomos. Algoritmos baseados em redes neurais protegem os sistemas de informação contra ataques de intrusos e ajudam a identificar conteúdos ilegais na rede.”

Num futuro próximo (5 a 10 anos), acredita Shershulsky, as redes neurais serão usadas ainda mais amplamente:

Imagine uma colheitadeira agrícola cujos atuadores estão equipados com diversas câmeras de vídeo. Ele tira cinco mil fotos por minuto de cada planta em sua trajetória e, por meio de uma rede neural, analisa se se trata de uma erva daninha, se está afetada por doenças ou pragas. E cada planta é tratada individualmente. Fantástico? Já não. E em cinco anos isso poderá se tornar a norma. - Vlad Shershulsky, Microsoft

Mikhail Burtsev, chefe do laboratório de sistemas neurais e aprendizagem profunda do MIPT Center for Living Systems, fornece um mapa provisório do desenvolvimento de redes neurais para 2016-2018:

  • sistemas de reconhecimento e classificação de objetos em imagens;
  • interfaces de interação por voz para a Internet das coisas;
  • sistemas de monitoramento de qualidade de serviços em call centers;
  • sistemas para identificação de problemas (incluindo previsão de tempo de manutenção), anomalias, ameaças ciberfísicas;
  • sistemas intelectuais de segurança e monitoramento;
  • substituição de algumas funções dos operadores de call center por bots;
  • sistemas de análise de vídeo;
  • sistemas de autoaprendizagem que otimizam a gestão dos fluxos de materiais ou a localização de objetos (em armazéns, transportes);
  • sistemas de controle inteligentes e de autoaprendizagem para processos e dispositivos de produção (incluindo robótica);
  • o surgimento de sistemas universais de tradução instantânea para conferências e uso pessoal;
  • o surgimento de consultores de bots de suporte técnico ou assistentes pessoais com funções semelhantes às de um ser humano.

O Diretor de Distribuição de Tecnologia da Yandex Grigory Bakunov acredita que a base para a disseminação das redes neurais nos próximos cinco anos será a capacidade de tais sistemas tomarem várias decisões: “A principal coisa que as redes neurais fazem por uma pessoa agora é economizar impedi-lo de tomar decisões desnecessárias. Portanto, eles podem ser usados ​​em quase qualquer lugar onde decisões não muito inteligentes sejam tomadas por uma pessoa viva. Nos próximos cinco anos, é esta habilidade que será explorada, que substituirá a tomada de decisão humana por uma simples máquina.”

Por que as redes neurais se tornaram tão populares agora?

Os cientistas desenvolvem redes neurais artificiais há mais de 70 anos. A primeira tentativa de formalizar uma rede neural remonta a 1943, quando dois cientistas americanos (Warren McCulloch e Walter Pitts) apresentaram um artigo sobre o cálculo lógico das ideias humanas e da atividade neural.

No entanto, até recentemente, diz Andrey Kalinin do Grupo Mail.Ru, a velocidade das redes neurais era muito baixa para que elas se generalizassem e, portanto, tais sistemas eram usados ​​​​principalmente em desenvolvimentos relacionados à visão computacional e em outras áreas outros algoritmos eram usados aprendizado de máquina.

Uma parte trabalhosa e demorada do processo de desenvolvimento da rede neural é o seu treinamento. Para que uma rede neural resolva corretamente os problemas atribuídos, é necessário “executar” seu trabalho em dezenas de milhões de conjuntos de dados de entrada. É com o advento de diversas tecnologias de aprendizagem acelerada que Andrei Kalinin e Grigory Bakunov associam a disseminação das redes neurais.

A principal coisa que aconteceu agora é que surgiram vários truques que permitem criar redes neurais muito menos suscetíveis à reciclagem - Grigory Bakunov, Yandex.

“Em primeiro lugar, apareceu uma grande variedade de imagens rotuladas (ImageNet) disponíveis publicamente, nas quais você pode aprender. Em segundo lugar, as placas de vídeo modernas permitem treinar redes neurais e utilizá-las centenas de vezes mais rápido. Em terceiro lugar, surgiram redes neurais prontas e pré-treinadas que reconhecem imagens, com base nas quais você pode criar seus próprios aplicativos sem ter que gastar muito tempo preparando a rede neural para funcionar. Tudo isso garante um desenvolvimento muito poderoso de redes neurais especificamente na área de reconhecimento de imagens”, observa Kalinin.

Qual é o tamanho do mercado de redes neurais?

“Muito fácil de calcular. Você pode pegar qualquer área que utilize mão de obra pouco qualificada, como agentes de call center, e simplesmente subtrair todos os recursos humanos. Eu diria que estamos a falar de um mercado multibilionário, mesmo dentro de um único país. É fácil compreender quantas pessoas no mundo estão empregadas em empregos pouco qualificados. Então, mesmo falando de forma muito abstrata, acho que estamos falando de um mercado de cem bilhões de dólares em todo o mundo”, afirma Grigory Bakunov, diretor de distribuição de tecnologia da Yandex.

De acordo com algumas estimativas, mais da metade das profissões serão automatizadas - este é o volume máximo pelo qual o mercado de algoritmos de aprendizado de máquina (e redes neurais em particular) pode ser aumentado - Andrey Kalinin, Grupo Mail.Ru.

“Algoritmos de aprendizado de máquina são o próximo passo na automatização de qualquer processo, no desenvolvimento de qualquer software. Portanto, o mercado pelo menos coincide com todo o mercado de software, mas sim o ultrapassa, pois torna-se possível fazer novas soluções inteligentes que são inacessíveis ao software antigo”, continua Andrey Kalinin, chefe do departamento de pesquisa Mail.ru do Mail. Grupo Ru.

Por que os desenvolvedores de redes neurais criam aplicativos móveis para o mercado de massa

Nos últimos meses, vários projetos de entretenimento de alto nível usando redes neurais apareceram no mercado - este é o popular serviço de vídeo, a rede social Facebook e aplicativos russos para processamento de imagens (investimentos do Grupo Mail.Ru em junho) e outros.

As habilidades de suas próprias redes neurais foram demonstradas tanto pelo Google (a tecnologia AlphaGo venceu o campeão em Go; em março de 2016, a corporação vendeu em leilão 29 pinturas desenhadas por redes neurais, etc.) quanto pela Microsoft (o projeto CaptionBot, que reconhece imagens em fotografias e gera legendas automaticamente para elas; o projeto WhatDog, que determina a raça de um cachorro a partir de uma fotografia; o serviço HowOld, que determina a idade de uma pessoa em uma foto, e assim por diante); Em junho, a equipe integrou no aplicativo Avto.ru um serviço de reconhecimento de carros em fotografias; em maio, ela criou o projeto LikeMo.net para desenhar no estilo de artistas famosos;

Esses serviços de entretenimento são criados não para resolver problemas globais, aos quais as redes neurais se destinam, mas para demonstrar as capacidades de uma rede neural e conduzir seu treinamento.

“Os jogos são um traço característico do nosso comportamento como espécie. Por um lado, as situações de jogo podem ser utilizadas para simular quase todos os cenários típicos do comportamento humano e, por outro lado, os criadores de jogos e, principalmente, os jogadores podem obter muito prazer com o processo. Há também um aspecto puramente utilitário. Um jogo bem desenhado não traz apenas satisfação aos jogadores: à medida que jogam, eles treinam o algoritmo da rede neural. Afinal, as redes neurais são baseadas no aprendizado pelo exemplo”, diz Vlad Shershulsky, da Microsoft.

“Em primeiro lugar, isso é feito para mostrar as capacidades da tecnologia. Realmente não há outro motivo. Se estamos falando do Prisma, fica claro por que eles fizeram isso. Os caras construíram uma espécie de pipeline que lhes permite trabalhar com fotos. Para demonstrar isso, eles escolheram um método bastante simples de criação de estilizações. Por que não? Esta é apenas uma demonstração de como os algoritmos funcionam”, diz Grigory Bakunov, da Yandex.

Andrey Kalinin, do Grupo Mail.Ru, tem uma opinião diferente: “Claro, isso é impressionante do ponto de vista do público. Por outro lado, não diria que os produtos de entretenimento não possam ser aplicados em áreas mais úteis. Por exemplo, a tarefa de estilizar imagens é extremamente relevante para uma série de indústrias (design, jogos de computador, animação são apenas alguns exemplos), e o uso completo de redes neurais pode otimizar significativamente o custo e os métodos de criação de conteúdo para elas. ”

Principais players do mercado redes neurais

Como observa Andrey Kalinin, em geral, a maioria das redes neurais no mercado não são muito diferentes umas das outras. “A tecnologia de todos é aproximadamente a mesma. Mas usar redes neurais é um prazer que nem todos podem pagar. Para treinar uma rede neural de forma independente e executar muitos experimentos nela, você precisa de grandes conjuntos de treinamento e de uma frota de máquinas com placas de vídeo caras. Obviamente, as grandes empresas têm essas oportunidades”, afirma.

Entre os principais players do mercado, Kalinin cita o Google e sua divisão Google DeepMind, que criou a rede AlphaGo, e o Google Brain. A Microsoft tem seus próprios desenvolvimentos nesta área - eles são realizados pelo laboratório Microsoft Research. A criação de redes neurais é realizada na IBM, Facebook (uma divisão da Facebook AI Research), Baidu (Baidu Institute of Deep Learning) e outros. Muitos desenvolvimentos estão sendo realizados em universidades técnicas em todo o mundo.

O diretor de distribuição de tecnologia da Yandex, Grigory Bakunov, observa que desenvolvimentos interessantes no campo de redes neurais também são encontrados entre as startups. “Lembro-me, por exemplo, da empresa ClarifAI. Esta é uma pequena startup, que já foi feita por pessoas do Google. Agora eles são talvez os melhores do mundo na determinação do conteúdo de uma imagem.” Essas startups incluem MSQRD, Prisma e outras.

Na Rússia, os desenvolvimentos na área de redes neurais são realizados não apenas por startups, mas também por grandes empresas de tecnologia - por exemplo, a holding Mail.Ru Group utiliza redes neurais para processamento e classificação de textos em pesquisa e análise de imagens. A empresa também está conduzindo desenvolvimentos experimentais relacionados a bots e sistemas conversacionais.

Yandex também está criando suas próprias redes neurais: “Basicamente, essas redes já são utilizadas no trabalho com imagens e sons, mas estamos explorando suas capacidades em outras áreas. Agora estamos fazendo muitos experimentos no uso de redes neurais no trabalho com texto.” Os desenvolvimentos estão sendo realizados em universidades: Skoltech, MIPT, Universidade Estadual de Moscou, Escola Superior de Economia e outras.

Se você acompanha as notícias do mundo da ciência e da tecnologia, provavelmente já ouviu algo sobre o conceito de redes neurais.

Por exemplo, em 2016, a rede neural AlphaGo do Google venceu um dos melhores jogadores profissionais de Counter-Strike: Global Offensive do mundo com uma pontuação de 4-1. O YouTube também anunciou que usará redes neurais para entender melhor seus vídeos.

Mas o que é uma rede neural? Como funciona? E por que eles são tão populares no processamento de máquinas?

Computador como cérebro

Os neurocientistas modernos frequentemente discutem o cérebro como um tipo de computador. As redes neurais pretendem fazer o oposto: construir um computador que funcione como um cérebro.

É claro que temos apenas uma compreensão superficial das funções extremamente complexas do cérebro, mas ao criar simulações simplificadas de como o cérebro processa os dados, podemos construir um tipo de computador que funciona de forma muito diferente de um computador padrão.

Os processadores de computador processam dados sequencialmente (“em ordem”). Eles realizam muitas operações em um conjunto de dados, uma de cada vez. O processamento paralelo (“processamento de vários threads ao mesmo tempo”) acelera significativamente um computador usando vários processadores em série.

Na figura abaixo, o exemplo de processamento paralelo requer cinco processadores diferentes:

Uma rede neural artificial (assim chamada para distingui-la das redes neurais reais no cérebro) tem uma estrutura fundamentalmente diferente. Está muito interligado. Isso permite processar dados muito rapidamente, aprender com eles e atualizar sua própria estrutura interna para melhorar o desempenho.

Contudo, o elevado grau de interligação tem algumas consequências surpreendentes. Por exemplo, as redes neurais são muito boas no reconhecimento de estruturas de dados pouco claras.

Capacidade de aprendizagem

A capacidade de aprendizagem de uma rede neural é sua maior força. Em uma arquitetura de computação padrão, um programador deve projetar um algoritmo que diga ao computador o que fazer com os dados recebidos para garantir que o computador produza a resposta correta.

A resposta para E/S pode ser tão simples como "quando a tecla A é pressionada", "A é exibida na tela" ou mais complexa do que realizar estatísticas complexas. Por outro lado, as redes neurais não requerem os mesmos algoritmos. Através de mecanismos de aprendizagem, eles podem essencialmente desenvolver os seus próprios algoritmos. Algoritmos de máquina para garantir que funcionem corretamente.

É importante notar que como as redes neurais são programas escritos em máquinas que utilizam hardware padrão para processamento serial, a tecnologia atual ainda impõe limitações. Na verdade, criar uma versão de hardware de uma rede neural é um problema completamente diferente.

De neurônios a nós

Agora que estabelecemos as bases de como as redes neurais funcionam, podemos começar a examinar alguns detalhes específicos. A estrutura básica de uma rede neural artificial é assim:


Cada um dos círculos é chamado de “nó” e simula um único neurônio. À esquerda estão os nós de entrada, no meio estão os nós ocultos e à direita estão os nós de saída.

Em termos mais básicos, os nós de entrada aceitam valores de entrada, que podem ser binários 1 ou 0, parte de um valor de cor RGB, o status de uma peça de xadrez ou qualquer outra coisa. Esses nós representam informações que entram na rede.

Cada nó de entrada está conectado a vários nós ocultos (às vezes a cada nó oculto, às vezes a um subconjunto). Os nós de entrada pegam as informações que recebem e as repassam para a camada oculta.

Por exemplo, um nó de entrada pode enviar um sinal (“fogo” no jargão da neurociência) se receber 1 e permanecer inativo se receber zero. Cada nó oculto possui um limite: se todas as suas entradas somadas atingirem um determinado valor, ele é acionado.

Das sinapses às conexões

Cada conexão, equivalente a uma sinapse anatômica, também possui um determinado peso, o que permite à rede prestar mais atenção à ação de um determinado nó. Aqui está um exemplo:


Como você pode ver, o peso da conexão “B” é maior que o das conexões “A” e “C”. Digamos que o nó oculto “4” será acionado somente se receber uma entrada total de “2” ou mais. Isso significa que se “1” ou “3” disparar individualmente, então “4” não irá disparar, mas “1” e “3” juntos irão acionar o nó. O nó "2" também pode iniciar o próprio nó através da conexão "B".

Tomemos o clima como exemplo prático. Digamos que você esteja projetando uma rede neural simples para determinar se deveria haver um alerta de tempestade de inverno.

Usando as conexões e pesos acima, o nó 4 só pode ser acionado se a temperatura estiver abaixo de -18 C e o vento estiver acima de 48 km/s, ou será acionado se a chance de neve for maior que 70%. As temperaturas serão transmitidas ao nó 1, os ventos ao nó 3 e a probabilidade de neve ao nó 2. Agora o nó 4 pode levar tudo isso em consideração ao determinar qual sinal enviar para a camada de saída.

Melhor que a simples lógica

É claro que esta função poderia ser simplesmente implementada usando portas AND/OR simples. Mas redes neurais mais complexas, como as abaixo, são capazes de operações muito mais complexas.


Os nós da camada de saída funcionam da mesma maneira que a camada oculta: os nós de saída somam as entradas da camada oculta e, se atingirem um determinado valor, os nós de saída acionam e enviam sinais específicos. Ao final do processo, a camada de saída enviará um conjunto de sinais que indica o resultado da entrada.

Embora a rede mostrada acima seja simples, as redes neurais profundas podem ter muitas camadas ocultas e centenas de nós.


Correção de bug

Este processo ainda é relativamente simples. Mas onde as redes neurais são realmente necessárias é na aprendizagem. A maioria das redes neurais usa um processo de retropropagação que envia sinais de volta pela rede.

Antes de os desenvolvedores implantarem uma rede neural, eles a executam em uma fase de treinamento na qual ela recebe um conjunto de entradas com saídas conhecidas. Por exemplo, um programador pode ensinar uma rede neural a reconhecer imagens. A entrada poderia ser a imagem de um carro e a saída correta seria a palavra “carro”.

O programador fornece uma imagem como entrada e vê o que sai dos nós de saída. Se a rede responder com “avião”, o programador informa ao computador que está incorreto.

A rede então faz ajustes em suas próprias conexões, alterando o peso dos diferentes links entre os nós. Esta ação é baseada em um algoritmo de aprendizagem especial adicionado à rede. A rede continua ajustando os pesos da conexão até produzir a saída correta.

Isto é uma simplificação, mas as redes neurais podem aprender operações muito complexas usando princípios semelhantes.

Melhoria continua

Mesmo após o treinamento, a retropropagação (treinamento) continua – e é aqui que as redes neurais ficam muito, muito legais. Eles continuam a aprender à medida que são usados, integrando novas informações e fazendo alterações nos pesos de vários compostos, tornando-se cada vez mais eficazes na tarefa para a qual foram projetados.

Pode ser tão simples como reconhecer padrões ou tão complexo como jogar CS:GO.

Assim, as redes neurais estão em constante mudança e melhoria. E isto pode ter consequências inesperadas, levando a redes que priorizam coisas que um programador não consideraria prioritárias.

Além do processo descrito acima, chamado de aprendizagem supervisionada, existe outro método: a aprendizagem não supervisionada.

Nessa situação, as redes neurais pegam os dados de entrada e tentam recriá-los exatamente como sua saída, usando retropropagação para atualizar suas conexões. Isto pode parecer um exercício de futilidade, mas é assim que as redes aprendem a extrair características úteis e a generalizar essas características para melhorar os seus modelos.

Questões de profundidade

A retropropagação é uma forma muito eficaz de treinar redes neurais... quando elas são compostas de apenas algumas camadas. À medida que o número de camadas ocultas aumenta, a eficiência da retropropagação diminui. Este é um problema para redes profundas. Usando retropropagação, muitas vezes não são mais eficientes do que redes simples.

Os cientistas desenvolveram uma série de soluções para este problema, cujas especificidades são bastante complexas e estão além do escopo desta parte introdutória. O que muitas dessas soluções tentam fazer em termos leigos é reduzir a complexidade da rede, ensinando-a a “comprimir” dados.


Para fazer isso, a rede aprende a extrair menos características de identificação dos dados de entrada, tornando-se, em última análise, mais eficiente em seus cálculos. Essencialmente, a rede faz generalizações e abstrações, da mesma forma que os humanos aprendem.

Após esse treinamento, a rede pode podar nós e conexões que considere menos importantes. Isso torna a rede mais eficiente e o aprendizado mais fácil.

Aplicações de redes neurais

Dessa forma, as redes neurais modelam como o cérebro aprende usando múltiplas camadas de nós – entrada, oculta e saída – e podem aprender em situações supervisionadas e não supervisionadas. Redes complexas são capazes de fazer abstrações e generalizações, o que as torna mais eficientes e mais capazes de aprender.

Para que podemos usar esses sistemas interessantes?

Em teoria, podemos usar redes neurais para quase tudo. E você provavelmente já os usou sem perceber. Eles são muito comuns no reconhecimento visual e de fala, por exemplo, porque podem aprender a identificar certas características, algo comum em sons ou imagens.

Então, quando você diz “OK Google”, seu iPhone transmite sua fala por meio de uma rede neural para entender o que você está dizendo. Talvez exista outra rede neural que aprenda a prever o que você provavelmente pedirá.

Carros autônomos podem usar redes neurais para processar dados visuais, seguindo assim as regras de trânsito e evitando colisões. Robôs de todos os tipos podem se beneficiar de redes neurais que os ajudam a aprender a executar tarefas com eficiência. Os computadores podem aprender a jogar jogos como xadrez ou CS:GO. Se você já interagiu com um chatbot, é provável que ele use uma rede neural para sugerir respostas apropriadas.

A pesquisa na Internet pode se beneficiar muito das redes neurais, pois o modelo de processamento paralelo altamente eficiente pode gerar rapidamente muitos dados. A rede neural também pode aprender seus hábitos para personalizar os resultados da pesquisa ou prever o que você pesquisará em um futuro próximo. Este modelo preditivo será obviamente muito valioso para os profissionais de marketing (e para qualquer pessoa que precise prever comportamentos humanos complexos).

Reconhecimento de padrões, reconhecimento óptico de imagens, previsão do mercado de ações, localização de rotas, processamento de big data, análise de custos médicos, previsão de vendas, inteligência artificial em videogames – as possibilidades são quase infinitas. A capacidade das redes neurais de aprender padrões, fazer generalizações e prever comportamentos com sucesso as torna valiosas em inúmeras situações.

O futuro das redes neurais

As redes neurais progrediram de modelos muito simples para simuladores de aprendizagem de alto nível. Eles estão em nossos telefones, tablets e em muitos dos serviços da web que usamos. Existem muitos outros sistemas de aprendizado de máquina.

Mas as redes neurais, devido às suas semelhanças (de uma forma muito simplificada) com o cérebro humano, estão entre as mais fascinantes. Embora continuemos a desenvolver e melhorar os modelos, não podemos dizer do que eles são capazes.

Você conhece alguma aplicação interessante de redes neurais? Você tem experiência em trabalhar com eles? O que mais te entusiasma nessa tecnologia? Compartilhe sua opinião nos comentários abaixo!

Desta vez decidi estudar redes neurais. Consegui adquirir competências básicas nesta matéria durante o verão e o outono de 2015. Por habilidades básicas, quero dizer que posso criar sozinho uma rede neural simples do zero. Você pode encontrar exemplos em meus repositórios GitHub. Neste artigo darei algumas explicações e compartilharei recursos que podem ser úteis em seu estudo.

Passo 1. Neurônios e método feedforward

Então, o que é uma “rede neural”? Vamos esperar com isso e lidar primeiro com um neurônio.

Um neurônio é como uma função: ele recebe vários valores como entrada e retorna um.

O círculo abaixo representa um neurônio artificial. Recebe 5 e retorna 1. A entrada é a soma das três sinapses conectadas ao neurônio (três setas à esquerda).

No lado esquerdo da imagem vemos 2 valores de entrada (em verde) e um deslocamento (em marrom).

Os dados de entrada podem ser representações numéricas de duas propriedades diferentes. Por exemplo, ao criar um filtro de spam, podem significar a presença de mais de uma palavra escrita em LETRAS MAIÚSCULAS e a presença da palavra “Viagra”.

Os valores de entrada são multiplicados pelos seus chamados “pesos”, 7 e 3 (destacados em azul).

Agora somamos os valores resultantes com o deslocamento e obtemos um número, no nosso caso 5 (destacado em vermelho). Esta é a entrada do nosso neurônio artificial.

Então o neurônio realiza alguns cálculos e produz um valor de saída. Temos 1 porque o valor arredondado do sigmóide no ponto 5 é 1 (falaremos sobre esta função com mais detalhes posteriormente).

Se este fosse um filtro de spam, o fato da saída 1 significaria que o texto foi marcado como spam pelo neurônio.

Ilustração de uma rede neural da Wikipedia.

Se você combinar esses neurônios, obterá uma rede neural de propagação direta - o processo vai da entrada à saída, através de neurônios conectados por sinapses, como na imagem à esquerda.

Etapa 2. Sigmóide

Depois de assistir às aulas do Welch Labs, é uma boa ideia conferir a Semana 4 do curso de aprendizado de máquina do Coursera sobre redes neurais para ajudá-lo a entender como elas funcionam. O curso se aprofunda na matemática e é baseado em Octave, enquanto eu prefiro Python. Por conta disso, pulei os exercícios e obtive todo o conhecimento necessário nos vídeos.

Um sigmóide simplesmente mapeia seu valor (no eixo horizontal) para um intervalo de 0 a 1.

Minha primeira prioridade foi estudar o sigmóide, visto que ele figura em muitos aspectos das redes neurais. Eu já sabia alguma coisa sobre isso desde a terceira semana do curso citado, então assisti o vídeo de lá.

Mas você não irá longe apenas com vídeos. Para uma compreensão completa, decidi codificá-lo sozinho. Então comecei a escrever uma implementação do algoritmo de regressão logística (que usa sigmóide).

Demorou um dia inteiro e o resultado não foi satisfatório. Mas não importa, porque descobri como tudo funciona. O código pode ser visto.

Você não precisa fazer isso sozinho, pois requer conhecimentos especiais - o principal é que você entenda como funciona o sigmóide.

Etapa 3. Método de retropropagação

Compreender como uma rede neural funciona da entrada à saída não é tão difícil. É muito mais difícil entender como uma rede neural aprende com conjuntos de dados. O princípio que usei é chamado de retropropagação.

Resumindo: você estima o quão errada a rede está e altera o peso dos valores de entrada (números azuis na primeira imagem).

O processo vai do fim ao começo, já que começamos no final da rede (veja até que ponto o palpite da rede se desvia da verdade) e retrocedemos, alterando os pesos ao longo do caminho, até chegarmos à entrada. Para calcular tudo isso manualmente, você precisará de conhecimentos de análise matemática. A Khan Academy oferece bons cursos de cálculo, mas eu estudei na universidade. Você também não pode se preocupar e usar bibliotecas que calcularão toda a matemática para você.

Captura de tela do tutorial de Matt Mazur sobre retropropagação.

Aqui estão três fontes que me ajudaram a entender esse método:

Ao ler os dois primeiros artigos, você definitivamente deve codificar você mesmo, isso o ajudará no futuro. E, em geral, as redes neurais não podem ser compreendidas adequadamente se você negligenciar a prática. O terceiro artigo também é legal, mas é mais uma enciclopédia já que tem o tamanho de um livro inteiro. Ele contém explicações detalhadas de todos os princípios importantes das redes neurais. Esses artigos também ajudarão você a aprender conceitos como função de custo e gradiente descendente.

Passo 4. Crie sua própria rede neural

Ao ler vários artigos e tutoriais, você escreverá, de uma forma ou de outra, pequenas redes neurais. Recomendo fazer exatamente isso, porque é um método de ensino muito eficaz.

Outro artigo útil foi



 


Ler:



Design e princípio de operação

Design e princípio de operação

Disco óptico é um nome coletivo para mídias de armazenamento feitas na forma de discos, cuja leitura é realizada por meio de um dispositivo óptico...

Crie um retrato a partir de uma fonte usando o Photoshop Retratos de letras

Crie um retrato a partir de uma fonte usando o Photoshop Retratos de letras

Existem tantas opções para transformar fotografias em obras-primas visuais, e uma delas é muito atraente - um retrato a partir de texto...

Como reinstalar um programa no seu computador. Como reinstalar um jogo sem excluí-lo

Como reinstalar um programa no seu computador. Como reinstalar um jogo sem excluí-lo

Se o jogo foi baixado da Internet como uma imagem de disco (geralmente arquivos em formato ISO e MDF), então para instalá-lo você precisará...

Canais de satélite armênios Canais armênios no hotbird

Canais de satélite armênios Canais armênios no hotbird

Hoje vamos abstrair um pouco do Tricolor, do NTV Plus e da televisão paga em geral. Existem muitos satélites que produzem...

imagem de feed RSS