Fase I - Estudo


Inteligência Artificial sobre serviços de redes


Objetivos

Inteligência Artificial aplicada na clusterização de dados da Algar Telecom


Conceito


O que é Inteligência Artificial:

Inteligência Artificial é uma inteligência parecida com a dos humanos porém reproduzida por algum mecanismo ou software. Existem vários características sobre a inteligência artificial como, capacidade de raciocínio, aprendizagem (onde a IA aprende com erros e acerto até se aperfeiçoar para agir da maneira mais eficaz), reconhecimento de padrões e inferência (que é a capacidade de aplicar raciocínio em situações cotidianas).

"Diz-se que um programa de computador aprende pela experiência E, com respeito a algum tipo de tarefa T e performance P, se sua performance P nas tarefas em T, na forma medida por P, melhoram com a experiência E.” Tom M. Mitchell

Aqui temos a definição de um dos "pais" da Inteligência Artificial. Então partimos sempre de machine learning para chegar na Inteligência Artificial, hoje o principal mecanismo da IA é o aprendizado de máquina.

Redes Neurais:

A Rede Neural Artificial é uma estrutura computacional inspirada na biologia, uma representação computacional da conexão de diversos neurônios artificiais. Ela é dividida em diversas camadas: camada de entrada, camadas ocultas ou intermediárias e camada de saída. Aqui temos um neurônio humano, e suas partes, a função de um neurônio computacional é reproduzir o funcionamento de um neurônio humano.

Neuronio.jpg
Neuronio.jpg


Um único neurônio computacional é chamado de Perceptron, e como podemos perceber ele é divido por partes, como o neurônio humano.

Perceptron.jpg
Perceptron.jpg



Um Perceptron sozinho embora poderoso não é algo que atenda as necessidades das pessoas/empresas no dias atuais, então com o avançar da tecnologia juntou-se vários Perceptrons para chegarmos hoje na nossa conhecida Rede Neural Artificial.

Erro ao criar miniatura: Arquivo não encontrado
Rede-neural.jpg


E assim com vários Perceptrons temos a Rede Neural que conhecemos hoje.


Como podemos ver na imagem as Redes Neurais possuem camadas. As camadas são:

  • Camada de Entrada: onde os padrões são apresentados à rede;
  • Camadas Intermediárias ou Escondidas: onde é feita a maior parte do processamento, através das conexões ponderadas; podem ser consideradas como extratoras de características;
  • Camada de Saída: onde o resultado final é concluído e apresentado.



Nessas camadas acontecem os processamentos dos dados, os dados fornecidos são processados e após o processamento é retornado uma saída. Os passo são basicamente:

  • Sinais são apresentados à entrada;
  • Cada sinal é multiplicado por um número, ou peso, que indica a sua influência na saída da unidade;
  • É feita a soma ponderada dos sinais que produz um nível de atividade;
  • Se este nível de atividade exceder um certo limite a unidade produz uma determinada resposta de saída.



A maioria dos modelos de redes neurais possui alguma forma de treinamento, onde os pesos de suas conexões são ajustados de acordo com os padrões apresentados. Então as redes aprendem através de exemplos.

A propriedade mais importante das redes neurais é a de aprender e melhorar seus resultados. Isso é feito através de um processo iterativo que busca sempre melhorar os pesos. O aprendizado é atingido quando a rede atinge uma solução generalizada para uma determinada classe de problemas.

O algoritmo de aprendizado é um conjunto de regras bem definidas para a solução de um problema de aprendizado. Existem diversos tipos de algoritmos e a maior diferença entre ele é em como os pesos vão ser atualizados.

Outra propriedade importante são os paradigmas de apŕendizado, que é a maneira que a rede se relaciona com o ambiente. São eles:


  • Aprendizado Supervisionado: quando é utilizado um agente externo que indica à rede a resposta desejada para o padrão de entrada;
  • Aprendizado Não Supervisionado (auto-organização): quando não existe uma agente externo indicando a resposta desejada para os padrões de entrada;
  • Reforço: quando um crítico externo avalia a resposta fornecida pela rede.





