Mostrando postagens com marcador redes neurais artificiais. Mostrar todas as postagens
Mostrando postagens com marcador redes neurais artificiais. Mostrar todas as postagens

sexta-feira, 25 de junho de 2021

IA 04 - Gráficos e Links

Lembrete: Aqui estão apenas anotações referentes ao curso que frequentei e foi interrompido pela pandemia, e algumas referencias nos links, além de alguns outros links relacionados ao assunto.

Depois de uma pequena revisão das aulas anteriores IA 01 - Inteligencia Artificial e IA 02 - Redes Neurais Artificiais, nos foi proposto o desenvolvimento a partir do modelo matemático para forma de programa, sendo que o professor Angelo nos deixou a vontade para escolhermos com qual linguagem nos adaptaríamos melhor.





Foi sugerida uma tabela com 4 entradas, de valores inteiros, tanto para entrada (X), quanto para peso (W), esta tabela seria inserida em arquivo no formato texto simples (.txt).

 Para a definição do MATLAB (MATrix LABoratory) cito aqui a Wikipedia,  trata-se de um software interativo de alta performance voltado para o cálculo numérico. O MATLAB integra análise numérica, cálculo com matrizes, processamento de sinais e construção de gráficos em ambiente fácil de usar onde problemas e soluções são expressos somente como eles são escritos matematicamente, ao contrário da programação tradicional.


Exemplo do professor no MatLab, apesar de a foto estar sem foco a sintaxe esta transcrita abaixo


No MatLab, o exemplo do professor Angelo, (lembrando que % adiciona comentários no MatLab) ficou com essa sintaxe:

versão 1

clc

x = load (`entradas.txt`);   % carrega as entradas que estão no arquivo texto                          
qteEntradas = size (x);      % dimensiona o tamanho do campo de entrada?
w = [ -3  4 ];                      % define os valores dos pesos

for i  =  1:qteEntradas(1)                      % condição para variável i
     g  =  sum ( x ( 1, : ) . *w );               % torna a variável g como a somatória de entradas e pesos
     if  g >= 0  y = 1, else y = 0, end     % classifica a saída de acordo com o valor da variável g
end                                                                   

Versão 2

clc
x = load ("entradas.txt");
tam = size (x);
g = 0;
%x1 = 12;
%x2 = 10;
w1 = 0.5;
w2 = 1;
for lin = 1;tam(1)
      %for col = 1:tam(2)
               g = g + x(lin, 1) * w1 + x(lin, 2) * w2
      %end
end
if g >= 0
    y = 1
else
    y = 0
end

Como o MatLab requer uma licença para uso, existem outras opções como o Octave e o SciLab.

O objetivo de toda a aula foi para entender e chegar na representação gráfica do neurônio artificial, como o desenho da lousa:


Representação gráfica do neurônio artificial



Posts das anotações das aulas anteriores:

As aulas não continuaram presencialmente, mas no canal Cérebro Eletrônico IFSP tem vídeos com explicação.




Alguns links complementares:
Diversos links com Cursos online USP
Curso de DeepLearning no YouTube, 11 videos, quase 20 horas de conteúdo, da Universidade Federal de Goias
Introduction to DeepLearning MIT , em inglês, com opção de legendas em inglês.
http://deeplearningbook.com.br/


segunda-feira, 23 de março de 2020

IA 02 - Redes Neurais Artificiais

Lembrete: Aqui estão apenas anotações referentes ao curso que estou/estava frequentando.

Como tudo que o ser humano "cria", ele busca inspiração no que existe na natureza, o avião por exemplo, seu formato lembra o de um pássaro, e na tecnologia não seria diferente.
A imagem da anatomia do neurônio serve apenas para comparação e por este motivo esta bem simplificada.


Modelo de neurônio simplificado
Fonte da imagem: http://deeplearningbook.com.br/o-neuronio-biologico-e-matematico/

Apos relembrar as aulas de biologia, fomos apresentados ao modelo de neurônio artificial, sendo que:

i    = variável numérica
n   = variável ultimo item
Xi = Entradas
Wi = Weight (Pesos)
Y   = Saída
∑   = somatória
g    = potencial de ativação

Modelo de neurônio artificial


E também existe o modelo matemático:
       n
g =  ∑    ( Xi * Wi )
      i = 1

Y = f (g)

f  =  { y = 1 , se g >= 0
        { y = 0 , se g <  0


A Rede Neural Artificial pode ser dividida em 3 camadas:



Imagem produzida no Draw.io

Camada de entrada (em azul na imagem) recebe as características do exemplo do problema.

Camadas intermediarias ou camadas escondidas (em verde na imagem) realizam o processamento (mapeamento) entrada X saída.

Camada de saída (em amarelo na imagem) fornece a classificação do exemplo de entrada.


Base de Dados


ENTRADASSAÍDA


TEMPO
SALARIOEMPRÉSTIMOTRABALHOPAGAMENTO
R$ 1.000,00R$ 500,0018 meses0
R$ 2.000,00R$ 100,0024 meses1
…………


Veremos nas próximas aulas com mais detalhes, mas apenas para nos situar, o processo de treinamento pode ser dividido em:

  •  Supervisionado
  • Não supervisionado
  • Por reforço
Arquitetura
  • Feed forward
  • Recorrente ou com realimentação


Algumas outras definições dadas em aula, pelo professor Ângelo:

Modelo conexionista - Conjuntos de unidades de processamento simples (neurônios artificiais) interligados por um grande numero de conexões paralelas (sinapses).

Topologia - Quantidade de camadas intermediarias e quantidade de neurônios nessas camadas.


Para entender ainda mais, foi apresentado o vídeo da base de dados digitalizada dos CEPs dos Estados Unidos, e a digitalização para reconhecer as diferentes formas de escrita. No vídeo podemos ter uma visão de forma gráfica da quantidade de neurônios e sinapses usadas no processo.



Características

  • Adaptação por experiencia
  • Capacidade de aprendizado
  • Tolerância a falhas
  • Capacidade de generalização
  • Não interpretação dos pesos
  • Não justificativa de resultados
  • Aplicação muito especificas
  • Sujeito a resultados tendenciosos (viés)


Referencias:
Modelo do neurônio simplificado (imagem) - http://deeplearningbook.com.br/o-neuronio-biologico-e-matematico/
Para fazer a imagem do modelo de neurônio artificial usei o Lucid Chart e o Draw.io


Posts complementares:
IA 01 - Inteligencia Artificial