Pergunta

Disclaimer: Eu não sou um gênio matemático, nem tenho qualquer experiência com a escrita de redes neurais. Então, por favor, perdoe tudo o que idiota acontecer de eu dizer aqui. ;)

Eu sempre li sobre redes neurais sendo utilizados para aprendizagem de máquina, mas ao experimentar com a escrita de máquinas virtuais simples, comecei a me perguntar se eles poderiam ser aplicados de outra maneira.

Especificamente, pode uma máquina virtual ser criada como uma rede neural? Se sim, como ele iria trabalhar (sinta-se livre para usar uma descrição abstrata aqui, se você tem que)?

Eu ouvi do Joycean Machine, mas não consigo encontrar qualquer informação que não seja explicações muito, muito vagas.

EDIT: O que eu estou procurando aqui é uma explicação de como exatamente uma máquina virtual baseada em rede neural interpretaria montagem. Como é que as entradas ser manipulados, etc? Será que cada entrada indivíduo ser um endereço de memória? Vamos debater!

Foi útil?

Solução

Você realmente fez o meu dia amigo ...

Uma vez que uma rede neural já treinou não será muito diferente do que uma máquina de estado regular, não há nenhum ponto de escrever uma rede VM neural para um conjunto de instruções determinista.

Pode ser interessante para treinar tal VM com vários conjuntos de instruções ou um conjunto desconhecido. No entanto, eu duvido que ele vai ser prático para executar um tal treinamento e até mesmo um intérprete correta% 99 vai ser de alguma utilidade para bytecode convencional.

A única utilização de uma rede neural VM que eu posso pensar é executar um programa que contém construções de lógica difusa ou heurística algoritmo AI.

Alguns exemplo bobo máquina de pilha para demonstrar a idéia:

push [x1]
push [y1] ;start coord
push [x2]
push [y2] ;end coord
pushmap [map] ;some struct
stepastar ;push the next step of A* heuristics to accumulator and update the map
pop ;do sth with is and pop
stepastar ;next step again
... ;stack top is a map
reward ;we liked the coordinate. reinforce the heuristic
stepastar
... ;stack top is a map
punish ;we didn't like the next coordinate. try something different

Não há heurística explict aqui. Assumindo que manter todo o estado no mapa * incluindo o algoritmo heurístico.

Você vê isso parece bobo e não completamente sensível ao contexto, mas uma rede neural é de nenhum valor se não aprender online.

Outras dicas

Claro. Com uma rede bastante complexa, sem dúvida.

A maior parte da análise de Bytecodes / opcodes é a correspondência de padrão que redes neurais excel.

Você certamente poderia fazer isso com uma rede neural - Eu poderia facilmente ver aprendendo as transições de estado corretas para uma determinada peça de bytecode

.

Input poderia ser algo como:

  • Valor no topo da pilha
  • Valor no acumulador de corrente
  • Código Byte no ponteiro de instrução atual
  • valor Byte no ponteiro de dados atual
  • bandeiras anterior

saída poderia ser algo como:

  • Alterar a ponteiro de instrução
  • Alterar a ponteiro de dados
  • Mude para acumulador
  • operação Stack (push, pop, ou nada)
  • operação de memória (ler para acumulador, write acumulador ou nada)
  • Novas bandeiras

No entanto - Eu não sei por que você iria querer fazer isso em primeiro lugar. Uma rede neural seria muito menos eficiente (e potencialmente cometer erros a menos que você treinou bem o suficiente) em comparação com apenas executar o bytecode diretamente. Você provavelmente precisa escrever um avaliador bytecode precisa de qualquer jeito só para criar o suficiente dados de treinamento ....

Além disso, na minha experiência redes neurais tendem a ser bom em reconhecimento de padrões, mas muito ruim em aprender operações lógicas (como adição binária ou XORs) ao chegar além de uma certa escala (ou seja, mais do que alguns bits). Então, dependendo da complexidade do seu conjunto de instruções, a rede pode levar uma quantidade muito grande de tempo para treinar.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top