[Música] Olá bem-vindos a quinta semana do curso de redes Morais Eu sou professor Marcos killes e na nessa semana nós vamos ver dois modelos distintos dos modelos vistos na aulas nas aulas anteriores especialmente nós vamos nessa aula trabalhar com modelos as redes RBF redes de funções de base Radial e nas aulas seguintes modelos som bom nessa aula então nós vamos descobrir fazer uma introdução e entender o histórico como que foi desenvolvido a esse modelo nós vamos entender como que era arquitetura da rede RBF nós vamos entender o que que é um neurônio de base Radial
que compõem as unidades ocultas de uma rede RBF E como que essa rede pode ser treinada e também fazer o paralelo entre a Rede RBF e a rede mlp que como nós vamos ver são redes com estruturas bastante parecidas então de forma similar a rede Multilaser uma rede RBF também uma rede neural com múltiplas camadas alimentadas adiante Ou seja a gente insere um sinal na camada de entrada esse sinal Ele é propagado até a camada de saída o campo local induzido diferente dos neurônios da rede mlp no qual nós fazemos o produto interno entre o
vetor de entradas daquela camada daquele neurônio e suas respectivos pesos na rede RBF nós vamos criar utilizar uma função de base Radial e o campo localizado vai ser calculado entre o centro dessa função de base Radial e o vetor apresentado pela rede mas vamos ver isso ao longo da aula então elas são elas podem ser utilizadas Assim como as redes Multilaser também como ferramentas de interpolação de dados como aproximação de dados e também para classificação embora a aplicação mais direta dessa rede ela seja na interpolação e na aproximação de funções e as unidades ocultas representam
Campos receptivos locais diferentes da rede mlp também no qual cada neurônio recebe todas as informações e atua de alguma forma sobre todos esses dados recebidos e assim como as redes Multilaser exceto as redes de funções de bases radiais elas também são aproximadores universais de função bom qual que é a ideia basicamente nós queremos construir funções complexas sem utilizar uma matemática complexa nós queremos construir Essas funções utilizando uma combinação de funções mais simples assim como nós fazemos a transformada de correr no qual nós tentamos construir uma dada a função a partir da combinação de funções senoides
no caso das RBF ao invés de utilizar as funções cenoides como é utilizada na transformada de correr nós utilizamos funções de base Radial então diversas funções disponíveis nós vamos ver algumas ao longo dessa aula então esse trabalho utilizando RBF para aproximação para interpolação de de funções começou lá na década de 60 aí na década de 70 de 80 nós chamamos diversos trabalhos abordando as rbfs para aproximação e interpolação de funções e na década de 80 é proposto por diversos pesquisadores de forma paralela independente nós tivemos a criação ou a proposta da rede neural baseada em
unidades RBF que é o que a gente vai ver nessa aula então nós temos aqui como pode ser visto na situação diversos autores que propuseram o modelo bastante semelhantes baseados na estrutura equivalente arquitetura da rede como já foi falado várias vezes ela é bastante semelhante a rede mlp ou seja nós temos a nossa entrada nós temos uma ou mais camada ocultas e uma camada de saída especificamente no caso da rede RBF é geralmente nós temos apenas uma camada oculta embora possam ser utilizadas mais camadas o problema de utilizar mais camadas é como configurar o centro
das funções de base Radial quando nós temos apenas uma camada essa configuração ela passa a ser um pouco mais direta um pouco mais simples porque a gente utiliza os próprios dados do conjunto de treino para fazer esse ajuste então no caso a saída da rede representada pela essa função f de x ou de X representa entrada nada mais vai ser do que uma combinação linear entre as saídas das funções de base Radial representada aqui por fim multiplicadas pelos seus respectivos pesos Associados aos neurônios da camada de saída Então nós vamos ter as funções de base
Radial aqui nas unidades ocultas e as unidades de saída vão ser unidades Assim como nós temos na rede Multilaser ou seja combinadores lineares para que vão combinar aqueles valores produzidos pelas funções de base Radial da das unidades ocultas aqui na camada de saída nós podemos ter unidades totalmente lineares ou seja só o combinador linear é para o problema de interpolação ou de de aproximação de funções já para um problema de classificação nós podemos trocar essas unidades por unidades com saídas do tipo sigmoide entre zero e um ou mesmo a camada softmax quando tem um problema
de classificação como múltiplas classes Nossa Como comentei já saída ela basicamente composta por neurônios lineares ou sigmoidais ou camadas softmax nós temos diversas funções de base Radial que podem ser utilizadas para compor os neurônios da camada oculta nós temos por exemplo a função multi quadrática onde esse R representa a distância entre o exemplo apresentado na entrada da rede E o respectivo centro de cada uma das unidades e o c representa uma constante positiva nós temos também a função multi quadrática inversa e a função glauciana que é uma das mais utilizadas que é o que a
gente vai utilizar nos exemplos aqui dessa aula então nós temos que o r aqui também representa a distância entre o vetor que representa o exemplo de entrada eu centro de cada um dos das funções de base Radial ou seja cada um dos neurônios da camada oculta e o Sigma Vai representar pra gente abertura dessa gaussiana ou seja amplitude desse Campo é receptivo local associado a cada um dos neurônios é importante sacar que existem outras funções além dessas três vai ter uma infinidade de funções de base Radial que podem ser consideradas então na camada de saída
Como já foi falado né a saída de um neurônio k vai ser apenas a composição linear entre os pesos Associados e as respectivas saídas dos neurônios da camada oculta que alimentam esse neurônio então com base nesse nessa combinação linear do vetor w com vetor Fi a gente tem o valor de saída Y de cada um dos neurônios da camada de saída Então as funções de base radiallas representam para a gente Campos receptivos ancorados no centro de massa Então os neurônios eles vão responder de forma ativa a exemplos próximos esses centros então se eu tenho um
neurônio um é um neurônio de base Radial da camada oculta que ele tá posicionado e alguma região do nosso atributo exemplos próximos dessa região próximo desse neurônio isso vai depender daquela abertura da Oceana é esse ele vai fazer com que esse neurônio se torna ativo ou não dado essa proximidade definida por aquele parâmetro R que nós vimos as funções anteriores tá e a precisão do modelo assim como na rede Multilaser também vai depender da quantidade de neurônios que nós temos a camada oculta quanto mais neurônios mais flexível modelo e maior chance atingir um overfield também
uma interpolação dos dados quanto menor for Esse número é menos flexível ao modelo e mais simples vai ser o modelo aprendido pela pela rede RF aqui só para ilustrar o impacto da do Sigma e do da Média da gaussiana então nós temos aqui três gaussianas em azul em vermelho e amarelo que estão centradas em 0 com diferentes sigmas então no caso do azul nós temos um signo de 0.2 nos observamos que ele tem uma uma abertura bastante pequena O que que significa isso apenas exemplos que estão bem próximos desse neurônio vão fazer com que esse
neurônio se tornativo já quando nós aumentamos um pouco da Oceano no caso da curva vermelha para um nós já temos que essa curva ela se torna um pouco mais aberta indicando que o campo receptivo criado por esse neurônio ele abrange uma região um pouco maior do nosso Pasto de atributos e conseguimos maior cinco a gente tem que a função basicamente um copo cobre quase toda a área apresentada no gráfico então quanto maior o Sigma maior vai ser abrangência desse Campo local receptivo isso seria uma forma muito grande ele passa nem se local ele passa a
ser um campo Global onde ele vai receber ele vai responder a exemplos de qualquer região do despacho atributos e no último caso Aqui nós temos também consigo me de 0.5 só que um deslocamento do centro para região de menos menos dois ou seja ela vai responder a exemplos que estão mais ou menos ali naquela região a próximos a menos 2 Então qual que é o nosso objetivo aqui para configurar essa rede a gente precisa configurar os parâmetros da função de base Radial que representam para a gente o centro dessa função e abertura dessa galzera e
por fim os pesos Associados a camada de saída que vai criar aquela combinação linear das funções de base Radial gerando a saída do modelo então o treinamento dessas redes ele pode acontecer de três formas principais primeiro nós podemos configurar centros fixos utilizando exemplos selecionados ao acaso do conjunto de Treinamento nós podemos utilizar uma seleção utilizando o método de agrupamento de dados uma seleção auto-organizada dos centros ou seja um processo não supervisionado para configuração dos centros das funções de base Radial ou utilizar um ajuste supervisionado de ponta a ponta definir tanto centro das funções de base
Radial quanto abertura desse Campo local receptivo utilizando um processo supervisionado e por fim a camada de saída ela é configurada de forma totalmente supervisionada assim como nós temos na rede Multilaser então concentros fixos nós podemos fazer o seguinte duas estratégias principais nós podemos utilizar todo o conjunto de dados de Treinamento com isso eu vou criar uma função de base Radial é sobreposta a cada exemplo que eu tenho no meu conjunto de treino com isso Eu Busco Uma interpolação dos meus dados de Treinamento ou nós podemos selecionar o subconjunto desses dados de treino e configurar um
número m de funções de base Radial inferior a n sendo que n é um número de exemplos que eu tenho meu conjunto de treino aí com isso ao invés de conseguir manter a população eu busco uma aproximação daqueles exemplos que estão contidos no meu conjunto de Treinamento é uma vez que eu fixei o centro eu preciso definir abertura descendo então para isso a gente pode utilizar diversas estratégias também como a distância média entre os centros a distância entre os centros e as entradas e a distância média entre as próprias entradas que é bastante utilizado então
uma possibilidade seria utilizar esse Sigma aí ou seja abertura do neurônio como sendo duas vezes a média no qual de média representa a distância média entre os exemplos contidos no conjunto de trem é ou utilizar o Sigma aí como sendo dmax no caso de Max representa a distância máxima entre os exemplos dividido por raiz de 2m onde M representa o número de funções de base Radial ou número de neurônios ocultos que eu tenho na minha rede RBF tô aqui algumas ilustrações mostrando o impacto dessa seleção do tanto da configuração do número 200 quanto da abertura
da galzera então se nós considerarmos o número de funções de base Radial ou número de neurônios ocultos equivalente ao número n que representa os pontos que nós temos um conjunto de dados então nós observamos claramente que o modelo ele interpola todos os pontos que eu tenho no meu conjunto de Treinamento que são representados por esses pontinhos em preto aqui na tela e o que eu gostaria de aprender é o que essa função senoide que aparece aqui de forma tracejada e eu não consigo fazer isso eu faço uma interpolação desses dados aprendendo uma função bastante ruidosa
aí ou seja tá tendo over Fit nesse caso utilizei o Sigma adequado seria duas vezes na média quando nós reduzimos a quantidade de pontos nós observamos que a função aprendida representada aqui por essa curva em linha contínua já é algo mais próximo do nosso da função desejada que a função tracejada só que aqui eu tô utilizando o signo inferior aquele signo desejado ou seja o Sigma adequado Ou seja eu tô criando Campos receptivos locais é bastante restritivos que vão ser ativados apenas naquela região pequena definida por essa abertura é por outro lado se utilizar o
número inferior de pontos em relação ao número de treino de pontos de treino que eu tenho o número inferior de funções de base Radial só que utilizar um Sigma muito grande como toda vez que aumenta o signo tá aumentando Como já foi ilustrado em algumas figuras atrás a amplitude a abertura da galzera se eu tô aumentando a abertura da galzera eu tô falando que cada neurônio ao invés de responder a uma região específica despacho atributos ela vai responder uma região muito maior então ao definir um Sigma muito grande a gente consegue aprender funções assim como
essa definidas aqui por essa linha reta que é uma função linear Ou seja a gente não consegue aproximar aquela função desejada e aqui no último caso onde nós temos um cenário adequado vamos dizer assim eu tenho que n é menor do que m é menor do que n Ou seja eu não tô interpolando eu tô tentando aproximar a função eu tô utilizando o signo adequado que é duas vezes o valor da distância média entre os pontos então que claramente a gente consegue observar que a nossa função apreendida pela rede RBF ela é muito próxima daquela
função que a função tracejada mostrada no gráfico via agrupamento de dados que seria a nossa segunda forma de treinar de definir o centros das funções de base Radial ou centro dos neurônios ocultos representados por funções de base Radial nós podemos utilizar então técnicas de agrupamento de dados técnicas não supervisionadas para encontrar esses centros por exemplo nós podemos utilizar o Caminhos ou qualquer outro algoritmo de escravização de dados como a própria redução que a gente vai ver na próxima aula e qual que é objetivo aqui ao invés de selecionar centro de maneira aleatória a partir do
nosso conjunto de Treinamento a gente busca por centros mais representativos ou seja centros que representam protótipos de regiões específicas contidas no nosso conjunto de Treinamento então como é uma das técnicas mais utilizadas Nesse contexto caminhos vou fazer uma breve introdução sobre esse algoritmo ele é algoritmo bem simples e ele é composto apenas por três passos básicos primeiro a gente define o número k onde esse carro representa o número de centros nessa figura que nós temos aqui a direita é nós temos três centros cada centro indicado cada câncer vai ser indicado por uma cor então nós
conseguimos ver o processo de evolução a partir de uma condição Inicial na interação zero a interação até a convergência do algoritmo então o primeiro passo é simplesmente definir o número 200 quanto maior for o número de centros ou maior número de centralides no caso do caminhos mais tendência nós vamos ter entre a população dos dados quanto menor esse número de centro mas Genérico e mais simples vai ficar modelo evitando que ele faça uma interpolação e atingir o grafite então definir os centros segundo passo eu vou associar a cada um dos centrodes definidos os pontos os
exemplos do conjunto de treino que são utilizados para treinar o modelo então Eu tenho um cenário aqui representado nesse lado a direita à direita do vídeo nós vamos pegar cada ponto existente nós vamos comparar Qual que é a distância desse ponto com o primeiro centrode com o segundo centroide com o terceiro centro Android aquele que tiver menor distância a gente vai falar esse ponto está associado a esse Android uma vez que associei todos os respectivos pontos aos seus respectivos Androids a gente reposiciona o centroides sendo como sendo a média dos pontos Associados a esse Android
que é exatamente o que a gente está vendo nessa figura nessa nesse gif aqui ao lado direito então o modelo começa a se ajustar vai reposicionando o Androids com base nos exemplos Associados a ele até o momento que cada centrode representa para a gente um cluster ou seja um conjunto de dados então o que que vai ser feito no caso do RBR a gente vai selecionar esse Androids como sendo o centro de massa os centros de cada uma das funções de base Radial e a abertura dessas funções pode ser ajustada utilizando aquela duas vezes até
médio ou demax como nós vimos lá atrás e a terceira forma de treinamento da rede será abordagem totalmente supervisionada no qual nós vamos utilizar uma abordagem também semelhante à rede Multilaser nós vamos definir Nossa função de custo nesse caso Aqui nós temos o erro quadrado com médio e nós vamos derivar a função de custo em relação aos parâmetros ajustáveis então nós temos a derivada para ajustar os pesos w da camada de saída nós vamos ter derivada parcial da energia do erro em relação aos parâmetros da camada de saída Lembrando que o menos aqui indica para
gente que nós estamos utilizando Gradiente descendente Ou seja eu quero reduzir a energia do erro não aumentar a energia do erro e o Eta representa a taxa de aprendizagem a mesma coisa para os parâmetros me que representa o centro das funções de base Radial no caso da Oceana e também para o Sigma que representa pra gente a abertura dessa galzera então nós teremos um processo totalmente supervisionado para treinar tanto a camada de saída quanto as camadas a camada oculta da rede as funções de base Radial que representa as camadas os neurônios da camada oculta então
fazendo um paralelo entre a Rede RBF e a rede de mlp nós temos que normalmente a rede Mary ela pode conter diversas camadas ocultas e normalmente a rede só contém uma embora como eu comentei a gente pode sim acrescentar mais camadas os neurônios da ocultos da RBF ao contrário da rede mlp que utilizam o combinador combinações lineares entre o vetor de entrada e o vetor de pesos os neurônios ocultos da RBF utilizam funções de base Radial e por fim as Multilaser exceto não construam em aproximações globais da função é aprendido Global entre a entrada e
saída do modelo já as rbfs considerando que nós estamos criando Campos executivos locais ela acaba criando aproximações locais da função apreendida bom que que nós vimos na aula de hoje nós conhecemos a arquitetura e o processo de treinamento da rede das redes de função de base Radial e na próxima aula nós vamos conhecer a um modelo novo supervisionado bastante utilizado para aquelas atualização de dados para agrupamento de dados e também para visualização de dados no espaço de baixa dimensionalidade que é o modelo som eu agradeço a todos pela presença de novo e até a próxima
aula [Música] [Música]