Máquina Boltzmann
Estes são processos de aprendizagem estocásticos com estrutura recorrente e são a base das primeiras técnicas de otimização utilizadas em RNA. A Máquina Boltzmann foi inventada por Geoffrey Hinton e Terry Sejnowski em 1985. Mais clareza pode ser observada nas palavras de Hinton sobre a Máquina Boltzmann.
“Uma característica surpreendente dessa rede é que ela usa apenas informações disponíveis localmente. A mudança de peso depende apenas do comportamento das duas unidades que ele conecta, embora a mudança otimize uma medida global ”- Ackley, Hinton 1985.
Alguns pontos importantes sobre a Máquina Boltzmann -
Eles usam estrutura recorrente.
Eles consistem em neurônios estocásticos, que têm um dos dois estados possíveis, 1 ou 0.
Alguns dos neurônios neste são adaptativos (estado livre) e alguns são fixados (estado congelado).
Se aplicarmos o recozimento simulado na rede discreta de Hopfield, ela se tornaria a Máquina de Boltzmann.
Objetivo da Máquina Boltzmann
O objetivo principal da Máquina Boltzmann é otimizar a solução de um problema. É trabalho da Boltzmann Machine otimizar os pesos e as quantidades relacionadas a esse problema específico.
Arquitetura
O diagrama a seguir mostra a arquitetura da máquina Boltzmann. Fica claro no diagrama que é uma matriz bidimensional de unidades. Aqui, os pesos nas interconexões entre as unidades são–p Onde p > 0. Os pesos das auto-conexões são dados porb Onde b > 0.
Algoritmo de treinamento
Como sabemos que as máquinas de Boltzmann possuem pesos fixos, não haverá algoritmo de treinamento, pois não precisamos atualizar os pesos na rede. No entanto, para testar a rede, temos que definir os pesos, bem como encontrar a função de consenso (CF).
A máquina Boltzmann possui um conjunto de unidades Ui e Uj e tem conexões bidirecionais neles.
Estamos considerando o peso fixo, digamos wij.
wij ≠ 0 E se Ui e Uj estão conectados.
Também existe uma simetria na interconexão ponderada, ou seja, wij = wji.
wii também existe, ou seja, haveria a auto-conexão entre as unidades.
Para qualquer unidade Ui, seu estado ui seria 1 ou 0.
O objetivo principal da Máquina Boltzmann é maximizar a Função de Consenso (CF) que pode ser dada pela seguinte relação
$$ CF \: = \: \ displaystyle \ sum \ limits_ {i} \ displaystyle \ sum \ limits_ {j \ leqslant i} w_ {ij} u_ {i} u_ {j} $$
Agora, quando o estado muda de 1 para 0 ou de 0 para 1, então a mudança no consenso pode ser dada pela seguinte relação -
$$ \ Delta CF \: = \ :( 1 \: - \: 2u_ {i}) (w_ {ij} \: + \: \ displaystyle \ sum \ limits_ {j \ neq i} u_ {i} w_ { ij}) $$
Aqui ui é o estado atual de Ui.
A variação no coeficiente (1 - 2ui) é dado pela seguinte relação -
$$ (1 \: - \: 2u_ {i}) \: = \: \ begin {cases} +1, & U_ {i} \: is \: atualmente \: off \\ - 1, & U_ {i } \: está \: atualmente \: em \ end {casos} $$
Geralmente, unidade Uinão muda seu estado, mas se o fizer, então as informações estarão residindo no local da unidade. Com essa mudança, também haveria um aumento no consenso da rede.
A probabilidade da rede aceitar a mudança no estado da unidade é dada pela seguinte relação -
$$ AF (i, T) \: = \: \ frac {1} {1 \: + \: exp [- \ frac {\ Delta CF (i)} {T}]} $$
Aqui, Té o parâmetro de controle. Ele diminuirá à medida que CF atinge o valor máximo.
Algoritmo de teste
Step 1 - Inicialize o seguinte para iniciar o treinamento -
- Pesos que representam a restrição do problema
- Parâmetro de controle T
Step 2 - Continue as etapas 3-8, quando a condição de parada não for verdadeira.
Step 3 - Execute as etapas 4-7.
Step 4 - Suponha que um dos estados alterou o peso e escolha o inteiro I, J como valores aleatórios entre 1 e n.
Step 5 - Calcule a mudança de consenso da seguinte forma -
$$ \ Delta CF \: = \ :( 1 \: - \: 2u_ {i}) (w_ {ij} \: + \: \ displaystyle \ sum \ limits_ {j \ neq i} u_ {i} w_ { ij}) $$
Step 6 - Calcule a probabilidade de que esta rede aceite a mudança de estado
$$ AF (i, T) \: = \: \ frac {1} {1 \: + \: exp [- \ frac {\ Delta CF (i)} {T}]} $$
Step 7 - Aceite ou rejeite esta mudança da seguinte forma -
Case I - se R < AF, aceite a mudança.
Case II - se R ≥ AF, rejeite a mudança.
Aqui, R é o número aleatório entre 0 e 1.
Step 8 - Reduza o parâmetro de controle (temperatura) da seguinte forma -
T(new) = 0.95T(old)
Step 9 - Teste as condições de parada, que podem ser as seguintes -
- A temperatura atinge um valor especificado
- Não há mudança de estado para um determinado número de iterações