Aprendizado Profundo - Redes neurais e o aprendizado profundo

967 views3615 WordsCopy TextShare
UNIVESP
Nesta videoaula iremos consolidar a relação entre as redes neurais e os modelos profundos, bem como ...
Video Transcript:
[Música] Olá bem-vindos a segunda vídeo aula do curso de aprendizado profundo nessa vídeo aula nós vamos conhecer a revisitar o que que são os redes neurais artificiais e que que são as redes Profundas e definir o conceito de profundidade e apresentar algumas das principais arquiteturas que nós temos nessa rede então que são os tópicos que nós iremos cobrir primeiro o que que são as redes neurais artificiais que formam a base da área de aprendizado profundo aí com base nas redes neurais como que a gente define o que que são as redes neurais Profundas o que
que é profundidade do modelo como eu já comentei algumas das principais topologias arquiteturas utilizadas dentro da área de aprendizado profundo e nós vamos fechar essa aula com algo bastante importante que é o conceito de transferir a transferência por aprendizagem ou aprendizagem por transferência de acordo com autor só Relembrando no que que o aprendizado profundo o aprendizado profundo ele vai ser uma sub área da aprendizado de máquina que por sua vez é uma sub área da Inteligência Artificial então quando a gente pensa em aprendizado profundo a gente tem modelos que apresentam essa esse conceito de profundidade
essa organização guiarárquica de representações que está dentro da área de aprendizado de máquina aqui uma situação do autor Yang de seus demais coautores nesse livro de 2016 de aprendizado profundo que ele fala o seguinte não necessariamente um modelo profundo ele precisa ser neuro inspirado ele não necessariamente Precisa Ter como base o modelo de rede neural ele poderia utilizar qualquer modelo de aprendizado de máquina que permita a concepção dessa estrutura hierarquia que nós comentamos na aula anterior ou seja se a partir de um dado bruto eu consigo extrair informações simples a partir dessas informações simples eu
posso compor informações mais complexas e aumentando essa complexidade até chegar em níveis semânticos mais altos ao longo dessa hierarquia nós poderíamos ter modelos profundos que não necessariamente são inspirados Porém na prática o que que nós temos modelo de redes neurais modelos profundos são basicamente modelos a literatura é basicamente sólida com relação a isso onde todos os modelos profundos eles são modelos inspirados mas só lembrando a ressalva que não necessariamente eles precisariam ser inspirados numa Regina oral O que que é uma rede neural uma rede neural ela é uma rede formada por neurônios artificiais inspirada na
estrutura e no funcionamento do neurônio do cérebro do sistema nervoso real do sistema nervoso biológico Então a gente vai ter modelos células que de alguma forma distraem aquilo que a gente conhece da célula neural biológica ou seja até uma entrada um conjunto de pesos gerando uma saída ela pode estar ativa ou não de acordo com a entrada se não tiver compor essas células em uma rede aí o que que define uma rede neural simples de uma rede neural profunda basicamente o número de camadas que nós temos nessa rede então se nós temos do lado esquerdo
nós temos uma rede neural simples uma rede Multilaser tão simples onde nós temos apenas uma camada oculta ou seja dado as entradas fornecidas modelo a gente gera uma representação A partir dessa primeira camada oculta que alimenta a camada de saída e gera a saída do modelo então poderia pensar de classificação com quatro classes aqui quando a gente aumenta essa quantidade de camadas ocultas para duas três quatro cinco a gente começa a aumentar profundidade do modelo Ou seja a Organização hierárquica das representações a gente sabe que essa primeira camada aprende uma representação a partir de entrada
a segunda camada aprende uma representação em função da representação aprendida na camada anterior e assim especialmente Até chegar na camada de saída então grosso modo a gente pode falar que uma rede neural profunda seria uma rede neural que tem pelo menos duas ou mais camadas ocultas em sua estrutura é importante destacar que a profundidade além dessa questão espacial que a quantidade de camadas que a gente tem na rede ela pode ser extrapolada para outros tipos de profundidade por exemplo nós podemos além da profundidade espacial que representa o número de camadas nós podemos definir a profundidade
temporal quando a gente tratar modelos recorrentes o que que acontece a rede recorrente ela no instante t+1 Ela depende da entrada fornecida mas também do estado dela no instante T que depende do estado tem menos um tem menos dois e assim por diante então dado o tamanho da sequência apresentada para rede primeiro passo segundo passo terceiro passo essa quantidade de Passos temporais é pode definir a profundidade temporal do modelo e uma outra forma de definir a profundidade a partir da profundidade em gráfico que é utilizada nas redes neurais é de graça por exemplo se eu
tenho Pensa numa rede social eu tenho uma pessoa e suas respectivos amigos se eu tô analisando para classificar aquela pessoa só ela eu tenho profundidade zero se eu tô analisando ela e os seus respectivos vizinhos diretos eu tenho uma profundidade de passo um estou tonalizando ela os vizinhos e os vizinhos dos vizinhos tem a profundidade de Passo dois no gráfico Então essa profundidade ela pode crescer também de acordo com o número de vizinhos dos vizinhos Dois Vizinhos que a gente tá considerando no gráfico então só para ilustrar para vocês que existem mais de uma forma
da gente definir o que que vem a ser profundidade do modelo embora a definição tradicional essa definição espacial onde a gente define que o modelo é profundo dado a quantidade de camadas ocultas que ele apresenta dentre as grandes vantagens das redes Profundas dos modelos profundos Como já comentado na aula anterior é a sua habilidade a sua grande flexibilidade e a capacidade de realizar problemas fim a fim ou seja começando lá dos dados brutos na imagem por exemplo e até a classificação daquela imagem até o reconhecimento de objetos presentes naquela imagem Então ela pode aprender a
partir de diversos tipos de informação diversos tipos de dados como imagens textos sinais de áudio É sério de mercado financeiro dentro diversas outras e o importante dessa desse processo de aprendizado de representações a partir das camadas é que a gente pode de alguma forma é reduzir a necessidade do especialista de domínio ficar definindo para a gente manualmente aquelas principais características que eu devo apresentar para o modelo de aprendizado de máquina para criar mapeamento entrada saída a própria rede neural profunda ela vai tentar extrair dos dados brutos essas informações necessárias por outro lado uma desvantagem desses
modelos que eles possuem muitos parâmetros então para treinar um modelo com muitos parâmetros Eu preciso de uma grande de dados se eu não tivesse essa grande quantidade de dados certamente eu vou gerar um over Fitness sobre ajuste o modelo e ele não vai conseguir generalizar para situações reais ele vai apenas aprender a tratar os dados de Treinamento então quando Nós pensamos em arquitetura de Profundas nós podemos utilizar diversos tipos de neurônios diversas estruturas de conexões diversas formas de Treinamento ao combinar ao variar essas diferentes características a gente pode conceber a diferença arquiteturas de redes sociais
na sequência eu vou revisitar com vocês vou apresentar para vocês algumas das principais arquiteturas que nós temos nessa área a primeira série é nosso arquitetura padrão de uma rede Multilaser o que a gente chama de uma rede densa porque densa Porque todo o neurônio de uma da camada ele é alimentado por todos os neurônios da camada anterior todos os heróis da próxima camada são alimentados por todos os neurônios da camada anterior e assim sucessivamente camada camada da entrada até a saída por isso que é o modelo denso Nós também temos as redes convolucionais que são
redes amplamente utilizadas por tratamento de imagens a gente vai ter a segunda semana do curso vai ser dedicada a essa classe de redes Então qual que é a diferença dessas redes primeiramente ao invés de utilizar os neurônios densos ou seja aqueles neurônios que são responsáveis por receber informações proveniente de todos os elementos da camada anterior ou da entrada as redes convolucionais cada neurônio ele vai se especializar numa pequena região da entrada então se a gente pensar numa imagem um neurônio específico aqui ele não vai receber como entrada toda a rede toda imagem ele vai receber
como entrada apenas uma pequena parcela dessa imagem que a gente chama de Campo receptivo local aí ao variar essa posição do neurônio na rede a gente vai ter o mesmo neurônio replicado é responsável por mapear outras regiões da imagem assim como aquele neurônio mapeava essa regiões específica e por fim essa rede também ela incorpora na sua camada de saída nas camadas de saída modelos dentro então a gente vai ter uma sequência de modelos convolucionais e no final a camadas densas para fazer a classificação a proibição do problema a gente tem diversas formações nela enete alexnet
resnete vgg dentro de diversas outras que a gente vai ver na próxima semana do curso rede recorrentes são redes bastante interessantes porque elas criam uma espécie de memória ou seja se a gente pensar um neurônio específica esse neurônio H1 aqui o estado dele ele é gerado pelas entradas fornecidas pela rede fornecidas à rede mas Além disso ele também Depende do próprio Estado do neurônio H1 e de outros neurônios da rede no instante anterior então como a rede Ela depende do que foi fornecido para ela naquele instante do tempo e também do passado ela cria esse
mecanismo de memória então de acordo com a informação que ela recebeu antes ela vai responder de maneira diferente aquela nova informação que acabou de chegar naquele instante do tempo além das memórias de curto prazo que são tradicionais das redes recorrentes padrão a gente pode utilizar outro tipo de células Como as células lsdm e célula Geru que são responsáveis pela pela criação de memórias não só de curto prazo mas também memória de longo prazo permitindo que a gente consiga fazer o aprendizado de sequências longas Ou seja eu consigo pegar um pedaço a sequência e falar que
esse pedaço Você conhece ela tem importante para o aprendizado desse outro pedaço da sequência é vários Passos à frente com a profundidade temporal relativamente longa a nossa terceira semana do curso vai ser dedicada às redes decorrentes nós temos as debility é isso aqui se vocês recordam aula passada eu comentei do artigo do hinton de 2006 publicado na revista Science basicamente o que ele fez foi treinar esse tipo de modelo ele utilizou uma estrutura de uma rede RBF treinou essa rede camada acamada ou seja um conjunto de redes rbrf treinada sempre uma rede com base na
saída da camada anterior só que treinada de maneiras Independentes depois ele concatenou todas essas redes todas essas camadas criando uma rede profunda e ajustou os pesos finais essa rede utilizando algoritmo de propagação e ele mostrou que essa concatenação de RBF formando as dbn são bastante interessantes e conseguem fazer mapeamentos não triviais Ou seja já consegue aprender representações bastante interessantes dos dados superando técnicas tradicionais da época como a análise de componentes principais a arquitetura de alta encolder Isso aqui é uma família de arquiteturas a gente vai trabalhar com esse tipo de abordagem esse tipo de modelo
na quarta semana do curso qual que é a característica Central desse modelo primeiro nós temos um codificador e um decodificador como que funciona isso daqui nós temos uma entrada fornecida rede codificador ele é responsável por uma pa essa entrada no que a gente chama de espaço latente representação latente no modelo o decodificador é um processo inverso onde ele vai pegar essa representação latente e vai gerar para gente a saída do modelo sendo que a saída pode ser a própria entrada então a gente vai ter um modelo Auto supervisionado onde vou fornecer entrada eu quero que
aconteça essa extração de características gerar representadas pelo espaço latente E essas características vão ser mapeadas no próprio exemplo Ou seja eu estou aprendendo mapear a em a b e b a gente vai ver qualquer importância desse modelo essa família de alta em codas ela é muito utilizada principalmente naqueles modelos generativos que eu comentei na aula anterior Então ela tem sido bastante utilizada para geração de texto para geração de imagens e a gente vai ver com calma diversas variações desses modelos as redes adversariais generativas essas redes regenerativas adversariais elas são compostas por duas redes principais o
que a gente chama de gerador e o discriminador qual que é a ideia o gerador ele vai partir de uma condição Inicial por exemplo um valor aleatório qualquer ele vai gerar uma saída uma imagem no caso trabalhamos com dígitos humanos gritos ele tá gerando aqui um 8 Então qual que é o objetivo do gerador é gerar imagens da forma da melhor forma possível o que que o discriminador faz ele vai pegar uma imagem seja ela uma imagem real ou uma imagem gerada pelo gerador e vai tentar discriminar essa imagem como sendo verdadeira ou seja uma
imagem que já existe ou uma imagem que foi gerada oficialmente Então por que que é adversarial porque o discriminador Ele vai tentar dar a melhor forma possível separar o que que é fake do que que é real separar o que que é gerado por um modelo do que que é uma imagem de um dígito manuscrito real e o gerador por sua vez ele vai tentar da melhor forma possível gerar melhor imagem de tal forma enganar o discriminador as duas redes elas são treinadas são redes adversais são treinadas de formas simultânea então uma rede Tenta resolver
contornar o problema da outra gerador gerar melhor forma possível de imagem e o discriminador separar essa imagem gerada das imagens reais da melhor forma possível as redes capsulares propostas também pelo grupo do professor de Alfa rinton ela é um modelo bastante recente e basicamente o vetor de saída dessas redes elas podem especificar diferentes características dos objetos contidos na imagem as relações espaciais desses objetos então por exemplo para reconhecer uma face humana não adianta verificar um objeto que tem dois olhos eu tenho que ter os dois olhos posicionados próximos uma mesma linha se eu tenho um
olho na posição do olho na posição da boca se eu só detectar que tem dois olhos eu poderia falar que aquilo é um ser humano mas não necessariamente é um ser humano porque o olho na região da boca não representaria um ser humano tradicional Então essa rede ela consegue extrair esse tipo de informação tanto das características quanto as relações espaciais os objetos contidos na imagem e são modelos bastante novos e bastante promissores Inclusive tem uma patente depositada nos Estados Unidos é sobre esse arquitetura as redes neurais de grafos ou graph New Networks Qual que é
a ideia dessa rede Vamos pensar o seguinte eu quero classificar um dado usuário como sendo de esquerda ou de direita eu posso trair características desse usuário Então desse dessa pessoa e com base nessas características tentar definir se ela de esquerda ou de direita mas que que eu poderia fazer além disso eu poderia pensar em coletar não apenas informações de um indivíduo específico mas da sua rede social ou seja daquelas pessoas que têm ligações com esse indivíduo que eu quero classificar Então qual que é a ideia aqui a gente vai ter o exemplo representado aqui por
exemplo que a pessoa só que nós também Vamos considerar as relações que essas pessoas têm na rede Então a gente vai ter uma função de agregação que vai fazer o seguinte para pegar as características daquelas pessoas daquela pessoa que eu tô classificando as características dos seus vizinhos e compor essas características dentro de um vetor único que depois vai ser classificada pela rede Qual que é a diferença das abordagens não baseadas em gráfico na abordagem tradicional Eu tenho simplesmente o exemplo apresentado para rede na abordagem baseada em gráfico tem o exemplo a rede o gráfico de
relações desses exemplos e a representação de cada exemplo vai depender das características do exemplo e das características dos vizinhos diretamente conectados no gráfico tá são redes bastante importantes também e tem obtidos resultados aí do estado da arte em diversas aplicações como por exemplo produção de propriedades e materiais e moléculas esse tipo de abordagem tem sido bastante utilizado bom o que que é o transfer Lani na transferência por aprendizagem o pessoal seguinte uma rede neural se ela for uma rede profunda ela vai ter uma grande quantidade de parâmetros a gente precisa É treinar essa rede para
que ela aprenda a fazer aquele mapeamento entrada e saída se elas são redes Profundas com essa grande quantidade de parâmetros isso vai demandar para a gente uma grande quantidade de dados então vou ter que ter um alto custo computacional para treinar esse modelo uma grande quantidade de dados a fim de treinar essa rede da melhor forma possível é uma questão uma vez que eu treinei uma rede por exemplo com um conjunto de imagens milhões de imagens Será que eu não conseguiria aproveitar esse conhecimento de um modelo já treinado para resolver um outro problema relacionado um
outro problema também é demanda tratamento de imagens Não será que a gente não consegue transferir esse conhecimento de um problema lá para um problema B Então como que funciona o aprendizado por transferência ou transferência de aprendizagem consiste dois passos principais primeiro nós treinamos uma rede neural profunda modelo profundo com uma grande quantidade de dados até lá milhões de imagens eu treino modelo capaz de classificar as imagens numa grande quantidade de classes aí eu pego essa rede treinada no ambiente a e eu vou utilizar todo aquele conjunto de pesos treinados aprendidos pela rede e aplicar esse
conjunto de peso no ambiente b e geralmente que a gente faz é só trocar o final do modelo se eu tinha um problema que elas ficava objetos imagens em mil classes distintas agora eu quero classificar simplesmente gatos versus cachorro eu poderia trocar aquela camada final é que tinha mil Claro responsável por classificar as mil classes e substitui por apenas dois neurônios representados por classificar como gato ou o cachorro que que é importante e uma vez que eu defini essa nova camada de saída eu tenho apenas uma pequena parcela um pequeno conjunto de dados imagens de
gatos e cachorros eu poderia utilizar esse pequeno conjunto de dados para fazer esse ajuste fino para treinar esse essa camada final e também fazer ajuste fino nas camadas anteriores Qual que é a vantagem disso eu não preciso retreinar toda a rede que para reinar toda a rede Eu precisaria de um grande volume de dados assumindo que eu tenho apenas um pequeno quantidade de dados eu aproveito aquele conhecimento de uma rede já treinada com grande volume de dados e depois só faço o ajuste da camada final ou um ajuste fina das camadas anteriores o fato importante
é que a ideia deve ser relacionados não adianta pegar uma rede neural treinada para imagem e tentar aplicar ela para um outro tipo de dado então só tem uma rede por imagens ela aprendeu a extrair características extrai representações de imagens e não de áudio por exemplo tô aqui uma ilustração né Vamos pensar que eu tenho uma rede nesse caso aqui uma rede multilaser com duas camadas ocultas e uma camada de saída claro que essa aqui é uma rede não tão profunda se é uma rede com apenas duas camadas ocultas mas só para ilustrar o problema
vamos pensar que eu tinha um problema anterior eu tinha quatro classes eu poderia então treinar essa rede com grande volume de dados de repente eu cancelo esse pedaço aqui eu arranco esse pedaço da rede e com cateno a essa rede anterior que foi responsável por extrair características dos dados originais e com katena aqui na frente uma camada específica para o problema que eu quero tratar peça naquele problema de classificação do Gado dos cachorros eu teria uma rede com apenas dois neurônios na camada de saída então esses pesos aqui eu posso treinar eles são poucos poucos
parâmetros poucos pesos eu posso treinar com uma pequena quantidade de dados e esses outros pesos aqui esse grande volume de pesos que eu tenho já foram treinados em um domínio semelhante de tal forma que eu não precise mais realizar esse treinamento que eu posso fazer é um ajuste fino desses dados mas de tal forma não mais utilizar aquela grande quantidade de dados necessárias para treinar os modelos profundos bom que que nós vimos nessa aula pelo nós conhecemos o que que são as redes neurais Profundas que representam a base dos modelos profundos lembrando aquela situação área
de aprendizado profundo não necessariamente precisaria ser neuroespirada embora na literatura que nós observamos que os modelos profundos são nitidamente baseados em modelos neurais em modelos de redes neurais e por fim entendemos o mecanismo de transferência de aprendizagem transferir que vai ser bastante importante dentro desse do contexto de utilização de modelos profundos para tratamento de problemas reais próxima aula então a gente vai entender a importância dos frameworks que são proposta na literatura que são disponíveis para treinamento desenvolvimento e treinamentos dos modelos profundos e conhecer algumas características dos frameworks mais utilizados na literatura bom aula de hoje
é isso agradeço a atenção de todos e até a próxima vídeo aula [Música] [Música]
Copyright © 2025. Made with ♥ in London by YTScribe.com