< Return to Video

RDAG CAP02 2025 VA03 CNN CONCEITOS E PRINCIPIOS

  • 0:08 - 0:10
    Como uma CNN funciona?
  • 0:10 - 0:11
    Antes de mais nada,
    é importante entender
  • 0:11 - 0:13
    como a entrada para esse
    tipo de rede é formada,
  • 0:13 - 0:17
    que é, justamente,
    a composição de imagem.
  • 0:17 - 0:20
    Aqui, nós temos uma representação
    de uma imagem clássica,
  • 0:20 - 0:23
    onde nós temos uma diferença
    entre linhas e colunas,
  • 0:23 - 0:26
    uma matriz de linhas e colunas
    em três dimensões.
  • 0:26 - 0:29
    Cada dimensão é um canal
    de cor dessa imagem,
  • 0:29 - 0:33
    geralmente é vermelho,
    verde e azul.
  • 0:33 - 0:36
    Isso compõe a função
    RGB de uma imagem.
  • 0:36 - 0:40
    Basicamente, nós temos
    pixels que vão de 0 até 255
  • 0:40 - 0:43
    em cada célula dessa imagem,
    em cada um dos canais,
  • 0:43 - 0:47
    e a soma deles resulta
    na imagem final,
  • 0:47 - 0:48
    na cor final que nós
    vemos na tela.
  • 0:48 - 0:52
    Por exemplo, nessa representação,
    nós temos o número 8 escrito à mão,
  • 0:52 - 0:56
    então é uma imagem esticadinha
    sobre esse número 8 escrito à mão.
  • 0:56 - 1:00
    Nós temos, aqui, a representação
    pixel a pixel dessa imagem.
  • 1:00 - 1:04
    O 0 é a cor preta
    e o 255 é a cor branca.
  • 1:04 - 1:08
    E existe uma série de variações
    desses valores, que são, no caso,
  • 1:08 - 1:09
    uma escala de cinza.
  • 1:09 - 1:14
    E, aqui na terceira parte,
    nós temos a matriz de pixels,
  • 1:14 - 1:17
    onde temos o valor de cada
    pixel em cada posição.
  • 1:17 - 1:23
    É até possível entender como está
    a localização do 8 nessa imagem.
  • 1:23 - 1:26
    Então, para a máquina poder
    aprender essa representação,
  • 1:26 - 1:29
    ela tem que aprender
    misturas de borda,
  • 1:29 - 1:32
    diferença desses valores
    para uma aresta,
  • 1:32 - 1:35
    para uma bolinha aqui de cima,
    uma bolinha aqui de baixo,
  • 1:35 - 1:39
    que está compondo a característica
    visual do número 8.
  • 1:39 - 1:41
    Então, em uma CNN,
    a camada de entrada
  • 1:41 - 1:45
    se conecta diretamente
    a cada pixel das imagens.
  • 1:45 - 1:49
    Agora, como ela extrai
    características dessas imagens?
  • 1:49 - 1:52
    A operação principal que dá
    nome à CNN e a convolução.
  • 1:52 - 1:54
    A convolução é
    uma operação matemática
  • 1:54 - 1:58
    que representa a soma
    de produto de duas funções.
  • 1:58 - 2:02
    Aqui no caso, uma função
    vai ser expressa pelo dado,
  • 2:02 - 2:05
    pela imagem, por exemplo, e outra
    função é uma matriz de pesos
  • 2:05 - 2:09
    que está representando a importância
    de cada parte da imagem
  • 2:09 - 2:11
    na representação
    daquele conteúdo.
  • 2:11 - 2:13
    Vamos entender isso
    na própria imagem.
  • 2:13 - 2:15
    Então, aqui, nós temos
    uma representação
  • 2:15 - 2:18
    de uma arquitetura
    profunda baseada em CNN.
  • 2:18 - 2:20
    Temos a camada de entrada
    e a camada de saída.
  • 2:20 - 2:23
    Essencialmente, a parte
    da CNN, de fato,
  • 2:23 - 2:27
    é da camada de entrada
    até quase antes da saída,
  • 2:27 - 2:31
    porque é uma parte da rede utilizada
    para a extração de features,
  • 2:31 - 2:35
    que são a operação de convolução
    sendo passada por cada uma
  • 2:35 - 2:38
    das partes dessa imagem.
  • 2:38 - 2:41
    Essa convolução gera um input
    para a próxima camada
  • 2:41 - 2:44
    que faz uma nova convolução
    sobre a camada anterior,
  • 2:44 - 2:47
    e assim sucessivamente.
  • 2:47 - 2:50
    O que ele está aprendendo são
    representações diretamente da imagem,
  • 2:50 - 2:55
    como arestas, cantos e, depois,
    coisas de mais alto nível,
  • 2:55 - 2:59
    como variação de cor,
    variação de textura
  • 2:59 - 3:02
    ou, então, combinação de partes
    que formam um todo.
  • 3:02 - 3:04
    Então, um olhinho,
    um focinho,
  • 3:04 - 3:06
    que representam a cara
    de um cachorro,
  • 3:06 - 3:07
    um ponteiro, um número,
  • 3:07 - 3:11
    que representam
    a dimensão de um relógio.
  • 3:11 - 3:13
    Quando nós chegamos nas últimas
    camadas convolucionais,
  • 3:13 - 3:17
    nós vamos extrair um vetor
    com alguma dimensão.
  • 3:17 - 3:20
    Então, por exemplo, 4096,
    ou outro número relevante,
  • 3:20 - 3:23
    e isso alimenta uma rede
    neural artificial clássica
  • 3:23 - 3:27
    que aprende a distinguir
    o que significa esse dado,
  • 3:27 - 3:30
    ou seja, esse vetorzão
    de 4000 dimensões
  • 3:30 - 3:32
    representa que tipo
    de imagem?
  • 3:32 - 3:33
    Pode ser um cachorro.
  • 3:33 - 3:38
    Esse outro vetor, que representa
    uma outra imagem, significa o quê?
  • 3:38 - 3:41
    É um gato, uma flor,
    e assim vai,
  • 3:41 - 3:46
    até a máquina conseguir aprender
    como distinguir uma imagem da outra.
  • 3:46 - 3:48
    Se o cerne da questão
    é uma convolução,
  • 3:48 - 3:52
    é muito importante nós entendermos
    como a convolução funciona.
  • 3:52 - 3:53
    Nós podemos entender
    uma convolução
  • 3:53 - 3:57
    como uma janela deslizante que está
    passando pela imagem de entrada.
  • 3:57 - 3:59
    A primeira convolução
    é fácil de ser entendida
  • 3:59 - 4:02
    porque está pegando uma janela
    de uma dimensão específica
  • 4:02 - 4:04
    e deslizando pela imagem
    como um todo,
  • 4:04 - 4:09
    extraindo informações parciais
    de cada parte dessa imagem.
  • 4:09 - 4:12
    Essa imagem resultante,
    que não é bem uma imagem,
  • 4:12 - 4:13
    mas algo tridimensional,
  • 4:13 - 4:15
    que representa os pixels
    já mastigados,
  • 4:15 - 4:18
    serve de entrada para uma outra
    camada convolucional
  • 4:18 - 4:21
    que está passando uma outra
    janela deslizante.
  • 4:21 - 4:23
    Cada janela dessa pode
    ser um peso diferente
  • 4:23 - 4:26
    que representa a importância
    daquela região da imagem
  • 4:26 - 4:28
    para caracterizar o seu
    elemento principal,
  • 4:28 - 4:32
    ou seja, a principal classe
    presente naquela imagem.
  • 4:32 - 4:35
    Vamos entender o processo
    pelo próximo diagrama.
  • 4:35 - 4:40
    Para simplificar, imagine uma imagem
    bem pequenininha, de 4 por 5,
  • 4:40 - 4:44
    com alguns valores 0 e 1
    que indicam um pixel qualquer.
  • 4:44 - 4:47
    E nós temos, aqui,
    uma matriz menor,
  • 4:47 - 4:49
    que apresenta um peso
    a ser aprendido,
  • 4:49 - 4:53
    que representa
    uma janela 2 por 2.
  • 4:53 - 4:56
    Então, essa janela vai
    deslizar pela imagem.
  • 4:56 - 4:57
    Quando nós passamos
    pela primeira região,
  • 4:57 - 5:01
    nós vamos multiplicar
    os pixels dessa imagem
  • 5:01 - 5:05
    pelo peso dessa matriz,
    que representa esse valor "3".
  • 5:05 - 5:08
    Quando eu faço
    um passinho por lado,
  • 5:08 - 5:13
    essa multiplicação dessa parte
    do pixel pelo peso da matriz
  • 5:13 - 5:15
    representa um outro valor
    condensado, que é o 3,
  • 5:15 - 5:17
    e assim sucessivamente.
  • 5:17 - 5:20
    Nós vamos dando
    pulinhos nessa janela,
  • 5:20 - 5:23
    ou para a direita ou para baixo,
    em todas as dimensões.
  • 5:23 - 5:25
    Quando nós percorrermos
    toda a imagem,
  • 5:25 - 5:30
    nós vamos ter uma imagem resultante
    que tem essa característica.
  • 5:30 - 5:32
    Se nós queremos plotar
    a imagem de entrada,
  • 5:32 - 5:34
    vamos conseguir entender
    o seu significado.
  • 5:34 - 5:36
    A imagem de saída
    dessa convolução
  • 5:36 - 5:38
    é algo que é difícil de ser
    interpretado pelo ser humano,
  • 5:38 - 5:40
    mas a máquina
    consegue entender
  • 5:40 - 5:42
    que tem uma informação
    relevante para ela.
  • 5:42 - 5:47
    Ou seja, os pixels foram mastigados
    para condensar informação importante
  • 5:47 - 5:52
    para caracterizar a qual classe
    aquela imagem de entrada pertence.
  • 5:52 - 5:54
    De forma intuitiva, você
    pode pensar o seguinte:
  • 5:54 - 5:56
    se a minha janela
    for muito pequena
  • 5:56 - 5:59
    e/ou se minha imagem
    for muito grande,
  • 5:59 - 6:03
    esse filtro convolucional pode gerar
    uma outra matriz muito grande.
  • 6:03 - 6:06
    Ou seja, será que isso
    pode não ser eficiente
  • 6:06 - 6:08
    para representar
    aquele conteúdo?
  • 6:08 - 6:10
    Muito provavelmente,
    não será tão eficiente,
  • 6:10 - 6:13
    portanto, outra operação tão
    importante quanto a convolução
  • 6:13 - 6:14
    é o pooling.
  • 6:14 - 6:16
    O pooling representa
    uma sumarização
  • 6:16 - 6:20
    de uma parte dessa imagem
    resultante, digamos assim.
  • 6:20 - 6:23
    Então, essa região representada
    por esse quadrado em vermelho,
  • 6:23 - 6:27
    pode ser sumarizada pelo pixel
    mais importante que essa região,
  • 6:27 - 6:29
    por exemplo, o seu
    maior valor, o número 3.
  • 6:29 - 6:32
    Quando eu pego
    essa outra região aqui,
  • 6:32 - 6:34
    o maior valor
    desse pixel é o 1,
  • 6:34 - 6:37
    dessa outra região,
    o maior valor é o 2,
  • 6:37 - 6:41
    e dessa outra região,
    o maior valor presente é 1.
  • 6:41 - 6:44
    Portanto, aquela imagem
    que entrou de 3 por 4
  • 6:44 - 6:50
    ficou reduzida em uma imagem,
    ou melhor, uma matriz de 2 por 2.
  • 6:50 - 6:52
    Esse é apenas um dos tipos
    de pooling que existem,
  • 6:52 - 6:54
    que é o max pooling.
  • 6:54 - 6:57
    Nós podemos trabalhar também
    com o average pooling, ou seja,
  • 6:57 - 6:59
    todos aqueles pixels
    daquela região,
  • 6:59 - 7:03
    nós fazemos a média deles
    e levamos essa média adiante.
  • 7:03 - 7:06
    Agora que a primeira convolução
    e o pulo foi aplicado,
  • 7:06 - 7:10
    essa matriz resultante serve de entrada
    para a próxima operação de convolução
  • 7:10 - 7:12
    e depois um pulo e depois outro.
  • 7:12 - 7:13
    Convolução e depois um pulo.
  • 7:13 - 7:17
    Ou então outros arranjos, como diversas
    convolução sucessivas.
  • 7:17 - 7:19
    Terminamos em uma operação de público.
  • 7:19 - 7:22
    Ou seja, tem uma regra para construir
    essa arquitetura própria de CNN
  • 7:23 - 7:26
    Sim não a regra
    para otimizar conversões e pulling,
  • 7:26 - 7:28
    mas o encadeamento entre
  • 7:28 - 7:31
    elas pode ser uma definição que você
    vai montar na sua própria criatura.
  • 7:31 - 7:34
    no entanto, existem outras configurações
    que podem ser feitas
  • 7:34 - 7:38
    para tornar esse aprendizado mais robusto,
    ou se ele tentar aprender
  • 7:38 - 7:42
    mais nuances dessas imagens,
    como por exemplo o pede e também o string.
  • 7:43 - 7:44
    O pede está justamente
  • 7:44 - 7:49
    relacionado a evitar a perda de informação
    que está na borda da imagem com você.
  • 7:49 - 7:52
    Essa imagem original está aqui
    nessa região em azul.
  • 7:52 - 7:56
    É naturalmente visível
    que quanto mais a gente está deslizando
  • 7:56 - 7:57
    pela imagem,
  • 7:57 - 8:01
    a informação do centro tende a ser
    mais valorizada para essa ação de filtros,
  • 8:01 - 8:04
    sendo que a informação que está na borda
    tende a ser ignorada.
  • 8:05 - 8:09
    Quando nós fazemos ou pede, estamos
    colocando como se fossem pixels falsos
  • 8:10 - 8:13
    em volta da imagem para simular uma imagem
    um pouco maior.
  • 8:13 - 8:16
    Assim, a borda que é perdida
    vai ser uma borda
  • 8:16 - 8:19
    que de fato seria irrelevante.
  • 8:20 - 8:22
    Outra estratégia interessante
  • 8:22 - 8:26
    é o sprite, que diz justamente
    o tamanho do passo da janela deslizante.
  • 8:26 - 8:29
    Pela imagem podemos pensar menor ou maior.
  • 8:30 - 8:34
    E essas são apenas duas configurações
    possíveis na montagem sua arquitetura.
  • 8:34 - 8:35
    Fora isso,
  • 8:35 - 8:39
    você pode pensar quantas convulsões,
    quantos pulinhos, qual, além deles também
  • 8:40 - 8:44
    e outros até que ajudam a deixar a rede
    mais especializada, mais rápida
  • 8:44 - 8:48
    ou até mais específica a um tipo de dado
    que você queira construir.
  • 8:49 - 8:51
    Com isso, nós podemos ter outros tipos
  • 8:51 - 8:54
    de redes neurais profundas baseadas em CNN
  • 8:54 - 8:56
    a partir de uma rede tradicional,
    digamos assim.
  • 8:56 - 8:59
    Nós podemos ter imagens
    de outras características principais,
  • 9:00 - 9:02
    como por exemplo,
    as que estão na imagem a seguir.
  • 9:02 - 9:05
    Partindo de uma rede tradicional,
    digamos assim, podemos pensar
  • 9:05 - 9:09
    numa rede mais ampla,
    que possui uma janela de entrada maior,
  • 9:09 - 9:13
    uma rede mais profunda,
    que possui mais camadas convencionais
  • 9:13 - 9:18
    e ou de pool e uma rede de maior resolução
    que está preparada para trabalhar
  • 9:18 - 9:22
    com imagens de maior resolução de fato,
    ou seja, imagens maiores.
  • 9:22 - 9:26
    Dadas estas e outras configurações,
    não é de se admirar que existem diversas
  • 9:26 - 9:30
    arquiteturas neurais profundas
    para se trabalhar com scene.
  • 9:30 - 9:34
    Ou seja, diversas propostas de regionais
    baseadas em CNN
  • 9:34 - 9:39
    foram surgindo ao longo do tempo, cada uma
    com suas caraterísticas peculiares.
  • 9:39 - 9:40
    Por exemplo.
  • 9:40 - 9:43
    Se o tamanho da imagem representa
    a quantidade de parâmetros
  • 9:43 - 9:47
    a ser aprendido no treinamento,
    temos redes muito grandes,
  • 9:47 - 9:48
    muito profundas.
  • 9:48 - 9:52
    Eles não tão profundas
    assim, redes que possuem um desempenho
  • 9:52 - 9:55
    muito bom na imagem net
    e outras que exigem
  • 9:55 - 9:59
    uma quantidade muito grande de operações
    serem feitas por segundo.
  • 9:59 - 10:02
    Agora, qual dessa criatura melhor
    se adequa ao seu problema?
  • 10:02 - 10:05
    Depende de uma série de questões,
    como por exemplo
  • 10:05 - 10:08
    qual é o ambiente funcional
    onde você vai treinar?
  • 10:08 - 10:10
    E os aspones?
  • 10:10 - 10:13
    Qual é o conjunto de dados que você vai
    utilizar, se algo mais específico
  • 10:13 - 10:16
    ou geral, ou até mesmo o tamanho de dados
    que você tem para treinar essas redes.
  • 10:17 - 10:20
    Portanto,
    a melhor saída é sempre a experimentação
Title:
RDAG CAP02 2025 VA03 CNN CONCEITOS E PRINCIPIOS
Video Language:
Portuguese, Brazilian
Duration:
10:23

Portuguese, Brazilian subtitles

Incomplete

Revisions Compare revisions