← tópicos

Específicos · Ciência de Dados

Redes neurais: perceptron, ativações, backpropagation, otimizadores, dropout

Três perguntas decidem quase todo item: o que a unidade calcula, em que sentido o sinal corre e o que o treinamento altera — os pesos, nunca a arquitetura.

Alta11 itens no tópico

A ideia que organiza o assunto

Uma rede neural artificial é um grafo de unidades burras. Cada neurônio faz sempre a mesma coisa: recebe números, multiplica cada um pelo peso da conexão que o trouxe, soma tudo com um viés e passa o resultado por uma função de ativação, que produz a saída. Nada além disso acontece dentro de um neurônio. Toda a capacidade da rede vem de quantas dessas unidades existem, de como estão ligadas e de quais valores os pesos assumiram.

Daí saem as três perguntas que resolvem quase todos os itens do tópico, e vale a pena decorá-las nesta ordem.

Primeira: o que a unidade calcula? Entrada, peso, soma ponderada mais viés, função de ativação, saída. São cinco elementos com cinco papéis distintos, e a banca vive descrevendo um com o nome de outro — a ativação que “armazena pesos” é o exemplar clássico. O peso guarda a importância relativa da conexão; a soma agrega; a ativação transforma a soma em saída e, sendo não linear, é o que impede a rede inteira de colapsar em uma única conta linear.

Segunda: em que sentido o sinal corre? Alimentada adiante (feedforward) significa um só sentido, da entrada para a saída, sem laço que devolva sinal para trás. Recorrente significa haver esse laço. É um eixo independente de todos os outros: quantas camadas a rede tem e se ela é completamente conectada não dizem nada sobre o sentido do sinal. Metade dos itens errados deste tópico mora aqui.

Terceira: o que o treinamento altera? Pesos e vieses — só. Número de camadas, número de neurônios por camada, escolha da função de ativação e taxa de aprendizado são decisões de projeto, tomadas antes e não tocadas pela retropropagação. Item que faz o algoritmo de treinamento mexer na arquitetura trocou os dois lados da linha.

Por que se usa (e o que custa)

Ganha-se um aproximador universal: com uma camada oculta e neurônios suficientes, uma rede alimentada adiante aproxima qualquer função contínua, sem que ninguém precise escrever a regra. Ganha-se também adaptabilidade — os pesos se reajustam quando o padrão dos dados de entrada muda — e tolerância a ruído, porque a decisão está distribuída por milhares de conexões e não depende de nenhuma.

Paga-se em três moedas. Computação: o número de pesos entre duas camadas totalmente conectadas é o produto do número de neurônios delas, de modo que ampliar a rede faz parâmetros, memória e tempo de treinamento crescerem de forma acentuada — foi esse custo que empurrou o treinamento para as GPUs. Dados: mais parâmetros exigem mais exemplos, sob pena de sobreajuste. Opacidade: o conhecimento fica espalhado em uma matriz de números sem leitura direta, o que torna a rede difícil de auditar e de justificar.

Como funciona

O neurônio. As entradas chegam por conexões, cada uma com seu peso. O neurônio calcula a soma ponderada, acrescenta o viés e aplica a função de ativação. O viés desloca o limiar de disparo e é aprendido como qualquer peso.

As funções de ativação. A razão de existirem é uma só e a banca cobra exatamente ela: a composição de transformações lineares é outra transformação linear, logo uma pilha de camadas sem não linearidade teria o poder de representação de uma única camada, e a profundidade não acrescentaria nada. As mais cobradas: degrau (perceptron original, saída binária), sigmoide (comprime em 0–1, satura nas pontas e causa desvanecimento do gradiente), tangente hiperbólica (mesma forma, centrada em zero, −1 a 1), ReLU (zero para negativos, identidade para positivos; barata e sem saturar do lado positivo, é a padrão das redes profundas) e softmax, que não é ativação de camada interna: normaliza as saídas da última camada em uma distribuição de probabilidade entre classes.

