O aprendizado profundo está matando o processamento de imagens / visão computacional?


52

Estou ansioso para me inscrever em um mestrado em processamento de sinal e imagem, ou talvez Computer Vision (ainda não decidi), e essa questão surgiu.

Minha preocupação é que, como o aprendizado profundo não precisa de extração de recursos e quase nenhum pré-processamento de entrada, isso está matando o processamento de imagens (ou o processamento de sinais em geral)?

Não sou especialista em aprendizado profundo, mas parece funcionar muito bem em tarefas de reconhecimento e classificação, capturando imagens diretamente, em vez de um vetor de recursos, como outras técnicas.

Existe algum caso em que uma abordagem tradicional de extração de recursos + classificação seria melhor, usando técnicas de processamento de imagem, ou isso está morrendo por causa do aprendizado profundo?


3
Reabrindo isso porque ele tem um número alto de votos e a resposta mais votada tem um número muito alto de votos.
Peter K.

11
@LaurentDuval Acho que todas as respostas foram úteis e muito interessantes, mas principalmente as suas e as de leitura de matemática (junto com a discussão que surgiu) realmente esclareceram o tópico.
Tony

2
Eu gostaria de fazer uma encruzilhada na discussão em andamento. Quem disse que o aprendizado profundo não requer extração de recursos? Na minha própria experiência prática, não devemos treinar DNN para dados brutos. Temos que fazer alguma extração de recursos e também devemos possuir algum entendimento básico da imagem. A aprendizagem profunda deve ser usada com cuidado, mas também é uma boa ideia.
raj arun

Respostas:


45

Esta postagem foi atualizada muito. Na parte superior, você pode ver as atualizações de links. Abaixo, variações na resposta inicial. Para a versão curta: sucessos de redes neurais convolucionais e aprendizado profundo parecem uma espécie de revolução galileana. Para um ponto de vista prático, o processamento clássico de sinais ou a visão computacional estão inoperantes ... desde que você tenha dados rotulados suficientes, se preocupe pouco com falhas evidentes de classificação ( falhas profundas ), tenha energia infinita para executar testes sem pensar na pegada de carbono , e não se incomode com explicações racionais. Para os outros, isso nos fez repensar tudo o que fizemos antes: extração de recursos, otimização (cf. meu colega J.-C. Pesquet trabalha em Estruturas de Redes Neurais Profundas Resolvendo Desigualdades Variacionais), invariância, quantificação etc. E uma pesquisa realmente interessante está emergindo disso, esperançosamente alcançando princípios firmemente fundamentados e desempenho semelhante.

Links atualizados:

Introduzimos exemplos contraditórios naturais - exemplos do mundo real, não modificados e de ocorrência natural que causam uma degradação significativa na precisão do classificador. Selecionamos 7.500 exemplos adversários naturais e os liberamos em um conjunto de testes do classificador ImageNet que chamamos de ImageNet-A. Esse conjunto de dados serve como uma nova maneira de medir a robustez do classificador. Como os exemplos adversários do l_p, os exemplos do ImageNet-A são transferidos com sucesso para classificadores invisíveis ou de caixa preta. Por exemplo, no ImageNet-A, o DenseNet-121 obtém cerca de 2% de precisão, uma queda de precisão de aproximadamente 90%. A recuperação dessa precisão não é simples, porque os exemplos do ImageNet-A exploram falhas profundas nos classificadores atuais, incluindo a dependência excessiva de cores, texturas e sugestões de segundo plano. Observamos que as técnicas populares de treinamento para melhorar a robustez têm pouco efeito, mas mostramos que algumas mudanças na arquitetura podem aumentar a robustez dos exemplos contraditórios naturais. Pesquisas futuras são necessárias para permitir generalização robusta para este conjunto de testes ImageNet difícil.

Referências de aprendizado profundo "passo a passo" no processamento padrão de sinal / imagem podem ser encontradas na parte inferior. Michael Elad acabou de escrever Deep, Deep Trouble: o impacto da Deep Learning no processamento de imagens, matemática e humanidade (SIAM News, 2017/05), trecho:

Então as redes neurais voltaram subitamente, e com uma vingança.

