Maribolt (discussão | contribs)
Maribolt (discussão | contribs)
Linha 318: Linha 318:


*Alana Soares Reis
*Alana Soares Reis
*Maríllia Soares Rodrigues

Edição das 00h13min de 14 de dezembro de 2020

Fase I - Estudo


Título da Idéia

Redes Neurais Artificiais


Objetivos

O principal objetivo desse estudo é destacar o que são as Redes Neurais Artificiais e a sua importância. Analisando possíveis aplicações e visando oportunidades de crescimento nesse mercado.


Conceito


Apesar de muitos terem a ideia de que as RNA's são sistemas computacionais que imitam o cérebro humano, na realidade, essa ideia é apenas uma metáfora. As RNA's são baseadas nas redes neurais biológicas associadas ao processamento paralelo do cérebro humano, ou seja, elas são uma abstração da rede neural biológica. Seu objetivo não é replicar, mas sim servir de modelo para o aprendizado, resoluções de problemas complexos. Além disso, as RNA's também são utilizadas principalmente para criar sistemas de inteligência artificial.

As RNA's pode ser encontradas nos seguintes macrotemas:

  • Reconhecimento de padrões e classificação;
  • Identificação de sistema e controle;
  • Processamento de sinais.
  • Processamento de imagem e visão;
  • Identificação de sistema e controle;


Abaixo, seguem algumas aplicações específicas:

  • Reconhecimento de voz;
  • Software de OCR;
  • Identificação de spam;
  • Cloud computing;
  • Mercado financeiro;
  • Agricultura;
  • Previsão do tempo;
  • Medicina.


Para se ter uma ideia do uso das RNAs na medicina, Karabatak, em 2009, apresentou um sistema de diagnóstico automático para câncer de mama, utilizando a base de dados Breast Cancer, baseado nas regras de associação e em uma RNA multilayer perceptron.



Características 


Uma rede neural artificial é composta por várias unidades de processamento, cujo funcionamento é bastante simples. Essas unidades, geralmente são conectadas por canais de comunicação que estão associados a determinado peso. As unidades fazem operações apenas sobre seus dados locais, que são entradas recebidas pelas suas conexões. O comportamento inteligente de uma Rede Neural Artificial vem das interações entre as unidades de processamento da rede.


Redes neurais consistem nos seguintes componentes:

  • Uma camada de entrada ;
  • Uma quantidade arbitrária de camadas ocultas;
  • Uma camada de saída .
  • Um conjunto de pesos e desvios entre cada camada;
  • Uma opção de função de ativação para cada camada oculta;

A operação de uma unidade de processamento, proposta por McCullock e Pitts em 1943, consiste em sinais que são apresentados à entrada, cada sinal é multiplicado por um número, ou peso, que indica a sua influência na saída da unidade e então é feita a soma ponderada dos sinais que produz um nível de atividade, se este nível de atividade exceder um certo limite (threshold) a unidade produz uma determinada resposta de saída.

Tipos de Redes Neurais

As redes neurais são de muitos tipos e cada uma delas vem com um caso de uso específico.

Rede Neural Feedforward: Este é o tipo mais comum de rede neural. onde a informação viaja em uma direção única, isto é, da entrada para a saída.

Erro ao criar miniatura: Arquivo não encontrado

Rede Neural Recorrente: Um tipo de rede usado com mais frequência em que os dados podem ser transferidos em várias direções. Eles possuem maiores capacidades de aprendizagem e são freqüentemente usados ​​para tarefas complexas, como aprender a escrever a mão ou reconhecer o idioma.

Erro ao criar miniatura: Arquivo não encontrado

Existem também outros tipos que usados:

Autoencoder (AE): Normalmente, você usa AEs para reduzir o número de variáveis ​​aleatórias em consideração, para que o sistema possa aprender uma representação para um conjunto de dados e, portanto, processar modelos de dados generativos.

Rede Neural Recorrente Bidirecional (BRNN): O objetivo de um BRNN é aumentar as entradas de informações disponíveis para a rede conectando duas camadas ocultas e direcionalmente opostas à mesma saída. Usando BRNNs, a camada de saída pode obter informações de estados passados ​​e futuros.

Máquina Boltzmann (BM): Uma rede neural recorrente, esse algoritmo é capaz de aprender representações internas e pode representar e resolver problemas combinados difíceis.

Rede Neural Convolucional (CNN): Mais comumente usados ​​para analisar imagens visuais, CNNs são uma rede neural feed-forward projetada para minimizar o pré-processamento.

