Desenvolvimento de redes neurais artificiais para resolver problemas de NP


10

Recentemente, li uma entrada de blog muito interessante no Blog de Pesquisa do Google falando sobre rede neural. Basicamente, eles usam essas redes neurais para resolver vários problemas, como reconhecimento de imagem. Eles usam algoritmos genéticos para "evoluir" os pesos dos axônios.

Então, basicamente, minha ideia é a seguinte. Se eu deveria escrever um programa que reconheça números, eu não saberia como começar (eu poderia ter alguma idéia vaga, mas o que quero dizer é: não é trivial, nem fácil.), Mas usando a rede neural, não preciso. Ao criar o contexto certo para que a rede neural evolua, minha rede neural "encontrará o algoritmo correto". Abaixo, citei uma parte realmente interessante do artigo, na qual eles explicam como cada camada tem papel diferente no processo de reconhecimento de imagem.

Um dos desafios das redes neurais é entender o que exatamente acontece em cada camada. Sabemos que após o treinamento, cada camada extrai progressivamente os recursos de níveis cada vez mais altos da imagem, até que a camada final tome uma decisão sobre o que a imagem mostra. Por exemplo, a primeira camada talvez procure por arestas ou cantos. Camadas intermediárias interpretam os recursos básicos para procurar formas ou componentes gerais, como uma porta ou uma folha. As poucas camadas finais as agrupam em interpretações completas - esses neurônios são ativados em resposta a coisas muito complexas, como edifícios ou árvores inteiras.

Então, basicamente, minha pergunta é a seguinte: não poderíamos usar algoritmos genéticos + redes neurais para resolver todos os problemas de NP? Nós apenas criamos o contexto evolutivo correto e deixamos a "natureza" encontrar uma solução.

Inceptionism: Indo mais fundo nas redes neurais

EDIT: Eu sei que podemos usar o Brute-Force ou encontrar uma solução não eficiente em muitos casos. É por isso que tento destacar as redes neurais artificiais em evolução . Como eu disse em um comentário: Com tempo suficiente e uma taxa de mutação apropriada, poderíamos encontrar a solução ideal (ou pelo menos é o que eu acho).

Conceito


11
Nós não precisamos. Podemos simplesmente usar força bruta. Qual é o seu objetivo, exatamente?
GD

2
Como não sou especialista em redes neurais, não sei se elas podem ser treinadas para resolver problemas de NP corretamente. Mas acho que você não está fazendo a pergunta certa. Criar um algoritmo que resolva um problema contido no NP geralmente não é difícil, basta verificar todas as soluções possíveis. No entanto, encontrar um algoritmo que resolva um problema NP-difícil em tempo polinomial é uma história diferente e sua existência é altamente improvável. Como as redes neurais podem ser simuladas por uma máquina de fresar, elas ainda precisam de tempo super polinomial, a menos que P = NP e não sejam de grande ajuda.
Dennis Kraft

sim, redes neurais foram usadas contra problemas completos de PN, por exemplo, Traveller Salesman e muitos outros, e há pesquisa / literatura sobre o assunto. eles podem ter algumas propriedades úteis, mas não fogem das restrições de tempo da teoria da complexidade, como DK aponta.
vzn

O que quero dizer é: usando uma taxa de mutação apropriada e tempo suficiente, poderíamos (pelo menos teoricamente) encontrar a solução ideal. (Ou pelo menos um máximo local) Imagem: Concept
NMO

2
Os algoritmos genéticos (e o restante das técnicas de "IA") são essencialmente randomizados "tente uma amostra do espaço da solução" com algumas informações inteligentes (heurísticas) lançadas para torná-lo não totalmente aleatório. Não, não é melhor que "tente todas as soluções possíveis", na maioria das vezes muito pior (como não há garantia de não verificar novamente o mesmo caso descartado). Claro, eles encontram soluções "decentes". Mas queremos encontrar o melhor .
precisa saber é o seguinte

