As redes neurais modulares são mais eficazes que as grandes redes monolíticas em qualquer tarefa?
As redes neurais modulares / múltiplas (MNNs) giram em torno do treinamento de redes menores e independentes que podem alimentar uma à outra ou a outra rede superior.
Em princípio, a organização hierárquica poderia nos permitir entender espaços de problemas mais complexos e alcançar uma funcionalidade mais alta, mas parece difícil encontrar exemplos de pesquisas concretas feitas no passado sobre isso. Encontrei algumas fontes:
Algumas perguntas concretas que tenho:
Houve alguma pesquisa recente sobre o uso de MNNs?
Existem tarefas em que as MNNs apresentaram melhor desempenho do que as grandes redes individuais?
As MNNs podem ser usadas para classificação multimodal, ou seja, treinar cada rede em um tipo de dados fundamentalmente diferente (texto versus imagem) e avançar para um intermediário de nível superior que opera em todas as saídas?
Do ponto de vista da engenharia de software, eles não são mais tolerantes a falhas e facilmente isoláveis ​​em um sistema distribuído?
Houve algum trabalho para adaptar dinamicamente as topologias de sub-redes usando um processo como o Neural Architecture Search?
Geralmente, as MNNs são práticas de alguma maneira?
Desculpas, se essas perguntas parecerem ingênuas, acabei de entrar no ML e, mais amplamente, no CS, de uma formação em biologia / neurociência, e sou cativado pela interação em potencial.
Eu realmente aprecio você dedicar seu tempo e emprestar sua opinião!
Pensei na implementação de um sistema modular para melhorar o desempenho e filtrar - definitivamente - dependências desnecessárias de entradas. Pensei que fosse um momento eureka, mas não sabia que já era uma estrutura estabelecida.
Existe de fato uma investigação em andamento sobre esse tópico. Uma primeira publicação de março passado observou que a modularidade foi feita, embora não explicitamente, desde algum tempo atrás, mas de alguma forma o treinamento continua sendo monolítico. Este artigo avalia algumas questões primárias sobre o assunto e compara os tempos e o desempenho do treinamento em redes neurais modulares e altamente recorrentes. Vejo:
Castillo-Bolado et al. Modularidade como um meio para gerenciar a complexidade na aprendizagem de redes neurais
Alguns outros estão muito focados na modularidade, mas continuam com o treinamento monolítico (consulte a pesquisa de Jacob Andrea , especialmente Aprender a raciocinar está muito relacionado à sua terceira pergunta). Em algum lugar entre o final de 2019 e março do próximo ano, deve haver mais resultados (eu sei).
Em relação às suas duas últimas perguntas, começamos a ver agora que a modularidade é uma chave importante para a generalização. Deixe-me recomendar alguns artigos (você pode encontrá-los todos no arxiv ou no google scholar):
Arquitetura Neural Adaptativa Estocástica Busca por Localização de Palavras-Chave (variações de uma arquitetura para equilibrar desempenho e uso de recursos).
Tornando as arquiteturas de programação neural generalizadas via recursão (elas realizam submodularidade de tarefas e acredito que é a primeira vez que a generalização é garantida no campo das redes neurais).
Dominar o jogo Go com redes neurais profundas e pesquisa em árvore (a topologia de rede é na verdade a própria árvore de pesquisa, você pode ver mais disso se procurar redes neurais gráficas).
Uma comparação de benchmark de sistemas compostos de redes treinadas separadamente em relação a redes mais profundas provavelmente não revelaria uma melhor escolha universalmente aplicável. 1 Podemos ver na literatura o aumento no número de sistemas maiores, onde várias redes artificiais são combinadas, juntamente com outros tipos de componentes. É de se esperar. A modularização à medida que os sistemas crescem em complexidade e as demandas por desempenho e capacidade crescem são tão antigas quanto a industrialização.
Nosso laboratório trabalha com controle robótico, instrumentação termodinâmica e análise de dados; redes artificiais são componentes nesses contextos de sistemas maiores. não temos MLPs ou RNNs únicos que, por si só, desempenhem qualquer função útil.
Ao contrário da conjectura sobre hierarquias décadas atrás, a abordagem de topologia que parece funcionar bem na maioria dos casos segue os relacionamentos mais comuns dos módulos de sistema que são vistos em usinas de energia, fábricas automatizadas, aeronáutica, arquiteturas de informações corporativas e outras criações complexas de engenharia. As conexões são de fluxo e, se forem bem projetadas, as funções de supervisão são mínimas. O fluxo ocorre entre os módulos que envolvem protocolos de comunicação e cada módulo executa bem sua função, encapsulando o nível mais baixo de complexidade e detalhes funcionais. Não é uma rede que supervisiona outra que parece emergir mais eficaz na prática real, mas equilíbrio e simbiose. A identificação de um projeto claro de mestre-escravo no cérebro humano parece ser igualmente escorregadia.
O desafio é não encontrar os caminhos de informações que compõem a topologia de informações do sistema. O fluxo de informações geralmente é óbvio na análise de problemas. A dificuldade está em descobrir as melhores estratégias para treinar essas redes independentes. As dependências do treinamento são comuns e frequentemente críticas, enquanto que nos animais, o treinamento ocorre in situ ou de modo algum. Estamos descobrindo condições sob as quais esse tipo de aprendizado em nossos sistemas é prático e como alcançá-lo. A maior parte de nossa pesquisa nesse sentido visa descobrir maneiras de obter maior confiabilidade e menor carga em termos de horas de pesquisa para obtê-lo.
Funcionalidades mais altas nem sempre são benéficas. Geralmente, produz menor confiabilidade e consome recursos de desenvolvimento adicionais com pouco retorno. Encontre uma maneira de combinar automação de nível superior, economia de recursos e confiabilidade em um único processo de desenvolvimento, e você poderá ganhar um prêmio e uma menção honrosa na web.
Sistemas paralelos que têm o mesmo objetivo é uma boa ideia, mas não uma nova. Em um sistema aeronáutico, nove sistemas paralelos têm o mesmo objetivo, em grupos de três. Cada grupo usa uma abordagem de computação diferente. Se dois dos sistemas que usam a mesma abordagem fornecem a mesma saída e a terceira é diferente, a saída correspondente é usada e a diferença na terceira é relatada como uma falha do sistema. Se duas das abordagens diferentes fornecerem resultados semelhantes e a terceira diferir substancialmente, uma mescla dos dois resultados semelhantes será usada e a terceira será relatada como um caso de uso para desenvolver ainda mais a abordagem dissidente.
A tolerância a falhas aprimorada tem um custo, mais oito sistemas e recursos de computação e conectividade associados, além dos comparadores na cauda, ​​mas em sistemas que são uma questão de vida ou morte, os custos extras são pagos e a confiabilidade é maximizada.
A adaptação topológica dinâmica está relacionada a sistemas redundantes e tolerância a falhas, mas de certa forma é bem distinta. Nessa área de desenvolvimento, a tecnologia a seguir é a computação neuromórfica, que é parcialmente inspirada na neuroplasticidade.
Uma última distinção a considerar é entre topologia de processo, topologia de dados e topologia de hardware. Esses três quadros geométricos podem produzir maior eficiência juntos, se alinhados de maneiras específicas que produzem mapeamentos mais diretos entre as relações entre fluxo, representação e mecânica. São, no entanto, topologias distintas. O significado do alinhamento pode não ser aparente sem mergulhar profundamente nesses conceitos e nos detalhes que emergem para objetivos específicos de produtos ou serviços.
[1] Redes profundas que são treinadas como uma única unidade e funcionam sem conectividade com outras redes artificiais não são necessariamente monolíticas. As redes profundas mais práticas têm sequência heterogênea de camadas em termos de suas funções de ativação e, freqüentemente, de seus tipos de células.