Ir para o conteúdo principal

Aplicando suas redes neurais convolucionais (CNN): webinar sob demanda e FAQ já disponíveis!

Webinar-DL3-NeuralNetworks-OD%25402x

Publicado: 13 de novembro de 2018

Soluções6 min de leitura

Experimente este notebook no Databricks

Em 25 de outubro, realizamos um webinar ao vivo—Aplicando suas redes neurais convolucionais—com Denny Lee, Gerente Técnico de marketing de produto da Databricks. Este é o terceiro webinar de uma série gratuita sobre fundamentos de aprendizagem profunda da Databricks.

Neste webinar, nos aprofundamos nas Redes Neurais Convolucionais (CNNs), um tipo específico de redes neurais que pressupõem que as entradas são imagens e que se mostraram muito eficazes para classificação de imagens e reconhecimento de objetos.

Em particular, falamos sobre:

  • Arquitetura CNN, com nós organizados em 3D com largura, altura e profundidade, permitindo a aplicação de filtros convolucionais para extrair recursos.
  • Como os kernels convolucionais (filtros) funcionam, incluindo como escolher os tamanhos do filtro, strides e padding para extrair recursos de regiões de pixels nas suas imagens de entrada.
  • Técnicas de pooling, ou subamostragem, para reduzir o tamanho da imagem, diminuindo o número de parâmetros e, com isso, o risco de overfitting.

Demonstramos alguns desses conceitos usando Keras (backend do TensorFlow) no Databricks, e aqui está um link para nosso notebook para começar hoje:

Você ainda pode assistir à Parte 1 e à Parte 2 abaixo:

Se você quiser acesso gratuito à Databricks plataforma de análise unificada e experimentar nossos Notebooks nela, pode acessar um trial grátis aqui.

No final, realizamos uma sessão de perguntas e respostas, e abaixo estão as perguntas e suas respostas, agrupadas por tópicos.

Fundamentos

P: Eu realmente preciso entender a matemática por trás das redes neurais para usar redes neurais?

Embora não seja totalmente necessário entender a matemática por trás das redes neurais para usá-las, é importante entender esses fundamentos para escolher os algoritmos certos e para entender como otimizar, melhorar e arquitetar seus modelos de aprendizagem profunda (e machine learning). Um bom artigo sobre este tópico é The Mathematics of Machine Learning, de Wale Akinfaderin.

Rede neural convolucional

P: Por que usar CNNs em vez de redes neurais regulares? E como se usam CNNs na vida real, você pode compartilhar exemplos de aplicações para isso?

Fonte: https://cs231n.github.io/convolutional-networks/

UM LÍDER 5X

Gartner®: Databricks, líder em banco de dados em nuvem

Conforme discutido mais a fundo em treinamento de redes neurais, as redes neurais convolucionais (CNN) são semelhantes às redes neurais artificiais regulares, mas as primeiras fazem suposições explícitas de que a entrada são imagens.  O problema é que as redes neurais artificiais totalmente conectadas (conforme visualizado no gráfico à esquerda) não escalam bem com imagens. Por exemplo, uma imagem de 200 pixels x 200 pixels  x 3 canais de cor (p. ex. RGB) resultaria em 120.000 pesos. Quanto maior ou mais complexa (em termos de canais) a imagem, mais pesos seriam necessários. No caso das CNNs, os nós são conectados apenas a uma pequena região da camada anterior organizada em 3D (largura, altura, profundidade).  Como os nós não são totalmente conectados, isso reduz o número de pesos (ou seja, cardinalidade), permitindo que a rede conclua suas passagens mais rapidamente.

P: Uma CNN é uma rede de camadas, tamanho e tipo. Como faço para escolhê-los? com base em quê? Em outras palavras, como projeto minha arquitetura?