Respostas:


21

Não. É improvável que essa direção seja útil por dois motivos:

  1. A maioria dos cientistas da computação acredita que P NP. Supondo P NP, isso significa que não existe nenhum algoritmo de tempo polinomial para resolver qualquer problema completo de NP. Se você deseja que sua rede neural resolva o problema em um período de tempo razoável, ela não poderá ser muito grande e, portanto, a rede neural será ela própria um algoritmo de tempo polinomial. Daqui resulta que, se P NP, as redes neurais não podem resolver com eficiência qualquer problema de NP-completo.

  2. Redes neurais não são "mágicas". Eles são uma maneira de tentar encontrar padrões. Para alguns problemas em que existem padrões suficientemente fortes para serem encontrados e os padrões podem ser aprendidos com um número razoável de exemplos, eles podem ser eficazes. Mas eles não são pó mágico de fadas. Só porque você pode configurar uma rede neural não significa que a retropropagação necessariamente encontrará uma boa maneira de resolver seu problema. Pode ser que não haja padrões a serem encontrados, que os padrões só possam ser descobertos com um número inviável de exemplos ou que existam padrões, mas o procedimento de treinamento da rede neural não é capaz de encontrá-los.

As redes neurais são apenas outra forma de aprendizado de máquina. Poderíamos fazer as mesmas observações sobre SVMs ou florestas aleatórias ou regressão linear de qualquer outra forma de aprendizado de máquina. As redes neurais não são algum tipo de bala de prata mágica que resolve todos os problemas de aprendizado de máquina. Eles são tão eficazes quanto outros métodos de aprendizado de máquina, ou para alguns tipos de problemas, talvez um pouco mais eficazes, mas não são mágicos.

Às vezes, encontro pessoas que ouviram apenas um pouco sobre redes neurais, e elas se afastam pensando que as redes neurais são a resposta para tudo - talvez porque ouviram que "seu cérebro também usa redes neurais", ou viram algumas aplicação legal (reconhecimento de voz ou algo assim). Mas não se deixe enganar. Não acredite no hype. As redes neurais são uma técnica útil, mas não permitirão que os computadores resolvam problemas completos de NP, ou superem o teste de Turing, tirem todos os nossos trabalhos e substituam humanos por computadores. Não tão cedo, de qualquer maneira. Isso é apenas ficção científica.


11
Resposta realmente boa. Algoritmos genéticos + redes neurais parecem muito poderosos, mas talvez não seja suficiente para resolver todos os problemas de np. Eu imagino deixar essas redes neurais + algoritmos genéticos em estado selvagem procurando por essas soluções. Como pequenos escoteiros haha.
NMO 23/09

11
Também vale a pena notar que as redes neurais geralmente fornecem alguma probabilidade de encontrar a resposta correta, não uma garantia. Quando você relaxa os requisitos de seus problemas para permitir soluções abaixo do ideal, muitas vezes existem soluções práticas para problemas completos de NP, apesar da intratabilidade no pior dos casos.
Dan Bryant

9

Parece que outras respostas, embora informativas / úteis, não estão realmente entendendo sua pergunta exatamente e estão sendo um pouco demais para ela. Você não perguntou se as redes neurais superariam outros métodos, apenas perguntou se elas poderiam ser aplicadas aos problemas completos do NP. A resposta é sim, com algum sucesso e isso é conhecido há décadas e existe uma grande variedade de pesquisas sobre isso, e continua. Isso tem a ver com a flexibilidade do aprendizado de máquina. Observe que, mesmo que eles não encontrem soluções exatas ou ideais, as soluções que possuem podem ter outras propriedades desejáveis. alguns exemplos de documentos:


4

As redes neurais na verdade não resolvem problemas completos de NP. O que eles fazem é resolver problemas que são notavelmente próximos dos problemas completos de NP.

