‫Então, vimos como podemos avaliar o desempenho de nosso modelo ou pelo menos o desempenho inicial
‫em algo como precisão de época e perda de época e ver como podemos rastrear diferentes experimentos.
‫Mas isso se aplica apenas aos conjuntos de treinamento e validação de modelos e apenas ao que o modelo aprendeu no
‫conjunto de dados.
‫Quais são as outras maneiras realmente boas de avaliar?
‫O que nosso modelo aprendeu é usá-lo para o que o estamos construindo, se estamos construindo a visão do cão.
‫E sempre temos que ter em mente qual é o objetivo final de qualquer projeto em que estamos trabalhando.
‫Estamos construindo uma visão de cachorro para ver se podemos construir um modelo de aprendizado de máquina que possa identificar um cachorro em uma
‫foto.
‫Então vai fazer algumas previsões, dar uma foto.
‫Então vamos fazer isso.
‫Se voltarmos para dar uma olhada em nosso fluxo de trabalho, ajustamos o modelo aos dados.
‫Agora é hora de fazer uma previsão.
‫Então, ainda estamos na etapa três.
‫Nós fizemos um pouco.
‫Já tocamos na etapa quatro.
‫E lembre-se, essas etapas não são realmente lineares.
‫Então, acabei de colocá-los aqui porque é fácil de entender assim.
‫Mas lembre-se de que eles não são necessariamente lineares, portanto, você pode executá-los fora de ordem.
‫Voltamos, faremos um pequeno cabeçalho, fazendo e avaliando previsões usando um modelo treinado.
‫É hora de transformá-lo em mudança de redução e entrar.
‫OK.
‫Portanto, fazer previsões com um modelo treinado é muito semelhante a como fizemos no empréstimo
‫Saikat, então podemos chamar a função de previsão e passar os dados no mesmo formato em que o modelo foi treinado.
‫Isso é o que importa.
‫Vamos ver o código primeiro e depois discutiremos o que está acontecendo.
‫Portanto, faça previsões sobre os dados de validação.
‫Portanto, lembre-se, criamos um lote de dados de validação.
‫Agora, isso não era usado para treinar.
‫Esse é o ponto importante.
‫Se voltarmos aos nossos três conjuntos, como avaliamos um modelo é porque ele treina no
‫conjunto de treinamento, queremos verificá-lo, seus resultados iniciais no conjunto de validação e depois em ambos os exames.
‫Portanto, o exame prático e o exame final são conjuntos de dados que o modelo não viu antes.
‫Então voltamos, vamos modelar ou, na verdade, vamos salvá-lo em previsões, previsões, modelo igual.
‫Não preveja os dados de Vall, porque vamos apenas nos lembrar do que são dados válidos.
‫Dados válidos.
‫Conjunto de dados em lote.
‫Aqui vamos nós.
‫Temos algumas imagens e alguns rótulos, então sabemos quais são os verdadeiros rótulos da validação.
‫Portanto, quando aprovamos esse lote, o conjunto de dados de amanhã não prevê devido à natureza da função de previsão.
‫Ele só vai olhar para as imagens em dados virtuais e fazer previsões com base nessas imagens.
‫Então o que podemos fazer é comparar as previsões que serão na forma de rótulos.
‫Bem, não exatamente.
‫Vamos ver como eles se parecem em um segundo.
‫Podemos comparar as previsões do modelo que ele faz nas imagens de validação com os rótulos reais das
‫imagens de validação.
‫Agora, isso foi muita conversa.
‫É muito melhor ver isso no código, então detalhado significa apenas dizer, ei, quando você estiver fazendo previsões,
‫mostre-me seu progresso.
‫Bem, isso foi muito rápido porque temos duzentas imagens, então essa é a beleza de trabalhar
‫em uma GPU.
‫As previsões também são muito rápidas.
‫E isso levou apenas cerca de sete milissegundos.
‫Portanto, nem mesmo um segundo inteiro.
‫E se não definíssemos verbose igual a um, não teríamos essa pequena saída de barra de progresso.
‫Você pode estar olhando para isso e pensando, o que está acontecendo aqui?
‫Muitos números diferentes.
‫Então, vamos verificar a forma de previsão de Shapir.
‫Se você se lembra, onde isso se alinha, então se formos, Len, por quê?
‫Val.
‫Duzentas, então há o primeiro Qype, então duzentas imagens.
‫De onde você acha que está vindo o segundo navio?
‫Cento e vinte, onde vimos isso antes,
‫Len?
‫Raças únicas.
‫Cento e vinte, então isso significa que temos uma matriz de duzentos por cento e vinte,
‫então temos 200.
‫Vamos ver o primeiro elemento.
‫Portanto, temos 200 previsões, zero.
‫200 matrizes.
‫De cento e vinte números diferentes que são realmente pequenos e estamos nos perguntando o que está
‫acontecendo aqui.
‫Hum.
‫Vamos descobrir a duração disso.
‫Cento e vinte, maravilhoso.
‫Então, o que isso realmente é.
‫É uma probabilidade associada.
‫Para a probabilidade, então basicamente o que nosso modelo pensa que uma determinada imagem é, então há um valor de
‫probabilidade aqui para cada rótulo.
‫Portanto, o valor aqui, o valor mais alto nesta matriz de previsões.
‫Portanto, as previsões zero estão certas.
‫Isso é para uma imagem, a primeira imagem nos dados de validação.
‫Portanto, o valor mais alto aqui vai corresponder ao índice do rótulo que o modelo acredita ser o
‫mais provável.
‫E, novamente, isso é muita conversa, fará um pouco mais de sentido assim que começarmos a colocá-lo junto
‫com o código, mas tenha paciência comigo por um segundo.
‫Se somarmos tudo isso, eles serão iguais muito perto de um ou talvez um.
‫Exatamente.
‫E digo muito perto porque a maneira como os números das lojas de computador não é exatamente.
‫Então, se você continuar, vírgulas decimais.
‫Direito.
‫Vai ficar muito perto de um, mas pode não ser exatamente um, e você pode estar dizendo: Daniel, o que
‫você está me dizendo?
‫Dessa forma, os números das lojas de computador não são exatos.
‫Bem, eu nem mesmo entendo completamente, mas você apenas tem que saber que quando um computador armazena um número
‫que tem muitos decimais devido à forma como é mais eficiente armazená-lo em um chip
‫de computador, não será perfeitamente exato.
‫É por isso que digo que quando você soma um único array de predição, ele será muito próximo de um.
‫E agora vou amarrar isso de volta ao ponto em que voltamos ao nosso modelo.
‫É por isso que usamos a ativação softmax.
‫Você pode estar dizendo até agora.
‫Este é um vídeo, Zygi, você já nos falou sobre Softmax.
‫Realmente não fazia sentido e realmente não faz sentido agora.
‫Mas se voltarmos para Softmax, vamos, sim, que tal irmos?
‫O que é Softmax se voltarmos à nossa página amigável da Wikipedia?
‫Isso vai nos dizer.
‫Mas depois de aplicar softmax, cada componente estará no intervalo entre zero a um e os
‫componentes somarão um.
‫Então é isso que estamos obtendo aqui.
‫Estamos recebendo nossos componentes porque usamos uma ativação softmax na última camada de nossa
‫rede, ela gerou um array, um array de predição que tem 120 de comprimento e todos esses valores na predição zero
‫e cada uma das outras predições.
‫Ele tem previsões.
‫Um estará muito próximo de outro também.
‫Portanto, as previsões somam-se a um.
‫Ou muito perto de um.
‫Oh, previsões.
‫Aqui vamos nós.
‫Veja, isso é pouco mais de um, é muito próximo de um dos mais decimais que existem, menos o número
‫exato é com um computador.
‫E então vamos juntar tudo isso.
‫Porque agora, tem sido muito falado, quero dar um exemplo concreto.
‫Vamos considerar as previsões zero.
‫Então, vamos remover essas células.
‫E apenas um pequeno petisco também, lembre-se de nossa magonet, arquitetura V2, tudo o que toda a camada
‫softmax está fazendo é pegar esses mil duzentos e oitenta resultados, este array de números e
‫transformá-lo em um array de números como este ou como o cento e vinte usando uma ativação softmax.
‫Porque lembre-se, para problemas de classificação multiclasse, queremos a ativação do softmax.
‫Mas se estivéssemos fazendo apenas uma classificação única, usaríamos sigmóide.
‫Então, para voltar aqui, vamos dar uma olhada.
‫Então, a primeira previsão, vou digitar alguns pequenos truques de indexação aqui, e eu só quero
‫que você apenas observe como segue adiante.
‫Mas eu quero que você comece a pensar sobre como essas coisas estão todas interligadas.
‫Então, vamos fazê-lo.
‫Porque nosso objetivo agora é o nosso modelo, como fizemos algumas previsões aqui, mas nosso objetivo é entender essas previsões mais
‫à medida que nosso computador entende isso direito, porque são todas numéricas.
‫Portanto, lembre-se no início de como passamos muito tempo transformando nossos dados em números, tipo quando você chega à saída
‫de um modelo de aprendizado de máquina.
‫Direito.
‫Então é nisso que estamos focados.
‫Passamos muito tempo preparando nossas entradas.
‫Agora vamos gastar muito tempo preparando nossos resultados, que é o que estamos fazendo agora.
‫Então vamos imprimir predições zero e então o que vamos fazer é encontrar o valor máximo de probabilidade.
‫Portanto, lembre-se da função dentro do empréstimo, você não pode chamar o prober de previsão, que produz
‫uma probabilidade de previsão, que é o que a previsão faz por default intensivo baixo.
‫Vamos aqui, previsão enpi, previsões do Mac zero.
‫Então, estamos descobrindo.
‫Vamos nos lembrar, previsão zero, de como estamos encontrando o valor máximo aqui.
‫Isso é tudo que a linha faz.
‫E então o que vamos fazer a seguir?
‫Então, nós queremos.
‫O que mais nós queremos?
‫Queremos encontrar a soma.
‫Então, ENPI, na verdade, podemos configurar isso para que possamos fazer vários.
‫Portanto, o índice é igual a zero.
‫Só para que possamos ver com vários exemplos, o Sam Sam vai ser ENPI algum índice de predições, bom e
‫simples.
‫Então nós iremos, uau, isso foi um erro de digitação terrível, Daniel.
‫Vamos, vamos ao índice de massa.
‫Portanto, encontre o índice nesta matriz, que possui o valor máximo.
‫Então, que é igual ao valor máximo.
‫O NPR apóia o índice de previsões e, claro, o que estamos fazendo agora é um pouco tedioso.
‫Vamos trabalhar nisso mais tarde.
‫Então, você pode imaginar que se continuássemos escrevendo células como esta, é aqui que
‫estamos funcionando todo o nosso código o máximo que podemos, para que não tenhamos apenas que escrever continuamente esse
‫tipo de instruções de impressão para explorar nossos dados ou explore nosso índice de previsões de previsões.
‫Maravilhoso, previu Leibel.
‫Agora, antes de executarmos esta célula, estamos indo contra nossa regra cardinal de, em caso de dúvida, execute o
‫código, quero que você apenas pense sobre o que este está fazendo.
‫Deixe-me lembrá-lo do que são raças únicas.
‫Então, essas são todas as nossas raças de cães.
‫Então, se tivermos previsões e encontrarmos o índice de massa dele e então descobrirmos onde esse índice ocorre e raças únicas,
‫o que você acha que vai retornar?
‫Dica, nós digitamos aqui.
‫Tudo bem, vamos deletar esse bad boy e então mudaremos e entraremos.
‫Maravilhoso.
‫Então aqui está o índice zero, este é aquele array, exatamente o mesmo aqui, a saída de nosso modelo quando chamamos
‫de predição.
‫Portanto, o valor máximo, a probabilidade de predição, o máximo que isso pode ser é um, porque
‫lembre-se, o total de uma função softmax está entre zero e um.
‫Portanto, o mais alto que um único valor pode ser é um.
‫Então, isso quer dizer que estamos prevendo a maior difamação aqui com uma probabilidade de previsão de vinte e um vírgula seis por
‫cento.
‫Agora, a soma de todos esses valores está muito próxima de um novamente.
‫Alinhando com a regra softmax entre zero e um e somará um, mas por causa de como os
‫computadores calculam os números, não exatamente um e o índice máximo.
‫Portanto, onde esse valor ocorre é dezessete.
‫Portanto, se pudermos adicionar três, encontraremos 17 em algum lugar.
‫Talvez lá.
‫É isso.
‫Agora, o predito Labellers border terrier, portanto, para o índice zero.
‫Ou para validação, imagem zero.
‫O rótulo previsto é border terrier.
‫Agora vamos mudar isso.
‫E se fizéssemos e se indexássemos?
‫Qual é o nosso número favorito?
‫42
‫Então nós temos o valor máximo, probabilidade de previsão, então isso é muito maior.
‫Isso é 75 por cento, então estou bastante confiante com este.
‫Portanto, você poderia dizer que quanto mais alto esse valor é para um, quanto mais próximo ele está de um, mais confiante é
‫o modelo sobre uma determinada previsão.
‫A soma é muito próxima de um, o índice máximo é cento e treze e a estimativa
‫do Labellers.
‫Então, se formos aqui, notas únicas.
‫Se encontrássemos o número de índice 113.
‫Iríamos encontrar um passeio por lá vamos nós, andar por aí.
‫113
‫Dê uma volta, então é assim que convertemos nossas probabilidades de predição em forma numérica, algo que nosso
‫computador entende em algo que entendemos como um rótulo predito.
‫Portanto, agora temos uma forma de transformar nossas previsões em algo que possamos entender.
‫O que começaremos a fazer a seguir é criar uma pequena função que nos permitirá encontrar os rótulos
‫previstos para cada amostra no conjunto de validação.
‫Então, cerca de duzentas ou mais imagens, e então vamos desempacotar esses dados, definir os dados de
‫validação e comparar as previsões de uma forma visual com os rótulos verdadeiros.
‫Agora, de novo, muita conversa, mas no próximo vídeo, vamos começar a construir essa funcionalidade e
‫ver como ela se parece na realidade.
‫E estou tão animado, certo?
‫Porque uma das partes mais divertidas é comparar as previsões do seu modelo com o que está realmente acontecendo.
‫A visão do cão está ganhando vida.