Conforme observado em Introdução a Redes Neurais: Webinar On-Demand e FAQ já disponíveis, embora existam regras gerais sobre o seu ponto de partida (por exemplo, começar com uma camada oculta e expandir conforme necessário, o número de nós de entrada é igual à dimensão dos recursos, etc.), o ponto principal é que você precisará testar.  Ou seja, ensine seu modelo e, em seguida, execute os testes e/ou validações nesse modelo para entender a acurácia (quanto maior, melhor) e a perda (quanto menor, melhor). Em termos de projetar sua arquitetura, é melhor começar com as arquiteturas mais bem compreendidas e pesquisadas (por exemplo, AlexNet, LeNet-5, Inception, VGG, ResNet, etc.).  A partir daqui, você pode ajustar o número, o tamanho e o tipo de camadas conforme executa seus experimentos.

P: Por que usar softmax para a camada totalmente conectada?

Quando estamos trabalhando com regressão logística, isso pressupõe uma distribuição de Bernoulli para nossa classificação binária.  Quando você precisa aplicar a mais de dois classificadores (como nosso problema de classificação MNIST), precisamos da generalização da distribuição de Bernoulli, que é uma distribuição multinomial.  O tipo de regressão que é aplicado à distribuição multinomial (multiclassificador) é conhecido como regressão softmax. Para o MNIST, estamos classificando dígitos manuscritos para algum valor entre 0, ..., 9 na camada totalmente conectada, daí o uso de softmax.

P: O tamanho do filtro é sempre um número ímpar?

Uma abordagem comum para o tamanho do filtro é f x f, onde f é um número ímpar.  Embora não seja explicitamente mencionado, no slide 39 de Aplicação de Redes Neurais, f é um número ímpar porque o objetivo é convolver o pixel de origem e seus pixels vizinhos.  O mínimo seria um tamanho de filtro de 3 x 3, já que isso seria o pixel de origem + 1 pixel para fora no espaço 2D.

Ao ter um tamanho f par, isso resultaria na convolução de menos da metade dos pixels ao redor do pixel de origem.  Para se aprofundar, uma boa resposta no SO para essa pergunta pode ser encontrada em https://datascience.stackexchange.com/questions/23183/why-convolutions-always-use-odd-numbers-as-filter-size/23186.

P: Como posso implementar uma CNN com comprimento de entrada variável?  Ou seja, alguma sugestão para dados de treinamento que tenham imagens de tamanhos variáveis?

Em geral, você precisaria redimensionar suas imagens ou preenchê-las com zeros para que todas as imagens de entrada para sua CNN tenham o mesmo tamanho.  Existem algumas abordagens envolvendo LSTMs, RNNs ou redes neurais recursivas (especialmente para dados de texto) que podem lidar com entradas de tamanho variável, embora seja importante notar que essa geralmente é uma tarefa não trivial.

Ambiente de ML e Recursos

P: Sou um usuário pagante do Databricks.  Sei como executar o Keras no meu próprio PC, mas ainda não dentro do Databricks.

Ao usar o Databricks, inicie um cluster Databricks Runtime for Machine Learning que inclui, entre outros, Keras, TensorFlow, XGBoost, Horovod e scikit-learn.  Para mais informações, consulte Anunciando o Databricks Runtime for Machine Learning.

P: Tivemos uma sessão semelhante para ML?

Há vários webinars excelentes do Databricks disponíveis; aqueles que se concentram em Machine Learning incluem (mas não se limitam a):

Recursos

 

(Esta publicação no blog foi traduzida utilizando ferramentas baseadas em inteligência artificial) Publicação original

Nunca perca uma postagem da Databricks

Inscreva-se nas categorias de seu interesse e receba as últimas postagens na sua caixa de entrada

O que vem a seguir?

image

Data Science e ML

31 de outubro de 2023/9 min de leitura

Anunciando as métricas de LLM-como-juiz do MLflow 2.8 e as Melhores Práticas para Avaliação de LLM de Aplicações RAG, Parte 2

Creating High Quality RAG Applications with Databricks

Anúncios

6 de dezembro de 2023/7 min de leitura

Criando aplicativos RAG de alta qualidade com a Databricks