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]