Rede Neural Deconvolucional (DNN): Os DNNs permitem a construção não supervisionada de representações hierárquicas de imagens. Cada nível da hierarquia agrupa informações do nível anterior para adicionar recursos mais complexos a uma imagem.

Máquina de Turing Neural (NTM): Baseado no trabalho de meados do século 20 do cientista de dados Alan Turing, um NTM realiza cálculos e estende os recursos das redes neurais por meio do acoplamento com memória externa. Os desenvolvedores usam o NTM em robôs e consideram-no um dos meios para construir um cérebro humano artificial.

Memória de longo / curto prazo (LSTM): LSTM é capaz de aprender ou lembrar a dependência da ordem em problemas de previsão relativos à sequência. Uma unidade LSTM contém uma célula, uma porta de entrada, uma porta de saída e uma porta de esquecimento. As células retêm valores em intervalos de tempo arbitrários. Cada unidade regula os fluxos de valor por meio de conexões LSTM. Essa capacidade de sequenciamento é essencial em domínios de problemas complexos, como reconhecimento de voz e tradução automática.

Máquina de estado líquido (LSM): Conhecido como aprendizado de máquina de terceira geração (ou rede neural de spiking), um LSM adiciona o conceito de tempo como um elemento. Os LSMs geram ativação de rede de neurônios espaço-temporal, pois preservam a memória durante o processamento. A física e a neurociência computacional usam LSMs


Ferramentas Utilizadas

As RNA's podem ser implementadas através de diversas ferramentas, entre elas, podemos destacar:

Accord.NET: é um framework de código aberto escrito na linguagem C#. Ela tem por finalidade fornecer a estrutura necessária para a construção de visão e audição computacional, processamento de sinal e aplicações estatísticas. Apesar de ser uma biblioteca de código, disponibiliza 47 exemplos prontos para uso, juntamente com os respectivos códigos fonte.


ADReNA: é um software para apoiar o desenvolvimento de dois modelos de redes neurais artificiais. A ferramenta disponibiliza uma interface para criar modelos perceptron e de Kohonen, bem como para salvar, carregar e executar estes modelos. Também disponibiliza uma API para desenvolvimento de aplicações nas linguagens C# e Java.


AForge.NET: é um framework escrito na linguagem C# e também tem o código aberto. Possibilita trabalhar com processamento de imagens, algoritmos genéticos, lógica fuzzy, aprendizagem de máquina e robótica.


EasyNN-plus: é um software comercial desenvolvido pela empresa “Neural Planner Software”. O objetivo é modelar uma RNA multicamadas, treinar a rede com matrizes de dados que podem ser importados de arquivos texto, planilhas e imagens, e, em seguida, efetuar consultas de predição sobre o modelo criado. De acordo com a página web da empresa, o software é utilizado para fazer previsões em negociação de ações, investimentos, seguros, mercado imobiliário, esportes, previsão do tempo, entre outros. O aplicativo é disponibilizado com uma licença de avaliação para um período de 30 dias, após o qual é necessário comprar uma licença permanente. A mesma companhia também disponibiliza uma versão da ferramenta de uso gratuito sob o nome de “JustNN", porém com limitações de escala de uso.


Encog: é um framework em desenvolvimento desde 2008. Estão implementados algoritmos de aprendizado de máquina, Redes Neurais Artificiais, Algoritmos Genéticos, Redes Bayesianas, entre outros. De acordo com o autor, os algoritmos implementados são altamente escaláveis, operando com Multi-Threads. Além disso, pode fazer uso do processador da placa gráfica para melhorar os tempos de processamento. Como as bibliotecas de código requerem um elevado conhecimento de programação, é disponibilizada uma interface gráfica por meio do software “Encog Workbench” com o objetivo de facilitar o uso das funções da API.


