Problema fundamental com aprendizagem profunda e redes neurais em geral.
As soluções que se encaixam nos dados de treinamento são infinitas. Não temos uma equação matemática precisa que seja satisfeita apenas por uma única e que possamos dizer que generaliza melhor. Simplesmente falando, não sabemos o que generaliza melhor.
Otimizar pesos não é um problema convexo; portanto, nunca sabemos que acabamos com um mínimo global ou local.
Então, por que não apenas despejar as redes neurais e procurar um modelo melhor de ML? Algo que entendemos e algo consistente com um conjunto de equações matemáticas? Linear e SVM não têm essas desvantagens matemáticas e são totalmente consistentes com um conjunto de equações matemáticas. Por que não pensar nas mesmas linhas (embora não precise ser linear) e criar um novo modelo de ML melhor do que Linear e SVM e redes neurais e aprendizado profundo?
fonte
Respostas:
Não é possível saber qual solução generaliza melhor é um problema, mas não deve nos impedir de usar uma boa solução. Os próprios humanos geralmente não sabem o que generaliza melhor (considere, por exemplo, teorias unificadoras concorrentes da física), mas isso não nos causa muitos problemas.
Foi demonstrado que é extremamente raro o treinamento falhar por causa dos mínimos locais. A maioria dos mínimos locais em uma rede neural profunda tem valor próximo do mínimo global, portanto isso não é um problema. fonte
Mas a resposta mais ampla é que você pode falar o dia inteiro sobre não-conveniência e seleção de modelos, e as pessoas ainda usarão redes neurais simplesmente porque funcionam melhor do que qualquer outra coisa (pelo menos em coisas como classificação de imagens).
É claro que também há pessoas argumentando que não devemos ficar muito focados nas CNNs, como a comunidade estava focada nos SVMs há algumas décadas atrás, e continuando procurando a próxima grande novidade. Em particular, acho que me lembro de Hinton lamentando a eficácia das CNNs como algo que pode dificultar a pesquisa. post relacionado
fonte
Como os comentários à sua pergunta apontam, muitas pessoas estão trabalhando para encontrar algo melhor. Gostaria de responder a essa pergunta expandindo o comentário deixado por @josh
Todos os modelos estão errados, mas alguns são úteis (Wiki)
A afirmação acima é uma verdade geral usada para descrever a natureza dos modelos estatísticos. Usando os dados que temos disponíveis, podemos criar modelos que nos permitem fazer coisas úteis, como aproximar um valor previsto.
Tomemos, por exemplo, regressão linear
Usando várias observações, podemos ajustar um modelo para nos fornecer um valor aproximado para uma variável dependente, dado qualquer valor para as variáveis independentes.
Os desvios do nosso modelo (como pode ser visto na imagem acima) parecem aleatórios, algumas observações estão abaixo da linha e outras acima, mas nossa linha de regressão mostra uma correlação geral. Embora os desvios em nosso modelo pareçam aleatórios, em cenários realistas, haverá outros fatores em jogo que causam esse desvio. Por exemplo, imagine assistir carros enquanto eles dirigem por um cruzamento onde devem virar à esquerda ou à direita para continuar; os carros não seguem um padrão específico. Embora possamos dizer que a direção dos carros é completamente aleatória, todo motorista chega ao cruzamento e, nesse momento, toma uma decisão aleatória de qual caminho seguir? Na realidade, eles provavelmente estão indo para algum lugar específico por um motivo específico e, sem tentar parar cada carro para perguntar sobre seu raciocínio, só podemos descrever suas ações como aleatórias.
Onde somos capazes de ajustar um modelo com desvio mínimo, quão certo podemos ser que uma variável desconhecida, despercebida ou incomensurável, em algum momento, não atire nosso modelo? O bater das asas de uma borboleta no Brasil desencadeia um tornado no Texas?
O problema com o uso dos modelos Linear e SVN que você mencionou sozinho é que somos obrigados a observar manualmente nossas variáveis e como elas se afetam. Precisamos então decidir quais variáveis são importantes e escrever um algoritmo específico da tarefa. Isso pode ser simples se tivermos apenas algumas variáveis, mas e se tivéssemos milhares? E se quiséssemos criar um modelo generalizado de reconhecimento de imagem, isso poderia ser alcançado realisticamente com essa abordagem?
O Deep Learning e as redes neurais artificiais (RNAs) podem nos ajudar a criar modelos úteis para grandes conjuntos de dados que contêm grandes quantidades de variáveis (por exemplo, bibliotecas de imagens). Como você mencionou, há um número incompreensível de soluções que podem ajustar os dados usando as RNAs, mas esse número é realmente diferente da quantidade de soluções que precisaríamos para nos desenvolver por tentativa e erro?
A aplicação de RNAs faz grande parte do trabalho para nós, podemos especificar nossas entradas e resultados desejados (e ajustá-los posteriormente para fazer melhorias) e deixar que a ANN decida a solução. É por isso que as RNAs são frequentemente descritas como "caixas pretas" . A partir de uma determinada entrada, eles produzem uma aproximação, no entanto (em termos gerais) essas aproximações não incluem detalhes de como foram aproximadas.
E, portanto, tudo se resume ao problema que você está tentando resolver, pois o problema ditará qual abordagem de modelo é mais útil. Os modelos não são absolutamente precisos e, portanto, sempre há um elemento de estar "errado"; no entanto, quanto mais precisos forem os resultados, mais úteis eles serão. Ter mais detalhes nos resultados de como a aproximação foi feita também pode ser útil, dependendo do problema, pode até ser mais útil do que maior precisão.
Se, por exemplo, você está calculando a pontuação de crédito de uma pessoa, usar regressão e SVMs fornece cálculos que podem ser melhor explorados. Ser capaz de ajustar o modelo diretamente e explicar aos clientes o efeito que as variáveis independentes têm sobre sua pontuação geral é muito útil. Uma RNA pode ajudar no processamento de grandes quantidades de variáveis para obter uma pontuação mais precisa, mas essa precisão seria mais útil?
fonte
O mínimo global pode ser inútil, portanto não nos importamos se o encontramos ou não. O motivo é que, para redes profundas, não apenas o tempo para encontrá-lo se torna exponencialmente mais longo à medida que o tamanho da rede aumenta, mas também o mínimo global geralmente corresponde à adaptação excessiva do conjunto de treinamento. Assim, a capacidade de generalização do DNN (que é com o que realmente nos importamos) sofreria. Além disso, geralmente preferimos mínimos mais planos, correspondentes a um valor mais alto da função de perda, do que mínimos mais nítidos, correspondentes a um valor mais baixo da função de perda, porque o segundo lidará muito mal com a incerteza nas entradas. Isso está se tornando cada vez mais claro com o desenvolvimento do Deep Learning Bayesiano. A otimização robusta supera a otimização determinista com muita frequência, quando aplicada a problemas do mundo real, onde a incerteza é importante.
Por fim, é fato que os DNNs simplesmente se destacam em métodos como o XGBoost na classificação de imagens e a PNL. Uma empresa que deve lucrar com a classificação de imagens as selecionará corretamente como modelos a serem implantados na produção ( e investirá uma quantia significativa de dinheiro em engenharia de recursos, pipeline de dados, etc., mas discordo). Isso não significa que eles dominam todo o ambiente de ML: por exemplo, eles se saem pior que o XGBoost em dados estruturados (veja os últimos vencedores das competições Kaggle) e parecem ainda não se sair tão bem quanto os filtros de partículas na modelagem de séries temporais. No entanto, algumas inovações muito recentes em RNNs podem modificar essa situação.
fonte
Eu acho que a melhor maneira de pensar sobre essa questão é através do mercado competitivo. Se você adora o aprendizado profundo, e seus concorrentes o usam, E acontece que funciona melhor do que você usou, então você será derrotado no mercado.
Eu acho que é o que está acontecendo hoje, em parte, ou seja, o aprendizado profundo parece funcionar melhor do que qualquer coisa para todo o conjunto de problemas no mercado. Por exemplo, tradutores de idiomas on-line que usam aprendizado profundo são melhores do que as abordagens puramente lingüísticas usadas anteriormente. Apenas alguns anos atrás, esse não era o caso, mas os avanços no aprendizado profundo trouxeram aqueles que se acostumaram às posições de liderança no mercado.
Continuo repetindo "o mercado", porque é isso que está impulsionando o atual surto de aprendizado profundo. No momento em que os negócios encontrarem algo útil, algo se espalhará amplamente. Não é que nós , o comitê, decidimos que o aprendizado profundo deve ser popular. São negócios e concorrência.
A segunda parte é que, além do sucesso real do ML, também há medo de perder o barco. Muitas empresas são paranóicas de que, se perderem a IA, fracassarão como empresas. Esse medo está sendo alimentado por todas essas consultorias, Gartners etc., sussurrando aos CEOs que eles devem fazer IA ou morrer amanhã.
Ninguém está forçando as empresas a usar o aprendizado profundo. TI e P&D estão empolgados com um novo brinquedo. A torcida está na academia, então essa festa vai durar até que a música pare, ou seja, até que o aprendizado profundo pare de acontecer. Enquanto isso, você pode despejá-lo e encontrar uma solução melhor.
fonte
Existem excelentes respostas, principalmente com a utilidade de DL e RNAs. Mas eu gostaria de objetar o OP de uma maneira mais fundamental, uma vez que a questão já dá como certa a inconsistência matemática das redes neurais.
Em primeiro lugar, não é uma teoria matemática por trás (a maioria dos modelos de) Redes Neurais. Você também pode argumentar que a regressão linear não generaliza, a menos que o modelo subjacente seja ... bem, linear. Nos algoritmos neurais, um modelo é assumido (mesmo que não explicitamente) e o erro de ajuste é calculado. O fato de algoritmos serem modificados com várias heurísticas não anula o suporte matemático original. Aliás, a otimização local também é uma teoria matematicamente consistente, e muito menos útil.
Nessa linha, se as redes neurais constituem apenas uma classe de métodos dentro de toda a caixa de ferramentas dos cientistas, qual é a linha que separa as redes neurais do restante das técnicas? De fato, os SVMs já foram considerados uma classe de NNs e ainda aparecem nos mesmos livros. Por outro lado, os RNs podem ser considerados uma técnica de regressão (não linear), talvez com alguma simplificação. Concordo com o OP de que devemos procurar algoritmos melhores, bem fundamentados e eficientes, independentemente de você os rotular como NNs ou não.
fonte
Eu acho que, por algum problema, nos preocupamos menos com o rigor e a simplicidade matemática, mas mais por sua utilidade, o status atual é que a rede neural é melhor na execução de determinadas tarefas, como reconhecimento de padrões no processamento de imagens.
fonte
Há muita coisa nessa questão. Vamos revisar o que você escreveu, um por um.
O fato de existirem muitas soluções infinitas resulta do problema de aprendizado ser um problema incorreto, portanto não pode haver um que generalize melhor. Além disso, por nenhum teorema do almoço grátis, o método que usarmos não pode garantir que seja o melhor em todos os problemas de aprendizagem.
Esta afirmação não é realmente verdadeira. Existem teoremas sobre minimização de risco empírico por Vapnik & Chervonenkis que conectam o número de amostras, a dimensão VC do método de aprendizagem e o erro de generalização. Observe que isso se aplica apenas a um determinado conjunto de dados. Portanto, dado um conjunto de dados e um procedimento de aprendizado, sabemos os limites da generalização. Observe que, para conjuntos de dados diferentes, não existe e não pode haver um único procedimento de aprendizado devido a nenhum teorema do almoço grátis.
Aqui há algumas coisas que você precisa ter em mente. Otimizar problemas não convexos não é tão fácil quanto um problema convexo; isso é verdade. No entanto, a classe de métodos de aprendizagem convexos é limitada (regressão linear, SVMs) e, na prática, eles apresentam desempenho pior do que a classe de não convexos (CNNs) em uma variedade de problemas. Portanto, a parte crucial é que, na prática, as redes neurais funcionam melhor. Embora existam vários elementos muito importantes que fazem as redes neurais funcionarem bem:
Despejar coisas que funcionam por não entendê-las não é uma boa direção de pesquisa. Por outro lado, fazer um esforço para entendê-las é uma ótima direção de pesquisa. Também discordo que as redes neurais são inconsistentes com as equações matemáticas. Eles são bastante consistentes. Sabemos como otimizá-los e executar inferência.
fonte
Que tal visualizar redes neurais do ponto de vista experimental? Só porque os criamos não significa que somos obrigados a entendê-los intuitivamente. Ou que não temos permissão para brincar com eles, a fim de ter uma melhor compreensão do que eles estão fazendo.
Aqui estão alguns pensamentos que tenho sobre eles:
Isso é consistente com a forma como pensamos. É até consistente com o modo como o método científico opera. Assim, ao quebrar as redes neurais, também podemos resolver a questão geral do que o conhecimento representa.
fonte
Não se esqueça, há um vasto campo de pesquisa que usa LMs, GLM, modelagem multinível. Ultimamente, as técnicas bayesianas e o Monte Carlo Hamiltoniano (a comunidade STAN está realmente na vanguarda disso) atingiram a maioridade e vários problemas resolvidos pelo STAN com muita facilidade e realmente não precisam de NNs ou redes profundas. Pesquisa em ciências sociais e microeconomia são dois (grandes) exemplos de tais campos adotando Stan rapidamente.
Os modelos Stan são muito "legíveis". Os coeficientes realmente têm uma interpretação distributiva posterior e as previsões também. Os anteriores fazem parte do processo de geração de dados e não precisam ser conjugados para ter desempenho (como gibbs). O ajuste de modelo em stan é uma delícia, na verdade, sintoniza os params irritantes do MCMC automaticamente muito bem e avisa quando a exploração é travada com visualizações muito boas.
Se você ainda não experimentou, veja as incríveis demos aqui ).
No final do dia, acho que as pessoas não falam muito sobre isso, porque a pesquisa nesse campo e os problemas não são tão "sexy" / "legais" quanto nos NNs.
fonte
O que normalmente acontece quando não há consistência matemática (pelo menos neste caso de redes neurais) ... quando não está dando os resultados desejados, no teste, seu chefe volta e diz ... Ei, por que você não tente Desistir (quais pesos, qual camada, quantas dores de cabeça há e não há uma maneira matemática de determinar); portanto, depois de tentar obter uma melhoria marginal, mas não a desejada, seu chefe voltará e perguntará por que não tente diminuir o peso (qual fator?)? e mais tarde, por que você não tenta ReLU ou alguma outra ativação em algumas camadas, e ainda não, por que não tentar 'pool máximo'? ainda não, por que não tentar a normalização em lote, ainda não ou a convergência pelo menos, mas o resultado não desejado? Oh, você está no mínimo local, tente um cronograma de taxas de aprendizado diferentes, basta mudar a arquitetura da rede? e repita tudo acima em diferentes combinações! Mantenha-o em um loop até conseguir!
Por outro lado, quando você tenta um SVM consistente, após a convergência, se o resultado não for bom, tudo bem, o kernel linear que estamos usando não é bom o suficiente, pois os dados podem não ser lineares, use um kernel de formato diferente, tente um kernel de formato diferente, se você tiver algum palpite, se ainda não tiver, apenas deixe, é uma limitação do SVM.
O que estou dizendo é que as redes neurais são tão inconsistentes que nem estão erradas! Ele nunca aceita sua derrota! O engenheiro / designer assume o ônus, caso não funcione conforme desejado.
fonte