Se as ideias básicas sobre Aprendizagem Profunda,
contidas nas Redes Neurais estão aí por décadas,
por que só agora estão decolando?
Neste vídeo, veremos alguns
dos principais motivos do crescimento da aprendizagem profunda, pois, penso que isso nos ajudará
a identificar as melhores oportunidades de aplicação destas ferramentas no seu trabalho.
Nos últimos anos, muita gente tem me perguntado:
"Andrew, por que aprendizagem profunda de repente começou a funcionar tão bem?"
E quando me perguntam isso,
geralmente, desenho esta figura.
Vamos plotar um gráfico, no qual no eixo horizontal
temos a quantidade de dados necessários para realizar uma tarefa.
E, no eixo vertical, o desempenho de todos os algoritmos de aprendizagem;
de modo que esta curva é a precisão, a acurácia do classificador de spams,
ou nosso previsor de cliques de anúncios,
ou a acurácia de nossa rede neural
na identificação da posição de outros carros para o nosso carro autoconduzido.
Acontece que se você plotar o desempenho de um algoritmo de aprendizagem tradicional,
como uma máquina de suporte vetorial ou como
uma regressão logística em função da quantidade de dados que temos,
obteremos uma curva que se parece com essa, na qual
o desempenho aumenta à medida que adicionamos mais dados,
mas após um certo tempo, veja que o desempenho estabiliza.
É para ser uma linha horizontal, eu não a desenhei muito bem.
Prolongada, como se eles não soubessem o que fazer com enormes volumes de dados.
E o que aconteceu em nossa sociedade,
nos últimos 20 anos, talvez para muitos dos problemas,
nós passamos da condição de relativa baixa quantidade de dados, para
uma quantidade bastante grande de dados.
Muito disso foi graças à digitalização de
nossa sociedade, onde muitas atividades humanas se encontram agora no mundo digital.
Passamos tanto tempo em nossos computadores, web sites,
em aplicativos de dispositivos móveis e em atividades em dispositivos digitais que geram dados.
Obrigado ao crescimento de câmeras baratas que vêm em nossos celulares, aos acelerômetros,
a todos os sensores da Internet das Coisas, IoT,
também passamos a coletar mais e mais dados.
Assim, nos últimos 20 anos para muitas aplicações,
simplesmente acumulamos muito mais dados do que
nossos algoritmos de aprendizagem tradicionais eram capazes de manipular.
E com as redes neurais,
acontece que, se treinarmos uma pequena rede neural,
então, seu desempenho se parece com isso aqui.
Se treinarmos com uma rede neural um pouco maior,
vamos chamá-la de rede neural de tamanho médio,
seu desempenho será, geralmente, um pouco melhor.
E se treinarmos uma rede neral bem grande,
então, seu desempenho geralmente vai ficando melhor cada vez mais.
Cabem algumas observações.
Uma é que se quiser atingir este alto nível de desempenho, então precisa de duas coisas:
Primeira, frequentemente precisamos ser capazes de treinar
uma rede neural grande o suficiente para aproveitarmos o enorme volume de dados.
Segunda, é preciso estar daqui para frente no eixo X.
Você precisa de uma grande quantidade de dados.
Então dizemos frequentemente que a escala tem alavancado o progresso em aprendizagem profunda.
E, por escala, quero dizer que ambos o tamanho da
rede neural, ou simplesmente uma rede neural com muitas unidades ocultas,
com muitos parâmetros,
com muitas conexões, bem como com uma grande escala de dados.
De fato, hoje, uma das mais confiáveis formas de se melhorar o desempenho em
uma rede neural é, geralmente, ou treinar uma rede maior ou alimentá-la com mais dados.
E isso só funciona até um certo ponto, porque, eventualmente, os dados acabam ou
eventualmente, a rede neural é tão grande que leva muito tempo para treiná-la.
Mas só melhorar a escala nos levou a um longo caminho no mundo do aprendizado profundo.
A fim de tornar este diagrama um pouco mais tecnicamente preciso,
adicionarei algumas coisas.
A quantidade de dados no eixo X.
Tecnicamente, esta é a quantidade de dados rotulados, marcados,
quero dizer, exemplos de treinamento,
dos quais temos ambos a entrada X e o rótulo Y.
Quero apresentar um pouco da notação que usaremos mais tarde neste curso.
Usaremos a letra m minúscula para o tamanho do nosso conjunto de treinamento,
assim, o número de exemplos de treinamento é m minúscula, que é o eixo horizontal.
Alguns outros detalhes para esta figura,
neste regime de pequenos conjuntos de treinamento,
a ordem relativa dos algoritmos na verdade não é muito bem definida.
Portanto, se não houver muitos dados de treinamento, caberá muitas vezes
à sua habilidade de usar as características e isso é que determinará o desempenho.
Assim, é bem provável que alguém treinando uma máquina de suporte vetorial (SVM) esteja mais motivado
a combinar as características do que alguém que esteja treinando
uma rede neural bem maior, talvez num regime de pequeno conjunto de treinamento,
onde o da máquina de suporte vetorial pode desempenhar melhor.
Então nesta região à esquerda do gráfico,
a ordem relativa entre os algoritmos não é tão bem definida e o desempenho
depende muito mais da sua habilidade na
combinação das características e outros detalhes menores dos algoritmos.
E neste regime de big data,
conjuntos de treinamento enormes,
regime m enorme, à direita, onde mais consistentemente
vemos grandes redes neurais dominando as outras abordagens.
Assim, se algum amigo seu perguntar,
"por que as redes neurais estão decolando?"
Aconselho a desenhar este gráfico para ele também.
Eu diria que o início
da ascensão moderna de aprendizagem profunda
foi causada tanto pelo processamento em escala de dados quanto pelo processamento em escala dos cálculos.
Apenas nossa habilidade em treinar enormes redes neurais tanto numa CPU
quanto numa unidade de processamento gráfico - GPU, nos permitiu muitos progressos.
Mas, cada vez mais, especialmente nos últimos anos
vimos uma tremenda inovação algorítmica também.
Também não quero subestimar isso.
Curiosamente, muitas das inovações algorítmicas têm
sido sobre tentar fazer as redes neurais rodarem mais rápido.
Então, como um exemplo concreto,
um dos grandes avanços em redes neurais tem sido procurar desde
uma função sigmoide com esta, até uma função ReLU,
da qual falei brevemente num vídeo anterior, que se parece com isto.
Se não entender os detalhes do que estou prestes a dizer, não se preocupe.
Mas acontece que um dos problemas de usar funções sigmoide em
aprendizagem de máquina, é que há aqui nestas regiões onde a inclinação da função,
onde o gradiente, é quase zero.
E ali, a aprendizagem se torna realmente lenta
porque quando você implementa gradiente decrescente e ele estiver próximo a zero,
os parâmetros simplesmente mudam muito devagar e assim o aprendizado é muito lento.
Conquanto que, mudando o que chamamos de função de ativação da rede neural
para usar esta função denominada ReLU, função de unidade linear retificada,
o gradiente = 1 para qualquer valor de entrada positivo.
E então é muito menos provável que o gradiente tenda a zero.
E o gradiente aqui, a inclinação desta linha, é zero no lado esquerdo,
mas acontece que só de mudar da função sigmoide para
a função ReLU fez com que o algoritmo chamado gradiente decrescente executar muito mais rápido.
Então, talvez este seja um exemplo de inovação algorítmica relativamente simples,
Mas, em última análise, o impacto
desta inovação algorítmica foi que ela realmente ajudou o processamento.
Na verdade, tem havido muitos exemplos como este, onde nós
mudamos o algoritmo para permitir que o código execute bem mais rápido.
E isso nos permite treinar
redes neurais maiores, ou fazê-lo num período de tempo razoável,
mesmo quando tivermos uma rede enorme ou uma grande quantidade de dados.
A outra razão do cálculo rápido ser importante
é que, de fato, o processo de treinar redes neurais requer muitas iterações
Muitas vezes você tem uma ideia para
a arquitetura de uma rede neural, depois você a implementa no código,
implementando assim, sua ideia. Então isso permite que você execute
um experimento que lhe diga o quão bem sua rede neural funciona,
e depois de olhar para ele, voltar para alterar os detalhes de sua rede neural,
e então você gira ao redor deste círculo repetidamente.
E quando sua rede neural leva muito tempo para treinar,
demora muito tempo para dar voltas neste ciclo.
E há uma enorme diferença na
sua produtividade em construir redes neurais eficazes quando você
pode ter uma ideia e tentar e ver se ela funciona em 10 minutos ou talvez,
no máximo, um dia, contra treinar
sua rede neural por um mês, o que algumas vezes acontece.
Porque quando você obtém o resultado em 10 minutos, ou talvez em um dia,
você pode tentar muitas outras ideias e ser muito mais
provável descobrir uma rede neural que funcione melhor para seu aplicativo.
Assim, processamento mais veloz tem realmente ajudado
em termos de acelerar a taxa de obtenção dos resultados experimentais.
E isso tem realmente ajudado tanto aos praticantes de redes neurais,
quanto aos pesquisadores que trabalham em aprendizagem
profunda, com iterações muito mais rápidas, a melhorarem suas ideias mais rapidamente.
Tudo isto, é claro,
está energizando toda a comunidade pesquisadora da aprendizagem profunda,
a qual tem sido incrível na invenção de novos algoritmos, quase que a cada mês.
E então tudo isso também tem sido um enorme benefício para
toda a comunidade pesquisadora da aprendizagem profunda, que tem
sido incrível, inventando novos algoritmos
e progredindo sem parar nessa frente.
Então, estas são algumas das forças energizando a ascensão da aprendizagem profunda.
A boa notícia é que estas forças ainda estão
trabalhando pesado para tornar a aprendizagem profunda ainda melhor.
Pense nos dados: a sociedade ainda joga fora mais e mais dados digitais.
Ou, pense no processamento: com o advento de
hardware especializado como as GPUs e redes mais velozes,
muitos tipos d hardware,
Estou realmente muito confiante que nossa capacidade de construir
redes neurais muito grandes a partir de
um ponto de vista de processamento compartilhado vai continuar evoluindo.
Pense nos algoritmos: bem, todas as comunidades pesquisadoras de aprendizagem profunda
ainda continuam fenomenais na inovação na área dos algoritmos.
Então devido a isso, acho que podemos ser otimistas.
Estou otimista de que a aprendizagem profunda manter-se-á
melhorando por muitos anos ainda.
Então, com isso, vamos para o último vídeo da seção
onde falaremos um pouco mais sobre o que você aprendeu neste curso. [Tradução: Carlos Lage]