Serviços de Rede:

O serviço de rede aborda como é feita a arquitetura da internet, como os usuários e servidores se conectam. Alguns exemplos são blogs, aplicativos de mensagem, plataformas de streaming, entre outros. Faz-se uma requisição de algum serviço e o servidor retorna as informações se a conexão for estabelecida. Para tal transporte de informações, existem portas padrões usadas pela rede, a mais famosa é TCP/IP.

Para a estrutura da rede ser realizada, a mesma necessita de:

  • Servidores;
  • Cliente;
  • Protocolo;
  • Middleware, etc.

Os serviços em sua maioria carregará em segundo plano (Daemon), seja no Browser ou em outro lugar que esteja conectado na rede.




Clusterização:

Criar uma Clusterização de dados, consiste em usar uma base de dados X e agrupar(clusterizar) os dados em clusters(grupos) assim organizando os mesmos. Imagine que uma pessoa chega em casa com os seguintes produtos do supermercado:



Compras:
Água Sanitária
Bolo de Chocolate
Carne de frango
Fone de ouvido
Fósforo
Jogos eletrônicos
Sacos de lixo
Roupa de frio
Papel toalha
Arroz



Nós podemos agrupar os itens da seguinte forma:


Alimento: Limpeza: Eletrônico: Vestimenta: Cozinha:
Arroz Água Sanitária Fone de ouvido Roupa de frio Fósforo
Bolo de Chocolate Sacos de lixo Jogos Eletrônicos Papel toalha Null
Carne de frango Null Null Null Null



Neste estudo, vamos abordar a clusterização de data mining, ou seja, armazenar determinado tipo de dado de forma otimizada.



Mineração de Dados:

Basicamente é usar um grande volume de dados para extrair informações úteis para um determinado objetivo. Por exemplo: Como podemos analisar de forma otimizada todos os registros de clima de todos os dias ao longo de 20 anos de uma determinada região? Mineração de dados, com a mesma podemos com uma técnica de extração de dados obter todas as respostas rapidamente, assim sabendo se o clima dessa região analisada tende a aumentar ou diminuir entre outras análises possíveis já com os dados analisados.

Mineracaodedados.png
Mineracaodedados.png


Características 


Inteligência Artificial sobre serviços de rede:

A característica é usar IA para processar e organizar dados para uma análise futura para melhoramento do produto/serviço. Repare que a internet tem várias possibilidades de colecionar dados e analisar para propor melhor performance do serviço, entre outros. Seja catalogar a banda gasta, acesso elevados em determinados sites, o uso de Gigabytes, a satisfação do cliente ou o gosto dele para navegar, etc. Então para cada caso, levando N-fatores, pode-se propor um modelo melhor para o uso do cliente, para que o serviço fique cada vez melhor com uma Inteligência Artificial tomando a frente para maior rapidez de solução, automatização e organização de dados principalmente.



Estudo Dirigido

1. Aprofundando os estudos;

2. Apresentando os conceitos de Rede neural, Serviços de rede, Clusterização, Mineração de dados;

3. Aprofundando os estudos.

W. S., Silva, A. S. Morais, W. O. Silva, “Proposta de uso de redes neurais para clusterização de dados no contexto de análise qualitativa de informações de reclamações em serviços de telecomunicações”. 9° Congresso Ibero-americano de Investigación Cualitativa (CIAIQ2020).

Tanenbaum, Wetherrall, Andrew S. Tanenbaum, David Wetherall. Livro - Redes de Computadores. 5° Edição.Pearson Universidades.2011.

OCHI, Luiz Satoru; DIAS, Carlos Rodrigo; SOARES, Stênio S. Furtado. Clusterização em mineração de dados. Instituto de Computação-Universidade Federal Fluminense-Niterói, v. 1, p. 46, 2004.

Fase II - Ensino


Conteúdo

https://docs.google.com/presentation/d/1E_TD2veiF5-Xi-1laLU9mUpCg231io88deU-YSNOxYQ/edit?usp=sharing

Apresentação