Esse tribuno é de interesse, pois mostra uma mudança do "processamento de imagem" tradicional, tentando modelar / entender os dados, para um campo de correção, sem tanta percepção.

Este domínio está evoluindo bastante rápido. Isso não significa que ele evolua em alguma direção intencional ou constante. Nem certo nem errado. Mas nesta manhã, ouvi o seguinte dizer (ou é uma piada?):

um algoritmo ruim com um conjunto enorme de dados pode fazer melhor do que um algoritmo inteligente com dados pauce .

Aqui está minha tentativa muito curta: o aprendizado profundo pode fornecer resultados de última geração, mas nem sempre se entende o porquê , e parte do nosso trabalho de cientista permanece em explicar por que as coisas funcionam, qual é o conteúdo de um dado. etc.

O aprendizado profundo requer (enormes) bancos de dados bem marcados. Sempre que você faz trabalhos manuais em imagens únicas ou singulares (ou seja, sem um grande banco de dados por trás), especialmente em locais com pouca probabilidade de gerar "imagens com tags gratuitas baseadas no usuário" (no conjunto complementar do conjunto " gatos engraçados brincando e rostos ") , você pode manter o processamento de imagem tradicional por um tempo e obter lucro. Um tweet recente resume que:

(muitos) requisitos de dados rotulados (sem vars ausentes) são um disjuntor (e desnecessário) para muitos domínios

Se eles estão sendo mortos (o que duvido em um aviso de curto prazo), eles ainda não estão mortos. Portanto, qualquer habilidade adquirida no processamento de sinais, análise de imagens e visão computacional o ajudará no futuro. Isso é discutido, por exemplo, no post do blog: Esquecemos a geometria na visão computacional? de Alex Kendall:

O aprendizado profundo revolucionou a visão computacional. Hoje, não há muitos problemas em que a solução com melhor desempenho não se baseia em um modelo de aprendizado profundo de ponta a ponta. Em particular, as redes neurais convolucionais são populares, pois tendem a funcionar razoavelmente bem. No entanto, esses modelos são em grande parte grandes caixas-pretas. Há muitas coisas que não entendemos sobre elas.

Um exemplo concreto pode ser o seguinte: algumas imagens muito escuras (por exemplo, vigilância) do mesmo local, que precisam avaliar se uma delas contém uma alteração específica que deve ser detectada, é potencialmente uma questão de processamento de imagem tradicional, mais do que Deep Learning (a partir de hoje).

Por outro lado, o sucesso do Deep Learning em larga escala, pode levar a uma classificação incorreta de um pequeno conjunto de dados, o que pode ser inofensivo "em média" para alguns aplicativos. Duas imagens que diferem apenas ligeiramente do olho humano podem ser classificadas de maneira diferente via DL. Ou imagens aleatórias podem ser definidas para uma classe específica. Veja, por exemplo, redes neurais profundas são facilmente enganadas: previsões de alta confiança para imagens irreconhecíveis (Nguyen A, Yosinski J, Clune J. Proc. Visão Computacional e Reconhecimento de Padrões 2015), ou o Deep Learning tem falhas profundas? , em negativos contraditórios:

A rede pode classificar incorretamente uma imagem depois que os pesquisadores aplicaram uma certa perturbação imperceptível. As perturbações são encontradas ajustando os valores de pixel para maximizar o erro de previsão.

Com todo o respeito ao "Deep Learning", pense em "produção em massa que responda a um comportamento registrado, conhecido, com validade em massa ou esperado" versus "peça de artesanato singular". Nenhum é melhor (ainda) em uma única escala de índice. Ambos podem ter que coexistir por um tempo.

No entanto, o aprendizado profundo invade muitas áreas novas, como descrito nas referências abaixo.

Felizmente, algumas pessoas estão tentando encontrar uma lógica matemática por trás do aprendizado profundo, um exemplo das quais são redes ou transformações de dispersão propostas por Stéphane Mallat e co-autores, consulte o site do ENS para dispersão . Análise harmônica e operadores não lineares, funções de Lipschitz, invariância de translação / rotação, melhor para o processamento médio de sinais. Veja, por exemplo, Noções básicas sobre redes convolucionais profundas .


