Um problema que eu vi com frequência levantado no contexto das redes neurais em geral, e das redes neurais profundas em particular, é que elas têm "fome de dados" - ou seja, elas não têm um bom desempenho, a menos que tenhamos um grande conjunto de dados com o qual treinar a rede.
Meu entendimento é que isso se deve ao fato de as NNets, especialmente as Deep NNets, terem um grande número de graus de liberdade. Portanto, como modelo, uma NNet tem um número muito grande de parâmetros e, se o número de parâmetros do modelo for grande em relação ao número de pontos de dados de treinamento, há uma tendência maior ao ajuste excessivo.
Mas por que esse problema não é resolvido pela regularização? Até onde eu sei, as NNets podem usar a regularização L1 e L2 e também ter seus próprios métodos de regularização, como o dropout, que pode reduzir o número de parâmetros na rede.
Podemos escolher nossos métodos de regularização de modo a impor parcimônia e limitar o tamanho da rede?
Para esclarecer meu pensamento: digamos que estamos usando uma Deep NNet grande para tentar modelar nossos dados, mas o conjunto de dados é pequeno e pode realmente ser modelado por um modelo linear. Então, por que os pesos da rede não convergem de tal maneira que um neurônio simula a regressão linear e todos os outros convergem para zeros? Por que a regularização não ajuda nisso?
fonte
Respostas:
A maneira mais simples de explicar é que a regularização ajuda a não se ajustar ao ruído, e não faz muito em termos de determinar a forma do sinal. Se você pensa no aprendizado profundo como um aproximador gigante de funções gloriosas, percebe que ele precisa de muitos dados para definir a forma do sinal complexo.
Se não houvesse ruído, o aumento da complexidade da NN produziria uma melhor aproximação. Não haveria nenhuma penalidade no tamanho do NN, maior teria sido melhor em todos os casos. Considere uma aproximação de Taylor, mais termos são sempre melhores para a função não polinomial (ignorando problemas de precisão numérica).
Isso quebra na presença de um ruído, porque você começa a se ajustar ao ruído. Então, aqui vem a regularização para ajudar: isso pode reduzir a adaptação ao ruído, permitindo assim construir maiores NN para atender a problemas não-lineares.
A discussão a seguir não é essencial para minha resposta, mas adicionei em parte para responder a alguns comentários e motivar o corpo principal da resposta acima. Basicamente, o resto da minha resposta é como incêndios franceses que vêm com uma refeição de hambúrguer, você pode pular.
(Ir) Caso relevante: Regressão polinomial
Em seguida, ajustaremos polinômios com ordem progressivamente mais alta a um pequeno conjunto de dados muito barulhento com 7 observações:
Podemos observar o que nos disseram sobre polinômios por muitas pessoas conhecidas: são instáveis e começam a oscilar descontroladamente com o aumento da ordem dos polinômios.
No entanto, o problema não são os próprios polinômios. O problema é o barulho. Quando ajustamos polinômios a dados ruidosos, parte do ajuste é ao ruído, não ao sinal. Aqui estão os mesmos polinômios exatos que se ajustam ao mesmo conjunto de dados, mas com o ruído completamente removido. Os ajustes são ótimos!
Observe também que os polinômios de ordem superior não se encaixam tão bem quanto a ordem 6, porque não há observações suficientes para defini-los. Então, vejamos o que acontece com 100 observações. Em um gráfico abaixo, você vê como um conjunto de dados maior nos permitiu ajustar polinômios de ordem superior, obtendo assim um melhor ajuste!
Ótimo, mas o problema é que geralmente lidamos com dados barulhentos. Veja o que acontece se você ajustar o mesmo a 100 observações de dados muito ruidosos, veja a tabela abaixo. Voltamos à estaca zero: polinômios de ordem superior produzem horríveis oscilações. Portanto, aumentar o conjunto de dados não ajudou muito no aumento da complexidade do modelo para explicar melhor os dados. Isso ocorre, novamente, porque o modelo complexo se ajusta melhor não apenas à forma do sinal, mas também à forma do ruído.
Finalmente, vamos tentar alguma regularização fraca sobre esse problema. O gráfico abaixo mostra a regularização (com diferentes penalidades) aplicada à ordem 9 de regressão polinomial. Compare isso com a ordem (potência) do ajuste polinomial 9 acima: em um nível apropriado de regularização, é possível ajustar polinômios de ordem superior a dados ruidosos.
Apenas no caso de não estar claro: não estou sugerindo o uso da regressão polinomial dessa maneira. Os polinômios são bons para ajustes locais, portanto, um polinômio por partes pode ser uma boa escolha. Ajustar o domínio inteiro a eles geralmente é uma má ideia, porque eles são sensíveis ao ruído, como deve ser evidente nas plotagens acima. Se o ruído é numérico ou de alguma outra fonte não é tão importante neste contexto. o barulho é barulho, e os polinômios reagirão a ele apaixonadamente.
fonte
Neste momento, não está bem entendido quando e por que certos métodos de regularização são bem-sucedidos e falham. De fato, não se entende por que o aprendizado profundo funciona em primeiro lugar.
Considerando que uma rede neural suficientemente profunda pode memorizar perfeitamente a maioria dos dados de treinamento bem comportados, existem soluções consideravelmente mais erradas do que as certas para uma rede profunda específica. A regularização, em termos gerais, é uma tentativa de limitar a expressividade dos modelos para essas soluções "erradas" - onde "errado" é definido por heurísticas que julgamos importantes para um domínio específico . Mas muitas vezes é difícil definir a heurística de forma que você não perca a expressividade "correta" com ela. Um ótimo exemplo disso são as penalidades de L2.
Muito poucos métodos que seriam considerados uma forma de regularização são geralmente aplicáveis a todas as áreas de aplicação do BC. Todos os problemas de visão, PNL e previsão estruturada têm seu próprio livro de receitas de técnicas de regularização que demonstraram ser eficazes experimentalmente para esses domínios específicos. Mas, mesmo dentro desses domínios, essas técnicas são eficazes apenas em determinadas circunstâncias. Por exemplo, a normalização de lotes em redes residuais profundas parece tornar a desistência redundante, apesar do fato de que ambos demonstraram melhorar independentemente a generalização.
Em uma nota separada, acho que o termo regularização é tão amplo que dificulta a compreensão de algo a respeito. Considerando que as convoluções restringem exponencialmente o espaço dos parâmetros em relação aos pixels, você pode considerar a rede neural convolucional uma forma de regularização na rede neural de baunilha.
fonte
Uma classe de teoremas que mostram por que esse problema é fundamental são os Teoremas Sem Almoço Gratuito . Para cada problema com amostras limitadas em que uma certa regularização ajuda, há outro problema em que essa mesma regularização piora as coisas. Como Austin aponta, geralmente descobrimos que a regularização L1 / L2 é útil para muitos problemas do mundo real, mas isso é apenas uma observação e, devido aos teoremas da NFL, não há garantias gerais.
fonte
Eu diria que em um nível alto, o viés indutivo das DNNs (redes neurais profundas) é poderoso, mas um pouco frouxo ou pouco opinativo o suficiente. Com isso, quero dizer que os DNNs capturam muitas estatísticas de superfície sobre o que está acontecendo, mas não conseguem chegar à estrutura causal / composicional de alto nível mais profunda. (Você pode ver as convoluções como uma especificação de polarização indutiva do homem pobre).
Além disso, acredita-se na comunidade de aprendizado de máquina que a melhor maneira de generalizar (fazer boas inferências / previsões com poucos dados) é encontrar o programa mais curto que deu origem aos dados. Mas a indução / síntese de programas é difícil e não temos uma boa maneira de fazê-lo com eficiência. Então, em vez disso, contamos com uma aproximação aproximada, que é a busca por circuito, e sabemos como fazer isso com a retropropagação. Aqui , Ilya Sutskever fornece uma visão geral dessa ideia.
Para ilustrar a diferença no poder de generalização dos modelos representados como programas reais versus modelos de aprendizado profundo, mostrarei o deste artigo: Simulação como um mecanismo de entendimento da cena física .
Meu argumento aqui é que o ajuste em C é realmente bom, porque o modelo captura os vieses certos sobre como os humanos fazem julgamentos físicos. Isso ocorre em grande parte porque modela a física real (lembre- se de que é um mecanismo de física real) e pode lidar com a incerteza.
Agora, a pergunta óbvia é: você pode fazer isso com o aprendizado profundo? Foi o que Lerer et al fizeram neste trabalho: aprendendo a intuição física de torres de blocos por exemplo
O modelo deles:
O modelo deles é realmente muito bom na tarefa em questão (prever o número de blocos em queda e até a direção da queda)
Mas sofre duas grandes desvantagens:
Houve um estudo de comparação feito pelo laboratório de Tenenbaum sobre essas duas abordagens: Uma avaliação comparativa de simulação probabilística aproximada e redes neurais profundas como relatos da compreensão da cena física humana .
Citando a seção de discussão:
Voltando ao ponto que quero enfatizar: embora as redes neurais sejam modelos poderosos, elas parecem não ter a capacidade de representar estruturas causais, composicionais e complexas. E eles compensam isso exigindo muitos dados de treinamento.
E voltando à sua pergunta: eu arriscaria que o amplo viés indutivo e o fato de as redes neurais não modelarem causalidade / composicionalidade é o motivo pelo qual eles precisam de tantos dados de treinamento. Regularização não é uma boa solução, devido à maneira como eles generalizam. Uma solução melhor seria mudar seu viés, como está sendo testado atualmente por Hinton com cápsulas para modelar geometria total / parcial ou redes de interação para modelar relações.
fonte
Antes de tudo, existem muitos métodos de regularização em uso e em pesquisa ativa para aprendizado profundo. Portanto, sua premissa não é totalmente certa.
Quanto aos métodos em uso, a redução de peso é uma implementação direta de uma penalidade de L2 nos pesos via descida de gradiente. Faça o gradiente da norma quadrática de seus pesos e adicione um pequeno passo nessa direção a eles a cada iteração. O abandono também é considerado uma forma de regularização, que impõe um tipo de estrutura média. Isso parece implicar algo como uma penalidade de L2 sobre um conjunto de redes com parâmetros compartilhados.
Presumivelmente, você poderia aumentar o nível dessas ou de outras técnicas para lidar com pequenas amostras. Mas observe que a regularização implica imposição de conhecimento prévio. A penalidade de L2 nos pesos implica um prior gaussiano para os pesos, por exemplo. Aumentar a quantidade de regularização afirma essencialmente que seu conhecimento prévio é cada vez mais certo e influencia seu resultado em relação a esse anterior. Então você pode fazê-lo e ele superajustará menos, mas a saída tendenciosa pode ser ruim. Obviamente, a solução é melhor conhecimento prévio. Para reconhecimento de imagem, isso significaria anteriores muito mais estruturados em relação às estatísticas do seu problema. O problema com essa direção é que você está impondo muita experiência no domínio e evitar ter que impor a experiência humana foi um dos motivos pelos quais você usou o aprendizado profundo.
fonte
As redes neurais podem ser treinadas assim. Se a regularização adequada de L1 for usada, muitos pesos poderão ser zerados e isso fará com que as redes neurais se comportem como concatenação de 1 ou mais neurônios de regressão linear e muitos outros nerons zero. Então sim - regularizações L1 / L2 ou similares podem ser usadas para restringir o tamanho ou o poder representacional da rede neural.
Na verdade, o tamanho do modelo em si é um tipo de regularização - se você amplia o modelo, significa que você injeta um conhecimento prévio sobre o problema, ou seja, os problemas são altamente complexos e, portanto, exige um modelo com alto poder de representação. Se você reduz o modelo, significa que você injeta conhecimento de que o problema é simples, para que o modelo não precise de muita capacidade.
E isso significa que a regularização de L2 não tornará as redes "esparsas", como você descreveu, porque a regularização de L2 injeta conhecimento prévio de que a contribuição de cada neurônio (peso) deve ser pequena, mas não nula. Portanto, a rede usaria cada um dos neurônios em vez de usar apenas um pequeno conjunto de neurônios.
fonte
Um ponto importante aqui é que a regularização nem sempre é útil. Em vez disso, regularizar o que provavelmente deveria ser verdade é muito útil, mas regularizar na direção errada é claramente ruim.
Mas agora suponha que nossos dados sejam imagens de gatos alimentados em redes neurais profundas. Se "orelhas pontudas" é, de fato, muito útil para identificar gatos, talvez gostaríamos de reduzir a pena para dar a esse poder mais preditivo. Mas não temos ideia de onde isso será representado na rede! Ainda podemos introduzir penalidades para que uma pequena parte do sistema não domine toda a rede, mas fora disso, é difícil introduzir regularização de maneira significativa.
Em resumo, é extremamente difícil incorporar informações anteriores em um sistema que não entendemos.
fonte