Os cientistas ou especialistas em pesquisa sabem da cozinha o que está acontecendo dentro de uma rede neural "profunda" complexa, com pelo menos milhões de conexões disparando em um instante? Eles entendem o processo por trás disso (por exemplo, o que está acontecendo por dentro e como funciona exatamente) ou é um assunto de debate?
Por exemplo, este estudo diz:
No entanto, não há uma compreensão clara do porquê de terem um desempenho tão bom ou de como podem ser melhorados.
Então, isso significa que os cientistas realmente não sabem como modelos complexos de redes convolucionais funcionam?
Respostas:
Existem muitas abordagens que visam tornar uma rede neural treinada mais interpretável e menos parecida com uma "caixa preta", especificamente redes neurais convolucionais que você mencionou.
Visualizando as ativações e pesos da camada
A visualização de ativações é a primeira óbvia e direta. Para redes ReLU, as ativações geralmente começam relativamente esbeltas e densas, mas à medida que o treinamento avança, as ativações geralmente se tornam mais esparsas (a maioria dos valores é zero) e localizadas. Às vezes, isso mostra o que exatamente uma camada específica é focada quando vê uma imagem.
Outro ótimo trabalho sobre ativações que eu gostaria de mencionar é o deepvis, que mostra a reação de todos os neurônios em cada camada, incluindo as camadas de pool e normalização. Aqui está como eles descrevem :
A segunda estratégia comum é visualizar os pesos (filtros). Eles geralmente são mais interpretáveis na primeira camada CONV, que está olhando diretamente para os dados brutos de pixel, mas é possível também mostrar os pesos dos filtros mais profundos na rede. Por exemplo, a primeira camada geralmente aprende filtros semelhantes a gabor que basicamente detectam arestas e bolhas.
Experimentos de oclusão
Aqui está a ideia. Suponha que um ConvNet classifique uma imagem como um cachorro. Como podemos ter certeza de que ele está realmente captando o cachorro na imagem, em oposição a algumas dicas contextuais do plano de fundo ou a algum outro objeto diverso?
Uma maneira de investigar qual parte da imagem vem de alguma previsão de classificação é plotando a probabilidade da classe de interesse (por exemplo, classe de cães) como uma função da posição de um objeto oclusor. Se iterarmos por regiões da imagem, substituí-la por todos os zeros e verificar o resultado da classificação, podemos criar um mapa de calor bidimensional do que é mais importante para a rede em uma imagem específica. Essa abordagem foi usada nas redes convolucionais de visualização e compreensão de Matthew Zeiler (a que você se refere na sua pergunta):
Deconvolução
Outra abordagem é sintetizar uma imagem que provoca o disparo de um neurônio em particular, basicamente o que o neurônio está procurando. A idéia é calcular o gradiente em relação à imagem, em vez do gradiente usual em relação aos pesos. Então você escolhe uma camada, defina o gradiente para que seja zero, exceto um para um neurônio e backprop para a imagem.
Deconv realmente faz algo chamado backpropagation guiado para criar uma imagem mais bonita, mas é apenas um detalhe.
Abordagens semelhantes a outras redes neurais
Recomendo vivamente este post de Andrej Karpathy , no qual ele brinca muito com as Redes Neurais Recorrentes (RNN). No final, ele aplica uma técnica semelhante para ver o que os neurônios realmente aprendem:
Conclusão
Mencionei apenas uma pequena fração dos resultados nessa área de pesquisa. É bastante ativo e novos métodos que lançam luz ao funcionamento interno da rede neural aparecem a cada ano.
Para responder à sua pergunta, sempre há algo que os cientistas ainda não sabem, mas em muitos casos eles têm uma boa imagem (literária) do que está acontecendo lá dentro e podem responder a muitas perguntas específicas.
Para mim, a citação de sua pergunta simplesmente destaca a importância da pesquisa não apenas da melhoria da precisão, mas também da estrutura interna da rede. Como Matt Zieler conta nesta palestra , às vezes uma boa visualização pode levar, por sua vez, a uma melhor precisão.
fonte
Depende do que você quer dizer com "saber o que está acontecendo".
No entanto, se por 'saber' você quer dizer prever a saída de uma RNA específica (caixa preta) , por outros meios, o obstáculo é a presença de caos em uma RNA que possui altos graus de liberdade .
Aqui também estão alguns trabalhos relativamente recentes de Hod Lipson sobre o entendimento de RNAs através da visualização .
fonte
Resposta curta é não .
A interpretabilidade do modelo é uma área hiperativa e hiper quente da pesquisa atual (pense no Santo Graal, ou algo assim), que foi apresentada ultimamente devido ao sucesso (muitas vezes tremendo) dos modelos de aprendizado profundo em várias tarefas; atualmente, esses modelos são apenas caixas pretas e, naturalmente, nos sentimos desconfortáveis com isso ...
Aqui estão alguns recursos gerais (e recentes, a partir de dezembro de 2017) sobre o assunto:
Um artigo recente (de julho de 2017) da Science fornece uma boa visão geral do status e da pesquisa atual: como os detetives de IA estão quebrando abrem a caixa preta da aprendizagem profunda (sem links no texto, mas nomes e termos do Google valem a pena)
A própria DARPA está atualmente executando um programa em Inteligência Artificial Explicável (XAI)
Houve um workshop no NIPS 2016 sobre Aprendizado de Máquina Interpretável para Sistemas Complexos , bem como um tutorial da ICML 2017 sobre Aprendizado de Máquina Interpretável por Been Kim, do Google Brain.
E em um nível mais prático (código etc):
A ferramenta What-If do Google, um novo recurso (setembro de 2018) do aplicativo Web TensorBoard de código aberto, que permite aos usuários analisar um modelo de ML sem escrever código ( página do projeto , postagem no blog )
A caixa de ferramentas LRP (Propagação de Relevância em Camadas) para redes neurais ( papel , página do projeto , código , invólucro TF Slim )
FairML: Auditando modelos preditivos de caixa preta, por Cloudera Fast Forward Labs ( publicação no blog , documento , código )
LIME: Explicações Agnósticas Interpretáveis por Modelo Local ( artigo , código , postagem no blog , porta R )
Um artigo muito recente (novembro de 2017) de Geoff Hinton, Destilando uma rede neural em uma árvore de decisão suave , com uma implementação independente do PyTorch
SHAP: Uma abordagem unificada para interpretar previsões de modelo ( artigo , código Python dos autores , pacote R )
Redes Neurais Convolucionais Interpretáveis ( artigo , código dos autores )
Lucid, uma coleção de infraestrutura e ferramentas para pesquisa em interpretabilidade de redes neurais do Google ( código ; documentos: Visualização de Recursos , Os Blocos da Interpretabilidade )
Redes de transparência por design (TbD) ( papel , código , demonstração )
SVCCA: Análise de correlação canônica de vetor singular para dinâmica de aprendizado profundo e interpretabilidade ( artigo , código , postagem no blog do Google )
TCAV: Teste com vetores de ativação de conceito (documento ICML 2018 , código de fluxo tensor )
Grad-CAM: Explicações Visuais Networks profundas via Localização baseada em Gradiente ( papel , dos autores de código tocha , código Tensorflow , código PyTorch , Keras exemplo notebook )
Dissecação de Rede: Quantificando a Interpretabilidade de Representações Visuais Profundas, pelo MIT CSAIL ( página do projeto , código Caffe , porta PyTorch )
Dissecação da GAN: visualizando e compreendendo redes adversas generativas, pelo MIT CSAIL ( página do projeto , com links para papel e código)
Explique para corrigir: Uma estrutura para interpretar e corrigir previsões do detector de objetos DNN ( documento , código )
Ultimamente, tem havido um grande interesse em começar a construir uma base mais teórica para redes neurais de aprendizado profundo. Nesse contexto, o renomado estatístico e pioneiro em sensor de compressão David Donoho começou muito recentemente (outono de 2017) a oferecer um curso em Stanford, Theories of Deep Learning (STATS 385) , com quase todo o material disponível on-line; é altamente recomendado ...
ATUALIZAÇÕES :
fonte
Não tenho certeza se é isso que você está procurando, mas o Google extraiu imagens de redes quando elas foram alimentadas com ruído branco.
Consulte Inceptionism: Indo mais fundo nas redes neurais (Blog de pesquisa do Google) .
Esse tipo de representa o que a rede sabe.
fonte
Receio não ter as citações específicas à mão, mas já vi / ouvi citações de especialistas como Andrew Ng e Geoffrey Hinton, onde eles dizem claramente que realmente não entendemos redes neurais. Ou seja, entendemos algo de como eles funcionam (por exemplo, a matemática por trás da propagação traseira), mas realmente não entendemos por que eles funcionam. É uma distinção sutil, mas o ponto é que não, não entendemos os detalhes mais profundos de como exatamente você vai de um monte de pesos para, digamos, reconhecer um gato brincando com uma bola.
Pelo menos em termos de reconhecimento de imagem, a melhor explicação que ouvi é que camadas sucessivas de uma rede neural aprendem recursos mais sofisticados, compostos pelos recursos mais granulares dos níveis anteriores. Ou seja, a primeira camada pode reconhecer "arestas" ou "linhas retas". A próxima camada pode aprender formas geométricas como "caixa" ou "triângulo" e, em seguida, uma camada superior pode aprender "nariz" ou "olho" com base nos recursos anteriores e, em seguida, uma camada de nível superior ainda aprende "face" feita do "olho", "nariz", "mandíbula", etc. Mas mesmo isso, como eu o entendo, ainda é hipotético e / ou não é compreendido em detalhes completos.
fonte
Aqui está uma resposta de Carlos E. Perez à pergunta O que é a teoria por trás da aprendizagem profunda?
Resumindo: temos algumas idéias, mas não temos muita certeza.
fonte
SIM
Eu acho que "saber da cozinha" significa "saber em detalhes"?
Deixe-me fazer uma série de analogias:
O diabo está nos detalhes, mas um ponto crucial aqui é que se trata de estruturas artificiais. Eles não aparecem aleatoriamente. Você precisa de muito conhecimento para obter algo útil. Para as Redes Neurais, eu diria que demorou aproximadamente 40 anos desde a publicação da idéia-chave (Rosenblatt perceptron, 1957) até a primeira aplicação (Serviço Postal dos EUA, 1989). E a partir daí novamente 13 anos de pesquisa ativa para sistemas realmente impressionantes (ImageNet 2012).
O que sabemos super bem é como o treinamento funciona . Porque precisa ser implementado. Então, em uma estrutura muito pequena, nós a conhecemos em detalhes.
Pense em computadores. Os projetistas de chips sabem muito bem como seus chips funcionam. Mas eles provavelmente terão apenas uma idéia muito grosseira de como o sistema operacional Linux funciona.
Outro exemplo é a física e a química: a física descreve as forças centrais do universo. Isso significa que eles sabem tudo sobre química também? De jeito nenhum! Um físico "perfeito" pode explicar tudo em química ... mas seria praticamente inútil. Ele precisaria de muito mais informações, não conseguir pular as partes irrelevantes. Simplesmente porque ele "ampliou" demais - considera detalhes que na prática nem são interessantes nem importantes. Observe que o conhecimento do físico não está errado. Talvez alguém possa deduzir o conhecimento do químico a partir dele. Mas esse entendimento "de alto nível" da interação de moléculas está ausente.
O principal insight desses dois exemplos são as camadas de abstração: Você pode criar complexidade a partir de estruturas simples .
O quê mais?
Sabemos bem o que é, em princípio, possível com as redes neurais que projetamos:
Ah, e é claro que temos abordagens analíticas para redes neurais. Escrevi minha tese de mestrado sobre Análise e Otimização de Arquiteturas de Redes Neurais Convolucionais . Nesse contexto, o LIME (Explicações Agnósticas Interpretáveis por Modelos Interpretáveis Locais) é bom:
fonte
Eu só queria adicionar algo:
depende do que você quer dizer com cientista:
Eu sou um estudante de doutorado em engenharia elétrica e vi muitos pesquisadores trabalharem com a RNA, em problemas como regressão, controle de previsão, controle adaptativo e problemas de classificação.
você pode perceber claramente que a falta de habilidades de codificação é uma grande desvantagem, e eles realmente não entendem o que está acontecendo dentro de uma RNA, agora eu nem estou falando sobre o Deep , eles lutam para entender coisas simples como ADALINEs e ANFIS! tudo o que você ouve dizer é: forneça dados e ele se adaptará!
fonte