< Return to Video

RDAG CAP02 2025 VA03 CNN CONCEITOS E PRINCIPIOS

  • 0:08 - 0:09
    Como uma CNN funciona?
  • 0:09 - 0:11
    Antes de mais nada,
    é importante entender
  • 0:11 - 0:13
    como a entrada para esse
    tipo de rede é formada,
  • 0:13 - 0:16
    que é, justamente,
    a composição de uma 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:46
    e a soma deles resulta
    na imagem final,
  • 0:46 - 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:07
    E existe uma série de variações
    desses valores, que são, no caso,
  • 1:07 - 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 os valores 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:48
    Agora, como ela extrai
    características dessas imagens?
  • 1:48 - 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:01
    Aqui no caso, uma função
    vai ser expressa pelo dado,
  • 2:01 - 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óxima 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:37
    das partes dessa imagem.
  • 2:37 - 2:41
    Essa convolução gera um input
    para a próxima camada
  • 2:41 - 2:45
    que faz uma nova convolução
    sobre a camada anterior,
  • 2:45 - 2:46
    e assim sucessivamente.
  • 2:46 - 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:05
    que representam a cara
    de um cachorro,
  • 3:05 - 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:31
    representa que tipo
    de imagem?
  • 3:31 - 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:45
    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:51
    é muito importante nós entendermos
    como a convolução funciona.
  • 3:51 - 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:08
    extraindo informações parciais
    de cada parte dessa imagem.
  • 4:08 - 4:11
    Essa imagem resultante,
    que não é bem uma imagem,
  • 4:11 - 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:50
    que representa um peso
    a ser aprendido,
  • 4:50 - 4:52
    que representa
    uma janela 2 por 2.
  • 4:52 - 4:55
    Então, essa janela vai
    deslizar pela imagem.
  • 4:55 - 4:58
    Quando nós passamos
    pela primeira região,
  • 4:58 - 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:12
    essa multiplicação dessa parte
    do pixel pelo peso da matriz
  • 5:12 - 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:39
    mas a máquina
    consegue entender
  • 5:39 - 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:51
    para caracterizar a qual classe
    aquela imagem de entrada pertence.
  • 5:51 - 5:54
    De forma intuitiva, você
    pode pensar o seguinte:
  • 5:54 - 5:56
    se a minha janela
    for muito pequena
  • 5:56 - 5:58
    e/ou se minha imagem
    for muito grande,
  • 5:58 - 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:07
    para representar
    aquele conteúdo?
  • 6:07 - 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:26
    pode ser sumarizada pelo pixel
    mais importante dessa região,
  • 6:26 - 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:35
    o maior valor
    desse pixel é o 1,
  • 6:35 - 6:38
    dessa outra região,
    o maior valor é o 2,
  • 6:38 - 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:53
    que é o max pooling.
  • 6:53 - 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:02
    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 pooling foram aplicados,
  • 7:06 - 7:08
    essa matriz resultante
    serve de entrada
  • 7:08 - 7:10
    para a próxima operação
    de convolução,
  • 7:10 - 7:13
    e depois um pooling, e depois outra
    convolução, e depois um pooling.
  • 7:13 - 7:16
    Ou então outros arranjos, como
    diversas convolução sucessivas,
  • 7:16 - 7:18
    terminando em uma operação
    de pooling.
  • 7:18 - 7:22
    Ou seja, tem uma regra para construir
    a sua arquitetura própria de CNN?
  • 7:22 - 7:26
    Sim e não: a regra é utilizar
    convoluções e pooling,
  • 7:26 - 7:29
    mas o encadeamento entre
    eles pode ser uma definição
  • 7:29 - 7:31
    que você vai montar na sua
    própria arquitetura.
  • 7:31 - 7:34
    No entanto, existem outras
    configurações que podem ser feitas
  • 7:34 - 7:37
    para tornar esse aprendizado
    mais robusto, ou seja,
  • 7:37 - 7:39
    tentar aprender mais
    nuances dessas imagens,
  • 7:39 - 7:42
    como o padding
    e também o striding.
  • 7:43 - 7:45
    O padding está
    justamente relacionado
  • 7:45 - 7:48
    a evitar a perda de informação
    que está na borda da imagem.
  • 7:48 - 7:51
    Se a imagem original está
    aqui nessa região em azul,
  • 7:51 - 7:53
    é naturalmente visível
  • 7:53 - 7:57
    que, quanto mais a janela
    está deslizando pela imagem,
  • 7:57 - 7:59
    a informação do centro
    tende a ser mais valorizada
  • 7:59 - 8:01
    para extração de features,
  • 8:01 - 8:05
    sendo que a informação que está
    na borda tende a ser ignorada.
  • 8:05 - 8:06
    Quando nós
    fazemos o padding,
  • 8:06 - 8:11
    estamos colocando como se fossem
    pixels falsos em volta da imagem
  • 8:11 - 8:13
    para simular uma imagem
    um pouco maior.
  • 8:13 - 8:15
    Assim, a borda
    que vai ser perdida,
  • 8:15 - 8:18
    vai ser uma borda que,
    de fato, seria irrelevante.
  • 8:20 - 8:23
    Outra estratégia
    interessante é o striding,
  • 8:23 - 8:26
    que diz, justamente, o tamanho
    do passo da janela deslizante
  • 8:26 - 8:27
    pela imagem.
  • 8:27 - 8:29
    Podemos ter um striding
    menor ou maior.
  • 8:30 - 8:32
    E essas são apenas duas
    configurações possíveis
  • 8:32 - 8:34
    na montagem
    de sua arquitetura.
  • 8:34 - 8:38
    Fora isso, você pode pensar quantas
    convoluções, quantos poolings,
  • 8:38 - 8:39
    qual a ordem deles também,
  • 8:39 - 8:43
    e outras estratégias que ajudam
    a deixar a rede mais especializada,
  • 8:43 - 8:47
    mais rápida ou até mais
    específica a um tipo de dado
  • 8:47 - 8:48
    que você queira construir.
  • 8:48 - 8:52
    Com isso, nós podemos ter outros
    tipos de redes neurais profundas
  • 8:52 - 8:54
    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,
  • 8:59 - 9:02
    como as que estão
    na imagem a seguir.
  • 9:02 - 9:04
    Partindo de uma rede
    tradicional, digamos assim,
  • 9:04 - 9:06
    podemos pensar
    em uma rede mais ampla,
  • 9:06 - 9:09
    que possui uma janela
    de entrada maior,
  • 9:09 - 9:13
    uma rede mais profunda, que possui
    mais camadas convolucionais
  • 9:13 - 9:16
    e/ou de pooling, e uma rede
    de maior resolução,
  • 9:16 - 9:19
    que está preparada para trabalhar
    com imagens de maior resolução,
  • 9:19 - 9:22
    de fato, ou seja,
    imagens maiores.
  • 9:22 - 9:24
    Dadas estas e outras
    configurações,
  • 9:24 - 9:25
    não é de se admirar
  • 9:25 - 9:28
    que existem diversas
    arquiteturas neurais profundas
  • 9:28 - 9:30
    para se trabalhar com CNN.
  • 9:30 - 9:34
    Ou seja, diversas propostas
    de redes neurais baseadas em CNN
  • 9:34 - 9:36
    foram surgindo
    ao longo do tempo,
  • 9:36 - 9:40
    cada uma com suas caraterísticas
    peculiares, por exemplo:
  • 9:40 - 9:43
    se o tamanho da imagem representa
    a quantidade de parâmetros
  • 9:43 - 9:46
    a serem aprendidos no treinamento,
    temos redes muito grandes,
  • 9:46 - 9:50
    muito profundas, redes
    não tão profundas assim,
  • 9:50 - 9:54
    redes que possuem um desempenho
    muito bom no ImageNet
  • 9:54 - 9:57
    e outras que exigem uma quantidade
    muito grande de operações
  • 9:57 - 9:59
    a serem feitas por segundo.
  • 9:59 - 10:02
    Agora, qual dessas arquiteturas
    melhor se adequa ao seu problema,
  • 10:02 - 10:04
    depende de uma série
    de questões,
  • 10:04 - 10:06
    por exemplo, qual é
    o ambiente convolucional
  • 10:06 - 10:09
    onde você vai treinar
    e usar as predições ,
  • 10:09 - 10:11
    qual é o conjunto de dados
    que você vai utilizar,
  • 10:11 - 10:13
    se é algo mais
    específico ou geral,
  • 10:13 - 10:15
    ou até mesmo o tamanho
    do dado que você tem
  • 10:15 - 10:17
    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