{"id":76,"date":"2023-02-21T23:42:45","date_gmt":"2023-02-21T23:42:45","guid":{"rendered":"https:\/\/thedataprocessblog.com\/?p=76"},"modified":"2023-02-21T23:42:46","modified_gmt":"2023-02-21T23:42:46","slug":"por-que-os-transformers-mudaram-tudo-lstms","status":"publish","type":"post","link":"https:\/\/thedataprocessblog.com\/?p=76&lang=pt","title":{"rendered":"Por que os transformers mudaram tudo: LSTMs"},"content":{"rendered":"\n<p>Depois de ver os problemas dos RNNs simples vistos antes, pesquisadores propuseram uma nova abordagem para modelos relacionados \u00e0 mem\u00f3ria. A nova abordagem foi chamada de modelos LSTM.<\/p>\n\n\n\n<h3>Arquitetura Long Short Term Memory (LSTM)<\/h3>\n\n\n\n<p>Embora os modelos LSTM sejam uma variante das Redes Neurais Recorrentes, eles apresentam mudan\u00e7as muito importantes. A ideia \u00e9 separar o estado da c\u00e9lula dos valores de entrada atuais.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/colah.github.io\/posts\/2015-08-Understanding-LSTMs\/img\/LSTM3-chain.png\" alt=\"\" width=\"522\" height=\"196\"\/><figcaption class=\"wp-element-caption\">Source: https:\/\/colah.github.io\/posts\/2015-08-Understanding-LSTMs\/<\/figcaption><\/figure><\/div>\n\n\n<p>A linha horizontal superior \u00e9 chamada de estado da c\u00e9lula, \u00e9 considerada a &#8220;mem\u00f3ria&#8221; de longo prazo da c\u00e9lula. Outro componente especial da arquitetura s\u00e3o os port\u00f5es. Sempre que voc\u00ea vir um sinal de multiplica\u00e7\u00e3o, significa que \u00e9 um port\u00e3o.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/thedataprocessblog.com\/wp-content\/uploads\/2023\/02\/image-1.png\" alt=\"\" class=\"wp-image-72\" width=\"383\" height=\"71\" srcset=\"https:\/\/thedataprocessblog.com\/wp-content\/uploads\/2023\/02\/image-1.png 950w, https:\/\/thedataprocessblog.com\/wp-content\/uploads\/2023\/02\/image-1-300x56.png 300w, https:\/\/thedataprocessblog.com\/wp-content\/uploads\/2023\/02\/image-1-768x143.png 768w\" sizes=\"(max-width: 383px) 100vw, 383px\" \/><figcaption class=\"wp-element-caption\">Source: https:\/\/colah.github.io\/posts\/2015-08-Understanding-LSTMs\/<\/figcaption><\/figure><\/div>\n\n\n<h4>Port\u00f5es (<em>gates<\/em>)<\/h4>\n\n\n\n<p>Nesse caso, eles s\u00e3o precedidos por uma fun\u00e7\u00e3o de ativa\u00e7\u00e3o sigm\u00f3ide e a explica\u00e7\u00e3o para isso \u00e9 que a sa\u00edda da fun\u00e7\u00e3o sigm\u00f3ide vai de 0 a 1, portanto, a opera\u00e7\u00e3o de multiplica\u00e7\u00e3o funciona como um port\u00e3o para deixar alguma informa\u00e7\u00e3o passar para o pr\u00f3ximo est\u00e1gio ou ser esquecida . Dessa forma, o estado da c\u00e9lula pode ser alterado e apenas as coisas importantes no momento s\u00e3o lembradas pelo modelo.<\/p>\n\n\n\n<h4>A sa\u00edda<\/h4>\n\n\n\n<p>A sa\u00edda do modelo \u00e9 o valor <em>h<\/em>, que pode ser visto como uma vers\u00e3o filtrada do estado da c\u00e9lula. Ele \u00e9 filtrado no \u00faltimo port\u00e3o \u00e0 direita, que tem como entrada o estado da c\u00e9lula passado por uma fun\u00e7\u00e3o <em>tanh<\/em>.<\/p>\n\n\n\n<h4>Outras variantes<\/h4>\n\n\n\n<h5>conex\u00f5es de olho m\u00e1gico<\/h5>\n\n\n\n<p>Introduzida por <a href=\"ftp:\/\/ftp.idsia.ch\/pub\/juergen\/TimeCount-IJCNN2000.pdf\">Gers &amp; Schmidhuber (2000)<\/a>, a abordagem olho m\u00e1gico fornece aos port\u00f5es o pr\u00f3prio estado da c\u00e9lula como uma entrada.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/thedataprocessblog.com\/wp-content\/uploads\/2023\/02\/image-2-1024x409.png\" alt=\"\" class=\"wp-image-73\" width=\"555\" height=\"221\" srcset=\"https:\/\/thedataprocessblog.com\/wp-content\/uploads\/2023\/02\/image-2-1024x409.png 1024w, https:\/\/thedataprocessblog.com\/wp-content\/uploads\/2023\/02\/image-2-300x120.png 300w, https:\/\/thedataprocessblog.com\/wp-content\/uploads\/2023\/02\/image-2-768x307.png 768w, https:\/\/thedataprocessblog.com\/wp-content\/uploads\/2023\/02\/image-2.png 1032w\" sizes=\"(max-width: 555px) 100vw, 555px\" \/><figcaption class=\"wp-element-caption\">Source: https:\/\/d3i71xaburhd42.cloudfront.net\/545a4e23bf00ddbc1d3325324b4c61f57cf45081\/2-Figure1-1.png<\/figcaption><\/figure><\/div>\n\n\n<h5>Gated Recurrent unit (GRU)<\/h5>\n\n\n\n<p>Introduzido por <a href=\"http:\/\/arxiv.org\/pdf\/1406.1078v3.pdf\">Cho, et al. (2014)<\/a>, ele mescla os port\u00f5es de entrada e de esquecimento em um \u00fanico port\u00e3o, chamado de &#8220;port\u00e3o de atualiza\u00e7\u00e3o&#8221;. Isso atinge uma arquitetura mais simples, sendo mais f\u00e1cil de treinar e computacionalmente mais barata. Esta variante ganhou muita popularidade ao longo dos anos.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/thedataprocessblog.com\/wp-content\/uploads\/2023\/02\/image-3-1024x316.png\" alt=\"\" class=\"wp-image-74\" width=\"551\" height=\"169\" srcset=\"https:\/\/thedataprocessblog.com\/wp-content\/uploads\/2023\/02\/image-3-1024x316.png 1024w, https:\/\/thedataprocessblog.com\/wp-content\/uploads\/2023\/02\/image-3-300x93.png 300w, https:\/\/thedataprocessblog.com\/wp-content\/uploads\/2023\/02\/image-3-768x237.png 768w, https:\/\/thedataprocessblog.com\/wp-content\/uploads\/2023\/02\/image-3-1536x474.png 1536w, https:\/\/thedataprocessblog.com\/wp-content\/uploads\/2023\/02\/image-3.png 1826w\" sizes=\"(max-width: 551px) 100vw, 551px\" \/><figcaption class=\"wp-element-caption\">Source: https:\/\/colah.github.io\/posts\/2015-08-Understanding-LSTMs\/<\/figcaption><\/figure><\/div>\n\n\n<h3>Conclus\u00e3o<\/h3>\n\n\n\n<p>A introdu\u00e7\u00e3o da arquitetura LSTM trouxe muito mais possibilidades para resolver problemas. O modelo proposto e suas variantes t\u00eam sido utilizados com sucesso em v\u00e1rias solu\u00e7\u00f5es relacionadas \u00e0 mem\u00f3ria.<\/p>\n\n\n\n<p>O pr\u00f3ximo grande passo que ser\u00e1 discutido no pr\u00f3ximo artigo \u00e9 a arquitetura Attention introduzida pelo Google. Uma abordagem que, novamente, mudou tudo no mundo do aprendizado de m\u00e1quina e criou muito mais possibilidades.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Depois de ver os problemas dos RNNs simples vistos antes, pesquisadores propuseram uma nova abordagem para modelos relacionados \u00e0 mem\u00f3ria. A nova abordagem foi chamada de modelos LSTM. Arquitetura Long Short Term Memory (LSTM) Embora os modelos LSTM sejam uma variante das Redes Neurais Recorrentes, eles apresentam mudan\u00e7as muito importantes. A ideia \u00e9 separar o &hellip; <a href=\"https:\/\/thedataprocessblog.com\/?p=76&#038;lang=pt\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Por que os transformers mudaram tudo: LSTMs<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[9],"tags":[],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/thedataprocessblog.com\/index.php?rest_route=\/wp\/v2\/posts\/76"}],"collection":[{"href":"https:\/\/thedataprocessblog.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/thedataprocessblog.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/thedataprocessblog.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/thedataprocessblog.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=76"}],"version-history":[{"count":1,"href":"https:\/\/thedataprocessblog.com\/index.php?rest_route=\/wp\/v2\/posts\/76\/revisions"}],"predecessor-version":[{"id":77,"href":"https:\/\/thedataprocessblog.com\/index.php?rest_route=\/wp\/v2\/posts\/76\/revisions\/77"}],"wp:attachment":[{"href":"https:\/\/thedataprocessblog.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=76"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/thedataprocessblog.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=76"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/thedataprocessblog.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=76"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}