[Música] Olá bem-vindos a segunda vídeo aula da quinta semana do curso de redes neurais Eu sou professor Marcos killes e na aula de hoje nós vamos aprender sobre o modelo som o modelo selfie essa aula então nós vamos relembrar o que que o aprendizado competitivo aprendizado não supervisionado entender arquitetura da Rede de Som Como que essa rede é treinada como que a gente forma o mapa som e algumas técnicas algumas medidas que nós podemos utilizar para avaliar a qualidade do mapa gerado após o processo de Treinamento bom só lembrando que no processo no aprendizado não
supervisionado no paradigma não supervisionado nós não temos aquela informação proveniente do Especialista Assim como nós vimos até até a aula anterior ou seja para cada valor x apresentado como entrada da rede é nós não temos aquele valor Y desejado lá na camada de saída então de alguma forma o modelo ele deve extrair dos dados características padrões estatísticos agrupamentos é que de tal forma que ele consiga aprender utilizar apenas os dados de entrada e a gente sabe que isso é possível que se houver redundância nos dados se eu tiver apenas um exemplo esse exemplo pode ser
o que eu quero você tinha dois exemplos eu posso considerar que a distância entre esses dois exemplos Ela é pequena ou ela é grande não tem uma referência então a gente precisa de redundância nos dados conseguir extrair essas essas estatísticas necessárias para para o aprendizado do modelo se a gente tiver poucos dados seria como se nós tivéssemos apenas alguns ruídos e tentar aprender sobre esses ruídos bom existem diversos modelos de redes neurais artificiais que adotam paradigma não supervisionado basicamente nós podemos dividir esses esses modelos em duas grandes famílias a primeira que utiliza o aprendizado a
regra competitiva por exemplo nós temos a redução a rede GNV a familiar arte e por outro lado as redes que utilizam o aprendizado a técnica de aprendizado ebiano como a rede hopfield a própria rede neural que implementa a técnica apreciada estatística dentre outros o que que o aprendizado competitivo nós vamos ter um conjunto de neurônios numa da camada da rede e esse neurônios vão competir para ver quem se torna o vencedor a um dado padrão apresentado como entrada então nós vamos ser diversos neurônios competindo para ver quem que ganha direito a representar aquele padrão fornecido
para rede na sua forma mais simples nós temos a chamada The Winner takeswall que é o vencedor leva tudo ou seja nós temos n neurônios e apenas um desses n neurônios vai se tornar Vencedor e vai inibir todos os demais neurônios da rede a rede de som Ela utiliza o processo competitivo Como já mencionado ao longo do seu treinamento ela tem diversas nomenclaturas utilizadas na literatura como Red som mapa som é som análise maps organizen feature maps quando nós temos o f mapas de corrone dado ao seu autor devo corroni que propôs essa rede lá
em 1982 e ela apresenta uma forte inspiração neurofisiológico ou seja ela tenta copiar de maneira qualitativa é o comportamento de similaridade existente no córtex do dos animais dos seres humanos em geral como córtex auditivo corta esse visual córtex motor e assim por diante que que a gente sabe se a gente analisar cada região do córtex que nós pegamos o córtex motor por exemplo aqueles neurônios responsáveis por mapear informações da mão eles estão próximos de neurônios que são responsáveis por uma piá informações dos dedos por outro lado eles estão distantes de neurônios que mapeiam informações do
pé então em geral coisas próximas características próximas são mapeadas em neurônios próximos da rede e a redução ela busca fazer exatamente isso ela tenta criar um mapa topológico de tal forma que neurônios próximas no Grid que vai representar esse mapa essa redução eles vão representar padrões semelhantes do nosso espaço de atributos normalmente a redução ela é um mapa bidimensional ou seja o mapa com apenas duas dimensões um Grid embora nós temos a literatura outras variações como apenas uma dimensão também bastante utilizado e de mapas com maiores dimensões 3D e assim por diante então Aqui nós
temos a versão padrão da rede som onde nós temos um mapa representado aqui por essa Matriz de neurônios no qual cada bolinha aqui cada ponto nessa Matriz representa um neurônio da redução e aqui embaixo nós temos as entradas então no processo competitivo o que que vai acontecer nós vamos apresentar uma entrada pra rede essa entrada vai ser apresentada para todos neurônios que vão competir para ver quem ganha direito de disparar quem ganha direito de representar essa entrada a formação do mapa o treinamento das redução ela envolve três etapas principais a fase de competição a fase
de cooperação e a fase de adaptação sináptica a faixa de competição é basicamente o mecanismo de competição nós vamos definir uma métrica para comparar os neurônios com base naquele padrão que foi fornecido a rede Então nós vamos por exemplo definir uma função discriminante eu vou apresentar um padrão para rede eu posso calcular a distância entre esse padrão eu respectivo neurônio que também é representado no mesmo espaço na mesma dimensionalidade do exemplo de entrada aquele neurônio que apresentar menor distância ou maior similaridade a gente adota ele como sendo neura vencedor tá e a gente chama geralmente
esse neurônio vencedor de bmu ou de Best Newton é melhor unidade para aquele padrão apresentado então formalizando um pouquinho na fase de competição ainda nós temos o vetor x que é o nosso vetor de entrada composto por m dimensões onde cada valor aqui é um atributo se nós pegarmos o deita 7 Iris que nós utilizamos lá atrás na semana 3 ele tem quatro atributos a largura e ao comprimento da sépala largura e o comprimento da pétala então nós teremos o m = 4 aqui da mesma forma os vetores de peso representados aqui por WJ onde
J é um neurônio então para cada neurônio J nós vamos ter um vetor de peso também com m peso com m valores e qual que é o objetivo nosso nós vamos encontrar a nossa bmu o neurônio vencedor representado aqui por U por U para o padrão x como sendo aquele valor de J que representa a menor distância euclidiana entre o padrão apresentado e o vetor do respectivo neurônio já faz de cooperação é o seguinte o neurônio vencedor foi selecionado na fase competitiva esse neurovecedor ele tá vamos pensar que esse neurônio vermelho aqui no Grid ele
tem uma vizinhança definida pelo Grid ele vai de alguma forma colaborar com essa vizinhança esse prêmio que ele recebeu para ganhar competição então neurônio O Vencedor ele em vez de se ajustar se especializar naquele padrão de forma isolada ele vai cooperar ele vai permitir que a vizinhança direta dele também seja atualizada para isso nós podemos definir uma função de Vizinhança nesse caso que eu tô utilizando uma função é uma gaussiana como se nós entrassemos A gaussiana exatamente sobre o ponto vermelho que representa no Europa de vencedor e de acordo com o valor de Sigma definido
nós vamos ter uma gaussiana maior um hussiana menor isso vai definir para a gente o tamanho da vizinhança de cooperação quanto maior a Oceana maior é a cooperação maior a vizinhança de cooperação ou seja mesmo neurônios distantes por exemplo esse daqui também receberia o benefício da daquele processo de competição anterior se eu tenho uma vizinhança muito pequena representada por um signo pequeno eu tô falando que apenas na Universal e talvez os vizinhos direto representados aqui em laranjado poderiam fazer utilizar esse processo de da da da fase de competição então de acordo com a vizinhança selecionada
nós vamos ter um processo de atualização que é a terceira fase definida então menor a vizinhança mas restritivo eu vou fazer o processo de atualização quanto maior a vizinhança de cooperação menos restritivo ou mais abrangente essa tá bom é importante sacar apenas aqui eu tô ilustrando apenas a função glauciana mas diversas funções podem ser utilizadas poderia utilizar um decaimento linear e essa distância aqui ela não é a distância entre o padrão e o neurônio e sim a distância entre neurônios do Grid então se eu tenho um drone aqui em cima e um neurônio duas posições
para baixo a distância seria dois ou seja tem duas posições do Grid a distância entre eles essa vizinhança Então ela é definida pela proximidade do Grid e não pelo conjunto de peso como eu comentei e normalmente a gente começa com uma vizinhança grande e a gente faz um decaimento dessa vizinhança ao longo do processo de treinamento para isso a gente pode utilizar uma função assim como essa aqui de baixo onde eu tenho Sigma abertura da gaussiana no tempo T vai ser baseada no Sigma Inicial ou seja aquela abertura inicialmente definida e vai ter um decaimento
com exponencial de menos ter no qual ter representa pra gente as épocas e o tal aqui representa quão rápido esse decaimento quanto maior for esse valor de tal menor ou decaimento quanto menor for esse valor de tal mais rápido vai ser o decaimento ao longo das épocas esse aqui é um parâmetro extremamente importante porque se nós definimos essa vizinhança de maneira adequada como nós vamos ver na aula prática na próxima aula é nós simplesmente comprometemos todo o processo de treinamento e evitamos que aquela ordenação topológica desejada pela redução Ou seja no qual exemplos próximos são
mapeados neurônios próximos seja atingido Então se a gente definir móveis dificilmente a gente vai ter um mapa som adequado já adaptação sináptica é o último passo dessa desse processo de formação do mapa o terceiro passo e consiste basicamente na adaptação dos neurônios o ajuste dos pesos desse neurônios lembrando o que que é o processo de aprendizagem né Nós queremos que o neurônio responda no tempo T melhor do que ele respondia no tempo ter mais um tem menos um então ele vai aprendendo ao longo do processo de aprendizagem o que que acontece no processo de competição
a gente apresenta um padrão para rede e o neurônio mais rápido ele vai ganhar aquela competição o que que seria melhorar a resposta desse neurônio é tornar ele ainda mais próximo daquele padrão que levou alegar a competição Ou seja eu quero que na próxima interação quando aquele padrão fora apresentado aquele neurônio histórico mais rápido do que ele estava no instante anterior tá para isso a gente pode utilizar o seguinte fórmula eu tenho que os pesos no tempo de mais um vai ser os pesos anteriores mas o Eta que representa para a gente a taxa de
aprendizagem o passo que eu tô dando no na variação desse peso o h representa a função de Vizinhança se o neurônio J for o próprio e ou seja o próprio vencedor o valor de H é igual a um conforme esse neurônio de J ele vai se distanciando no neurônio do BMW vencedor esse valor de H atende a cair até chegar em zero multiplicado pela diferença entre o padrão de entrada e o vetor do próprio neurônio então que a gente tá querendo fazer nesse momento é diminuir a diferença aumentar a semelhança entre o neurônio e Vencedor
e da sua própria vizinhança aquele padrão que levou alegar a competição e da mesma forma que nós temos o decaimento na vizinhança é comum a gente fazer um decaimento também pro Eta tá aqui nós podemos utilizar diversas formas de fazer secaimento decaimento linear aqui eu tô misturando um exemplo com decaimento exponencial onde eu tenho que ter é o nosso a o número da época zero um dois três e assim por diante e o tal de n tal dieta representa a velocidade de decaimento dessa dessa taxa de aprendizagem então após repetidas interações ou seja aplicar essas
três etapas por diversas vezes ao longo de diversas épocas onde nós fazemos a competição a cooperação e adaptação sináptica nós temos que os pesos dos neurônios eles tendem a seguir a distribuição dos vetores de entrada devido essa atualização da da vizinhança dos neurônios e portanto o algoritmo ele leva a uma ordenação topológica do mapa de característica se a vizinhança também ajustada então o que que acontece eu pego um neurônio vencedor eu vou ajustar ele a posição dele no espaço de atributos de acordo com aquele padrão que ele vai ganhar a competição só que da mesma
forma que ajustar esse neurônio eu vou ajustar os vizinhos dele também tanto arrastando esse neurônio e tô arrastando todos os seus vizinhos do mapa para aquela mesma região daquele padrão a preparar para aquele padrão apresentado Então se a gente definir bem essa função na vizinhança a gente consegue criar essa ordenação topológica do da redução tá como eu já falei várias vezes a definição da função de Vizinhança ela é fundamental nesse processo um Sigma mal definido certamente vai trazer um mapa para a gente não adequado tem duas formas principais da gente definir a vizinhança na redução
a gente pode utilizar uma vizinha sexagonal ou uma vizinhança quadrada não tem diferença significativa geralmente a função a rede utilizando a vizinhagonal ela tem gráficos mas mais bonitinhos etc mas não do ponto de vista qualitativo de representação da rede processo de aprendizagem elas são equivalentes tá por outro lado a vizinhança hexagonal a implementação dela para quem for implementar do zero ela é um pouco mais sofisticada já implementação quadrada a gente tem apenas uma matriz definindo elemento de cima de baixo da esquerda da direita é bem mais fácil de controlar Quais são os vizinhos de cada
neurônio bom que que a redução representa Red som cada neurônio da redução Vai representar pra gente uma chamada célula de volui se a gente observar essa figura aqui à direita nós temos que nós temos diversas regiões e dentro de cada uma das regiões nós temos um pontinho preto esse pontinho preto representa a posição do neurônio nesse espaço a posição do vetor de peso do neurônio nesse espaço que que significa essa célula Por exemplo essa sela em rosa aqui significa que se eu pegar qualquer ponto em qualquer região dessa célula e eu comparar esse ponto com
todos os centros com todos os neurônios esse neurônio que representa essa célula de volui vai ser o ponto mais próximo ou seja ele vai ser um ano vencedor a parte que eu cruzo a fronteira para essas células é insano aqui eu sei que qualquer ponto dentro dessa célula esse neurônio vai ser o vencedor então o que que acontece quando nós estamos atualizando os pesos da rede nós estamos basicamente mudando a forma o formato dessas células de gonorreia então se eu tenho células maiores significa aquele neurônio representa umas padrões relativamente heterogêneos quanto menor for essa célula
mais restritiva fora dessa célula significa que aquele neurônio representa uma região mais homogênea do nosso pacho atributos e de certa forma a gente pode falar que cada neurônio ou seja cada pontinho preto desse aqui representa uma espécie de protótipo da sua região Então esse neurônio aqui ele representa todos os padrões que estão nessa célula esse neurônio representa todos os padrões que estão nessa célula e assim sucessivamente a gente poderia utilizar inclusive esse centros aqui para configurar o centro da da dos neurônios da rede RBF que nós vimos na aula anterior e o que que é
interessante como nós temos essa formação do mapa ou seja padrões que são próximos do espaço de atributos eles são representados por neurônios próximos do mapa a gente consegue utilizar a redução como uma ferramenta de visualização então a gente consegue basicamente representar um espaço RN num espaço R2 a gente consegue ver dois exemplos no RN que eu não consigo visualizar eu consigo saber como que tá a organização deles no espaço R2 ou seja uma pelo visual bastante interessante da rede e neurônios próximos do Grid se foi bem treinada Claro eles tendem a apresentar padrões similares bom
como que a gente pode avaliar um mapa gerado primeiro se eu considerar que existem rótulos Associados a cada padrão eu poderia verificar rotular os neurônios e verificar se aqueles padrões estão tão coerentes ou não E para isso utilizar qualquer métrica que a gente utiliza no aprendizado supervisionar por exemplo o quadrado de comédia definir a similaridade a acurácia entre o valor de acerto o valor fornecido pela rede e o valor desejado para cada padrão mas assumindo que nós estamos num processo uma rede intrinsecamente não supervisionada como que a gente pode avaliar essa rede no cenário não
supervisionado uma vez que nós não temos aquela informação proveniente do especialista para isso nós temos algumas medidas por exemplo o erro de contação o erro topográfico e algumas ferramentas visuais que a gente pode utilizar para variar com o bem ficou definido esse mapa o eu topográfico é o seguinte ele é um somatório desse valor de t para todos os padrões n existentes no nosso conjunto de treinamento o que que eu vou fazer eu vou pegar um padrão x específico e vou apresentar esse X para rede a gente tem um processo de competição vou falar esse
neurônio aqui neurônio vencedor o que acontece eu remover o neurover qual que é o segundo neurônio vencedor se esses dois neurônios forem vizinhos do Grid significa que os dois vizinhos representam coisas parecidas porque é o mesmo padrão então eu vou ser uma zero né somatório por outro lado se o primeiro Vencedor e o segundo vencedor estão distantes no Grid quer dizer que eu tenho neurônio distantes representando coisas parecidas o que eu não quero Então vou chamar um então quanto menor for esse erro topográfico é mais bem ajustado estava ordenação topológica desse mapa o erro de
cotização Ele vai tentar avaliar Qual que é o representatividade de cada neurônio Então a gente vai fazer um somatório também para todos os padrões é com a distância entre o neurônio vencedor o vetor de peso neuronde Vencedor e o padrão x que levou ele a ganhar a competição então quanto menor for esse erro de cotização é mais bem ajustado mais homogêneo tá cada região cada célula de voronói definida pela rede que que a gente tem que tomar cuidado o erro de quantas Estação zero não significa uma boa rede porque eu posso ter um erro de
contação zero Se eu colocar um neurônio sobre cada padrão que eu tenho meu conjunto de Treinamento Então seria exatamente o i seria igual a x logo não teria a distância seria Zero e os somatório seria zero então a gente utiliza essa medida como uma espécie de critério para definir se eu tô tendo decaimento do erro de contratação ou não tá ela é bastante utilizada para um apelo visual também é para tentar encontrar as regiões do mapa que representam fronteiras entre macro agrupamentos cada neurônio aqui é uma redução um exemplo de um mapa São gerado onde
cada célula cada quadradinho desse mapa aqui representa um neurônio e para cada quadradinho para cada neurônio a gente consegue calcular o valor de U dele como que a gente calcula esse valor de u a gente vai pegar todos os vizinhos direto ou seja todo vizinho J dúvidas do neurônio e verificar qual que é a diferença entre os pesos do neurônio I para o neurônio J para todos os vizinhos de ir é feito isso se eu tiver dentro de uma região homogênea eu sei que essa diferença entre peso vai ser pequena que é o que representa
pra gente nessas duas regiões a região posterior e nessa região inferior aqui por outro lado é uma região de Fronteira onde o vizinho de cima representa um padrão e O Vizinho de Baixo representa um outro tipo de padrão quer dizer que aquele neurônio específico aquele neurônio específico ele pode estar numa fronteira entre macro clusters então a utilizar regiões do nosso espaço que são que representam coisas parecidas embora cada microcância cada neurônio represente uma célula de vonoide pode agregar diversos células de gonoi representando o que a gente chama de um macro cluster então isso aqui seria
um cluster e aqui nós teríamos possivelmente um outro grande cluster é maior especificamente esse dado que foi feito por data 7 Iris e Aqui nós temos exemplos da classe 1 e aqui embaixo nós temos exemplos da Classe 2 e 3 como a gente vai ver depois na aula prática elas meio que sobrepõem representam um ou dois classes de acordo com a segregação que a gente fizer nesse caso seria a representação de um único classe os Hit Maps aqui a gente pode utilizar esses mapas para verificar como que os pesos estão distribuídos na rede Então se
a gente pegar aqui a comprimento da sépala a gente sabe que nessa região do mapa nós temos é neurônios que assumem um maior comprimento da célula e aqui embaixo menor comprimento da seta então a gente consegue ver se esse mapa tá eh organizado de forma homogênea já os Hit Maps é a gente consegue visualizar o que que cada neurônio está representando por exemplo aqui eu tô falando que esse neurônio ele representa 14 daquele 150 padrões do conjunto de Treinamento esse neurônio aqui representa 21 esse não representa 21 e esse neurônios aqui não representa nenhum exemplo
no meu conjunto de Treinamento Ou seja que é exatamente aquela aquela região com alto valor daí o matrix que representa a separação entre esse câncer de baixo e esse cluster aqui de cima bom nós podemos realizar o treinamento da Red som em duas fases nós podemos fazer primeiro a ordenação topológica utilizando o valor de Sigma maior e o valor de eta maior e depois uma segunda fase chamada de ajuste fino no qual nós vamos reduzir drasticamente o Sigma ou seja definir a especialização apenas generone um subconjunto muito pequeno dos vizinhos desse neurônio e com Eta
um pouco menor isso pode ser feito de duas formas duas fases separadas ou em fase única no qual a gente começa consigo uma grande e vai reduzindo esse Sigma ao longo do processo assim como a gente começa com Eta grande e vai reduzindo esse Eta ao longo do processo na prática as duas funcionam da mesma maneira tá bom qual a diferença que quando a gente faz a divisão em duas fases essa fase de ordenação topológica Existe alguma alguns métodos como a própria análise de componentes principais que a gente pode utilizar para dar um bom chute
inicial para o posicionamento dos neurônios no mapa então não precisaria poderia eliminar essa fase de ordenação topológica utilizando algumas técnicas que nós não vimos nessa aula tá e depois fazer apenas o ajuste fino ou utilizar a forma emocional simplesmente seguir diminuindo a vizinhança diminuindo ela do início do treinamento até o final do processo de Treinamento bom que que nós vimos na aula de hoje nós conhecemos na rede som só arquitetura seu treinamento e algumas formas algumas maneiras a gente avaliar se o mapa ficou bem informado ou não na próxima aula nós vamos ilustrar no ambiente
colab alguns exemplos alguns mapas gerados com a rede de som utilizando o pacote mini som que é um pacote bastante simples que implementa de maneira eficiente a redução bom Agradeço a todos pela atenção novamente e até a próxima aula [Música] [Música]