As camadas, e como se contam. A camada de entrada é a primeira e não computa nada: seus nós apenas apresentam o vetor de entrada. Por isso a primeira camada oculta é a segunda camada da rede. As camadas ocultas são chamadas assim porque não são vistas nem da entrada nem da saída. A camada de saída entrega o resultado, com tantos neurônios quantas forem as classes ou as saídas desejadas.

As arquiteturas, pelo sentido do sinal. A rede alimentada adiante de camada única liga entrada a saída sem camada oculta — é o perceptron, e ele só resolve problemas linearmente separáveis, razão de não dar conta do ou-exclusivo. A rede alimentada adiante de múltiplas camadas, o perceptron de múltiplas camadas (MLP), acrescenta uma ou mais camadas ocultas, e é essa presença que a distingue da de camada única — não das demais arquiteturas, porque redes recorrentes também têm camadas ocultas. A rede recorrente tem pelo menos um laço de realimentação, o que lhe dá memória do que já passou e a torna adequada a sequências. Completamente conectada é outra coisa ainda: diz que cada neurônio se liga a todos os da camada seguinte, e não diz nada sobre o sentido.

O treinamento, em duas passagens. Na passagem para a frente, o vetor de entrada percorre a rede até a saída, e o resultado é comparado ao valor esperado por uma função de erro ou perda. Na passagem para trás, a retropropagação distribui esse erro da camada de saída para as camadas intermediárias, aplicando a regra da cadeia para descobrir quanto cada peso contribuiu para ele. De posse desse gradiente, o otimizador — descida do gradiente e suas variantes — corrige cada peso no sentido que reduz o erro. Repete-se por épocas até o erro estabilizar.

Duas observações que a banca explora. A retropropagação é fase de treinamento, não conexão de realimentação: uma rede alimentada adiante treinada por retropropagação continua alimentada adiante. E o erro anda para trás justamente porque o sinal andou para a frente — inverter os dois sentidos é a distorção mais barata disponível.

O que decide os itens

Os cinco elementos do neurônio — quem faz o quê. É a tabela que resolve mais itens do tópico:

elementofaznão faz
entradaapresenta o valor do atributonão é ajustada pelo treinamento
peso sinápticoguarda a importância relativa da conexãonão transforma nem agrega
soma ponderada + viésagrega as entradas em um valornão introduz não linearidade
função de ativaçãotransforma a soma na saída do neurônionão armazena pesos
saídaalimenta a camada seguintenão guarda estado, salvo em rede recorrente

Alimentada adiante × recorrente × completamente conectada — três eixos que a banca mistura de propósito:

termoafirmanão afirma
feedforward (MLP)sinal em sentido único, sem laçonada sobre quantas camadas
recorrenteexiste laço de realimentaçãonada sobre conectividade
completamente conectadacada neurônio liga-se a todos os da camada seguintenão exclui realimentação
camada ocultahá camada que não é entrada nem saídanão distingue feedforward de recorrente

Contagem de camadas — decidiu item inteiro:

camada de entradaprimeira camada; não é camada oculta e não computa
primeira camada ocultasegunda camada da rede
camada de saídaúltima; nº de neurônios = nº de classes ou de saídas

Escolhido pelo projetista × aprendido pelo algoritmo:

hiperparâmetro (antes)parâmetro (durante)
número de camadas e de neurôniospesos sinápticos
função de ativaçãovieses
taxa de aprendizado, épocas, tamanho do lote

Funções de ativação — onde cada uma vive:

funçãofaixaobservação de prova
degrau0 ou 1perceptron original; não derivável, não serve a retropropagação
sigmoide (logística)0 a 1satura; desvanecimento do gradiente
tangente hiperbólica−1 a 1centrada em zero; satura igual
ReLU0 ou o próprio valorpadrão em redes profundas; barata
softmaxsoma 1camada de saída, classificação multiclasse

Números que caem

camada de entradacamada 1 (a primeira oculta é a camada 2)
camadas ocultas do perceptron simples0 — daí não resolver o ou-exclusivo
camadas ocultas mínimas do MLP1
teorema da aproximação universal1 camada oculta basta, com neurônios suficientes
pesos entre duas camadas totalmente conectadasn × m (mais m vieses)
sentidos do ciclo de treinamento2: sinal para a frente, erro para trás

Como a CEBRASPE derruba você aqui