A apresentação acima foi realizada a fim de expor os conhecimentos obtidos, foram abordados as características e os benefícios da tecnologia.

Metodologia

  1. Novas metodologias
  2. Best Practices
  3. Novos processos
  4. Estratégia de Job Rotation
  5. Estudos básicos para conhecimento do potencial
  6. Estudos básicos para entendimento sobre o problema
  7. Estudos para dar base aos pesquisadores
  8. Benchmarking com empresas estrangeiras
  9. Aceleradoras de empresas
  10. Adoção de novas tecnologias
  11. Utilização da proposta de soluções Open-source
  12. Priorização no desenvolvimento interno
  13. Foco na não dependência de fornecedores
  14. Prática de formação dos talentos necessários



Fase III - Exemplo de Caso de Negócio


Product Backlog

O principal benefício desta solução é a automatização e rapidez na tomada de decisão da parte técnica. Observando também do ponto de vista prático, o que se ocorre é uma manutenção preventiva do sistema para que não haja reclamações do cliente quando houver o problema de fato, pois já será resolvido antes.

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

Os benefícios para a Algar são muitos, como exemplo quero citar o artigo que o Willian escreveu, onde ele utilizou as reclamações da área de Atendimento ao usuário da Algar. Utilizando a rede neural SOM (Self Organization Map) para agrupar as reclamações.


Direcionadores chave para esta iniciativa

Os direcionamentos são os dados gerados pelos setores da GEP, URA, entre outros. Tem possibilidades de predição utilizando os dados gerados pelos dispositivos de backbone, capacidade, reclamações, etc.

As demonstrações foram feitas através da biblioteca Pandas do Python 3. As imagens a seguir são os resultados analisados de cada base isolada, neste momento só foi feita da Capacidade (GEP), Backbone(GEP), Net Promoter Score(NPS)(ULA).

A imagem abaixo é uma matriz de correlação de todas as colunas do Circuito, os dados já estão tratados e esse é o início da análise das possibilidades do uso das informações dela.

Circuitopandas.png
Circuitopandas.png



Essa outra imagem abaixo é os dados do Backbone tratados e cada ponto colorido é uma cidade diferente, repare a oscilação ao longo do tempo, ou seja há uma tendência de crescimento ou decrescimento ao longo do tempo sendo assim podemos predizer como será os próximos acontecimentos numa determinada cidade.

Backbonepandas.png
Backbonepandas.png


O NPS não tinha informações que agregavam ao modelo por conta de haver informações muito pobres.


Possíveis modelos

Rede Neural Convolucional

Durante a pesquisa foi desenvolvido uma Rede Neural Convolucional para reconhecimento de câncer de pele e de animais (cachorro e gato). Vamos tratar somente do reconhecimento de animais, a rede foi treinada para reconhecer cães e gatos, foi usado somente essas duas classes de animais, embora poderíamos ter usado mais classes, pois não encontramos ainda uma aplicação dentro da Algar utilizando-se dessa Rede Neural, ela foi desenvolvida somente como estudo de Redes Neurais.

Algoritmo KNN

Esse algoritmo pode ser utilizado tanto para Classificação quanto para Regressão, sendo que vamos utilizá-lo para Classificação. O algoritmo seria então utilizado para fazer a classificação (ou de uma maneira mais formal: separação) dos dados do nosso dataset e assim poderíamos trabalhar com os dados da melhor maneira. Seja gerando gráficos e analisando-os, ou rodando eles em alguma outra Rede Neural pra extrair o máximo de informações.


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


Parcerias Acadêmicas


  • Professor de Inteligência Artificial
    • UFU - FEELT
      • Keiji

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

Rede Neural Convolucional


Mostrando um pouco de como foi feito a Rede Neural Convolucional logo abaixo temos uma imagem da rede em treinamento. Ao fim do treinamento foi obtido uma Acurácia de reconhecimento de 91% e um erro de 30%, a acurácia abaixo do esperado e o erro alto se dá porque foi usado um Dataset (nome dado ao conjunto de imagens utilizados no treinamento) com poucas imagens, em média tinha-se 5000 imagens de cada animal. Mas como ainda não vejo uma aplicação desse tipo de Rede Neural dentro da Algar, não vou me aprofundar no assunto.

