Uma estrutura para execução de redes neurais evolutivas na GPU
Autor(a) principal: | |
---|---|
Data de Publicação: | 2019 |
Tipo de documento: | Dissertação |
Idioma: | por |
Título da fonte: | Repositório Institucional da UFRJ |
Texto Completo: | http://hdl.handle.net/11422/14045 |
Resumo: | [PT] Em neuroevolução, redes neurais são treinadas utilizando algoritmos evolutivos ao invés de utilizar o método do gradiente descendente. Uma das vantagens em relação ao método do gradiente descendente, é que torna possível além de definir o valor dos pesos de uma rede neural, também sua estrutura. Na otimização de redes neurais evolutivas com mesmo peso, são avaliadas todas as redes neurais de uma população para verificar qual é o valor da função fitness que cada rede neural irá possuir e com este valor, verificar quais são as redes neurais que irão passar para a próxima geração. O GPU (Graphic Processor Unit) é bastante utilizado nos treinos de redes neurais, devido a sua alta capacidade de paralelismo [1]. Porém, devido a sua arquitetura ser diferente de um processador comum, alguns algoritmos precisam ser executados de maneira diferente para aproveitar o aumento de desempenho que a arquitetura pode oferecer. Neste trabalho é criada uma arquitetura que seja capaz de diminuir o tempo de treino das redes neurais evolutivas através da junção dos pesos de toda população por camada fazendo com que cada camada represente os pesos de toda população. Desta forma é possível vetorizar as funções de avaliação de redes neurais. No treino para classificar o dataset MNIST, esta estrutura conseguiu obter um ganho de desempenho de até 64% nas redes neurais MLP e um speedup de 20 no cálculo do fitness. |
id |
UFRJ_1e97146bed68b6e0183f0a16d107b8ca |
---|---|
oai_identifier_str |
oai:pantheon.ufrj.br:11422/14045 |
network_acronym_str |
UFRJ |
network_name_str |
Repositório Institucional da UFRJ |
repository_id_str |
|
spelling |
Mandoju, Jorge Rama Krsnahttp://lattes.cnpq.br/3937502490683382http://lattes.cnpq.br/4421942859796369Xexéo, Geraldo BonorinoAlvim, Leandro Guimaraes MarquesSilva, Geraldo Zimbrão da2021-04-05T02:17:45Z2023-11-30T03:04:11Z2019-08http://hdl.handle.net/11422/14045[PT] Em neuroevolução, redes neurais são treinadas utilizando algoritmos evolutivos ao invés de utilizar o método do gradiente descendente. Uma das vantagens em relação ao método do gradiente descendente, é que torna possível além de definir o valor dos pesos de uma rede neural, também sua estrutura. Na otimização de redes neurais evolutivas com mesmo peso, são avaliadas todas as redes neurais de uma população para verificar qual é o valor da função fitness que cada rede neural irá possuir e com este valor, verificar quais são as redes neurais que irão passar para a próxima geração. O GPU (Graphic Processor Unit) é bastante utilizado nos treinos de redes neurais, devido a sua alta capacidade de paralelismo [1]. Porém, devido a sua arquitetura ser diferente de um processador comum, alguns algoritmos precisam ser executados de maneira diferente para aproveitar o aumento de desempenho que a arquitetura pode oferecer. Neste trabalho é criada uma arquitetura que seja capaz de diminuir o tempo de treino das redes neurais evolutivas através da junção dos pesos de toda população por camada fazendo com que cada camada represente os pesos de toda população. Desta forma é possível vetorizar as funções de avaliação de redes neurais. No treino para classificar o dataset MNIST, esta estrutura conseguiu obter um ganho de desempenho de até 64% nas redes neurais MLP e um speedup de 20 no cálculo do fitness.[EN] In neuroevolution, neural networks are trained using evolutionary algorithms instead of the gradient descent method. One of the advantages over the gradient descent method is that it makes it possible not only to define the value of the weights of a neural network, but also its structure. In the optimization of evolutionary neural networks with the same weight, all neural networks of a population are evaluated to verify what is the value of the fitness function that each neural network will possess and with this value, to verify which are the neural networks that will move on to the next generation. The GPU (Graphic Processor Unit) is widely used in neural network training due to its high parallelism capability [1]. However, because their architecture is different from a common processor, some algorithms need to be executed differently to take advantage of the increased performance that the architecture can provide. In this work an architecture is created that is able to reduce the training time of evolutionary neural networks by joining the weights of all population by layer making each layer represent the weights of the entire population. In this way it is possible to vectorize the evaluation functions of neural networks. In training to classify the MNIST dataset, this structure has achieved a performance gain of up to 64% in neural networks MLP and a speedup of 20 in fitness calculation.Submitted by Paloma Arruda (palomaoliiveira75@gmail.com) on 2021-02-22T19:34:31Z No. of bitstreams: 1 JorgeRamaKrsnaMandoju.pdf: 3520324 bytes, checksum: f79013235c0f6520638d12823319a972 (MD5)Approved for entry into archive by Moreno Barros (moreno@ct.ufrj.br) on 2021-04-05T02:17:45Z (GMT) No. of bitstreams: 1 JorgeRamaKrsnaMandoju.pdf: 3520324 bytes, checksum: f79013235c0f6520638d12823319a972 (MD5)Made available in DSpace on 2021-04-05T02:17:45Z (GMT). No. of bitstreams: 1 JorgeRamaKrsnaMandoju.pdf: 3520324 bytes, checksum: f79013235c0f6520638d12823319a972 (MD5) Previous issue date: 2019-08porUniversidade Federal do Rio de JaneiroPrograma de Pós-Graduação em Engenharia de Sistemas e ComputaçãoUFRJBrasilInstituto Alberto Luiz Coimbra de Pós-Graduação e Pesquisa de EngenhariaCNPQ::ENGENHARIASRedes neurais evolutivasGPUCUDAUma estrutura para execução de redes neurais evolutivas na GPUA structure for evolutionary neural networks in GPUinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisabertoinfo:eu-repo/semantics/openAccessreponame:Repositório Institucional da UFRJinstname:Universidade Federal do Rio de Janeiro (UFRJ)instacron:UFRJORIGINALJorgeRamaKrsnaMandoju.pdfJorgeRamaKrsnaMandoju.pdfapplication/pdf3520324http://pantheon.ufrj.br:80/bitstream/11422/14045/1/JorgeRamaKrsnaMandoju.pdff79013235c0f6520638d12823319a972MD51LICENSElicense.txtlicense.txttext/plain; charset=utf-81853http://pantheon.ufrj.br:80/bitstream/11422/14045/2/license.txtdd32849f2bfb22da963c3aac6e26e255MD5211422/140452023-11-30 00:04:11.353oai:pantheon.ufrj.br:11422/14045TElDRU7Dh0EgTsODTy1FWENMVVNJVkEgREUgRElTVFJJQlVJw4fDg08KCkFvIGFzc2luYXIgZSBlbnRyZWdhciBlc3RhIGxpY2Vuw6dhLCB2b2PDqihzKSBvKHMpIGF1dG9yKGVzKSBvdSBwcm9wcmlldMOhcmlvKHMpIGRvcyBkaXJlaXRvcyBhdXRvcmFpcyBjb25jZWRlKG0pIGFvIFJlcG9zaXTDs3JpbyBQYW50aGVvbiBkYSBVbml2ZXJzaWRhZGUgRmVkZXJhbCBkbyBSaW8gZGUgSmFuZWlybyAoVUZSSikgbyBkaXJlaXRvIG7Do28gLSBleGNsdXNpdm8gZGUgcmVwcm9kdXppciwgY29udmVydGVyIChjb21vIGRlZmluaWRvIGFiYWl4byksIGUvb3UgZGlzdHJpYnVpciBvIGRvY3VtZW50byBlbnRyZWd1ZSAoaW5jbHVpbmRvIG8gcmVzdW1vKSBlbSB0b2RvIG8gbXVuZG8sIGVtIGZvcm1hdG8gZWxldHLDtG5pY28gZSBlbSBxdWFscXVlciBtZWlvLCBpbmNsdWluZG8sIG1hcyBuw6NvIGxpbWl0YWRvIGEgw6F1ZGlvIGUvb3UgdsOtZGVvLgoKVm9jw6ogY29uY29yZGEgcXVlIGEgVUZSSiBwb2RlLCBzZW0gYWx0ZXJhciBvIGNvbnRlw7pkbywgdHJhZHV6aXIgYSBhcHJlc2VudGHDp8OjbyBkZSBxdWFscXVlciBtZWlvIG91IGZvcm1hdG8gY29tIGEgZmluYWxpZGFkZSBkZSBwcmVzZXJ2YcOnw6NvLgoKVm9jw6ogdGFtYsOpbSBjb25jb3JkYSBxdWUgYSBVRlJKIHBvZGUgbWFudGVyIG1haXMgZGUgdW1hIGPDs3BpYSBkZXNzYSBzdWJtaXNzw6NvIHBhcmEgZmlucyBkZSBzZWd1cmFuw6dhLCBiYWNrLXVwIGUgcHJlc2VydmHDp8OjbyBkaWdpdGFsLgoKRGVjbGFyYSBxdWUgbyBkb2N1bWVudG8gZW50cmVndWUgw6kgc2V1IHRyYWJhbGhvIG9yaWdpbmFsLCBlIHF1ZSB2b2PDqiB0ZW0gbyBkaXJlaXRvIGRlIGNvbmNlZGVyIG9zIGRpcmVpdG9zIGNvbnRpZG9zIG5lc3RhIGxpY2Vuw6dhLiBWb2PDqiB0YW1iw6ltIGRlY2xhcmEgcXVlIGEgc3VhIGFwcmVzZW50YcOnw6NvLCBjb20gbyBtZWxob3IgZGUgc2V1cyBjb25oZWNpbWVudG9zLCBuw6NvIGluZnJpbmdpIGRpcmVpdG9zIGF1dG9yYWlzIGRlIHRlcmNlaXJvcy4KClNlIG8gZG9jdW1lbnRvIGVudHJlZ3VlIGNvbnTDqW0gbWF0ZXJpYWwgZG8gcXVhbCB2b2PDqiBuw6NvIHRlbSBkaXJlaXRvcyBkZSBhdXRvciwgZGVjbGFyYSBxdWUgb2J0ZXZlIGEgcGVybWlzc8OjbyBpcnJlc3RyaXRhIGRvIGRldGVudG9yIGRvcyBkaXJlaXRvcyBhdXRvcmFpcyBlIGNvbmNlZGUgYSBVRlJKIG9zIGRpcmVpdG9zIHJlcXVlcmlkb3MgcG9yIGVzdGEgbGljZW7Dp2EsIGUgcXVlIGVzc2UgbWF0ZXJpYWwgZGUgcHJvcHJpZWRhZGUgZGUgdGVyY2Vpcm9zIGVzdMOhIGNsYXJhbWVudGUgaWRlbnRpZmljYWRvIGUgcmVjb25oZWNpZG8gbm8gdGV4dG8gb3UgY29udGXDumRvIGRhIHN1Ym1pc3PDo28uCgpTZSBvIGRvY3VtZW50byBlbnRyZWd1ZSDDqSBiYXNlYWRvIGVtIHRyYWJhbGhvIHF1ZSBmb2ksIG91IHRlbSBzaWRvIHBhdHJvY2luYWRvIG91IGFwb2lhZG8gcG9yIHVtYSBhZ8OqbmNpYSBvdSBvdXRybyhzKSBvcmdhbmlzbW8ocykgcXVlIG7Do28gYSBVRlJKLCB2b2PDqiBkZWNsYXJhIHF1ZSBjdW1wcml1IHF1YWxxdWVyIGRpcmVpdG8gZGUgUkVWSVPDg08gb3UgZGUgb3V0cmFzIG9icmlnYcOnw7VlcyByZXF1ZXJpZGFzIHBvciBjb250cmF0byBvdSBhY29yZG8uCgpBIFVGUkogaXLDoSBpZGVudGlmaWNhciBjbGFyYW1lbnRlIG8ocykgc2V1KHMpIG5vbWUocykgY29tbyBhdXRvcihlcykgb3UgcHJvcHJpZXTDoXJpbyhzKSBkYSBzdWJtaXNzw6NvLCBlIG7Do28gZmFyw6EgcXVhbHF1ZXIgYWx0ZXJhw6fDo28sIHBhcmEgYWzDqW0gZGFzIHBlcm1pdGlkYXMgcG9yIGVzdGEgbGljZW7Dp2EsIG5vIGF0byBkZSBzdWJtaXNzw6NvLgo=Repositório de PublicaçõesPUBhttp://www.pantheon.ufrj.br/oai/requestopendoar:2023-11-30T03:04:11Repositório Institucional da UFRJ - Universidade Federal do Rio de Janeiro (UFRJ)false |
dc.title.pt_BR.fl_str_mv |
Uma estrutura para execução de redes neurais evolutivas na GPU |
dc.title.alternative.pt_BR.fl_str_mv |
A structure for evolutionary neural networks in GPU |
title |
Uma estrutura para execução de redes neurais evolutivas na GPU |
spellingShingle |
Uma estrutura para execução de redes neurais evolutivas na GPU Mandoju, Jorge Rama Krsna CNPQ::ENGENHARIAS Redes neurais evolutivas GPU CUDA |
title_short |
Uma estrutura para execução de redes neurais evolutivas na GPU |
title_full |
Uma estrutura para execução de redes neurais evolutivas na GPU |
title_fullStr |
Uma estrutura para execução de redes neurais evolutivas na GPU |
title_full_unstemmed |
Uma estrutura para execução de redes neurais evolutivas na GPU |
title_sort |
Uma estrutura para execução de redes neurais evolutivas na GPU |
author |
Mandoju, Jorge Rama Krsna |
author_facet |
Mandoju, Jorge Rama Krsna |
author_role |
author |
dc.contributor.advisorLattes.pt_BR.fl_str_mv |
http://lattes.cnpq.br/3937502490683382 |
dc.contributor.authorLattes.pt_BR.fl_str_mv |
http://lattes.cnpq.br/4421942859796369 |
dc.contributor.author.fl_str_mv |
Mandoju, Jorge Rama Krsna |
dc.contributor.referee1.fl_str_mv |
Xexéo, Geraldo Bonorino |
dc.contributor.referee2.fl_str_mv |
Alvim, Leandro Guimaraes Marques |
dc.contributor.advisor1.fl_str_mv |
Silva, Geraldo Zimbrão da |
contributor_str_mv |
Xexéo, Geraldo Bonorino Alvim, Leandro Guimaraes Marques Silva, Geraldo Zimbrão da |
dc.subject.cnpq.fl_str_mv |
CNPQ::ENGENHARIAS |
topic |
CNPQ::ENGENHARIAS Redes neurais evolutivas GPU CUDA |
dc.subject.por.fl_str_mv |
Redes neurais evolutivas GPU CUDA |
description |
[PT] Em neuroevolução, redes neurais são treinadas utilizando algoritmos evolutivos ao invés de utilizar o método do gradiente descendente. Uma das vantagens em relação ao método do gradiente descendente, é que torna possível além de definir o valor dos pesos de uma rede neural, também sua estrutura. Na otimização de redes neurais evolutivas com mesmo peso, são avaliadas todas as redes neurais de uma população para verificar qual é o valor da função fitness que cada rede neural irá possuir e com este valor, verificar quais são as redes neurais que irão passar para a próxima geração. O GPU (Graphic Processor Unit) é bastante utilizado nos treinos de redes neurais, devido a sua alta capacidade de paralelismo [1]. Porém, devido a sua arquitetura ser diferente de um processador comum, alguns algoritmos precisam ser executados de maneira diferente para aproveitar o aumento de desempenho que a arquitetura pode oferecer. Neste trabalho é criada uma arquitetura que seja capaz de diminuir o tempo de treino das redes neurais evolutivas através da junção dos pesos de toda população por camada fazendo com que cada camada represente os pesos de toda população. Desta forma é possível vetorizar as funções de avaliação de redes neurais. No treino para classificar o dataset MNIST, esta estrutura conseguiu obter um ganho de desempenho de até 64% nas redes neurais MLP e um speedup de 20 no cálculo do fitness. |
publishDate |
2019 |
dc.date.issued.fl_str_mv |
2019-08 |
dc.date.accessioned.fl_str_mv |
2021-04-05T02:17:45Z |
dc.date.available.fl_str_mv |
2023-11-30T03:04:11Z |
dc.type.status.fl_str_mv |
info:eu-repo/semantics/publishedVersion |
dc.type.driver.fl_str_mv |
info:eu-repo/semantics/masterThesis |
format |
masterThesis |
status_str |
publishedVersion |
dc.identifier.uri.fl_str_mv |
http://hdl.handle.net/11422/14045 |
url |
http://hdl.handle.net/11422/14045 |
dc.language.iso.fl_str_mv |
por |
language |
por |
dc.rights.driver.fl_str_mv |
info:eu-repo/semantics/openAccess |
eu_rights_str_mv |
openAccess |
dc.publisher.none.fl_str_mv |
Universidade Federal do Rio de Janeiro |
dc.publisher.program.fl_str_mv |
Programa de Pós-Graduação em Engenharia de Sistemas e Computação |
dc.publisher.initials.fl_str_mv |
UFRJ |
dc.publisher.country.fl_str_mv |
Brasil |
dc.publisher.department.fl_str_mv |
Instituto Alberto Luiz Coimbra de Pós-Graduação e Pesquisa de Engenharia |
publisher.none.fl_str_mv |
Universidade Federal do Rio de Janeiro |
dc.source.none.fl_str_mv |
reponame:Repositório Institucional da UFRJ instname:Universidade Federal do Rio de Janeiro (UFRJ) instacron:UFRJ |
instname_str |
Universidade Federal do Rio de Janeiro (UFRJ) |
instacron_str |
UFRJ |
institution |
UFRJ |
reponame_str |
Repositório Institucional da UFRJ |
collection |
Repositório Institucional da UFRJ |
bitstream.url.fl_str_mv |
http://pantheon.ufrj.br:80/bitstream/11422/14045/1/JorgeRamaKrsnaMandoju.pdf http://pantheon.ufrj.br:80/bitstream/11422/14045/2/license.txt |
bitstream.checksum.fl_str_mv |
f79013235c0f6520638d12823319a972 dd32849f2bfb22da963c3aac6e26e255 |
bitstream.checksumAlgorithm.fl_str_mv |
MD5 MD5 |
repository.name.fl_str_mv |
Repositório Institucional da UFRJ - Universidade Federal do Rio de Janeiro (UFRJ) |
repository.mail.fl_str_mv |
|
_version_ |
1784097196277235712 |