FANN: é uma biblioteca open source que implementa uma estrutura genérica de redes neurais em linguagem de programação C. Tem como objetivo disponibilizar um núcleo robusto para instanciação de RNA em 25 diferentes linguagens de programação (C#, Java, C++, node.js, PHP, Python, D, MQL4, Perl, Ruby, Delphi, Tcl, Lua, Visual Prolog 7, SWI Prolog, Go, Soap, Matlab, R, Ada, Haskel, Grass, Octave, Squeark Smalltalk e Pure Data). A biblioteca não oferece uma implementação pronta de um modelo de RNA, ao invés disso o desenvolvedor deve especificar o número de camadas, a conexão entre os neurônios e o algoritmo de aprendizado.


IDRISI: é um software de licença paga utilizado para geoprocessamento, portanto, ele é muito específico para processamento de fotos de relevo. Pode ser utilizada gratuitamente por um período de avaliação de 30 dias. A ferramenta oferece diversos algoritmos para fazer processamento de imagens, entre eles o MLP e o SOM ambos atuando como classificadores de imagens. Ela trabalha com um formato de dados próprio das imagens (basicamente são convertidas para uma matriz de números inteiros). Todos os algoritmos são manipulados por meio de interface gráfica. Não é disponibilizada API para desenvolvimento.


NEST: é um software de código aberto construído para simular redes neurais semelhantes às do cérebro humano. Diferentemente de outras ferramentas de RNA que possuem morfologia bem definida de neurônios e conexões, o NEST suporta mescla de diferentes tipos de neurônio e de sinapses na rede, pois o foco está na estrutura da rede como um todo. O programa roda em uma Shell com comandos para o interpretador Python. O usuário precisa descrever a rede nesta interface e iniciar a execução da simulação.


Vantagens das Redes Neurais

Erro ao criar miniatura: Arquivo não encontrado

Algumas vantagens das RNA's estão listadas abaixo:

Auto-Organização: Uma RNA pode gerar sua própria representação das informações que recebe no momento do aprendizado. Operação em tempo real: Cálculos de RNA podem ser feitos simultaneamente, e alguns dispositivos especiais (hardware) são fabricados para aproveitar essa capacidade.

Aprendizagem adaptativa: a capacidade de aprender a resolver tarefas é baseada nos dados fornecidos para o conjunto de treinamento.

Operação em tempo real: Cálculos de RNA podem ser feitos simultaneamente, e alguns dispositivos especiais (hardware) são fabricados para aproveitar essa capacidade.


Codificação de informações redundantes por meio da tolerância a falhas: A semidestruição de uma rede leva à degradação do desempenho correspondente. Além disso, algumas redes terão a capacidade de reter dados mesmo quando ocorrer um grande dano à rede.


Aplicações das RNA's no dia-a-dia

As empresas e agências governamentais que começaram a recrutar e a investir em softwares de automação são as mais variadas, entre elas: General Motors, BMW, General Electric, Unilever, MasterCard, Manpower, FedEx, Cisco, Google, o Departamento de Defesa e NASA. Estamos apenas vendo o início das aplicações de redes neurais/IA mudando a forma como nosso mundo funciona. A engenharia é onde as aplicações de RNA são essenciais, incluindo controle de voo, engenharia química, usinas de energia, controle automotivo, sistemas médicos e outros sistemas que exigem autonomia. Teremos como exemplo duas aplicações do setor de engenharia.

As pessoas usam a tecnologia sem fio, que permite que os dispositivos se conectem à Internet ou se comuniquem entre si em uma área específica. Huw Rees, VP de Vendas e Marketing da KodaCloud é um aplicativo projetado para otimizar o desempenho do Wi-Fi. A maioria das soluções de rede local sem fio corporativas ou de grande escala exigem monitoramento e ajuste quase constantes por especialistas em Wi-Fi altamente treinados, uma maneira cara de garantir que a rede esteja funcionando de maneira ideal, o KodaCloud resolve esse problema por meio de um sistema inteligente que usa algoritmos e por meio do aprendizado adaptativo, que gera um loop de autoaperfeiçoamento. A tecnologia KodaCloud tira vantagem das redes neurais para melhorar continuamente, a rede aprende e se autocura com base no aprendizado global e local. Aqui está um exemplo dado pelo engenheiro da KoadaCloud, Ress: "O sistema descobre que um novo sistema operacional Android foi implantado e requer configurações adicionais e alterações de limite para funcionar de maneira ideal. Uma vez que o sistema tenha feito os ajustes e as melhorias de medição necessárias para esta atualização, ele aplica esse conhecimento a todos os outros clientes KodaCloud instantaneamente, para que o sistema reconheça imediatamente qualquer dispositivo semelhante e resolva problemas. Para um exemplo local, digamos que o sistema aprenda o ambiente de radiofrequência local para cada ponto de acesso. Cada dispositivo se conecta a cada ponto de acesso, o que resulta em alterações de limite nos parâmetros de rádio do dispositivo local. Global e localmente"

Uma tecnologia de rápido desenvolvimento, os drones são usados ​​em desastres, exploração de petróleo, gás e mineral, vigilância aérea, imóveis e construção e cinema.A Dawn é uma série de sensores a bordo e um computador companheiro que permite que praticamente qualquer sistema aéreo não tripulado utilize a ampla gama de benefícios que a IA oferece, desde a mecânica de voo, como navegação e prevenção de obstáculos, até serviços como infraestrutura inspeção ou entrega de pacote. O Dawn funciona com base em dois níveis de biologia: no primeiro nível, é usado o RNAs para processar informações brutas. Existem três tipos diferentes de redes que são usadas: redes neurais recorrentes, que usam o passado para informar previsões sobre o futuro; redes neurais convolucionais, que usam feixes 'deslizantes' de neurônios (geralmente usamos esse tipo para processar imagens); e redes neurais mais convencionais, ou seja, redes reais de neurônios. As redes neurais convencionais são muito úteis para problemas como navegação, especialmente quando combinadas com elementos recorrentes. No segundo nível mais sofisticado, a estrutura de Dawn emula a melhor arquitetura que existe para processar informações: o cérebro humano. Isso permite quebrar o problema altamente complexo da autonomia da mesma maneira que a biologia: com 'córtexes' compartimentados, cada um com suas redes neurais e cada um com suas vias de comunicação e estruturas hierárquicas de comando. O resultado é que a informação flui em ondas através do córtex da mesma forma que flui no cérebro. [Em ambos os casos, o processo é otimizado] para eficácia e eficiência no processamento de informações




Estudo Dirigido


Coloque aqui o plano de estudos bem como as possíveis fontes de informação.


Fase II - Ensino


Conteúdo

Desenvolva um conteúdo que possa transmitir o conhecimento adquirido para outros
Crie um material (Wiki, PDF, PPT, ...) que possa ser armazenado e facilmente atualizável


Apresentação

Apresente ao grupo (reunião, EAD, Blog, ...)
Publique aqui


Metodologia


Descrevas as metodologias usadas. Alguns exemplos:
Estratégia de Job Rotation
Estudos básicos para conhecimento do potencial
Estudos básicos para entendimento sobre o problema
Estudos para dar base aos pesquisadores
Benchmarking com empresas estrangeiras 
Aceleradoras de empresas
Adoção de novas tecnologias
Utilização da proposta de soluções Open-source
Priorização no desenvolvimento interno
Foco na não dependência de fornecedores
Prática de formação dos talentos necessários 


Fase III - Exemplo de Caso de Negócio


Product Backlog


Descreva os requisitos deste projeto


Benefícios para quem for oferecer esta solução

    Descrever em tópicos os benefícios que uma pessoa ou uma empresa podem obter: ganhos, receitas, novos negócios, novos produtos, novas parcerias



Benefícios para o usuário

    Descrever em tópicos os benefícios para os usuários desta solução.
    Pode se inspirar no Canvas.


Direcionadores chave para esta iniciativa

    Descrever em tópicos o que esta iniciativa pode proporcionar



Possíveis modelos de negócios

    Descrever em tópicos os possíveis modelos de negócios

Business Case

    Descrever um exemplo de negócio que permita avaliar a solução comercialmente


Alinhamento com Lei do Bem


  • Projeto possui algum elemento tecnologicamente novo ou inovador?
Elemento tecnologicamente novo ou inovador pode ser entendimento como o avanço tecnológico pretendido pelo projeto, ou a hipótese que está sendo testada


  • Projeto possui barreira ou desafio tecnológico superável?
Barreira ou desafio tecnológico superável pode ser entendido como aquilo que dificulta o atingimento do avanço tecnológico pretendido, ou dificulta a comprovação da hipótese


  • Projeto utiliza metodologia/método para superação da barreira ou desafio tecnológico?
Metodologia/método para superação da barreira ou desafio tecnológico pode ser entendido como aqueles atividades que foram realizadas para superação da barreira ou do desafio tecnológico existente no projeto


  • Projeto é desenvolvido em parceira com alguma instituição acadêmica, ICT ou startup?
Se sim, o desenvolvimento tecnológico é executado por associado ou por alguma empresa terceira? qual o nome da empresa? 
Anexar cópia do contrato


Fase IV - Protótipo orientado ao Negócio


Escopo


Explique o escopo deste protótipo


Limitações


Informe sobre as limitações técnicas, comerciais, operacionais, recursos, etc.


PoC


Desenvolva um PoC (Proof of Concept)


Detalhamento Técnico


Descreva especificamente os aspectos técnicos desta pesquisa





Cronograma Macro


Histórico

  • 22/07/2020: Início dos estudos sobre o tópico;
  • 23/07/2020: Início da escrita da fase 1;
  • 27/07/2020: Finalização da escrita Objetivos
  • 29/07/2020: Finalização da escrita Conceitos
  • 03/082020: Finalização da escrita Características
  • 05/10/2020: Em desenvolvimento com aluna de Computação Alana Soares Reis
  • 10/12/2020: Kick-Off com Maríllia sobre o tema

Pesquisadores

  • Alana Soares Reis
  • Maríllia Soares Rodrigues