11
Aumentar dados de treinamento insuficientes usando cópias adequadamente modificadas ajuda a aprender profundamente a generalizar. Ultimamente, foram encontradas formas de contornar a necessidade de marcação supervisionada completa: o aumento de dados não supervisionados gera automaticamente rótulos para a parte não marcada dos dados de treinamento no aprendizado semi-supervisionado e os utiliza para treinamento. (Sinta-se à vontade para incorporar essas informações ou informações semelhantes na resposta.)
Olli Niemitalo

11
Se você sabe como aumentar "consistentemente". OK nos conjuntos de dados clássicos, ainda andando pelos dados científicos que negocio (geologia, química)
Laurent Duval

@ Laurent, sobre o que você disse: "nosso trabalho de cientista continua explicando por que as coisas funcionam" : parece que a ciência de dados é uma carreira válida para alguém que pensa em trabalhar seriamente no DSP. Existem outros nomes além do título típico de "engenheiro de DSP" que você já ouviu falar?
JFonseca 01/11

21

Primeiro, não há nada de errado em fazer pós-graduação em processamento de imagens ou visão computacional e usar o aprendizado profundo. O aprendizado profundo não está matando o processamento de imagens e a visão computacional, é apenas o atual tópico de pesquisa atual nesses campos.

Segundo, o aprendizado profundo é usado principalmente no reconhecimento de categorias de objetos. Mas essa é apenas uma das muitas áreas da visão computacional. Existem outras áreas, como detecção de objetos, rastreamento, reconstrução 3D etc., muitas das quais ainda dependem de recursos "artesanais".


5
Cuidado: os DNNs são muito capazes de fazer tudo o que você menciona: detecção de objetos, rastreamento, reconstrução em 3D etc. Isso dito, o processamento de sinais é uma visão dos aspectos físicos de como os sinais estão sendo manipulados e por que devemos manipulá-los de alguma maneira - e esses (acredito) farão um retorno para explicar por que algoritmos adaptativos como DNNs funcionam. Mas não se engane - os DNNs são muito capazes de transformar transformações de base a partir da entrada e até o objetivo (diferenciável) de destino.
Tarin Ziyaee

11

Nenhum Deep Learning não está matando o Image Processing. Você precisa de grandes conjuntos de dados e muitos recursos computacionais para realizar um aprendizado profundo. Existem muitas aplicações nas quais é desejável poder processar imagens com menos carga computacional e menor espaço de memória e sem ter acesso a grandes bancos de dados. Alguns exemplos são telefones celulares, tablets, câmeras móveis, automóveis, quadcopters. O aprendizado profundo é muito popular agora, pois existem alguns resultados impressionantes na classificação.

A classificação é um dos problemas entre os quais o Processamento de Imagem lida, mesmo que fosse verdade que o aprendizado profundo resolvesse todos os problemas de classificação, haveria muitos outros tipos de Processamento de Imagem a serem realizados. Redução de ruído, registro de imagens, cálculos de movimento, morphing / blending, nitidez, correções e transformações ópticas, geometrias de cálculo, estimativa 3D, modelos de movimento temporal 3D +, visão estéreo, compressão e codificação de dados, segmentação, desbaste, estabilização de movimento, computação gráfica, todos os tipos de renderização.


Denoising, estimativa 3D, etc, todos os que você mencionou podem ser aproximados e resolvidos por DNNs de arquitetura apropriada e dados apropriados.
Tarin Ziyaee 14/09/16

11
Sim, sim, e você pode fazer suas compras semanais em um Jaguar (mas não é por isso que eles são construídos).
mathreadler

11
Hehe, é verdade - mas isso é diferente de dizer que você não pode comprar usando sua onça-pintada.
Tarin Ziyaee

É fácil impor restrições úteis a um problema de engenharia com o qual DNNs são bastante ruins para lidar. Por exemplo, uma restrição de que o método usado não deve ser tendencioso em relação a um determinado conjunto de dados de entrada. Os DNNs serão naturalmente desqualificados por padrão, pois todos precisam de treinamento e, portanto, serão enviesados ​​usando dados de treinamento.
mathreadler