CNN-Fernando.jpg
CNN-Fernando.jpg


Algoritmo KNN

Para testes, a classificação implementada foi bem simples. Foi utilizado o mesmo dataset de animais, gatos e cachorros, só que dessa vez, as imagens não estavam separadas em classes, todas foram colocadas em um pasta só, e o algoritmo KNN foi o responsável por separar as imagens nas duas classes (gato e cachorro).

A seguir temos 2 imagens, uma da implementação do algoritmo KNN na linguagem Python e outra do algoritmo em execução.

KNN-Implementado.jpg
KNN-Implementado.jpg



Erro ao criar miniatura: Arquivo não encontrado
KNN-Execucao.jpg


Ao fim da execução do algoritmo, as imagens foram separadas nas duas classes, gato e cachorro, embora algumas imagens de gatos apareceram na classe cachorro e vice e versa, isso não é impedimento pra dizer que o algoritmo não cumpriu com o que foi proposto. O resultado foi satisfatório ao meu ver.

Esse algoritmo seria interessante de ser implementado na Clusterização dos dados que o P&D propõe.


Cronograma Macro


  • 06/01/2021 entrega da 1° Fase.


Histórico


  • (02/03 - 06/03) Estudou sobre o assunto.
  • (09/03 - 13/03) Estudou sobre o assunto e preencheu Conceitos
  • (16/03 - 20/03) Começou a montar a apresentação
  • (23/03 - 27/03) Estudou sobre o assunto
  • (06/04 - 10/04) Estudou sobre o assunto
  • (20/04 - 25/04) Conversou com o Willian que desenvolve doutorado na UFU em Redes Neurais
  • (27/04 - 01/05) Estudando os artigos que o Willian disponibilizou para leitura
  • (11/05 - 15/05) Iniciou estudos práticos de Redes Neurais
  • (19/05) Treinamento de uma Rede Neural Convolucional para classificação de imagens. Imagens usadas são de câncer de pele
  • (22/05) Inicio dos estudos sobre Self Organization Map (SOM) e sobre o algoritmo KNN
  • (27/05) Continuar estudando sobre SOM
  • (29/05) Atualização da escrita na Wiki
  • (02/06) Pesquisas para preencher a Fase III
  • (05/06) Mais pesquisas para preencher a Fase III
  • (10/06) Procura por colaboradores
  • (15/06) Preenchimento e melhora da escrita
  • 05/10/2020: Pesquisa evoluindo com trabalho de mestrado do Willian Santos. Sem pesquisador por enquanto.
  • 10/12/2020: Kick-off com Gabriel Joshua.
  • 14/12/2020: Reformatei o texto adicionando tags
  • 14/12/2020: Reunião de Orientação com Willian.
  • 15/12/2020: Adicionado o que é Clusterização, serviços de rede, mineração de dados.
  • 18/12/2020: Adicionado Imagem para ilustrar a mineração de dados.
  • 18/12/2020: Adicionado Estudo Dirigido.
  • 23/12/2020: Refazendo Estudo Dirigido.
  • 06/01/2021: Adicionado Estudo Dirigido.
  • 11/01/2021: Refazendo a tabela no Conceito( Clusterização), Adicionando Características.
  • 15/01/2021: Refazendo Características.
  • 05/03/2021: Adicionando Conteúdo.
  • 05/03/2021: Adicionando a Apresentação.
  • 13/04/2021: Treinamento e estudos de Data Science.
  • 11/04/2021: Analisado os dados da Capacidade e Net Promoter Score.
  • 15/05/2021: Analisado os dados do Backbone.
  • 09/06/2021: Adicionado na Wiki os Benefícios para o usuário, Direcionadores chave para esta iniciativa.

Pesquisadores

  • Willian Santos Silva;
  • Fernando Henrique da Cruz;
  • Pedro Diogo Machado;
  • Gabriel Joshua Calixto Naves dos Santos
  • Daniel Dias Barbosa