a parte prática do nosso algoritmo e antes de qualquer coisa eu quero dizer que essas inovações aqui é o primeiro pra gente não esquecer que a fórmula da nossa nosso cálculo do jw seja da curva na saída ou da entrada para o cúcuta e isso é o que a gente tem que fazer hoje principalmente na nossa classe n matrizes que onde toda a mágica acontece a rede na europa vai chamar as operações das matrizes então vamos lá a primeira coisa que a gente tem que criar seria uma função mep estática que eu criei no vídeo
passado por engano porque na realidade a que eu usei foi a não está como vocês podem ver aqui o tipo de ponto mep sem chamar andamento da classe ea função é pela tech 1 henrique que estava linhas e era colunas e foi por isso que não deu erro porque acabam utilizando não estática então beleza a primeira coisa tá feita produto da marca como a gente pode ver o produto em uma matriz por um escalar a transposição de uma matriz ea subtração entre matrizes que são coisas que a gente vai precisar para montar o nosso algoritmo
de beck propagations beleza a primeira coisa que eu vou criar é o produto da marca então vamos lá aqui no nosso código separei pra ficar mais organizado de operações e chitato que este matriz matriz matrizes calar e aqui funções diversas que a gente vai utilizar a transposição é uma delas então vamos lá o produto radar mar de como é que funciona basicamente é só eu posso pegar esse código aqui com bola é cliente da marca é matriz por matriz e eu só adamar de pronto eu só preciso fazer isso aqui é um elemento parlamento beleza
então primeira coisa tá feita outra coisa é produto de uma matriz por um escalávamos lá podem escalar eu vou colocar multiplica mais eu vou já existe a função de multiplicar que a multiplicação matricial então colocar isso o multiplayer e aquilo tá aqui é a matriz em escalar a gente não se perder e aqui eu multiplico beleza também outra coisa feita bem rapidinho a transposição em uma matriz eu vou colocar aqui nas funções diversas certo porque ela não é uma operação e ela vai funcionar basicamente assim é vamos criar do zero aqui trans pouso eu vou
criar eu vou um show como é que eu faço qualquer coisa mudou depois eu vou criar uma matriz que eu vou chamar uma triste eu quero trocar né aqui vai ser bacana matriz que vai ser colunas por linhas da original porque é a transposição dela agora posso dizer make mep aquela que a gente conhece e é que eu posso retornar [Música] à deira j e assim a gente inverte e mais tarde a gente vai treinar a gente vai verificar se todas as funções estão corretas beleza pronto transposto a reposição de matrizes ea subtração de matrizes
tributação matriz com outra é não existe então é só acrescentar eu aqui rapidinho e resolve esse problema subtract resolvido eu acho que a gente já pode criar tudo só testar para ver se as coisas estão funcionando direitinho beleza é vou chamar aqui no esquete poder testar se todas as operações estão funcionando vamos lá primeiro vou criar uma m 11 criar uma área chamada quase uma matriz dois por dois e vou criar uma b também dois por dois eu vou randomization elas pra que ela tenha valores um nome que a gente possa ver suas operações acontecendo
beleza eu só por conta de teste eu já deixei uma coisinha pronta aqui não vou fazer é eu vou mudar funciona economizar porque a nossa opção denominada nos valores entre 0 em 1 e ficou muito pequeno pra gente está funcionando as operações eu vou voltar para aquela função nomes da antiga que a gente fez lá atrás só pra gente ver e fazer essas operações funcionarem só por essa razão mesmo o pa agora que vai ser redondo vezes 10 chão pra arredondar o número real valor isso é só por agora a galera e vamos lá já
está no erro e acerto vamos testá primeira coisa que quero testar a função é estática que eu sei que já funciona já testei mas é o produto radar marne que é por um escalar que é praticá lá não que entre 2000 a atriz e mesma dimensão então vamos ver está funcionando melhor vou criar uma matriz 22 linhas por uma coluna que a gente consegue enxergar melhor e eu vou colocar aqui uma matriz se criar uma matriz é aqui que ela vai ser o planeta nossa operação vamos ver está funcionando forma tem que mandar pintar elas
né 000 ha não é errado se o r7 agora 35 7 vezes 17 fechado funcionando porrada marca funcionando é produto de uma matriz por um escalar vamos ver vamos ver e escalar multiplayer tranquilo aí o a vezes um desses 10 junta está isso 8070 beleza escala múltipla funcionando a transposição de matrizes vão testar 06 06 coluna linha também funcionando e subtração de matrizes film craft aabb vamos ver 15 - 16 - 49 - igual a quatro ok todas as nossas funções estão funcionando antes que eu me esqueça de fazer isso ok não é precisa vamos
tirar isso aqui tudo a gente nossa praça estão funcionando tá na hora de a finalmente codar o nosso beck propagations como agora que a gente já tem tudo pronto agora a gente vai criar nossa função de treino em que a gente vai chamar a função de treino dizendo com a entrada e qual a saída esperada e ele vai fazer o cálculo ea correção dos pesos baseado no erro tudo que a gente até agora né então primeiramente eu vou criar aqui uma função chamada trem em que leva eu vou fazer todo esse processo de aprendizagem todo
esse cálculo é que propaga a gente viu a primeira modificação que eu vou fazer é eu vou ter essa função filme foge porque na verdade ela não faz sentido ter neste momento porque você não vai chamar pelo futebol enquanto você estiver utilizando a rede foi de forma que faz parte do processo de aprendizado unidades até o final então a gente vai colocar lá dentro da função treino ela vai ser importante porque com essa saída é que a gente tava calcular os erros beleza a nossa função de treino ela vai ter que ter aqui um array
de entrada como a gente já sabe que a gente vai transformar em objeto e uma rei de saída que é pior do que a gente quer então a primeira coisa que vou fazer é modificar esse nosso código aqui primeiro vou ter essas cinco entradas juntar duas e vou dizer rede neural trem era chamar sr certo chamar o avaí ward resposta vai ser só a gente possa ir treinando né 011 melhor isso aqui é uma história fictícia mas vai servir pra gente utilizar e está a funcionar nossa função vamos lá galera a gente tem a saída
certo com a saída já que calcula os erros então o primeiro deixou separar isso aqui porque assim nós colocar mais organizado isso aqui isso aqui depois eu mostro o porquê mas eu quero deixar notado aqui também mas vamos lá a primeira coisa que a gente tem que fazer é calcular os erros da saída que é a resposta correta - a resposta que foi dada pela nossa rede então primeiro quem vai fazer é isso e eu tenho que converter também sr target aqui pra classe para nosso objeto matriz pronto agora que eu fiz essa conversão é
agora é o momento que eu posso criar o outfit erro vamos lá o erro da saída vai ser a subtração do esperado - o que foi recebido que é o empate só para estar funcionando vamos ver se dá certo aqui a não ser que o mesmo está tudo certo olha aqui vi que não está tudo realmente está certo em nosso cálculo depois a gente calcula só deixar a fórmula 1 aqui sobre ela aqui a gente tem que fazer calculou e fazer o radar martin com a derivada da nossa saída meu deus não sei como é
levado a simone é levar a cerimônia é muito simples é bem competitivo e eu vou mostrar aqui pra você basicamente à elevada se morre é essa fórmula tem aqui simples que é a própria entrada a própria saída no nosso caso que a própria sigmóide vezes e - a seguir moe é assim que receber iva então vai ser basicamente o output vezes 1 - ocupante e assim a gente consegue levar então eu acho que acho que a gente tem que fazer aqui é criar um avaí que vai armazenar as saídas derivadas então vamos criar aqui de
audi pote que vai ser basicamente derivada da saída e aqui eu vou chamar a função mep agora estática e vos dizer que é a saída de sigmóide com a força que a gente vai criar que vai ser a função que vai fazer derivada desses valores vamos lá pra gente ter essa função é só gente vem aqui e fazer como a gente fez pra fazer a cerimônia então você coloca e retorna que o valor que vai ser a saída o xkr está recebendo vezes um meio do x men x pronto ela está feita e está armazenado
aquino del pont não só testar para ver se está funcionando sempre gosta de testar ok não está sendo levado tudo certinho e agora a gente vai fazer rada martin do erro com essa derivada então essa é a primeira coisa que a gente vai fazer eu vou chamar de gradiente o que vai ser o nosso erro pelo nosso delta empate e é sempre bom testar para ver está tudo funcionando tudo funcionando aqui no nosso gradiente certo e agora vou criar o nosso finalmente o famoso do leite pode chamar de um atributo você quer 10% normalmente existe
uma série de estudos existe um a um campo inteiro que estuda esses parâmetros da rede mas no nosso caso aqui a gente pode explicar ea gente pode colocar que o valor de 10% existe técnicas mais complexas em que o valor vai alterando a medida que a gente vai aprendendo mas no nosso caso aqui possa render ao simples e genérica a gente pode simplesmente utilizar esse valor e 10% que vai funcionar tudo certinho beleza então a segunda coisa que tem que fazer é pegar essa multiplicação e multiplicar pelo lado direito então vamos fazer isso lhe rende
o pa pronto e depois de tirar isso a gente vai ter que se explicar pela transporte da nossa camada oculta então vamos criar aqui nem te vai ser igual a matriz transposição relembre aqui em português da aac é erro oculta e é por isso eu não quero que vocês acabam se confundindo com a votação que não é ocupante porque está tudo em português vamos lá e eu uma coisa que a gente tem que fazer é gradiente igual a matriz multiplayer o próprio gradiente com o nosso rei nem te vamos ver o que deu pronto finalmente
eu vou até mudar porque eu vou ter mais em fato é que é mais do que um gradiente isso aqui é o delta w as nossas correções dos pesos entre a camada oculta chamada de saída vamos lá só chamar isso aquele h ó deltas finalmente agora a gente pode corrigir nossos pesos então vou dizer que a garrafa e silva matriz adicione os pesos com os deltas e finalmente galera finalmente a gente pode corrigir a nossa camada vou colocar aqui claro que a nossa camada de saída para a nossa camada oculta corrigidos vamos achar só um
pouquinho está acontecendo aqui por dentro que pronto que eu vou mostrar aqui pra vocês que hoje deltas eles têm a mesma dimensão dos pesos a matriz dos deltas tem a mesma dimensão dos pesos e pense assim um a dois por três certo que são nossos delta de nossos pés dos dois por três quando a gente disse o na só para mostrar a diferença de como fica eles são corrigidos relativo e com o objetivo de chegar à resposta correta chegar a resposta esperada com essa técnica de gradiente descendente beleza galera agora outra coisa que a gente
tem que fazer para continuar um algoritmo que calcula 10 da camada oculta para que assim a gente faz um gradiente da camada oculta para camarão de entrada eu não sei se você lembra como é calcular esses erros mas é basicamente a matriz de pesos entre r bem ao tipo t3 posta vezes aí o erro da saída então vamos lá vou criar aqui uma variável que vai ser pesos bh trans posto é igual a transposição dessa matriz certo e agora a gente vai criar o nosso finalmente rirem erro que vai ser a multiplicação da a matriz
transposta com um erro da saída agora que a gente tem o nosso erro vamos só montar ele aqui pra gente dar uma olhadinha como ele está uma coluna com três linhas perfeito porque nós temos três neurônios agora que a gente tem um erro da nossa rica e agora tenta calcular o granito e se baseado nesse erro então a primeira coisa que vou fazer é criar a derivada da nossa camada de levar a dança simone vou criar vou criar a nossa entrada só que a resposta certo e agora a gente começa a calcular gradiente gradiente da
riba em pra não confundir a ser igual matrix errada marte da rim de erro vezes o de rir e certo só mostrando aqui e de erro com a derivada da oculta quando elevada da ribeira pega-se gradiente vai ser igual e à humilhação skala pelo lorde right certo e agora a gente vai criar os nossos deltas só que a barriga ó e h que nossos deltas vão ser igual a uma multiplicação entre finalmente o gradiente vezes as entradas transposta e agora age de modo não se pode te que a gradiente h não pode esquecer posso impor
t e aqui é só empate pronto agora tá tudo certo o que a gente faz agora adicionar nossos pesos entre a input e a rirem finalmente galera finalmente a gente fez o nosso código de correção dos pesos para que a nossa rede a prenda para que nossa rede entenda o que ela está errando e como ela pode corrigir finalmente pessoal só fazendo a última última averiguada que está tudo certo eu vou mostrar à direção dos pesos eu quero deixar explícita admissão dos pesos da correção dos pesos certo ea dos pesos para que vocês vejam que
também está tudo certo tudo batendo basicamente foi mais um erro aqui na questão da eleição dos neurônios que na verdade aqui tá e é tratar 2 já que a entrada tem dois agora sim está batendo três por 2 3 por 2 del 3312 pelos três por dois quando você adiciona corresponde a cada delta a cada correção de cada peso finalmente galera a única coisa que eu vou fazer aqui para que a gente tenha certeza que não só grito de aprendizagem está funcionando é criar uma situação em que a gente vai testar a rede pra ver
se ela realmente aprendendo para ver se ela está se aproximando a resposta correta a primeira coisa que eu vou criar aqui vai ser uma função chamada parede predict pra que ela vê o filho e ford agora com os filhos corretos e precisa com a saída que ela acha que é então a primeira coisa que vou fazer é isso aqui e pedir para ele retornar ao tipo ç só que tem um porém é o que importa aqui é uma classe esse é o poder que o objeto da classe matriz a gente tem que fazer é e
é tornar rei então eu vou criar uma outra função que vai se chamar agora ao contrário matriz para lei em que eu vou receber um objeto ea partir de agora vou criar um rei certo vazio vou e terá dentro desse objeto e adicionando do nosso rei todos os elementos dele para que assim a gente faça um array linha e retorna ao rio vamos lá aqui eu vou dizer algo importante vai ser igual a maxixe matriz paraguai e ao tipo ç e agora o inter da nossa alta pode eu quero fazer só em teste só um
teste para que a gente venha se realmente está aprendendo a nossa amada a nossa rede neural vamos lá galera eu vou aqui montar o teste e daqui a pouco volto a galera quando fui fazer o teste eu percebi que a nossa federal não estava prendendo e aí eu comecei a investigar algumas coisas que eu tenha esquecido eu gosto que eu tenha errado vamos lá a primeira coisa que estava mudando tudo era quem aqui pra colar o tipo de erro é o esperado - a saída não esperado - a entrada também é errado então fazendo essa
correção aqui a gente consegue fazer a rede aprender mais ainda já tá faltando uma coisinha que eu também tenha esquecido que ajustar os baias e não sei se vocês lembram para ajustar os baianos é só o erro então depois que o pai o gradiente e o cálculo o alt pant pela derivada da saída e depois de um tempo pelo le raid esse é o nosso erro e aqui eu só disse o no bairro direto idem aqui embaixo adicione o bayern certo e corrigir algumas coisas aqui também como esse ingrediente que estava estava sem o h
é esse peso aqui que tava o outro os outros pesos aí ajustei para o idh enfim algumas pequenas correções que eu fiz na nossa rede inclusive aqui o credit que eu coloquei a rei porque estava sem argumento filhos todos esses erros estão essas correções desses erros e agora a gente pode ver na prática a nossa rede funcionando o que eu fiz aqui de código e mostrar pra vocês o que eu fiz aquele código eu criei um exemplo muito fácil aqui pra gente que se chama schor problema para quem não conhece joga no google e vai
entender melhor é um cachorro portas lógicas mas enfim não é o nosso foco entender isso agora basicamente o que é preciso que vocês entendam é que quando da entrada em ele tem que dar saída à 01 00 um tem que dar saída ea saída 00 tem que dar saída 0 eu treinar nossa rede é um problema bem comum a gente está se a gente na verdade não estão funcionando e basicamente eu criei aqui um laço de 10 mil interações dentro do jogo ou seja a cada segundo ele vai fazer 10 mil treinos e ele vai
treinar randomicamente aqui ele vai pegar um edson do mico vai colocar vai pegar nosso atacante a entrada ea saída esperada e vai treinar nossa rede eu vou aqui criei outra condicional pra quando eu precisei ver que 100 quebra 0 está menor que 0 04 e 10 que é pela daum tiver um maior do que zero com 98 eu vou pedir pra ele parar de treinar porque ele é controlado aqui por esse boliviano e vocês vão ver como a nossa região a treinar rápido o refresh aqui é só esperar um pouco e ela já terminou ela
já treinou se a gente fizer o teste aqui vamos colocar por exemplo 100 que é pra dar zero quando a gente coloca 0.0 17 chegamos ao final da nossa série d como fazer renner ao do zero chegar até aqui parabéns se qualquer dúvida qualquer questionamento bota aqui nos comentários vou falar comigo pelo whatsapp pelo está grande mas saiu no contato pessoal porque eu vou ter o máximo de dúvida de todas as pessoas beleza não gostou da maneira que eu explico do material da minha candidata se inscreve no canal também porque a gente ainda vai ter
muita coisa sobre machine vai ter muita coisa sobre algoritmos programação criativa enfim vai gostar muito agradeço aos que estão aqui muito obrigado de verdade pra assistir por dar feedback da galera 'tamo junto' valeu