Isso é verdade para qualquer ferramenta de engenharia: mas esse não é o ponto. O ponto é que todas as tarefas que você mencionou acima podem, de fato, muito bem ser resolvidas com DNNs. Sim, alguns são desenvolvimentos mais recentes, mas é errado dizer que eles não podem ser resolvidos com DNNs! Isso é tudo!
Tarin Ziyaee 15/09/16

11

Hoje tivemos uma discussão com um amigo meu. Era um dia chuvoso aqui em Munique, enquanto grande parte da Europa estava tendo uma espécie de ambiente ensolarado. As pessoas estavam compartilhando fotografias nas mídias sociais, onde estavam em belos vestidos de verão, vagando pelos mares. Ela ficou irritada com essa situação e virou-se para mim e perguntou: "Você poderia escrever um software para bloquear as fotos nas mídias sociais, que envolvem fotos tão fofas do verão, quando o tempo está tão ruim aqui?". Eu disse porque não. Tudo o que você precisa fazer é reunir um conjunto enorme de imagens de verão e exemplos negativos, alimentá-lo por meio de uma rede, que faz uma classificação binária no nível de "Bloco" ou "Sem bloqueio". Treine e ajuste a rede. É isso aí.

Então, me virei para mim: realmente sei escrever um algoritmo simples para decidir se o tempo está bom ou não, sem deixar que a máquina pense por mim? Quase ... Talvez ... Para o leitor curioso, aqui estão alguns recursos que você pode querer criar, se tentar:

Classificação climática de duas classes, Cewu Lu§ Di Lin, Jiaya Jia, Chi-Keung Tang , CVPR 2014

Obviamente, eu nem me importaria com esta publicação CVPR hoje em dia e apenas me aprofundaria. Portanto, por mais que eu goste do aprendizado profundo por seu desempenho robusto em muitos cenários, também o uso com cautela. Mesmo que isso não acabe com meu conhecimento sobre processamento de imagens, ele tende a diminuir a experiência no domínio necessária. Intelectualmente, isso não é muito elegante.

Assim que o indivíduo decidir se manter no caminho certo e se beneficiar dos dois mundos, ele estará no lado seguro.


7

A resposta curta é: Não. DL pode reconhecer uma caneca em uma foto, mas isso não mata o processamento do sinal de qualquer maneira. Dito isto, sua pergunta é bastante relevante nestes dias conturbados. Há um bom painel de discussão sobre o assunto, com Stephane Mallat, etc., aqui .


5

A engenharia de dados ainda é usada no aprendizado de máquina para pré-processar e selecionar os dados fornecidos aos DNNs para melhorar o tempo de aprendizado e a eficiência da avaliação. O processamento de imagem (o material entre o sensor da câmera e os bitmaps RGB / etc. Alimentados às DNNs), uma forma de engenharia de dados, ainda é necessário.


4

Uma compreensão completa do processamento de sinais (juntamente com álgebra linear, cálculo vetorial, estatística matemática etc.) é imo indispensável para trabalhos não triviais no campo da aprendizagem profunda, especialmente na visão computacional.

Alguns dos artigos de alto impacto na aprendizagem profunda (agora que a maioria dos frutos baixos foram colhidos) demonstram uma boa compreensão dos conceitos de processamento de sinal.

Alguns conceitos motivacionais:

  • Convoluções dilatadas : confira este post do blog . Uma das primeiras equações seria pão com manteiga para uma pessoa bem fundamentada (hah) nos conceitos de processamento de sinal. Também está intimamente relacionado ao algoritmo a trous encontrado no processamento clássico de sinais de wavelets.
  • Camadas convolucionais transpostas / camadas Deconv. Novamente, conceitos básicos de processamento de sinal.
  • Modelagem dos filtros conv - é necessária uma boa idéia das normas do operador e do mapeamento da contração. Isso geralmente é encontrado em um curso de graduação em Teoria dos Sinais ou Sistemas de Controle, ou nos cursos de Matemática em Análise (Real ou funcional).
  • Exemplos adversos : um dos primeiros trabalhos a investigar isso ( "Propriedades intrigantes de ..." ) formalizou isso em termos de perturbações e usou constantes de Lipschitz das várias camadas e não linearidades em uma rede neural para limitar a sensibilidade a tais perturbações. Concordo, a análise foi muito preliminar, mas, novamente, acredito que comprova o ponto de que o progresso não trivial em qualquer coisa, inclusive a aprendizagem profunda, requer compreensão não trivial da teoria.

