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:
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.
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.
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?
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.
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):
(Esta publicação no blog foi traduzida utilizando ferramentas baseadas em inteligência artificial) Publicação original
Data Science e ML
31 de outubro de 2023/9 min de leitura
Anúncios
6 de dezembro de 2023/7 min de leitura