Medido sobre os 11 itens do tópico, dos quais 6 são errados. A base é pequena, e por isso o que segue descreve os movimentos observados, sem prometer frequência.

Mexer no sentido do sinal — 2 dos 6 itens errados, e nas duas direções. Num deles, a realimentação é atribuída a quem não a tem: “utilizando encaminhamentos de feedbacks corretivos para aprimorar sua análise preditiva”, dito de redes alimentadas adiante, que por definição correm em sentido único. No outro, a realimentação é proibida onde é possível: “não é possível que as saídas das camadas posteriores alimentem a entrada de camadas anteriores”, dito de redes completamente conectadas — conectividade e sentido são eixos independentes, e redes recorrentes completamente conectadas existem. A defesa é a mesma nos dois casos: separe quantas ligações de para que lado, e não aceite que a retropropagação sirva de prova de realimentação, porque ela é fase de treinamento e não conexão da arquitetura.

Copiar o manual e deslocar uma palavra — 2 dos 6. Este tópico é o que mais reproduz frases de livro-texto quase ao pé da letra, com uma única peça fora do lugar. “Uma rede neural feedforward se distingue das demais” pela presença de camadas ocultas: a frase original distingue a rede alimentada adiante de múltiplas camadas da de camada única, e não a classe inteira das demais arquiteturas — a rede recorrente também tem camada oculta. E o aposto mudado de lugar em “na camada de entrada da rede neural, isto é, na primeira camada oculta”: no texto de origem, o isto é qualifica a segunda camada, não a de entrada. Quando a frase soar decorada, releia a qual termo está colado o isto é, o ou seja ou o a saber, e teste a palavra que nomeia a classe com um contraexemplo de fora dela.

Inventar a causa ou negar o custo — 2 dos 6. “Foi o fator determinante pela grande evolução da capacidade de visão computacional”, dito da softmax na camada de saída, que é apenas normalização e já existia muito antes do salto da área. E “tem um aumento insignificante”, dito do esforço computacional ao se ampliar muito a dimensão da rede, quando o número de pesos cresce com o produto dos tamanhos das camadas. Duas perguntas desarmam as duas: o componente apontado como causa já existia antes do efeito? E a promessa de custo ignora que cada parâmetro a mais é uma multiplicação a mais por exemplo e por época?

Um contraponto que a medição registra. Todos os cinco itens certos do tópico são descrições diretas de mecanismo — o que a unidade tem, para que serve a ativação não linear, que o MLP é alimentado adiante, que os pesos se adaptam, que a retropropagação leva o erro da saída às camadas intermediárias. Neste tópico, o item que apenas descreve o mecanismo tende a ser certo; o que acrescenta uma consequência, uma impossibilidade ou uma causa histórica é onde mora o erro.

Erros clássicos

Achar que a camada de entrada é a primeira camada oculta. Ela não computa: só apresenta o vetor. A primeira oculta é a segunda camada, e é ela que recebe os sinais de entrada.

Achar que a retropropagação torna a rede recorrente. O erro andar para trás é o algoritmo de treinamento. Realimentação é conexão permanente da arquitetura, que devolve saída para a entrada durante a própria inferência.

Confundir completamente conectada com alimentada adiante. Uma diz com quantos cada neurônio se liga; a outra diz para que lado o sinal corre. Nenhuma implica a outra.

Dar à função de ativação um papel que não é dela. Ela não guarda peso, não soma entradas e não propaga erro. Ela transforma a soma ponderada em saída, e a razão de ser não linear é impedir que a rede inteira vire uma só camada.

Supor que ampliar a rede sai barato. Parâmetros crescem com o produto dos tamanhos das camadas; custo de memória, de treinamento e de dados vai junto.

Esperar que o treinamento escolha a arquitetura. Número de camadas e de neurônios são hiperparâmetros fixados antes. O que a retropropagação altera são pesos e vieses.

Tratar o perceptron de camada única como capaz de tudo. Sem camada oculta, a fronteira de decisão é um hiperplano, e problemas não linearmente separáveis — o ou-exclusivo é o exemplo canônico — ficam fora do alcance.

Praticar11 itens