Baixe o app para aproveitar ainda mais
Prévia do material em texto
APRENDIZAGEM PROFUNDA Sigmundo Preissler Presidente do Conselho de Administragdo Janguié Diniz Diretor-presidente Janyo Diniz Diretoria Executiva de Ensino Adriano Azevedo Diretoria Executiva de Servicos Corporativos Joaldo Diniz Diretoria de Ensino a Distancia Enzo Moreira Autoria Sigmundo Preissler Coautor Umberto Luis Vicari e Rodrigo José Fagundes Projeto Graficoe Capa DP Content DADOS DO FORNECEDOR Analise de Qualidade, Edi¢do de Texto, Design Instrucional, Edicdo de Arte, Diagramacao, Design Grafico e Revisao. © Ser Educacional 2019 Rua Treze de Maio, n° 254, Santo Amaro. Recife-PE - CEP 50100-160 *Todos os graficos, tabelas e esquemas sdo creditados a autoria, salvo quando indicada a referéncia. Informamos que é de inteira responsabilidade da autoria a emissdo de conceitos. Nenhuma parte desta publicacdo podera ser reproduzida por qualquer meio ou forma sem autorizacao. Aviolacao dos direitos autorais é crime estabelecido pela Lei n.° 9.610/98 e punido pelo artigo 184 do Cédigo Penal. Imagens de icones/capa: © Shutterstock ASSISTA Indicagao de filmes, videos ou similares que trazem informacgoes comple- mentares ou aprofundadas sobre o contetido estudado. CITANDO Dados essenciais e pertinentes sobre a vida de uma determinada pessoa relevante para o estudo do contetido abordado. CONTEXTUALIZANDO Dados que retratam onde e quando aconteceu determinado fato; demonstra-se a situagao historica do assunto. CURIOSIDADE Informagao que revela algo desconhecido e interessante sobre o assunto tratado. DICA Um detalhe especifico da informacao, um breve conselho, um alerta, uma informacao privilegiada sobre o conteddo trabalhado. EXEMPLIFICANDO Informagao que retrata de forma objetiva determinado assunto. EXPLICANDO Explicagao, elucidacao sobre uma palavra ou expresso especifica da area de conhecimento trabalhada. Unidade 1 - Conceituando Aprendizagem Profunda Objetivas: tha imide ssccesssccssssccscscuscssvsssvcuscecguscccncactsortccsseccwiectcatttea casts tecese coc teeccscuscentasctee 12 Dimensionalidade Classificagao REQIESSAO wvessssecssssesssseecsssecesssecesnsccesuscessuscessucessssessuecsssseessnscssuuseesuusessneeessuecessuesenneeeeanectee FungGes de ativaGa siccssisscesciccssccsnsssviscassusaicescanetscavsuesscitasesbiasetinsnsounssscasecessuessucntieasctsenton 28 Tre amaMne Mt sscicscscis scvscssctccs ceteris cenccsnctcnsscantecanescnuitbcuastanscivatwatectusiteuaces uietesudiecastncbuntooucttoete 30 Sintetizando Referéncias bibliogr: Unidade 2 - Algoritmos e técnicas empregadas em Aprendizagem Profunda Oa jeotiweiss chat tnd NG ssi casccncscscncssccccssrccccer sa corcacancacstaassrcseaanccraaescncmacuaceneearaoues a Algoritmos de otimizagao Algoritmo Adagrad Algoritmo RMSProp Algoritmo Adadelta . Algoritmo Adam Algoritmo MOMe@ntum .....cccssssessssecssssecssssesssnscessnecessnessuusessneccsnneessnuceesueeessueeesnueessneessneees 43 Algoritmo Nesterov Accelerated Gradient (NAG) ...........scssssssesssesseessnteeeeesneteeeeeeee 45 Boece por copie ey ath 0s sscascssccsacernartncrsscostescescssuascstananss cates tecasscass tecnica edanscua ineiStenasicld 48 Backpropagation Through Time (BPTT) ..........ssssssssssssseessssssseesesssneeesessnneeeeessnneeseessnees 38 Greate sisissiccssiasssesccuesasssstivzseasousscsovssassanicccususiceuassasnebiaatvaieddeaciescunsstecebeaaistesuavansictueenniitis Descida de gradiente em lote Descida estocastica de gradientes de minilote. Gradiente estocastiCo ......ccccsssecssssseessssseccssssssesssssssessssssseeesssssueeesssssecessssseeessnneeses 54 Entropia Crazed at ssssissssccsssscscescicisacssutssvisestsuucteescanes saavivuiscivascsbtascciniescunscasasecetuuessucatteaccsseniten 55 Sintetizando Referéncias bibliogr: Unidade 3 - Recorréncia e crengas em aprendizagem profunda Objotivos da Umid ade issssessisisissscsscssescssnscisssesivsuscscvvncerescscostcevusensnastissendbessesesvevsaibsncastensciness 62 Redes neurais recorrentes . Feedforward Neural Network (FFNN)... Rede Neural Recorrente ou Recurrent Neural Network (RNN) Treinamento dos algoritmos de RNN Long Short-Term Memory (LSTM) = Gated Recurrent Unit (GRU)...0.........sscsssssscsssssssssecssssscesuecessuesssscssssecesssecesssecssneesseneeesnee Redesdoicromgas profimdasssscssessissssacsscsssesssssstussssscesiccesecctssasssessuacsnceetcessicsonnsthecibeivente 76 Auto-Encoder (AE) Denoising Auto-Encoder (DAE). Stacked Auto-Encoder (SAE)... te Maquinas de Boltzmann Restritas ou Restricted Boltzmann Machines (RBM)... 81 Filtragem colaborativa com RBM reconhecendo fatores latentes nos dados..... 83 Processo de treinamento do algoritMO RBM .........ccsssssessssseessesessssessssecsssesssncessneeese 86 Sintetizando Referéncias bibliograficas. Unidade 4 - Convolugao e aplicagoes comerciais em aprendizagem profunda Objetivos da umidade..........csssssccssssssssesssssesssssessssssessseesssseessseesssseessnseessnsesssseessnneessaseensneesse 91 Redes convolucionais baseadas €M regiOeS ..........ssssssssssssssessssseesssseessseeessnsesssseessneeess 92 Convolugao como mascara... Processo de convolugao.... Arquitetura de Rede Neural Convolucional (CNN ou ConvNet, Camada de entrada ou input Camada convolucional ou camada de convolugao Camada de nao-linearidade ou estagio detector via fungao de ativagao Rectified Linear Unit (ReLU) Camada de pooling ou camada de subsampling Camada totalmente conectada.........sccsssecsee Arquitetura de Rede Neural Convolucional baseada em Regides (R-CNN)........ 104 R-CNNs. Fast R-CNNs. Faster R>CNINS@ BPNS sicssesssesenisvssssisisnsicisuonisienvorsscenienvesinunsiinnivannssisnsindscenieiaanatisias 107 AplicagGes COMO Cals: csisiciassiciccsccsnsccecascescuscrcns ceanscrouescpeucntuvsceutecsdenneoutieetbetceienectensta 110 Seguranga publica. Comercio e varejo ... Acessibilidade e comunicagao. Transportes e logistica Satde e medicina.... Sintetizando Referéncias bibliograficas Apresentacgao O universo da Ciéncia da Computagdao nos traz uma infinidade de desafios, novidades e, com elas, duvidas sobre como essas tecnologias funcionam, como evoluiram e o que elas efetivamente resolvem. Tendo isso em mente, nesta disciplina, vocé aprendera um pouco sobre a evolucao da Inteligéncia Artificial, sobre o Aprendizado de Maquina (Machine Learning) e qual a sua relagdo com a Deep Learning (Aprendizagem Profunda). Dessa forma, vocé conseguira compreender, ao final de suas leituras e ativi- dades, 0 real significado e importancia da area, bem como suas derivacées. Vai conseguir visualizar como problemas do dia a dia, que até pouco tempo eram praticamente impossiveis de serem resolvidos por sistemas computacionais, sao rapidamente solucionados com o auxilio da Aprendizagem Profunda, den- tre outras coisas. Venha navegar pelo universo da Aprendizagem Computacional Profunda, uma das tematicas mais em alta na area da Tecnologia da Informagcdo (TI). APRENDIZAGEM PROFUNDA & O professor Sigmundo Preissler Junior é PhD em Computer Science pela Sa- pienza Universita di Roma - Italia (2017), doutor em Engenharia e Gestdo do Co- nhecimento pela Universidade Federal de Santa Catarina - UFSC (2017), mestre em Engenharia Elétrica com énfase em Inteligéncia Artificial pela Universida- de Estadual de Santa Catarina - UDESC (2009), especialista em Redes de Compu- tadores e Aplicacdes para Internet (2004) e bacharel em Informatica (2002)pela Universidade do Contestado - UnC. Curriculo Lattes: http://lattes.cnpq.br/4979955190655938 Dedico este trabalho a minha familia, a toda equipe, a quem deseja mudar o mundo e aos que chegam agora para este barco dos vencedores. APRENDIZAGEMPROFUNDA © Sef Iran nal educacio OMe MTT CCl Apresentar os conceitos de redes neurais artificiais; Ambientar 0 aluno na area da Inteligéncia Artificial e no Machine Learning; Conceituar e demonstrar as principais aplicagdes e divis6es daAprendizagem Profunda. Topicos de estudo Cte ee ate t by @ Tipos @ Dimensionalidade @ Classificacao @ Regressdo Funcoes de ativacao Treinamento APRENDIZAGEM PROFUNDA © &e Redes neurais profundas Na Ciéncia da Computagdao, estudamos uma area conhecida como Inteli- géncia Artificial (IA). Essa area é responsavel por estudar e desenvolver mode- los que representam o conhecimento humano e a natureza com 0 objetivo de solucionar problemas reais, ou seja, estudar e “imitar” a inteligéncia humana e natural, a fim de obter respostas por meio de sistemas computacionais. Uma das técnicas da IA é o Machine Learning (ML) ou Aprendizado de Ma- quina. Nessa técnica, objetiva-se fazer com que os computadores possam “aprender” a tomar decis6es com base em exemplificacées de problemas, e ndo necessariamente por meio de uma programacdo especifica e pré-estabe- lecida. Estes algoritmos de ML precisam de dados a partir dos quais se possam extrair aprendizados que, entao, se convertem em decis6es futuras. Dentro da area de ML, existe uma técnica chamada Aprendizagem Pro- funda, ou Deep Learning (DL), que utiliza redes neurais artificiais (RNA) para a resolucdo de problemas de aprendizagem. Esses modelos buscam simular 0 comportamento de processamento de um ser humano. No entanto, é impossivel falar de redes neurais profundas sem resgatarmos suas origens historicas. Esse conceito foi originado nos anos 50, periodo no qual a propria area da Inteligéncia Artificial nasceu. Em sua publicagdo “The perceptron: a perceiving and recognizing automaton”, de 1957, Frank Rosen- blatt da ao mundo as primeiras pistas de como um neurénio poderia ser des- crito em linguagem computacional. Nascia, desse modo, 0 perceptron. A ideia do perceptron era representar 0 comportamento do neurénio hu- mano por meio de uma funcao matematica que pudesse ser replicada em um ambiente computacional. Partiu-se da ideia da representagdo da inteligéncia humana para a resolucdo de problemas em um sistema compu- tacional. O perceptron era, portanto, um neurénio humano re- presentado por meio de um modelo matematico passivel de realizar processamento de dados em um computador. Rosenblatt trouxe, a luz da ciéncia, uma analogia ao neurénio do cé- rebro humano que viria, a posteriori, revolu- cionar o seu tempo. APRENDIZAGEM PROFUNDA © A Figura 1 apresenta uma compara¢ao entre a estrutura tipica de um neuré- nio versus a estrutura de um neur6nio artificial, representada por Rosenblatt. No cérebro humano, 0 conhecimento gerado ocorre pelas sinapses, que con- sistem em reacdes quimicas geradoras de impulsos elétricos. Esses impulsos atravessam o neur6nio pelos dendritos, passam pelo nucleo e ax6nios até che- garem aos terminais, que transmitem ao proximo neurdénio esse impulso elé- trico “processado”. ESTRUTURA DE UM NEURONIO TIPICO Niicleo da célula Soma (Corpo celular) Terminal Axénico ESTRUTURA DE UM NEURONIO ARTIFICIAL Valor padrao rt 40 Ww. 4 nico (Bias) Fungo de Ativagao Entradas 4 Ng o——> Wa X3o—>W3 Pesos Figura 1. Estrutura de um neur6nio tipico versus estr Acesso em: 28/10/2019. ra de um neur6nio artificial (perceptron). Fonte: Shutterstock A estrutura de uma rede neural artificial (RNA) se da pela existéncia de entradas (inputs) e pesos (weights) que agem sobre essas entradas (sdo multi- plicadas por elas), gerando um valor padrao Unico (bias). Esse bias, por sua vez, passa por uma funcao de ativagdao e, por ultimo, gera uma saida (output), ou seja, uma saida especifica para o conjunto de entradas (inputs) que foi dado. APRENDIZAGEM PROFUNDA & ASSISTA 0 video Redes Neurais e Machine Learning, produzido pelo Canal Nerdologia, apresenta uma breve introdugdo a estes temas, que serao melhor explicados ao longo da unidade. Além disso, é importante destacar a diferenca entre redes neurais artificiais convencionais de uma so camada e multicamada. Bezerra, no artigo “Introdu- ¢do a Aprendizagem Profunda", publicado em 2016 no 31° Simpdosio brasileiro de Banco de Dados, afirma que: A transmissdo do sinal de um neurénio a outro no cérebro é um processo quimico complexo, no qual substdncias especi- ficas sao liberadas pelo neur6énio transmissor [...]. De forma semelhante a sua contrapartida bioldgica, uma RNA possui um sistema de neurénios artificiais (também conhecidas como unidades de processamento ou simplesmente unidades). Cada unidade realiza uma computa¢do baseada nas demais unida- des com as quais esta conectada (p. 3). Dessa forma, por meio da citacdo, foi possivel comparar & um neur6nio bioldgico a um neur6nio artificial. Veja também a diferenga sobre a quantidade de camadas, mencionada pelo mesmo autor: Os neur6nios de uma RNA sdo organizados em camadas, com conexées entre neurénios de camadas consecutivas. As co- nex6es entre unidades sdo ponderadas por valores reais de- nominados pesos. A RNA mais simples possivel contém uma Unica camada, composta por um Unico neurénio. Redes des- sa natureza sdo bastante limitadas, porque resolvem apenas processos de decisdo bindrios (i.e., nos quais ha duas safdas possiveis) e linearmente separaveis (e.g., fung¢des booleanas AND e OR). Por outro lado, @ possivel construir redes mais complexas (i.e, capazes de modelar processos de decisdo ndo linearmente separaveis) por meio de um procedimento de composi¢ao de blocos de computagdo mais simples orga- APRENDIZAGEM PROFUNDA © nizados em camadas (p. 03). Para ficar mais facil o entendimento sobre como a RNA pode funcionar, va- mos utilizar o caso de reconhecimento de escrita. Imagine que vocé possua um smartphone e deseje escrever um numero a mado livre, sem o uso do teclado. Uma possivel solugdo para a deteccdo do numero vocé esta tentando escrever pode se dar pelo uso das RNA. Veja a Figura 2 e entenda como isso pode ser feito. Basicamente, toda a area util para a escrita a mao livre é mapeada de forma binaria, ou seja, com zeros e uns. Como padrdao, podemos deixar os espacos nao utilizados sinalizados com o numero 1 e os demais, que foram utilizados para a escrita manual, com o codigo 0. Vamos entender, ainda, que toda essa area editavel € uma matriz quadrada de 20x20 posic6es binarias. 1 1 1 @ 8 e e 1 % £ 1 1 1 1 e @ e @ 1 1 P R O S S O S O T O C O S P S P V O S O S S O V O H H P R O E S T O T V O P ® P ® P A P V P P O S P O I P D V O K K F P R O S T T T T O S C O S S P V O O O V O K K P R O S T O S C O V C S O S P S P I P S O S O I S V O H K H P R E S C O T T V P C S C P O S P V P S O O S O O O H H P R O S C C O R B P B P H R B B R E R R H E E R R H 1 1 1 1 @ 8 e 1 1 1 1 2 1 1 e @ 8 8 1 1 Figura 2. Mapeamento binaric mero 1 pa cimento de escrita, Fonte: OLIVEIRA, 2018, p. 15. (Adaptado Uma vez que esse modelo esteja implementado, ou seja, que vocé tenha a area de escrita mapeada no formato de matriz, que seu algoritmo entenda que os zeros sdo as areas digitaveis, vocé deve treinar 0 seu algoritmo para que aprenda quais as possiveis combinacées de escrita do numero um devem gerar esse resultado. Ai entra a fase de treinamento que também sera tratada no final deste capitulo. No entanto, antes de ir para o treinamento, perceba como uma RNA pode agir no reconhecimento de escrita (Figura 3). Note que a area de digitacdo esta conectada a células azuis (que contém os algarismos de 0 a 9) e que, por sua APRENDIZAGEM PROFUNDA © vez, neste processamento em especifico, foram gerados quadros verdes a di- reita. Esses quadros contém o valor percentual de acertopara o referido nu- mero (circulo azul). Em outras palavras, o numero 1 foi escrito no quadro da esquerda (amarelo quadriculado). O algoritmo de reconhecimento foi executado tentando identifi- car qual numero foi escrito ali e buscou gerar, para cada algarismo de 0 a9, um percentual de acerto. Para esse caso, 0 algoritmo retornou 0,1 (10%) de acerto para o numero 0; 0,8 (80%) de acerto para o numero 1; 0,4 (40%) para o numero 2 e assim por diante. O maior percentual esta relacionado com o numero 1, 0 que significa dizer que ha 80% de certeza de que o numero digitado no quadro esquerdo € o algarismo 1. Z Oo @&—__—_“m Entrada~Perceptrons »Saida »Predicao Figura 3, Resolucdo, via perceptrons, do reconhecimento de escrita do numero 1. Fonte: Weights & Biases, [s.d.]. Acesso em: 28/10/2019 EXPLICANDO E importante destacar que uma RNA é capaz de fazer predigdes medidas em valores percentuais. Uma vez em posse desse valor percentual, um segundo algoritmo pode ser acionado para tomar decisdes. APRENDIZAGEM PROFUNDA © A Inteligéncia Artificial, assim como a Deep Learning, vem evoluindo rapida- mente e tomando proporcées de crescimento exponencial. Muito se fala des- sas redes de Aprendizagem Profunda e as maravilhas que elas vem fazendo, sendo literalmente demonstradas para todo o mundo. No entanto, as coisas nem sempre foram assim. A franca evolucdo das redes neurais artificiais, mais especificamente da Deep Learning, deve-se a possibilidade de termos mais recursos computacio- nais do que tinhamos em 1950. O ganho de recursos computacionais como memoria, processamento e a computagdo em nuvem potencializaram o surgimento de aplicacdes voltadas para a Aprendizagem Profunda. Além disso, a capacidade de escalar servidores em processamento na nuvem (Cloud Computing) trouxe mais facilidades para os pesquisadores da area. Para finalizar essa andlise sobre a evolugao da Deep Learning até chegar nas redes neurais artificiais modernas, podemos dizer que a presenca das tecno- logias SaaS (Software as a Service) contribui significativamente para esse amplo conhecimento e aplicagdo das técnicas de RNA profundas. Veja, por exemplo, a Google e a IBM lancando frameworks que ja implementam uma rede neural artificial para a resolugdo de problemas. Basta enviar uma requisig¢do com da- dos para esta rede e ela processa, responde e vocé paga apenas pelo quanto de trafego ou processamento utilizou. APRENDIZAGEM PROFUNDA © °e Tipos Antes de iniciar os estudos sobre Deep Learning, é interessante falarmos sobre o que é Inteligéncia Artificial, Machine Learning e, por fim, o estado da Deep Learning (Aprendizagem Profunda). Primeiramente, é necessario responder a seguinte pergunta: 0 que é inte- ligéncia? A inteligéncia é a habilidade que uma pessoa ou maquina tem de en- tender e utilizar o conhecimento adquirido para resolver problemas. Etambém sua habilidade de compreender informacées para que, com base nelas, consiga tomar decisdes e acumular conhecimento, conseguindo usar o que ja aprendeu em decis6es passadas. Nesse sentido, a inteligéncia artificial vers sendo estudada desde a década de 50 e um dos maiores motivos dos cientistas por tras desses estudos tem relacdo com conseguir simular a inteligéncia humana. O autor Silva, em “Deteccdo e contagem de plantas utilizando técnicas de inteligéncia artificial e machine learning”, publicado em 2018, traz referéncias sobre o tema de IA. De acordo com 0 autor: Segundo Akerkar (2014), a Inteligéncia Artificial (IA) €é um campo de estudo que procura analisar e desenvolver sistemas capazes de desempenhar fung6es que, caso um ser humano fosse exe- cutar, seriam consideradas inteligentes (p. 34). Ainda, de acordo com esse mesmo autor e artigo, pode-se tentar resumir a complexidade da area de IA em trés pontos: De acordo com Ertel (2011), a IA é um conceito amplo, do qual podemos descrever algumas caracteristicas basicas que a com- pdem, como: a) Capacidade de raciocinio: aplicar regras logicas a um conjunto de dados disponiveis para chegar a uma conclusdo. b) Aprendizagem: aprender com os erros e acertos para maximi- zar os futuros resultados. c) Reconhecer padrées: detectar e classificar objetos, texturas e padrées de comportamento. d) Inferéncia: capacidade de aplicar raciocinio em situagdes coti- dianas (SILVA, 2018, p. 34). APRENDIZAGEM PROFUNDA © Além disso, é possivel ver, na Figura 4, a evolucao temporal da IA e de suas subareas. INTELIGENCIA ARTIFICIAL APRENDIZAGEM DE MAQUINA APRENDIZAGEM PROFUNDA Nascimento da Inteligéncia O Machine Learning comeca Progresso em Aprendizagem Artificial causa frenesi. a florescer. Profunda direciona o aumento de interesse em IA. 1950 1960 1970 1980 1990 2000 2010 Desde o otimismo dos anos 1950, subareas menores da inteligéncia artificial vem causando disrupgées cada vez maiores. storica da area de Inteligéncia Artificial e suas subareas. Fonte: ANADIOTIS, 2017. Acesso em: Nos dias de hoje, é possivel utilizar técnicas de Inteligéncia Artificial para ana- lisar a proxima jogada em uma partida de xadrez ou em algum outro jogo de ta- buleiro, por exemplo, e termos uma boa acuracia. No entanto, esses algoritmos ndo sao tdo bons para analisar um grande volume de dados, como quais e-mails sao spam com base nos dados de palavras-chave e remetente, por exemplo. Os algoritmos que serdo vistos a seguir possuem mais capacidade para isso. Aprendizado de Maquina (Machine Learning) O Machine Learning (Aprendizado de Maquina) é um grupo de técnicas den- tro da area de estudo de Inteligéncia Artificial que aplica algoritmos para fazer com que as maquinas realizem uma fungdo para a qual nao necessariamente tenham sido programadas. Esse método pode ser agrupado em trés tipos: a) Aprendizado supervisionado: sdo oferecidas entradas e saidas de ob- jetos rotulados por um professor humano com a intencao de fazer com que o algoritmo aprenda regras e padrées. Desse modo, quando 0 algoritmo atingir um valor de precisdo alta, sera capaz de classificar os dados parecidos com os APRENDIZAGEM PROFUNDA © que foram utilizados para treina-lo. b) Aprendizado nao supervisionado: neste modelo de algoritmo, nao sao for- necidos dados de exemplo. Dessa forma, o proprio algoritmo deve encontrar um padrao entre os dados e agrupa-los da forma que achar melhor. c) Aprendizado por reforgo: 0 algoritmo de Machine Learning obtém feedbacks do ambiente externo e os utiliza conforme seus resultados, positivos ou negativos, para ir calculando melhor seus pesos, neurénios e melhorar seus resultados. A Figura 5 apresenta as trés caracteristicas basicas que compdem o Machine Learning. Dados rotulados Feedback direto Prever resultado/futuro STANCE) Aprendizagem Nao-Supervisionada Por reforco Sem rétulos Processo decisorio Sem feedback Sistema de recompensas “Encontrar estrutura oculta” Aprender série de agées Center, 2019, Acesso em Figura 28/10 s trés pilare: (Adaptado) dizado de maquina. Fonte: MIT Deshpa Hoje em dia, por meio do Aprendizado de Maquina, conseguimos trabalhar com uma grande quantidade de dados e extrair caracteristicas importantes deles. Embora os algoritmos apresentem uma grande evolugdo no uso de técnicas e estatisticas em relacgdo aos algoritmos iniciais de Inteligéncia Artificial, isso ainda nado € o suficiente para fazer o reconhecimento de uma imagem. Para isso, foram APRENDIZAGEM PROFUNDA © iniciados os estudos sobre as redes neurais artificiais. De acordo com Bittencourt e Osdrio, no artigo denominado “Sistemas inte- ligentes baseados em redes neurais artificiais aplicados ao processamento de imagens”, publicado em 2000, as redes neurais artificiais (RNA) estado relacionadas com um algoritmo de computador dentro da area de inteligéncia artificial, que tem por objetivo simularo funcionamento dos neurdénios do cérebro humano. Com isso, adquire a capacidade de realizar uma acdo nao programada a partir de um conjunto de dados que serve como exemplo apés 0 treinamento do algoritmo. Conforme Fausett, citado no artigo de Dantas, Godoi e Petroli, denominado “Ferramenta para automatizacdo do processo de concessdo de crédito utilizando de conceitos de inteligéncia artificial”, publicado em 2017, as redes neurais artifi- ciais sdo algoritmos utilizados para resolver problemas que podiam ser resolvidos apenas pelo cérebro humano. As principais caracteristicas da RNA sao definidas por sua forma de desenvol- vimento e particularidade, como quantidade de neurénios, funcdes de ativacgao, numero de camadas, etc. Esses mesmos valores sdo treinados de acordo com a necessidade do desenvolvedor, pois talvez seja necessario mais precisdo ou ve- locidade em seus treinamentos. Pensando nisso, varios modelos e arquiteturas podem ser implementados. A conexdo entre os neurdnios é simulada por meio do uso de pesos (fungdes que servem para definir a prioridade de cada dado de entrada) e, a partir disso, é enviada uma informacao conhecida como activity level (AC), que consiste em uma fungdo de entrada de dados. Com a entrada dessas informagées nos neurénios da rede neural, é enviado um sinal de activity level para outros neurénios. Cada neurdénio pode fazer um Unico processamento de entrada de dados, ou seja, eles recebem somente um tipo de dado, mas podem possuir varias entradas de dife- rentes sinais. Quando esses dados passam por neurénios, eles sao agrupados, ou seja, caso os dados passem pelos neurénios X, 0 algoritmo diz que é uma imagem de um cachorro, caso os dados (sinais) passem por neurdnios Y, o algoritmo diz que é um gato, etc. O efeito desses dados emitidos ao longo da rede neural, passando de ® um neur6nio para o outro, é determinado pela multiplicacdo do valor do dado recebido. Sendo assim, a RNA vai multipli- car ainformacao que esta presente de acordo com a primei- APRENDIZAGEM PROFUNDA © ridade que essa informacao tem na rede. As arquiteturas de uma RNA estdo intrinsecamente ligadas ao tipo de proble- ma que se quer utilizar. Portanto, nado vai ser possivel ter uma boa performance utilizando uma rede neural para identificar imagens de rostos ou de animais. Elas também sdo agrupadas pelo o numero de camadas (camada Unica ou de mul- tiplas camadas), pela quantidade de neurdénios que cada camada possui, pelo formato de conexdo (se sdo de feedforward ou de feedback), bem como pelo modelo de sua topologia. Sinal de entrada Camada Primeira Segunda deentrada camada oculta camada oculta Figura 6. Exemplo de RNA. Fonte: DANTAS; GODOI; NETO, 2017, p. 212. (Adaptado). Além disso, é possivel evidenciar a existéncia de trés caracteristicas: a) a camada de entrada, também conhecida como a camada de distribuicdo de rede, tem como objetivo fazer a distribuicado dos dados de entrada para os neurdnios das proximas camadas ocultas; b) uma, nenhuma ou varias camadas ocultas, cujo 0 objetivo é obter as in- formagées estaticas e fazer a realizacdo de problemas que ndo sdo separaveis de forma linear; c) acamada de saida possui uma quantidade de neurénios igual ou superior a quantidade de dados de saida da rede. Redes neurais artificiais sao, em resumo, técnicas para simular de forma ar- tificial as redes neurais presentes no cérebro humano. Dessa forma, 0 algoritmo consegue apreender algo sobre o qual ele nao tinha conhecimento em sua pro- gramacao inicial. Entretanto, essas técnicas de redes neurais possuem poucas APRENDIZAGEM PROFUNDA © camadas profundas, uma vez que, na época em que comegaram seus estudos, ndo existiam processadores e placas de videos poderosas para executar seus treinamentos. A partir de 2014, comecgou a chegar a Deep Learning, ou seja, re- des neurais artificiais profundas. Aprendizagem Profunda (Deep Learning) Os estudos comuns de aprendizado de maquina nos trouxeram a cons- trucdo de algoritmos inteligentes que podem simular a inteligéncia humana. Muitas tarefas, consideradas complexas para um ser humano, sao facilmen- te executadas por um computador, desde que ele seja previamente progra- mado. Para isso, utilizamos regras matematicas, algoritmos, estruturas de dados, logicas de programacdo, arvores de decisdo, etc. Uma das melhores definigdes para algoritmos de Deep Learning é: con- junto de algoritmos para solucionar problemas que os seres humanos con- seguem solucionar de forma natural. Dessa forma, a técnica faz 0 uso de dados brutos, ou seja, sem tratamento, para compreender o problema por meio de hierarquias e suas interacgées. Para conseguirmos ter uma melhor andlise dos algoritmos de Deep Lear- ning e os algoritmos tradicionais, vamos fazer uma analogia com um jogo de xadrez. Embora 0 xadrez seja um jogo de tabuleiro bastante complexo, é facil ensinar um computador a joga-lo. O jogo possui 32 pecas que podem se locomover entre 64 casas, sendo que apenas 30 podem caminhar de acor- do com regras estabelecidas. Embora seja um jogo de estratégia bastante complexo, suas regras sdo, de certa forma, simples de serem ensinadas a um computador, uma vez que se trata de uma lista de re- gras formais que podem ser passadas ao algoritmo com antecedéncia. E diferente de ensinar a um computador o que é uma moto ou o que é um carro, pois sdo coisas que nao possuem um padrdo formal nem regras exatas, além de dependerem de varios fatores como iluminacado, modelo, tamanho, etc. Desse modo, para ensinar uma IA o que € um carro ou uma moto, é recomendado o uso de algoritmos de Deep APRENDIZAGEM PROFUNDA ® Learning previamente treinados. © 7 Dimensionalidade A arquitetura de uma rede neural convencional é tratada como um grafo direcionado. Neste tipo de rede, os vértices sdo representados pelos neurdnios e as arestas sdo representadas pelos pesos das conexées. Para cada camada das extremidades damos os nomes de camada de entra- da (input layer) e camada de saida (output layer). A camada de entrada recebe os dados a serem processados pela rede e a camada de sajda apresenta os resultados processados. Entre as duas, pode haver L camadas, nas quais ocorrem os processamen- tos internos da rede. Na Deep Learning (DL), chamamos essas camadas inter- medidrias de camadas ocultas (hidden layers), conforme apresentado na Fi- gura 7. Uma vez treinada, essa rede é capaz de produzir um mapeamento de vetores no espaco M-dimensional para vetores no espaco N-dimensional, no qual M é0 numero de vetores da camada de entrada e N € o numero de vetores da camada de saida. Camada Camadas de entrada ocultas SI >< \ DO \Z SZ. Ko EAR PRD OY PNES Figura 7. Estrutura modelo de camadas de uma Deep Learning. Fonte: Adobe Stock. Acesso em: 28/10/2019. APRENDIZAGEM PROFUNDA © A dimensionalidade de entrada de dados, portanto, esta diretamente re- lacionada com a quantidade de variaveis a serem informadas para a rede, no sentido de realizar 0 processamento. Hipoteticamente, se uma determinada rede neural X é produzida para reconhecer imagens de animais em uma cena, quanto mais variaveis de entrada puderem ser informadas sobre a cena, mais assertiva sera a resposta. Aqui reside um dos principais problemas do uso das RNA: quanto maior o numero de pardmetros de entrada, maior a probabilidade de acerto da rede. Todavia, quanto maior o numero de entradas, mais recurso computacional sera necessario para realizar o processamento. O principal problema da dimensionalidade esta relacionado com a per- da de foco do algoritmo, que pode gerar respostas erradas. Vamos para um exemplo mais claro: imagine que vocé deseje comprar uma casa para morar. Para auxiliar no processo de decisdo, vocé reuniu tantas caracteristicas (di- mens6es) que acabou ficando sem saber qualescolher. Esse € um problema classico das RNAs. © ° Classificagao Dentro da grande area de aprendizagem supervisionada, os modelos de resolugdo de problemas objetivam encontrar uma fungdo de saida a partir de dados de entrada rotulados, conhecidos e informados ao algoritmo. No tipo de Aprendizagem de Classificacdo, objetiva-se, com base nos rétulos conhecidos e informados, encontrar parametros otimos para gerar uma Saida equivalente ao desejado. Tal busca ocorre no processo de treinamento da rede. Caso o rétulo conhecido seja um numero real, a tarefa de busca pela solu- ¢ao é chamada de regressdo. Ja no caso em que 0 rotulo venha de um conjunto finito, bem como ndo ordenado, temos uma tarefa de classificacao. A Figura 8 apresenta dois casos de aprendizagem supervisionada. A esquer- da, tem-se uma tarefa de Classificagdo, na qual o algoritmo de RNA objetiva criar uma linha diviséria entre os elementos diferentes. A direita, os pontos apresentam um comportamento positivo crescente, com rdtulos (labels) iguais e oriundos (hipoteticamente) de numeros reais. Nesse caso, temos um tipico APRENDIZAGEM PROFUNDA ® formato de Regressdao. Classificacao Regressao Figura 8. Di Regressao Os algoritmos de Regressdo mais utilizados sao os de Regressdo Linear e Regressdo Logistica. Veja, no Grafico 1, a diferenga entre eles. GRAFICO 1. DIFERENCA ENTRE REGRESSAO LINEAR E REGRESSAO LOGISTICA Regressao Linear Regressdo Logistica Y previsto pode y exceder 0 intervalo entre0e1 Y previsto esta contido no intervalo entreQe1 Na representagdo a esquerda, temos uma linha reta que cruza 0 eixo X. Nessa situagdo, o valor de predi¢do para Y pode exceder 0 intervalo entre 0 e 1. Ja na ima- gem a direita, temos uma Regressdo Logistica. Nesse caso, perceba que a linha nado é eta, e sim sinuosa. O valor de predic¢ao para Y esta dentro do intervalo entre 0 e 1. APRENDIZAGEM PROFUNDA ® Vamos compreender em mais detalhes 0 significado e aplicagdes destes dois tipos de regressdo. Regressao Linear A Regressdo Linear € um dos métodos mais encontrados dentro da area de Aprendizagem de Maquina. Para exemplificar seu funcionamento, vamos criar uma situacgdo hipotética. Suponha que vocé precise analisar e comparar um conjunto de casas por meio de dois atributos: tamanho (t) e preco (p). Vamos imaginar, ainda, que queremos desenvolver um programa de computador que receba 0 dado t (tamanho da casa) e retorne o dado p (prego estimado). Neste caso, esse sistema deveria possuir uma funcao f para retornar o preco, como: p = f(t). Tal fun¢gdo deveria ser explicitamente programada dentro do sistema. Suponha que vocé nao faga a minima ideia sobre qual funcdo se trata. Nesse caso, devemos definir um conjunto (familia) de regras para f, como f(t) = at + b, coma e bdescritos como parametros nao especificados (graus de liberdade) que precisam ser definidos com base nos dados disponiveis e, logicamente, segundo tal estratégia. Para um problema de Regressdo Linear, a ideia é simples: selecionar valores para aeb, tal que a soma do erro quadrado entre as saidas reais e as saidas esperadas seja minimizado. Regressdo Logistica A Regressdao Logistica nao possui premissa basica. Diferentemente da Regressdo Linear, ha a necessidade da existéncia de uma relac¢do linear entre as variaveis expli- cativas e as variaveis respostas. A Regressdo Logistica leva este nome por utilizar uma fungao logaritmica na expressdao de sua resposta grafica. Além disso, a Regressdo Logistica possui um retorno binario para Y (0 ou 1). Eles sdo denominados como “fracasso” e “sucesso”, respectivamente. Dessa forma, po- demos dizer que a Regressdo Logistica € recomendada para situagdes nas quais a variavel dependente é de natureza dicotémica ou, ainda, binaria. Funcées de ativacgao Um dos componentes mais importantes em uma rede neural é a funcao de ati- vacgao. Caso uma RNA nao possua uma fungdo de ativac¢do, o resultado originado pela soma entre todos os dados de entrada (x), multiplicados pelos seus pesos (w), mais um bias (6), € 0 de uma fungdo de transformacao linear simples. APRENDIZAGEM PROFUNDA © Para exemplificar 0 calculo realizado dentro de uma RNA simples, vamos ana- lisar 0 neurénio biolégico representado na Figura 9 e o neur6nio artificial repre- sentado pela Figura 10. Na Figura 10, é possivel identificar as entradas de dados (x7, ..., xn), bem como seus respectivos pesos (w7, ..., wn). Eles sao multiplicados, somados e, posteriormente, acrescidos de um bias (b), gerando uma fungao f. Impulsos transmitidos para © corpo celular Ramificagées dos axénios Terminal dos axGnios Impulsos transmitidos para o sentido externo ao corpo celular Corpo celular > wxte 7 Saida do axGnio Fungo de ativacao 1: 28/10, Figura 10. Neurénio artificial em model atico. Fonte: CS23 APRENDIZAGEM PROFUNDA © A fungdo de ativagdo cria uma transformacao nao linear aplicada aos dados de entrada, permitindo que seja realizado um aprendizado de tarefas mais com- plexas na rede. DICA Tipos de dados complexos, como audios, fala, video e outros, requerem transformacoes nao lineares. ® * Treinamento O processo de treinamento é uma das etapas mais importantes na verificagdo de eficacia de uma RNA. Ele consiste em realizar uma insergdo de dados na cama- da de entrada, ajustando os pesos das camadas intermedidarias até que se obtenha o resultado desejado na camada de saida. Durante a etapa de treinamento, é realizado 0 calculo de erro da execugao. O objetivo do treinamento é, portanto, minimizar o erro entre o resultado esperado e aquele obtido no treinamento atual. Existem basicamente trés grupos de treinamento em RNA baseados em apren- dizado: 1. sem treinamento: os pesos sdo previamente estabelecidos e sofrem ape- nas um ajuste; 2. treinamento supervisionado: os dados para a camada de entrada sao in- formados, bem como os valores de saida, existindo a necessidade de verificacao das saidas existentes (se estado corretas ou nao); 3. treinamento nao supervisionado: a rede extrai as caracteristicas dos dados de entrada, realizando agrupamentos em classes, também conhecidos como clusters. Sabemos também que, de acordo com Chettri, Cromp e Birmingham, no artigo “Design of neural networks for classification of remotely sensed imagery”, publi- cado em 1992: O treinamento da rede é concluido quando o erro é menor que um dado limiar, ou um numero maximo de iteracdes definido. E impor- tante evitar o excesso de treinamento, conhecido como overfitting, uma vez que a rede pode classificar perfeitamente os dados de trei- namento, mas ndo funcionar com os dados de teste (tradu¢ao livre). APRENDIZAGEM PROFUNDA © Por fim, é valido ressaltar que estima-se que o cérebro humano possui 86 bilhdes de neurdnios, com conexées antigas e novas sendo realizadas a cada milissegundo. Podemos concluir, portanto, que a Aprendizagem Profunda, quan- do comparada ao cérebro humano em termos de poténcia, esta apenas engati- nhando. Mas sua evolucdo é constante. APRENDIZAGEM PROFUNDA © Sintetizando e SSS? Nesta unidade, tratamos dos conceitos de Inteligéncia Artificial e Aprendi- zagem de Maquina. Tragamos a relagdo entre essas areas e a Aprendizagem Profunda. O tema de Aprendizagem Profunda foi introduzido e, com isso, pudemos al- cancar todos os objetivos tragados para esta unidade, uma vez que 0 aluno foi ambientado na area de Inteligéncia Artificial e de Machine Learning. Também mostramos as principais divisdes e aplicagdes destes conceitos. Este é um tema que traz muita duvida e discussdo na area da Ciéncia da Com- puta¢gdo, muito embora nao se trate de um assunto novo. Seu crescente uso se deve a disposi¢do de recursos computacionais que ainda ndo possufamos tempos atras. Desse modo, falamos sobre seus tiposde redes neurais (Machine Learning e Aprendizagem Profunda), suas dimensionalidades, classificagées e tipos de re- gressdo (Linear e Logistica). Conseguimos, por fim, entender o quanto a Aprendizagem Profunda pode ser utilizada em nosso dia a dia, como funciona a Classificagdo e Regressdo dentro da drea, bem como 0 treinamento de redes neurais. Falamos também sobre Dimensionalidade e um pouco da matematica utilizada nestas redes neurais artificiais por meio das fung6es de ativacgao. APRENDIZAGEM PROFUNDA © Referéncias bibliograficas e AKERKAR, R. Introduction to artificial intelligence. [s.|.]: PHI Learning Pvt. Ltd., 2014. ANADIOTIS, G. Caffe2: Deep Learning with flexibility and scalability. ZDNet, 01 mai. 2017. Disponivel em: <https://www.zdnet.com/article/caffe2-deep-learnin- g-wide-ambitions-flexibility-scalability-and-advocacy/>. Acesso em: 19 out. 2019. AREL, |; ROSE, D. C; KAMOWSKI, T. P. Deep Machine Learning - A New Frontier in Artificial Intelligence Research. IEEE Computational Intelligence Magazine, 5, EUA, pp.13-18, 2010. BEZERRA, E. Introdugao a Aprendizagem Profunda. In: 31° Simpésio Brasileiro de Banco de Dados, Salvador, 2016. BITTENCOURT, R. J.; OSORIO, F. Sistemas Inteligentes baseados em redes neurais artificiais aplicados ao processamento de imagens. In: | Workshop de Inteligén- cia Artificial, Universidade de Santa Cruz do Sul, [s.I.], 2000, pp. 1-19. Disponivel em: <http://osorio.wait4.org/oldsite/wia-unisc/wia2000-mini.pdf>. Acesso em: 29 out. 2019. CHETTRI, S. R.; CROMP, R. F.; BIRMINGHAM, M. Design of neural networks for classification of remotely sensed imagery. Telematics and Informatics, [s.|.], 1992, v. 9, pp. 145-156. CS231n. Convolutional Neural Networks for Visual Recognition (Stanford University). Disponivel em: <http://cs231n.github.io/neural-networks-1/>. Aces- soem: 19 out. 2019. D'ANGELO, H. Cérebro humano tem 16 tipos diferentes de neurdnios, reve- la estudo, Revista Superinteressante, Sdo Paulo, 2016. Disponivel em: <ht- tps://super.abril.com.br/saude/cerebro-humano-tem-16-tipos-diferentes-de- -neuronios-revela-estudo/>. Acesso em: 29 out. 2019. DANTAS, G.; GODOI, L. F.; NETO, S. P. Ferramenta para automatizacao do pro- cesso de concessao de crédito utilizando de conceitos de Inteligéncia Artificial. Ensaios USF, [s.I.], v. 1, n. 1, pp. 117-129. Disponivel em: <http://ensaios.usf.edu. br/ensaios/article/view/63>. Acesso em: 29 out. 2019. DESHPANDE, A. Deep Learning research review week 2: Reinforcement Lear- ning. Adeshpande. Disponivel em: <https://adeshpande3.github.io/Deep-Learnin- g-Research-Review-Week-2-Reinforcement-Learning>. Acesso em: 29/10/2019. APRENDIZAGEM PROFUNDA © ENCYCLOPEDIA BRITANNICA. Perceptrons | computer science | Britannica. com. Disponivel em: <https://www.britannica.com/technology/perceptrons>. Acesso em: 19 out. 2019. ERTEL, W. Introduction to artificial intelligence. [s.|.]: Springer Science & Busi- ness Media, 2011. FAUSETT, L. V. Fundamentals of neural networks: architectures, algorithms, and applications. [s.I.]: Prentice-Hall, 1994. GITHUB. GitHub - dsacademybr/DeepLearningBook: Repositorio do Deep Learning Book - www.deeplearningbook.com.br. Disponivel em: <https://gi- thub.com/dsacademybr/DeepLearningBook>. Acesso em: 19 out. 2019. GITHUB. Deep Learning Research Review Week 2: Reinforcement Learning - Adit Deshpande - Engineering at Forward | UCLA CS ‘19. Disponivel em: <https:// adeshpande3.github.io/Deep-Learning-Research-Review-Week-2-Reinforce- ment-Learning>. Acesso em: 19 out. 2019. GOODFELLOW, |; BENGIO, Y; COURVILLE, A. Deep Learning: Adaptive Computa- tion and Machine Learning series. Cambridge: MIT Press, 2016. GUIMARAES, H. R. Recuperagdo de informagées musicais: uma abordagem utilizando Deep Learning. 2018. 65 f. Projeto de graduacao - Escola Politécnica, Universidade Federal do Rio de Janeiro, 2018. Disponivel em: <http://monogra- fias.poli.ufrj.br/monografias/monopoli10025687.pdf>. Acesso em: 29 out. 2019. HAYKIN, S. Redes Neurais: Principios e Pratica. 2. ed. Porto Alegre: Bookman, 2001. LECUN, Y.; BENGIO, Y.; HINTON, G. Deep Learning. Nature, [s.1.], 2015, v. 521. Dis- ponivel em: <https://www.cs.toronto.edu/~hinton/absps/NatureDeepReview. pdf>. Acesso em: 29 out. 2019. LUDWIG, O.; COSTA, E. M. M. C. Redes neurais: fundamentos e aplicacdes com programas em C. Rio de Janeiro: Editora Ciéncia Moderna, 2007. OLIVEIRA, E. L. Redes neurais artificiais e reconhecimento de caracteres nu- méricos em imagens. 2018. 105 f. Trabalho de Conclusdo de Curso - Funda¢ao Educacional do Municipio de Assis (FEMA), Assis, 2018. Disponivel em: <https://ce- pein.femanet.com.br/BDigital/arqiccs/1611320164.pdf>. Acesso em: 19 out. 2019. OLIVEIRA, W. Software para reconhecimento de espécies florestais a partir de imagens digitais de madeiras utilizando Deep Learning. 2018. 103 f. Disser- tacdo de Mestrado - Universidade Tecnoldgica Federal do Parana, Medianeira, APRENDIZAGEM PROFUNDA © 2018. Disponivel em: <http://repositorio.utfpr.edu.br/jspui/bitstream/1/3189/1/ MD_PPGTCA_M_Oliveira%2c%20Wellington_2018.pdf>. Acesso em: 29 out. 2019. PICKELL, D. The complete guide to Machine Learning in 2019. G2, [s.I.], 24 jun. 2019. Disponivel em: <https://learn.g2.com/machine-learning>. Acesso em: 29 out. 2019. REDES NEURAIS E MACHINE LEARNING - Nerdologia tech. Postado por Nerdo- logia. (9 min.12s.). son. color. port. ou leg. Disponivel em: <https://www.youtube. com/watch?v=1_c_MA1F-vU>. Acesso em: 19 out. 2019. ROSENBLATT, F. The perceptron: a perceiving and recognizing automaton. Re- port 85-460-1, Cornell Aeronautical Laboratory, 1957. Disponivel em: <https:// blogs.umass.edu/brain-wars/files/2016/03/rosenblatt-1957.pdf>. Acesso em: 29 out. 2019. RUSSELL, S. J.; NORVIG, P. Artificial Intelligence: a modern approach. New Jer- sey: Editora Prentice Hall, 1995. SILVA, G. C. Detecgao e contagem de plantas utilizando técnicas de Inteligén- cia Artificial e Machine Learning. 2017. 94 f. Trabalho de conclusdo de curso - Universidade Federal de Santa Catarina, Floriandpolis, 2018. VARGAS, A. C. G; CARVALHO, A. M. P; VASCONCELOS, C. N. Um estudo sobre re- des neurais convolucionais e sua aplicacdo em deteccdo de pedestres. SIBGRAPI - XXIX Conference on Graphics, Patterns and Images, Sdo José dos Campos, 2016. WEIGHTS & BIASES. Multilayer Perceptrons. Disponivel em: <https://www.wan- db.com/classes/intro/class-2-notes>. Acesso em: 19 out. 2019. APRENDIZAGEM PROFUNDA © se. Sef educacional Ome M TCLs @ Apresentar e descrever os principais algoritmos de otimizacao; @ Apresentar backpropagation, também conhecido como backward- propagation ou backprop; @ Apresentar e descrever os principais tipos de gradiente; @ Apresentar entropia cruzada. Topicos de estudo ©@ Algoritmos de otimizacgao ® Gradiente Algoritmo Adagrad Descida de gradiente em lote Algoritmo RMSprop Descida estocastica de gradientes Algoritmo Adadelta de minilote Algoritmo Adam Gradiente estocastico Algoritmo Momentum PAF eXoYaldanteM Nick] ® Entropia cruzada Accelerated Gradient (NAG) ®@ Backpropagation Backpropagation Through Time (BPTT) APRENDIZAGEM PROFUNDA © &e Algoritmos de otimizagao De acordo com informacées retiradas do site Dive Into Deep Learning, os algorit- mos de otimizacdo sao ferramentas de extrema importancia para a construgdo de modelos eficientes de redes neurais artificiais (RNAs), pois através do uso delas é possivel alterar pardmetros de treinamento e, assim, conseguir minimizar o valor da fungdo de perda. Para muitas pessoas que executam tarefas mais simples em RNAs, algoritmos de otimizagdo mais comuns, como AdaGrad, RMSProp, Momen- tum, Adadelta, Nesterov, entre outros, ja sdo suficientes devido a boa performan- ce em varios casos de aplicacao. Porém, para fazer bem um trabalho com a performanceou uso de recursos computacionais, é preciso ter um conhecimento mais aprofundado sobre 0 que sdo algoritmos de otimizacdo, seus tipos e sua importancia para o aprendi- zado profundo ou Deep Learning (DL). Por outro lado, existem treinamentos de modelos que sao complexos quanto ao aprendizado profundo, que levam dias ou semanas. E a escolha por um algoritmo de otimizac¢dao vai interferir na performance do modelo. Dessa forma, ter uma percepc¢ao sobre alguns dos principais algoritmos de otimizacado e 0 porqué de cada pardmetro dara mais preparo para uma maior performance dos algoritmos de otimiza¢do e, por con- sequéncia, tornara a rede neural artificial mais eficiente. Neste topico serdo analisadas as relagdes entre os algoritmos de otimiza- ¢do e as técnicas de aprendizado profundo. Para aplica-los em um problema de treinamento, é definida qual é a fungdo de perda e, para tanto, se aplica um algoritmo de otimizacao para tentar diminui-la. No processo de otimiza- ¢do, a funcdo de perda é mencionada como uma funcao objetivo do problema de otimizagao. Via de regra, a maior parte dos algoritmos de otimizagao estdo preocupados com a minimizacdo dos erros. A seguir, serdo apresentados os principais algoritmos de otimizacao. © * Algoritmo Adagrad O algoritmo de Adagrad funciona com o uso de variadveis cumulativas “st”, valor obtido numa operacao quadrada por elementos no gradiente estocastico de minilote gt, no qual, no passo 0, o Adagrad comega a inicializar os elementos APRENDIZAGEM PROFUNDA © em sO a 0. Na fase do tempo t, 0 passo inicial € somar os valores da operagao quadrada mediante um elemento para 0 gradiente de minilote gt para se obter uma varidvel st: st<—st-1+gtOgt O simbolo © € 0 sinal de multiplicagdo por um elemento. Depois, é rea- justada a taxa de aprendizado para cada variavel, independente da fun¢gdo de objetivo, pelas operacées de elemento. N VS,+€ O valor de aprendizado é representado por 7, enquanto € € é uma constante inserida para manter a estabilidade numérica, como 10°°, em que as operacées X,<—X,,- Og, de raiz quadrada, divisdo e de multiplicacdo sao as operacdes do elemento, de modo que cada elemento disposto na variavel independente da func¢ao possui o seu proprio valor de aprendizado apés as operacgées de elementos Os algoritmos de Adagrad possuem algumas qualidades a serem inter- pretadas para melhor conhecimento sobre seu funcionamento. A variavel cumulativa st € produzida por uma operacdo quadrada por meio de ele- mentos no gradiente estocastico de minilote, que faz parte de um denomi- nador de taxa de aprendizado. Desta forma, se um elemento na variavel, independente de uma funcao de objeto, possuir uma derivada parcial de valor constante e grande, a taxa de aprendizado do mesmo caira rapida- mente. E, ao contrario, se a derivada parcial de um elemento se mantiver pequena, sua taxa de aprendizado tendera a diminuir lentamente. Por- tanto, desde st, que soma 0 gradiente quadrado por elemento, a taxa de aprendizado do mesmo de cada elemento na variavel independente ou diminuira ou permanecera inalterada durante a interacdo. Em outras palavras, quando ocorre da taxa cair muito ligeiramente durante as execucées iniciais, porém a solugdo inicial ainda nao é suficientemente boa, o algoritmo de Adagrad nao se sai muito bem para encontrar uma boa solucao, tendo em vista que a taxa de evolucdo no aprendizado sera muito baixa nas proximas execucées do treinamento. A fungao objetivo f(x) = 0. KG a 0.2x, é um exemplo para pesquisar o tra- jeto interativo da variavel independente em Adagrad. Caso queira se aplicar em cddigo o algoritmo de Adagrad, a trajetdria da variavel fica independente APRENDIZAGEM PROFUNDA © e mais leve. No entanto, por causa do efeito somatorio de st, a taxa do apren- dizado cai continuamente, uma vez que a variavel independente ndo se altera muito nos proximos estagios da interacao. @ &» Algoritmo RMSProp O algoritmo de otimizagao RMSProp, embora seja um algoritmo que, assim como o Adagrad, ndo faz 0 uso de descida de gradiente, tem caracteristicas diferentes, uma vez que a variavel de estado st é classificada como uma soma de quadrado por elemento. Da mesma forma que todos os gradientes estocas- ticos do minilote gt até a fase do tempo t, o RMSProp faz 0 uso da média movel ponderada exponencialmente no quadrado pelos resultados dos valores dos elementos dos gradientes. Para ser mais exato, por intermédio do hiperpara- metro 0 <y <10 <y <7, o RMSProp funciona se baseando no calculo do intervalo do tempo t> 0. St<—yst-1+(1-y)gt©Ogt Algumas funcgées do RMSProp sdo parecidas com as do Adagrad, como o fato do RMSProp reajustar o seu valor de aprendizado de cada elemento em uma variavel independente de sua fungao objetivo com operacgées do elemen- to e, em seguida, adaptar o valor na variavel independente: N VST+€ Og, Segundo a funcdo acima, 0 n representa o valor de taxa de aprendizado, X,<—X,,- que ocorre ao mesmo tempo que € se mantém como uma constante adiciona- da com 0 objetivo de se manter uma estabilidade numérica, como 10-"°. © ° Algoritmo Adadelta Assim como o RMSProp, 0 Adadelta também é um algoritmo de otimizagao bastante comum e que tem como um dos seus objetivos de desenvolvimento encontrar solugdes boas em fases posteriores da interagdo, o que é compli- cado de se fazer ao aplicar algoritmos como Adagrad para tentar resolver o problema. Algo bastante curioso é que o algoritmo Adadelta nao possui hiper- APRENDIZAGEM PROFUNDA © pardmetro para valor de aprendizagem. Semelhante ao algoritmo RMSProp em algumas propriedades, o Adadelta utiliza a variavel st que, por sua vez, € um EWMA nos seus quadrados de ele- mentos em gradiente estocastico de seus minilote gt. No passo 0, todos os elementos estdo iniciados com 0. Entdo, é dado 0 hiperpardmetro 0 < p< 1 (ao contrario do de yno RMSProp) em fase do tempo em t > 0. St <— pst-1+(1-p)gtOgt Diferentemente do que acontece com o RMSProp, 0 algoritmo Adadelta pro- cura ter uma variavel com o estado adicional, Axt, no qual os elementos tam- bém se iniciam na fase 0. No Adadelta, 0 Axt - 7 verifica a variagdo da variavel independente: 8 ey [Pu O8, S,+€ Na equacdao, € €é uma constante colocada para fazer uma estabilidade nu- mérica com 10-5, Em sequéncia, se altera o valor da variavel independente: xt <— xt, 8", Por fim, se usa Ax e registra o EWMA nos quadrados dos elementos g", visto que é uma variagdo de uma variavel independente: Ax, <— pAx,,+ (1 - p)8',O8'- Assim, é possivel saber se o impacto de € nao é avaliado aqui, com o Adadel- ta se diferenciando do RMSProp com a substituigdo do hiperparametro n com: vAX,, © * Algoritmo Adam Diederik Kingma e Jimmy Ba, no artigo “Adam: A Method for Stochastic Op- timization”, publicado em 19 de novembro de 2015 na revista The Berkeley View, descrevem 0 algoritmo de Adam como uma técnica de otimizagdo de funcgdes objetivas estocasticas a partir de gradientes de primeira ordem e se baseando na estimac¢do adaptativa de momento de ordens anteriores. O seu nome vem do inglés “Adaptive Moment Estimation", ou “estimacao dos momentos adaptati- vos". Logo, ele € 0 algoritmo que realiza uma estimagdo média de um momento adaptativo, combinando algumas das qualidades do AdaGrad e do RMSprop. Ainda segundo os autores este algoritmo se vale de técnicas que combinam as taxas de aprendizado adaptativas de forma separadas para os varios para- metros com base nos calculos de estimativa, nos momentos de primeira e de APRENDIZAGEM PROFUNDA © segunda ordem dos gradientes. Em suma, o Adam é um algoritmo de otimiza- ¢do para redes neurais artificiais profundas que trabalha a partir da otimizagao baseada em gradientes de primeira ordem e calcula os valores de aprendiza- gem para cada um dos parametros. DICA 0 funcionamentodo algoritmo Adam pode ser feito em 5 passos, resumi- dos por Kingma e Ba: 1-0 primeiro passo do algoritmo é calcular qual sera o gradiente eo quadrado de elementos do mesmo por parametros atuais; 2-0 Adam adapta a média local exponencial do momento da 1° ordem e do momento da 2? ordem; 3-E feito o calculo da média nao parcial do momento da 1° ordem assim como do momento da 2° ordem; 4-E realizar os calculos para a atualizagao dos valores dos pesos: pela média imparcial dos momentos de 1° ordem que sao divididos pela raiz quadrada do valor de média imparcial do momento de 2° ordem (escala através da taxa de aprendizado); 5 - A partir disso é feito 0 ajuste nos pesos do algoritmo. Liset Romaguera, autora de Segmentacdo do miocdrdio em imagens de MRI cardiaca utilizando redes neurais convolutivas, tese defendida em 2017, declara que é necessario 0 uso de alguns calculos para que o mesmo funcione correta- mente, como Se vé na equac¢ao a seguir: (m),= B,(m,,), + (1- B) (V L(w), (V),= BAV,,), + (1 - BY (V L(w)y’, = vi -(B)' (mJ) (W,,,), = (w,),- @ ~—— i ? V1 -(B,)t, Vv), € Ainda de acordo com Romaguera, é possivel notar que a € 0 valor da taxa de aprendizado B,' e B,', denotando que f7 e B2 sobre a poténcia t,VL(Wt) é 0 valor do gradiente da fungdo de erro conferida pelo vetor de pesos Wt. Desta forma, 0 algoritmo atualiza as médias méveis, exponenciais do gradiente (mt) e do gradiente quadrado (vt) em que os valores de hiperparametros £7, B2 € [0, 1) manipulam apenas as taxas de decaimento exponencial de suas médias moveis. As médias méveis sao estimativas do primeiro (a média) e do segundo momento raso (conhecida como variancia nao centrada) do gradiente. Nao obstante, os valores de médias méveis se inicializam como vetores de zeros, levando as esti- APRENDIZAGEM PROFUNDA © mativas dos momentos que estdo polarizados para zero, principalmente duran- te o processo de passos de tempo iniciais, quando as taxas de decaimento sdo baixas e os Bs estado com valores préximos a 1. Segundo os desenvolvedores do algoritmo, a = 0.001, 87 = 0,9, B2 = 0,999 e € = 10* sdo boas configuracgées para a aplicagado em grande parte dos algoritmos de aprendizagem profunda. wy * Algoritmo Momentum De acordo com dados do site Data Science Academy, 0 algoritmo de Momen- tum altera a descida do gradiente de duas formas, o que torna mais proximo a imagem fisica dado que, primeiramente, ele adiciona a nocdo de velocidade Para os parametros que esta tentando ajustar e, a partir dai, o gradiente tra- balha para alterar a velocidade para os valores de pardmetros em ajuste e ndo a sua posi¢do, da mesma maneira que as forgas fisicas alteram a velocidade mudando a posicao indiretamente. Em segunda caracteristica, o método Mo- mentum trabalha com a introdugdo de um termo de friccdo que reduz gradual- mente a velocidade. Uma descricdo matematica mais exata disto é feita pela introdugdo de va- riaveis de velocidade v = v7, v2., com uma para cada valor existente na variavel WJ correspondente. Desta forma, substitui-se a regra de atualizacdo para des- cida de gradiente w' = w - nVC por v— v’=pv-nvce w—> WwW =wev’, Assim, 0 pf vira um hiperparametro que consegue controlar o numero de amortecimento ou de atritos do sistema. O primeiro valor em p = 7 significa que ndo ha atrito. Enquanto isso, a analise das equagdes mos- tra que a “forca” VC esta alterando a velocidade e, por- tanto, ela esta gerenciando o valor da variacdo de W. Uma forma de aumentar a velocidade é com a adi- ¢dao de repetidos termos de gradiente a ela. Seo gradiente estiver proximo da mesma diregdo por varias execucdes do algoritmo de aprendizado, sao desenvolvidas fungées indo nessa direcdo, conforme mostra 0 Grafico 1. APRENDIZAGEM PROFUNDA © GRAFICO 1. FUNCIONAMENTO DA FUNCAO DE GRADIENTE, COM UMA ESFERA VERDE AGINDO COMO FUNCAO DE ERRO Fontw: DATA SCIENCE ACADEMY, 2019 Assim como acontece com uma bola de futebol solta num declive, quan- to mais proximo ela chega ao fim do declive, mais rapidamente ela tende a correr. Algo semelhante acontece com a fungdo Momentum e, por isso, ela funciona muito mais rapido que a funcgdo de descida de gradiente padrao. Mas, assim como acontece com uma bola em um desfiladeiro, o mesmo acontece com a fungao Momentum, visto que a bola pode chegar no ponto mais baixo, estar embalada e subir para o outro lado. Deste modo, se a fun- ¢ao Momentum nao estiver com os parametros configurados corretamente, a funcdo tem uma taxa de erro bastante baixa e, a medida que 0 algoritmo de treinamento é executado, aumenta a taxa de erro. Assim, os hiperparda- metros séo mudados no momento correto e rapidamente. Do contrario, 0 algoritmo vai para o lado errado e aumenta, em vez de diminuir, a taxa de erro. Como ja mencionado, o pardmetro p serve para controlar a quantida- de de atrito do sistema, ou seja, em 7 - p ha uma quantidade de atrito no sistema. Quando p = 7, ndo tem atrito, mas ha velocidade, controlada pelo gradiente VC. Ficando em contraste com p = 0, quando ha muito atritoe a velocidade ndo se acumula. Com as funcées citadas, é possivel reduzir a equacdo do uso dos gradientes decente, w—» w '=w- nVC. Em outras pala- vras, o uso de valores entre 0 e 1 é benéfico, porque aumenta a velocidade do aprendizado ou a diminui pelo atrito, sem que haja alteragdes bruscas no APRENDIZAGEM PROFUNDA © valores dos pesos das informacgées passadas para os neurdénios, de forma que as alteragdes sejam tao bruscas que, em vez de melhorarem a perfor- mance do algoritmo, piorem o rigor da performance neste quesito. @ &» Algoritmo Nesterov Accelerated Gradient (NAG) De acordo com Roan Gylberth, no artigo “Momentum Method and Nesterov Accelerated Gradient”, escrito para o site Konvergen.Al em 2018, o algoritmo de Nesterov, avaliado por alguns pesquisadores como a evolucao do método Momentum, trabalha no ponto da computagdo de gradientes. No método Mo- mentum, 0 gradiente foi calculado por meio dos pardmetros atuais Ot: n &= wit , VOL (m®, y”,8.), No algoritmo Nesterov, utiliza-se a velocidade vt junto aos pardmetros 0, a fim de conseguir calcular os parametros provisorios 0. Apds isso, sera calcu- lado o gradiente valendo-se dos parametros provisorios, conforme mostra a equacao a seguir: 6=6.+ av, Te x BN AG = — JX VOL (x", y",8) i=1 Assim que se obtém os gradientes, atualizam-se os parametros com uma regra para atualizacdo semelhante ao Momentum: vt+1=av,-ng 6,+ 1=6,+Vv,+ 1, em que a Unica diferenga sao os gradientes: vt + 7 =av,-ngN AG 6.+17=6,+V,+ 1. Ainda com base no exposto por Gylberth, os gradientes de Nesterov sao analisados como uma técnica de corregdo para o método Momentum. O va- lor de velocidade adicionado para 0 pardmetro traz uma perda indesejada de dados, como o caso de estouro de gradiente. Nesse caso, a o algoritmo de gradiente é lento, pois o método de otimizacdo exibe grandes oscilagées. Ja no Nesterov, é possivel vé-lo averiguando outros parametros provisorios que foram adicionados, o que da uma vantagem analitica nos parametros APRENDIZAGEM PROFUNDA © atualizados. Caso a atualizagdo tenha implicado uma reducdo de perfor- mance no algoritmo, a mesma atualizacdo é desfeita, ajudando o algoritmo a evitar oscilagdes. Backpropagation Na area de Inteligéncia Artificial (Al), em especifico na subarea de Deep Learning (DL) ou Aprendizagem Profunda, é comum ler, ver ou ouvir falar sobre a palavra backpropagation, também conhecida por alguns sinédnimos, como backward propagation ou backprop. O termo backpropagation é bem-conceituado como método para calcular o gradiente dos parametros de uma rede neural. Em conceito mais especifico, ele calcula e armazena as variaveis intermediarias de uma funcao objetiva, re- lacionada com cada camada da rede neural e o gradientedos parametros, isto é, ocorrendo em ordem, da camada de saida para a camada de entrada, em acordo com a Regra da Cadeia em Calculo, expressada no Quadro 1. QUADRO 1. REGRA DA CADEIA a ar etna Me Re Meet W te meee MU Ree el as(e ere duas funcGes diferenciaveis: y - f(x) e x = g(t). a derivada da fungao composta f(g(t)) 6 calculada por meio da Regra da cadeia: (fG(O) = FED) - 81) =f) - 80) A regra acima pode ser reescrita de uma maneira mais sugestiva, usando a notagao de Leibniz: Curiosamente, ao pronunciar o termo backpropagation, iniciando-se pela palavra “back”, do inglés, significando “para tras”), pressupde-se que haja um termo oposto, no caso, 0 termo é forwardpropagation, com “for- ward", do inglés, para frente. Back-propagation e forward-propagation, estdo relacionados e referem-se ao movimento ou fluxo nas redes neurais APRENDIZAGEM PROFUNDA @ numa mesma direcdo, mas em sentidos opostos. Forwardpropagation, segundo os autores lan Goodfellow, Bengio e Cour- ville, no livro Deep Learning: Adaptive Computation and Machine Learning se- ries, de 2016, refere-se a quando uma rede neural baseada em feedforward aceita uma entrada X e produz uma sai- da Y. Durante o treinamento em redes neurais artificiais (RNAs), o movimento de forward-propagation continua até o momento em que produz um custo escalar (scalar cost). O foco de nossos estudos sera sobre backpropagation. Continuando a atividade em RNAs, backpropagation refere-se a quando um algoritmo, geral- mente apelidado de backprop pelos programadores, permite que a informagao daquele custo escalar (scalar cost) mova-se em fluxo para tras com objetivo de calcular ou computar o gradiente (gradient). ASSISTA 0 video What is backpropagation really doing? | Deep learning, chapter 3, do canal 3Blue1Brown, ajuda a enten- der backpropagation de uma forma visual, sem ficar lendo livros e mais livros com equagdes matematicas. No canal, sao abordados outros assuntos de Deep Learning (DL). E importantissimo perceber, ainda segundo Goodfellow, Bengio e Courville (2016), que o algoritmo de backpropagation é o método para computar ou cal- cular o gradiente. Para que ocorra aprendizado ou aprendizagem com gradien- te, € empregue outro algoritmo, mas ndo o de backpropagation. Portanto, ele isoladamente nado resulta em aprendizado ou aprendizagem. ASSISTA Para dinamizar o aprendizado sobre Deep Learning (DL), assista ao video Backpropagation calculus | Deep learning, chapter 4, do canal 3Blue1Brown, no YouTube. O video é um pouco mais complexo, em termos de matematica e de calculo, do que o video anterior, mas, mesmo que nao se compreendam todas as formulas matematicas, o dinamis- mo do video ajuda a conceber o que é backpropagation. APRENDIZAGEM PROFUNDA @ © 7 Backpropagation Through Time (BPTT) A “Regra da Cadeia” em Calculo é importante ndo apenas no processo “comum” de Backpropagation, mas também no chamado Backpropagation Through Time (BPTT), uma aplicagdo muito especifica de Backpropagation, no caso de redes neurais recorrentes ou recurrent neural networks (RNNs). De acordo com o site Dive Into Deep Learning, o BPTT é conceituado como a aplicagao de backpropagation para sequenciar modelos com um estado oculto (hidden state), porém, com problemas computacionais, ja que sdo necessarios calculos muito complexos. E possivel usar a regra da cadeia, de Calculo, para programacdo recursiva, mas isto ndo é 0 ideal. Ainda assim, é indispensavel a truncagem dos dados. oc Gradiente De acordo com o artigo “ML Stochastic Gradient Descent (SGD)” do site Geeks For Geeks, as técnicas de gradientes descendentes sao populares para otimizar resultados em algoritmos de Deep Learning, sendo utilizadas na maio- ria dos algoritmos dessa categoria. Um gradiente é definido como uma incli- nacdo de uma fung¢do, com valor de alteragdo de algum parametro, de acordo com a quantidade de alteracdo de outro pardmetro. As fungées de gradientes sdo matematicamente expressas como derivadas parciais de um grupo de pa- rametros em relacao aos seus valores de entrada. A descida do gradiente é uma funcao do tipo convexa, descrita como um método iterativo aplicado para encontrar valores de parametros de uma fun- ¢ao que minimizara ao maximo a funcdo de erro. Os valores dos pardmetros sao definidos por um valor especifico e, apds 0 Gra- dient Descent, executados de maneira interativa, a fim de obter os valores mais adequados para os parametros, por meio de calculos para encon- trar o valor minimo possivel da funcao de erro encontrada. Em seguida, serdo vistos os trés tipos de arquiteturas de algoritmos de gradien- tes mais frequentes. APRENDIZAGEM PROFUNDA ro) © = Descida de gradiente em lote O gradiente, conhecido também como descida de gradiente em lote, é uma funcao que otimiza a realizag¢do de funcdes complexas, de forma interativa, dentro de um algoritmo de computador. Em outras palavras, seu objetivo é dar uma funcao de valores aleatorios para encontrar um minimo de erro possivel Para pequenos subconjuntos de funcgées. Para aqueles que sdo convexos, ha apenas um Unico minimo que opera como valor global. Em algumas funcées de treinamento de algoritmos ha muitos minimos, ou valores de erro, locais. Entdo, é preciso se certificar de que 0 algoritmo de deep learning, através do algoritmo de otimizagdo de descida de gradiente, encon- trou o melhor minimo possivel, em vez de ficar preso em minimos subotimis- tas, um problema bastante comum durante o treinamento de algoritmos. Para simplificar a explicacdo sobre a descida do gradiente, suponha que ha uma fungao de varias variaveis e que carece de ser minimizada. Logo, aprovei- ta-se a técnica de Descida do Gradiente, visto que ela resolve esses tipos de problemas de minimizacao. Agora, pense também que se quer minimizar uma fungdo com os valores C(v), ou qualquer outra fungdo com valores variaveis. Assim, para minimizar C(v), o C é uma funcgao com duas variaveis, denominadas de v7 e de v2, conforme 0 Grafico 2. GRAFICO 2. ANALOGIA DA VISAO DO QUE £ UM ALGORITMO DE GRADIENTE no SSS Fontw: DATA SCIENCE ACADEMY, 2019, APRENDIZAGEM PROFUNDA ro) O objetivo é descobrir onde a funcao C atinge o seu minimo de erro global. No Grafico 2, isto fica claro, porque se percebe o grafico de erro minimo na analise da imagem. Apesar disso, a etapa é complicada para 0 treinamento de um algoritmo, pois ndo é possivel visualizar um grafico para saber o qudo perto ou longe se esta do erro minimo. Uma das formas encontradas para tentar resolver o problema é 0 emprego de calculos, como Algebra Linear, para que se consiga chegar no valor minimo com base em uma forma analitica. Também se faz 0 uso do calculo de deriva- das para descobrir se a fungdo C esta subindo ou descendo no gradiente, ou melhor, se 0 erro esta ficando maior ou menor durante o treinamento, tendo bom desempenho quando a funcdo C tem apenas uma ou algumas variaveis, mas intricado se houver outras variaveis. Alguns algoritmos grandes, as vezes, fazem o uso de bilhdes de pesos e bias, uma forma emaranhada de se calcular para conseguir diminuir a fungdo de erro. Desta forma, algo a mais deve ser feito, no caso, de um algoritmo de otimiza¢gao capaz de minimizar C(v). Como a assimilagdo de como funciona um gradiente é algo bastante abs- trato, se recorrera a uma analogia para ajudar a decifrar o mesmo e encontrar uma solugdo. Comparando a funcdo com um vale, se imagina que ha uma bola rolando por sua encosta, conforme o Grafico 3. GRAFICO 3. EXEMPLO DE ANALOGIA Peso inicial J (w) Custo minimo global Fontw: DATA ACADEMY, 2019. Se a bola rola para o fundo, é possivel adotar o mesmo método para en- contrar o minimo de erro da func¢ao, escolhendo aleatoriamente um ponto de partida e simulando seu movimentode descida no vale. Esse € um modelo de APRENDIZAGEM PROFUNDA © simulacao feito com derivadas aplicadas a fungao C e, por elas, se descobre tudo sobre o local no vale (fungdo C) em que a bola esta. Gragas as derivadas, é possivel verificar quando uma aceleracdo é crescente ou decrescente. Caso seja crescente, 0 erro esta subindo e 0 treino esta piorando. Na situagao opos- ta, a prescrigdo do treinamento esta aumentando quando a bola esta indo mais para a curva, ou melhor, o erro vai mais para baixo. Conforme o que consta no site Data Science Academy, a descida do gra- diente é um algoritmo de otimizagdo empregado para achar os valores de parametros (weight e bias) de uma funcdo, com 0 objetivo de diminuir o erro. Tal modelo de algoritmo é mais recomendado quando os parametros nao sao possiveis de serem calculados de uma forma analitica, como algebra linear, e eles sdo pesquisados por um algoritmo de otimizagdo. Tudo comeca com a aplicacgao de valores de inicio para o coeficiente ou coeficiente da fun- ¢ao. O mesmo pode ser 0.0 ou, dependendo, um valor pequeno e aleatorio, ressaltando que a inicializacdo do coeficiente é uma parte importante, em que diversas técnicas sao aplicadas sob responsabilidade do cientista de dados que estudara o problema a ser resolvido e escolher qual o melhor algoritmo para tal aplicagdo. Assim, os coeficientes se iniciam ja com os va- lores de pesos e bias. coeficiente = 0.0 O custo dos coeficientes é explorado por meio de liga¢gdes entre as fungdes e calculando o custo. custo = f (coeficiente) A funcao derivada, ou calculo diferencial, é um conceito que faz referéncia a inclinacao do eixo de uma fungdo em um ponto especifico. Para tanto, ha que se ter conhecimento sobre a inclinagdo do mesmo para aferir a direcdo do sinal e, a partir disso, mover os valores dos coeficientes para termos uma menor taxa de erro, ou custo, no préximo treinamento. delta = derivada(erro) Agora que as derivadas e 0 sentido em que esta o declive sdo conhecidos, modifica-se o valor dos coeficientes. Um parametro de valor de aprendizado tem que ser especificado para gerenciar o quanto os coeficientes conseguirdo alterar a cada atualizagdo. coeficiente = coeficiente - (alfa * delta) APRENDIZAGEM PROFUNDA © O processo é feito varias vezes até que o erro dos coeficientes (fungdo de erro) seja ou 0,0 ou o mais préximo o possivel disso, indicando que os resulta- dos fornecidos pela camada de saida da rede estdo cada vez mais proximos dos valores reais e o algoritmo de deep learning esta exato. A técnica de descida de gradiente é bastante complexa e exige que seja cal- culado o gradiente da fungdo de erro ou da funcao que esta sendo otimizada. Por isso, ela sera resumida. Ao pegar os dados e dividi-los em partes de amostras, cada amostra dos da- dos passa as entradas pela rede, fazendo a multiplicagao dos pesos e a soma, superficial em relagdo ao que é feito em uma rede neural artificial, para ter ao final uma saida, ou previsdo da rede. O resultado de safda da rede é comparado com a resposta certa, que calcula o erro pela diferenca entre o dado de saida eo dado original, retroagindo com o backpropagation e adaptando o valor dos pesos para cada neurdénio de cada camada. Depois do ajuste dos pesos, uma nova amostra produzida sera multiplicada pelo valor dos pesos ja atualizados. O procedimento de atualizar o valor dos pesos, dando prioridade a cada carac- teristica dos dados, é chamado de aprendizado. Examinando os dados mais recentes, nota-se que os algoritmos mais atuais de redes neurais artificiais profundas trabalham com uma nova técnica chama- da de minilotes (mini-batches). Nela, passam pela rede varias amostras a fim de aprimorar a exatiddo, calculando o valor médio de erro das amostras, fazendo o backpropagation e o ajuste do valor dos pesos. Tal conceito esta presente no treinamento de grandes modelos de aprendizado profundo. °e Descida estocastica de gradientes de minilote A cada execucdo, a descida do gradiente faz o uso de um conjunto de da- dos, batizados de dataset, para calcular o treinamento. Por esse motivo, ela é chamada de descida de gradiente em lote. Enquanto na descida de gradiente estocastica alguns valores da base de dados, selecionados ao acaso, fazem o calculo, o gradiente estocastico de minilote é definido pela fungao f(x):Rd—> R, em que o intervalo de tempo antes de comecar a interacdo é estabelecido como 0 e a variavel independente desse modelo de tempo é x0eRd, normal- APRENDIZAGEM PROFUNDA © mente obtida por uma inicializagado ocasional. A partir de cada etapa subsequente, em que t> 0, o minilote SGD faz uso de uma amostragem uniforme aleatoria, para construir o minilote B, a partir de valores de indices do conjunto de dados do treinamento. Portanto, usa-se a amostragem com ou sem substituigdo para obter dados de minilote. O pri- meiro método gera dados duplicados no mesmo minilote, e o segundo nao é muito utilizado. BP = EWG Oe) ' 7 Analisando a equacdo, calcula-se o gradiente gt de uma fungdo de objetivo em xt-7 através do minilote BT em etapa de tempo T. Aqui, |B| €0 comprimento do lote, no caso, o numero de amostras. Assim como 0 gradiente estocastico, o minilote SGD gt é feito com base numa amostragem com substituigdo e uma estimativa imparcial do gradiente Vf(xt-1). Recorrendo a taxa de aprendizado (positivo), a relag¢do do minilote SGD na variavel independente é o seguinte: xt <— xt-7-ntgt A alteragdo do gradiente na amostragem ndo aleatoria pode ser diminuida durante um processo iterativo pois, na pratica, a taxa de aprendizado do SGD, ou minilote, se deteriora automaticamente na interacdo, como nt=nt? (usual- mente a =-1 ou - 0.5) ent = na‘ (por exemplo, a =0.95), ou por meio da reducado da taxa de aprendizado, uma vez por itera¢ao ou apos varias iteragdes. Como resultado, a variagdo da taxa de aprendizado SGD (minilote) se reduzira. A des- cida usufrui do verdadeiro gradiente da fungdo objetivo no momento do trei- namento, sem autodeteriorar a taxa de aprendizado O erro calculado em cada interagdo é 0 O/|B|), em que o comprimento do lote 6 1 e o algoritmo é um SGD quando o tamanho do lote é igual ao tamanho dos dados para treinar o algoritmo numa descida de gradiente. Se o tamanho de dados do lote é peque- no, serdo exigidos menos recursos de hardware, o que agilizara o treinamento. Conforme o ta- manho do lote, 0 gradiente de minilote tem in- formacées redundantes. Por isso, é recomen- dado calcular mais casos para um tamanho de lote maior, assim como aumentar o numero de ve- zes APRENDIZAGEM PROFUNDA © que o algoritmo de treinamento sera executado. © a Gradiente estocastico Como o proprio nome sugere, a palavra designa um sistema, algoritmo ou processo vinculado a uma probabilidade aleatdoria na descida do gradiente es- tocastico, o que requer amostras aleatérias em vez de um conjunto de dados para cada treinamento. No gradiente descendente, uma técnica chamada de “lote” diz qual o numero total de amostras de um dataset, aproveitado para cal- cular o gradiente de cada interagdo. Consequentemente, na otimiza¢ao tipica de descida de gradiente, como na descida em lote, ele forma um conjunto de dados completo para fazer os testes de performance de algoritmos descenden- tes, que daria um resultado melhor, mas tornaria bastante lenta a execucgao do algoritmo de treinamento. Esse problema é resolvido pela descida estocastica de gradiente, que conta apenas com uma Unica amostra de dados embaralha- da para executar o treinamento e comparagao do algoritmo. Algo que se observa bastante é que os algoritmos SGD sao mais barulhen- tos do que os algoritmos tipicos de descida de gradiente, transformando em necessidade o uso de repeticdes de treinamento muito maior no algoritmo de treinamento para alcangar os valores minimos de erro
Compartilhar