Derivando a matriz de peso

No post anterior vimos o funcionamento de uma Rede Neural Hopfield para reconhecimento de padrões, entretanto, notamos uma matriz de Peso, que já estava pronta para reconhecer os valores de entrada 1010 e 0101. Como chegamos naqueles valores da matriz?

Começamos então como uma matriz de peso em branco, como segue abaixo:

image

Tendo uma matriz inicial, treinaremos ela para reconhecer os padrões 0101, então para isso, calcularemos uma matriz para a entrada 0101, a qual é chamada de matriz de contribuição 0101.

Após calcular essa matriz de contribuição 0101, o resultado é adicionado a matriz de peso em branco, se quisermos que ela também reconheça o padrão 1110, então calcularemos a matriz de contribuição 1110 e também iremos adicionar a matriz de peso.

Lembramos que com as redes neurais Hopfield, teremos então uma Rede Neural que será capaz de reconhecer os padrões 0101 e 1110, e também, os complementos destes (1010 e 0001).

Para calcular a Matriz de Contribuição 0101 seguiremos três passos:

  1. Calcular os valores bipolares de 0101, ou seja transformar 0101 em -1,1,-1,1;

  2. Transpor o equivalente bipolar de 0101 e multiplicar por ele mesmo;

  3. E ajustar os valores da diagonal principal do resultado para 0.

Esse último, pois os neurônios não tem conexões entre si mesmos, nas redes neurais Hopfield. Lembremos, do último post, que a Matriz de Peso nas redes neurais Hopfield são na verdade os pesos dos neurônios ligados a cada outro neurônio.

Vamos começar então do primeiro passo, segundo Heathon, é necessário converter os valores binários para bipolar, pois “0 não é o contrário de 1, preferivelmente -1 é o inverso matemático de 1.”

Matematicamente falando, a conversão pode ser dada através das seguintes equações:

Binário para Bipolar
Binário para Bipolar
Bipolar para Binário
Bipolar para Binário

Sabendo disso obteremos com a conversão, que a entrada 0101 será -1,1,-1,1.

Teremos então o seguinte vetor:

image

Para o passo 2, necessitaremos multiplicar o vetor anterior pela sua transposição, sendo então o seguinte:

image

X

image

Com essa multiplicação, obteremos como resultado a seguinte matriz:

image

Agora é o momento de utilizar o passo 3, ajustar o valor da diagonal principal para 0, para efeitos matematicos fazemos isso diminuindo da matriz de contribuição a Matriz Identidade, e o resultado será:

image

Com nossa matriz de contribuição pronta, tudo que temos a fazer agora é adicionar essa matriz de contribuição 0101 à Matriz de Peso da Rede Neural. E caso queiramos que nossa rede também reconheça o padrão 1001, iremos fazer os mesmos procedimentos deste post e no final adicionar à matriz de Peso, que já terá a Matriz de Contribuição 0101.

Comentários

Postagens mais visitadas