Uma grande característica das redes neurais é que elas não são obrigadas a encontrar a resposta "certa" todas as vezes. Eles podem estar "errados". Por exemplo, você pode estar resolvendo um problema de empacotamento de lixeira e chegar a uma solução com 1% de desconto da solução ideal e estar totalmente satisfeito com essa resposta.

Se você remover o requisito de estar 100% certo sempre, outras abordagens de solução de problemas funcionarão muito bem. Por exemplo, muitos algoritmos de planejamento de rota (no Google Maps) precisam ser NP-completos, mas é bastante trivial encontrar um algoritmo que encontre um caminho dentro de 1% dos 99,9% ótimos do tempo. Ele está tentando determinar os resultados nos últimos 0,1% dos casos que levam os esforços de NP a serem tão surpreendentemente caros.

Por acaso, quando tentamos usar equações completas de NP na vida real, muitas vezes não precisamos da resposta real . Geralmente, nos sentimos muito à vontade com uma resposta "próxima", embora muitas vezes não tenhamos uma redação para explicar qual métrica "próxima" estamos usando. Essas são as situações em que uma rede neural pode responder à pergunta real que você queria fazer, em vez de precisar resolver o problema NP-completo que você pediu.


1

Sabe-se que as redes neurais são capazes de aproximação universal de funções , mas isso exige treiná-las sobre o problema (otimização), que é um problema completo de NP por si só , e é por isso que você tem treinamento evolutivo e SGD com retropropagação e assim por diante.

Portanto, embora não seja provável que eles resolvam problemas de NP completos, eles podem ser treinados para aproximar a um grau arbitrário de precisão de uma função que modela o problema. Além disso, mesmo que você resolva um problema completo de NP de maneira otimizada usando uma rede neural, ainda não tem como provar que a solução encontrada é realmente o ideal global sem forçar brutalmente a solução (isso obviamente não é viável para praticamente qualquer prática). caso de uso de redes neurais).

Sua visualização é precisa no sentido de que algoritmos evolutivos (veja como o algoritmo puro impede que uma única espécie domine a população com uma estrutura inicialmente de alto desempenho usando aptidão compartilhada) são menos aptos que o SGD e outras técnicas de aprendizado de máquina a serem capturadas. ótimos locais, mas eles não fornecem prova de que a solução encontrada é de fato a ideal global.


Você poderia adicionar algumas referências à sua resposta? Além disso, tente melhorar a formatação (por exemplo, use NP, SGD, retropropagação e assim por diante, e talvez adicione algumas quebras de linha).
Yuval Filmus

Certo fez algumas edições deixe-me saber qualquer se eu deveria entrar em mais profundidade em qualquer lugar
nickw

Eu acho que você deve fornecer alguma justificativa para sua afirmação de que "algoritmos evolutivos ... são menos aptos que o SGD e outras técnicas de aprendizado de máquina a serem capturados em ótimos locais". Eu não acho isso certo, especialmente para a tarefa específica de treinar redes neurais.
DW

Esta resposta tem alguma confusão sobre a definição de NP-completude. Ao contrário do que você diz, se resolver um problema NP-completo, que pode verificar se temos a solução correta. Há uma diferença entre um problema de pesquisa completo de NP e um problema de otimização difícil de NP; para o primeiro, podemos realmente verificar com eficiência se a solução está correta, mas para o segundo talvez não consigamos.
DW

Eu classifiquei que não poderíamos verificar se é a solução ideal sem a força bruta forçando a solução verdadeiramente ideal primeiro, isso não está correto? Forneci justificativa para o meu raciocínio de que a neuroevolução é menos propensa a ficar presa em ótimos locais com o link referenciado para o algoritmo puro e a aptidão compartilhada, acho que a suscetibilidade de descidas graduais a ficar presa em ótimos locais é bastante evidente e, enquanto um ajuste de hiperparâmetro estrutura pode ajudar a aliviar isso, eu não acreditaria que, como uma aversão sgd possui para ficar preso.
Nickwith
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.