A lista continua. Portanto, mesmo que você acabe trabalhando com visão computacional e aplicando aprendizado profundo a seus problemas, o histórico de processamento de sinais tornará as coisas muito fáceis de entender para você.


11
Sim. Qualquer atalho adotado para não precisar aprender o que alimentar com a rede precisará ser aprendido da maneira mais difícil por um desempenho pior.
mathreadler

4

Realmente não faço muito processamento de imagens, mas trabalhei para uma organização (Marinha dos EUA) que fez e financiou pesquisas em classificação de sinais na última vez em que o Neural Nets foi um assunto quente, entre meados e o final dos anos 80. Eu tive que passar por um grande número de material de marketing. Os argumentos foram na linha de:

  • É neural, como o seu cérebro e, como superou um classificador linear, supera as técnicas estatísticas. Na verdade, conheço algumas pessoas que tiveram seus trabalhos rejeitados porque usavam estatísticas para avaliar o desempenho.
  • As redes neurais são indutivas, elas podem classificar as coisas corretamente se nenhum ou poucos exemplos estiverem em seus conjuntos de treinamento.
  • A DARPA está financiando o trabalho e todos sabemos que tudo o que a DARPA faz é um vencedor (o Google ainda não existia).
  • O desempenho não é maravilhoso, não precisa de uma matriz de confusão, não precisa de classes anteriores, posso apenas dizer qual é a minha probabilidade de erro. Não precisa de limites, eu só vou fazer o hold-one-out e treinar novamente o shuffle.
  • Escolha alguns recursos e escolha: é uma caixa preta, dimensionamento, alinhamento de dados, rejeição de desordem, rótulos incorretos, ocorrência de várias classes, e não o meu problema.
  • O nevoeiro da matemática, máquinas Boltzmann
  • Vamos colocar um SVD e talvez uma dimensão fractal.
  • A isca e o interruptor supervisionados / não supervisionados, vou encontrar todos os seus padrões ocultos. Essa coisa de memória associativa não é profunda?

Foi preciso o livro de Bishop para reprimir meu cinismo.

Em mais de algumas aplicações, o algoritmo ideal de processamento de sinal exigirá uma pesquisa exaustiva de enumeração em um grande espaço de parâmetros que rapidamente se torna intratável. Um grande farm de servidores pode aumentar esse espaço de pesquisa possível, mas em algum momento, você precisa encontrar uma heurística. O DL parece ser capaz de encontrar algumas dessas heurísticas, mas não resolve a otimização rígida do NP subjacente.


Você está completamente certo em reprimir o cinismo, pois parece derrubar muitas pessoas. Às vezes eu gostaria de aprender isso mais cedo na vida.
mathreadler

3

Minha perspectiva da universidade era que muitas pessoas de processamento de sinais eram um pouco hostis em relação à ML, suspeito porque se sentiram ameaçadas por estar invadindo seu domínio. Mas, recentemente, tem havido muita pesquisa sobre os benefícios de redes neurais profundas complexas e com valor, o que pode sugerir que o bilhete de ouro é realmente um entendimento sólido de ambas as disciplinas.


11
Sim. O processamento de sinais está intimamente relacionado ao aprendizado de máquina. Um sólido entendimento do processamento de sinais ajuda a entender como criar e usar algoritmos de ML e que tipo de dados é (des) adequado para alimentá-los.
mathreadler

2

Bem, sim. Da mesma forma que o desenvolvimento em linguagens de programação de nível superior como C ++ e Python 'matou' a programação de montagem. Isso não significa que é irrelevante aprender montagem quando você se matricula em um curso de CS. Ele fornece uma excelente visão de como o computador funciona, o que acontece nos bastidores de linguagens de nível superior, quais são os princípios básicos da linguagem de computador etc. Mas ninguém em sã consciência agora programaria um aplicativo de desktop em assembly.

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.