Existe um nome específico para o filtro? Como um "Blur" ou "Edge detect"
Pratik Khadloya
2
@PratikKhadloya não, esses nomes são dados subjetivamente pelos pesquisadores, com base no que o filtro parece estar detectando.
shadowtalker
11
@Frank Dernoncourt, de acordo com este link paradatascience.com/… , são diferentes quando temos alguns canais. na verdade, quando há vários canais. Cada filtro passa a ser uma coleção de kernels, com um kernel para cada canal de entrada da camada e cada kernel sendo único. Eu ficaria feliz de ter a sua ideia
sariii
6
Um mapa de recursos é igual a um filtro ou "kernel" neste contexto específico. Os pesos do filtro determinam quais recursos específicos são detectados.
Por exemplo, Franck forneceu um ótimo visual. Observe que o filtro / detector de características tem x1 ao longo dos elementos diagonais e x0 ao longo de todos os outros elementos. Dessa forma, a ponderação do kernel detectaria pixels na imagem com valor 1 ao longo das diagonais da imagem.
Observe que o recurso envolvido resultante mostra valores de 4 onde a imagem tem um "1" ao longo dos valores diagonais do filtro 3x3 (detectando o filtro nessa seção específica 3x3 da imagem) e valores mais baixos de 2 nas áreas de a imagem em que esse filtro não foi tão forte.
k × k × CCCHeu n× Heu n× C, por exemplo, um 32 × 32Imagem RGB). Faz sentido usar uma palavra diferente para descrever uma matriz de pesos 2D e uma estrutura diferente para os pesos 3D, pois a multiplicação ocorre entre as matrizes 2D e os resultados são somados para calcular a operação 3D.
Atualmente, há um problema com a nomenclatura nesse campo. Existem muitos termos que descrevem a mesma coisa e até termos usados alternadamente para conceitos diferentes! Tomemos como exemplo a terminologia usada para descrever a saída de uma camada de convolução: mapas de características, canais, ativações, tensores, planos, etc.
Baseado na wikipedia, "No processamento de imagens, um kernel, é uma pequena matriz".
Com base na Wikipedia, "Uma matriz é uma matriz retangular organizada em linhas e colunas".
Se um núcleo é uma matriz retangular, não pode ser a estrutura 3D dos pesos, que geralmente é de k1 1× k2× C dimensões.
Bem, não posso argumentar que essa seja a melhor terminologia, mas é melhor do que usar os termos "kernel" e "filter" de forma intercambiável. Além disso, nós precisamos de uma palavra para descrever o conceito das diferentes matrizes 2D que formam um filtro.
As respostas existentes são excelentes e respondem de maneira abrangente à pergunta. Só quero acrescentar que os filtros nas redes convolucionais são compartilhados por toda a imagem (ou seja, a entrada é convoluída com o filtro, conforme visualizado na resposta de Franck). o campo receptivo de um neurônio em particular são todas as unidades de entrada que afetam o neurônio em questão. O campo receptivo de um neurônio em uma rede convolucional é geralmente menor que o campo receptivo de um neurônio em uma rede densa, cortesia de filtros compartilhados (também chamados de compartilhamento de parâmetros ).
O compartilhamento de parâmetros confere um certo benefício às CNNs, ou seja, uma propriedade denominada equivalência à conversão . Isso significa que se a entrada for perturbada ou traduzida, a saída também será modificada da mesma maneira. Ian Goodfellow fornece um ótimo exemplo no Deep Learning Book sobre como os profissionais podem capitalizar a equivalência nas CNNs:
Ao processar dados de séries temporais, isso significa que a convolução produz um tipo de linha do tempo que mostra quando diferentes recursos aparecem na entrada. Se movermos um evento posteriormente na entrada, a mesma representação exata aparecerá na saída, só mais tarde. Da mesma forma que as imagens, a convolução cria um mapa em 2-D de onde certos recursos aparecem na entrada. Se movermos o objeto na entrada, sua representação moverá a mesma quantidade na saída. Isso é útil quando sabemos que alguma função de um pequeno número de pixels vizinhos é útil quando aplicada a vários locais de entrada. Por exemplo, ao processar imagens, é útil detectar arestas na primeira camada de uma rede convolucional. As mesmas arestas aparecem mais ou menos em toda parte da imagem; portanto, é prático compartilhar parâmetros em toda a imagem.
Respostas:
No contexto de redes neurais convolucionais, kernel = filter = feature detector.
Aqui está uma ótima ilustração do tutorial de aprendizado profundo de Stanford (também bem explicado por Denny Britz ).
O filtro é a janela deslizante amarela e seu valor é:
fonte
Um mapa de recursos é igual a um filtro ou "kernel" neste contexto específico. Os pesos do filtro determinam quais recursos específicos são detectados.
Por exemplo, Franck forneceu um ótimo visual. Observe que o filtro / detector de características tem x1 ao longo dos elementos diagonais e x0 ao longo de todos os outros elementos. Dessa forma, a ponderação do kernel detectaria pixels na imagem com valor 1 ao longo das diagonais da imagem.
Observe que o recurso envolvido resultante mostra valores de 4 onde a imagem tem um "1" ao longo dos valores diagonais do filtro 3x3 (detectando o filtro nessa seção específica 3x3 da imagem) e valores mais baixos de 2 nas áreas de a imagem em que esse filtro não foi tão forte.
fonte
Atualmente, há um problema com a nomenclatura nesse campo. Existem muitos termos que descrevem a mesma coisa e até termos usados alternadamente para conceitos diferentes! Tomemos como exemplo a terminologia usada para descrever a saída de uma camada de convolução: mapas de características, canais, ativações, tensores, planos, etc.
Baseado na wikipedia, "No processamento de imagens, um kernel, é uma pequena matriz".
Com base na Wikipedia, "Uma matriz é uma matriz retangular organizada em linhas e colunas".
Se um núcleo é uma matriz retangular, não pode ser a estrutura 3D dos pesos, que geralmente é dek1 1× k2× C dimensões.
Bem, não posso argumentar que essa seja a melhor terminologia, mas é melhor do que usar os termos "kernel" e "filter" de forma intercambiável. Além disso, nós precisamos de uma palavra para descrever o conceito das diferentes matrizes 2D que formam um filtro.
fonte
As respostas existentes são excelentes e respondem de maneira abrangente à pergunta. Só quero acrescentar que os filtros nas redes convolucionais são compartilhados por toda a imagem (ou seja, a entrada é convoluída com o filtro, conforme visualizado na resposta de Franck). o campo receptivo de um neurônio em particular são todas as unidades de entrada que afetam o neurônio em questão. O campo receptivo de um neurônio em uma rede convolucional é geralmente menor que o campo receptivo de um neurônio em uma rede densa, cortesia de filtros compartilhados (também chamados de compartilhamento de parâmetros ).
O compartilhamento de parâmetros confere um certo benefício às CNNs, ou seja, uma propriedade denominada equivalência à conversão . Isso significa que se a entrada for perturbada ou traduzida, a saída também será modificada da mesma maneira. Ian Goodfellow fornece um ótimo exemplo no Deep Learning Book sobre como os profissionais podem capitalizar a equivalência nas CNNs:
fonte