Vamos começar com uma privilégio: a rede neural profunda é simplesmente uma rede de feedforward com muitas camadas ocultas.
Isso é mais ou menos tudo o que há a dizer sobre a definição. As redes neurais podem ser recorrentes ou antecipadas; os feedforward não possuem loops no gráfico e podem ser organizados em camadas. Se houver "muitas" camadas, dizemos que a rede é profunda .
Como muitas camadas que uma rede tem que ter, a fim de qualificar-se como profundo? Não há uma resposta definitiva para isso (é como perguntar quantos grãos formam uma pilha ), mas geralmente ter duas ou mais camadas ocultas conta como profundidade. Por outro lado, uma rede com apenas uma única camada oculta é convencionalmente chamada de "superficial". Eu suspeito que haverá alguma inflação acontecendo aqui, e em dez anos as pessoas podem pensar que qualquer coisa com menos de, digamos, dez camadas, é rasa e adequada apenas para exercícios de jardim de infância. Informalmente, "profundo" sugere que a rede é difícil de lidar.
Aqui está uma ilustração, adaptada daqui :
Mas a verdadeira pergunta que você está fazendo é, obviamente, por que ter muitas camadas seria benéfico?
Eu acho que a resposta um tanto surpreendente é que ninguém realmente sabe. Existem algumas explicações comuns que analisarei brevemente abaixo, mas nenhuma delas foi convincentemente demonstrada verdadeira, e nem se pode ter certeza de que ter muitas camadas é realmente benéfico.
Eu digo que isso é surpreendente, porque o aprendizado profundo é muito popular, está quebrando todos os recordes (desde reconhecimento de imagem, reprodução de Go, tradução automática etc.) todos os anos, está sendo usado pela indústria etc. etc. E ainda não estamos muito certo porque ele funciona tão bem.
Baseei minha discussão no livro Deep Learning de Goodfellow, Bengio e Courville, lançado em 2017 e amplamente considerado o livro sobre aprendizado profundo. (Está disponível gratuitamente on-line.) A seção relevante é 6.4.1 Propriedades e profundidade da aproximação universal .
Você escreveu isso
Há 10 anos, na aula, aprendi que ter várias camadas ou uma camada (sem contar as camadas de entrada e saída) era equivalente em termos das funções que uma rede neural é capaz de representar [...]
Você deve estar se referindo ao chamado teorema da aproximação universal , provado por Cybenko em 1989 e generalizado por várias pessoas na década de 1990. Diz basicamente que uma rede neural superficial (com 1 camada oculta) pode aproximar-se de qualquer função, ou seja, pode, em princípio, aprender qualquer coisa . Isso é verdade para várias funções de ativação não lineares, incluindo unidades lineares retificadas que a maioria das redes neurais está usando atualmente (o livro de referência faz referência a Leshno et al. 1993 para esse resultado).
Se sim, então por que todo mundo está usando redes profundas?
Bem, uma resposta ingênua é essa porque eles funcionam melhor. Aqui está uma figura do livro Deep Learning mostrando que ajuda a ter mais camadas em uma tarefa específica, mas o mesmo fenômeno é frequentemente observado em várias tarefas e domínios:
Sabemos que uma rede rasa pode ter um desempenho tão bom quanto as mais profundas. Mas isso não acontece; e eles geralmente não. A questão é --- por quê? Possíveis respostas:
- Talvez uma rede rasa precise de mais neurônios do que a profunda?
- Talvez uma rede rasa seja mais difícil de treinar com nossos algoritmos atuais (por exemplo, possui mínimos locais mais desagradáveis, ou a taxa de convergência é mais lenta, ou o que for)?
- Talvez uma arquitetura superficial não se encaixe no tipo de problemas que geralmente estamos tentando resolver (por exemplo, o reconhecimento de objetos é um processo hierárquico "profundo" e por excelência)?
- Algo mais?
O livro Deep Learning defende os pontos 1 e 3 do marcador. Primeiro, argumenta que o número de unidades em uma rede rasa cresce exponencialmente com a complexidade da tarefa. Portanto, para ser útil, uma rede rasa pode precisar ser muito grande; possivelmente muito maior que uma rede profunda. Isso se baseia em vários artigos que provam que redes rasas, em alguns casos, precisariam exponencialmente de muitos neurônios; mas se, por exemplo, a classificação MNIST ou o Go play são esses casos, não está realmente claro. Segundo, o livro diz o seguinte:
A escolha de um modelo profundo codifica uma crença muito geral de que a função que queremos aprender deve envolver a composição de várias funções mais simples. Isso pode ser interpretado do ponto de vista da aprendizagem de representação como dizendo que acreditamos que o problema de aprendizagem consiste em descobrir um conjunto de fatores de variação subjacentes que, por sua vez, podem ser descritos em termos de outros fatores de variação subjacentes mais simples.
Eu acho que o "consenso" atual é que é uma combinação dos pontos 1 e 3: para tarefas do mundo real, a arquitetura profunda geralmente é benéfica e a arquitetura superficial seria ineficiente e exigiria muito mais neurônios para o mesmo desempenho.
Mas está longe de ser comprovado. Considere, por exemplo, Zagoruyko e Komodakis, 2016, Wide Residual Networks . Redes residuais com mais de 150 camadas apareceram em 2015 e venceram vários concursos de reconhecimento de imagem. Este foi um grande sucesso e parecia um argumento convincente a favor da profundidade; Aqui está uma figura de uma apresentação do primeiro autor no artigo de rede residual (observe que o tempo confusa é para a esquerda aqui):
Mas o artigo acima mostra que uma rede residual "ampla" com "apenas" 16 camadas pode superar as "profundas" com mais de 150 camadas. Se isso for verdade, todo o ponto da figura acima será quebrado.
Ou considere Ba e Caruana, 2014, as redes profundas realmente precisam ser profundas? :
Neste artigo, fornecemos evidências empíricas de que as redes rasas são capazes de aprender a mesma função que as redes profundas e, em alguns casos, com o mesmo número de parâmetros que as redes profundas. Fazemos isso treinando primeiro um modelo profundo de última geração e depois treinando um modelo raso para imitar o modelo profundo. O modelo de simulação é treinado usando o esquema de compactação de modelo descrito na próxima seção. Notavelmente, com a compressão do modelo, podemos treinar redes rasas para serem tão precisas quanto alguns modelos profundos, mesmo que não possamos treinar essas redes rasas para serem tão precisas quanto as redes profundas quando as redes rasas são treinadas diretamente sobre o original dados de treinamento rotulados. Se uma rede rasa com o mesmo número de parâmetros que uma rede profunda pode aprender a imitar uma rede profunda com alta fidelidade,
Se for verdade, isso significaria que a explicação correta é o meu ponto 2, e não o número 1 ou o número 3.
Como eu disse --- ninguém realmente sabe ao certo ainda.
Observações finais
A quantidade de progresso alcançado no aprendizado profundo nos últimos 10 anos é realmente incrível, mas a maior parte desse progresso foi alcançada por tentativa e erro, e ainda nos falta uma compreensão muito básica sobre o que exatamente faz as redes profundas funcionarem tão bem. Até a lista de coisas que as pessoas consideram cruciais para a criação de uma rede profunda eficaz parece mudar a cada dois anos.
O renascimento do aprendizado profundo começou em 2006, quando Geoffrey Hinton (que trabalhava em redes neurais há mais de 20 anos sem muito interesse de ninguém) publicou alguns artigos inovadores, oferecendo uma maneira eficaz de treinar redes profundas ( artigo científico , artigo sobre computação neural ) . O truque era usar o pré-treinamento não supervisionado antes de iniciar a descida do gradiente. Esses documentos revolucionaram o campo e, por alguns anos, as pessoas pensaram que o pré-treinamento não supervisionado era a chave.
Então, em 2010, Martens mostrou que redes neurais profundas podem ser treinadas com métodos de segunda ordem (os chamados métodos livres de Hessian) e podem superar as redes treinadas com pré-treinamento: Deep learning via otimização sem Hessian . Então, em 2013, Sutskever et al. mostraram que a descida do gradiente estocástico com alguns truques muito inteligentes pode superar os métodos livres de Hessian: Sobre a importância da inicialização e do momento no aprendizado profundo . Além disso, por volta de 2010, as pessoas perceberam que o uso de unidades lineares retificadas em vez de unidades sigmóides faz uma enorme diferença para a descida do gradiente. O abandono ocorreu em 2014. As redes residuais apareceram em 2015. As pessoas continuam criando maneiras cada vez mais eficazes de treinar redes profundas eo que parecia ser um insight importante há dez anos é considerado atualmente um incômodo hoje. Tudo isso é amplamente motivado por tentativa e erro e há pouco entendimento do que faz algumas coisas funcionarem tão bem e outras não. Treinar redes profundas é como um grande saco de truques. Os truques de sucesso geralmente são racionalizados após o fato.
Nem sabemos por que redes profundas atingem um platô de desempenho; apenas 10 anos as pessoas costumavam culpar os mínimos locais, mas o pensamento atual é que esse não é o ponto (quando os platôs de desempenho, os gradientes tendem a permanecer grandes). Essa é uma pergunta tão básica sobre redes profundas, e nem sabemos disso .
Atualização: esse é mais ou menos o assunto da palestra do NIPS 2017 de Ali Rahimi sobre aprendizado de máquina como alquimia: https://www.youtube.com/watch?v=Qi1Yry33TQE .
[Esta resposta foi totalmente reescrita em abril de 2017, portanto, alguns dos comentários abaixo não se aplicam mais.]