Existem dois excelentes artigos recentes sobre algumas das propriedades geométricas de redes neurais profundas com não linearidades lineares por partes (que incluem a ativação da ReLU):
- Sobre o número de regiões lineares de redes neurais profundas de Montufar, Pascanu, Cho e Bengio.
- Sobre o número de regiões de resposta de redes de avanço profundo com ativações lineares por peça de Pascanu, Montufar e Bengio.
Eles fornecem alguma teoria e rigor extremamente necessários quando se trata de redes neurais.
Sua análise gira em torno da ideia de que:
redes profundas são capazes de separar seu espaço de entrada em regiões de resposta exponencialmente mais lineares do que suas contrapartes rasas, apesar de usar o mesmo número de unidades computacionais.
Assim, podemos interpretar redes neurais profundas com ativações lineares por partes como particionando o espaço de entrada em várias regiões e, sobre cada região, há uma hiper superfície superficial.
No gráfico que você referenciou, observe que as várias regiões (x, y) têm hipersuperfícies lineares sobre elas (aparentemente planos inclinados ou planos). Portanto, vemos a hipótese dos dois artigos acima em ação nos seus gráficos referenciados.
Além disso, afirmam (ênfase dos co-autores):
redes profundas são capazes de identificar um número exponencial de vizinhanças de entrada mapeando-as para uma saída comum de alguma camada oculta intermediária. Os cálculos realizados nas ativações dessa camada intermediária são replicados muitas vezes, uma vez em cada um dos bairros identificados. Isso permite que as redes calculem funções de aparência muito complexas, mesmo quando definidas com relativamente poucos parâmetros.
Basicamente, esse é o mecanismo que permite que redes profundas tenham representações de recursos incrivelmente robustas e diversas, apesar de terem um número menor de parâmetros do que suas contrapartes superficiais. Em particular, as redes neurais profundas podem aprender um número exponencial dessas regiões lineares. Tomemos, por exemplo, o Teorema 8 do primeiro artigo referenciado, que afirma:
eun0 0kkL - 1kn0 0
Isso é novamente para redes neurais profundas com ativações lineares por partes, como ReLUs, por exemplo. Se você usasse ativações do tipo sigmóide, teria hipersuperfícies sinusoidais mais suaves. Atualmente, muitos pesquisadores usam ReLUs ou alguma variação de ReLUs (ReLUs com vazamento, PReLUs, ELUs, RReLUs, a lista continua) porque sua estrutura linear por partes permite uma melhor retropropagação do gradiente em comparação com as unidades sigmoidais que podem saturar regiões assintóticas) e efetivamente matam gradientes.
Esse resultado de exponencialidade é crucial; caso contrário, a linearidade por partes pode não ser capaz de representar com eficiência os tipos de funções não lineares que devemos aprender quando se trata de visão computacional ou outras tarefas difíceis de aprendizado de máquina. No entanto, temos esse resultado de exponencialidade e, portanto, essas redes profundas podem (em teoria) aprender todos os tipos de não linearidades, aproximando-as com um grande número de regiões lineares.
y= f( x1, x2) hipersuperfície . Isso equivale a usar apenas uma rede profunda para configurar um problema de regressão; muitos pacotes de aprendizado profundo podem fazer isso, sem problemas.
Se você quiser apenas testar sua intuição, existem muitos ótimos pacotes de aprendizado profundo disponíveis hoje em dia: Theano (Lasanha, No Learn e Keras construídas sobre ela), TensorFlow, um monte de outras pessoas que tenho certeza que estou saindo Fora. Esses pacotes de aprendizado profundo calcularão a retropropagação para você. No entanto, para um problema de menor escala como o que você mencionou, é uma boa ideia codificar a retropropagação, apenas para fazê-lo uma vez e aprender como verificar gradualmente. Mas, como eu disse, se você quiser experimentar e visualizar, pode começar rapidamente com esses pacotes de aprendizado profundo.
Se alguém é capaz de treinar adequadamente a rede (usamos pontos de dados suficientes, inicializamos adequadamente, o treinamento corre bem, essa é outra questão a ser franca), então uma maneira de visualizar o que nossa rede aprendeu, neste caso , uma hipersuperfície, é apenas representar graficamente nossa hipersuperfície sobre uma malha xy ou grade e visualizá-la.
Se a intuição acima estiver correta, usando redes profundas com ReLUs, nossa rede profunda terá aprendido um número exponencial de regiões, cada região tendo sua própria hipersuperfície linear. Obviamente, o ponto principal é que, como temos muitos exponencialmente, as aproximações lineares podem se tornar tão boas e não percebemos a irregularidade de tudo isso, já que usamos uma rede suficientemente grande / profunda.