2017-08-11 2 views
5

J'étudie actuellement cette paper (page 53), dans laquelle la convolution suggérée doit être faite d'une manière spéciale.Cette convolution de base est-elle effectuée dans un réseau de neurones convolutionnel ordinaire?

C'est la formule:

enter image description here

Voici leur explication.

Comme le montre la figure 4.2, toutes les cartes de fonction d'entrée (en supposant que je au total), O_i (i = 1 , · · ·, I) sont mappés dans un certain nombre de mappes de caractéristiques (supposons J au total), Q_j (j = 1, · · ·, J) dans les couches de convolution sur la base d'un certain nombre de filtres locaux (I × J dans total), w_ {ij} (i = 1, · · ·, I; j = 1, · · ·, J). Le mappage peut être représenté comme l'opération de convolution bien connue dans le traitement du signal. En supposant que les mappes d'entités en entrée sont toutes en une dimension, chaque unité d'une carte d'entités dans la couche de convolution peut être calculée comme l'équation \ ref {eq: équation} (équation ci-dessus). Où o_ {i, m} est la m-ième unité de la ième carte de caractéristiques d'entrée O_i, q_ {j, m} est la m-ième unité de la ième carte de caractéristiques Q_j de la convolution.

couche, w_ {i, j, n} est le n-ième élément du vecteur de poids, w_ {i, j}, reliant la ième carte des caractéristiques de l'entrée à la jième carte caractéristique de la couche convolution, et F est le filtre taille qui est le nombre de bandes d'entrée que chaque unité de la couche de convolution reçoit.

So far so good:

Ce que je essentiellement compris de ce que j'ai essayé d'illustrer dans cette image.

enter image description here

Il me semblent ce qu'ils font est le traitement de toutes les données effectivement pointe jusqu'à F, et à travers toutes les cartes de fonction. Basiquement se déplacer dans les deux directions x-y, et calculer sur le point de cela.

N'est-ce pas essentiellement 2d- convolution sur une image 2d de taille (I x F) avec un filtre égal à la taille de l'image ?. Le poids ne semble pas différer du tout ont une importance ici ..?

Alors, pourquoi suis-je demander cela ici ..

Je suis en train de mettre en œuvre, je ne suis pas sûr de ce qu'ils font, est en fait convolution juste de base, dans lequel une alimentation de fenêtre coulissante maintient l'alimentation nouvelle données, ou est ce qu'ils font pas convolution normale, ce qui signifie que j'ai besoin de concevoir une couche spéciale qui fait cette opération? ...

+1

Y a-t-il un aspect lié à la programmation à cette question que nous pouvons vous aider? Ou, pour le dire autrement, avez-vous essayé de coder cela et obtenez des résultats bizarres? Le MO de ce site est que vous nous donniez un extrait de code, et nous vous aidons à trouver le problème. – SeeDerekEngineer

+1

Je viens d'ajouter une explication sur ce .. @SeeDerekEngineer – Lamda

+1

Cela devrait être sur https://stats.stackexchange.com –

Répondre

4

Oui, ils utilisent simplement la convolution habituelle. Il vous sera peut-être plus facile de regarder la page 54, où ils ont simplifié l'équation. Voici la capture d'écran pertinente:

enter image description here

Comme vous pouvez le voir, ce qu'ils décrivent ici est juste l'opérateur de convolution typique.

+0

Pourriez-vous élaborer un peu sur le nombre de poids que la matrice de poids implique? une couche de convolution ordinaire dans CNN a un partage de poids, ce que cette implémentation exacte devrait également avoir, mais il me semble que le nombre de poids dans cette implémentation, rend chaque traitement très unique, et donc pas de partage de poids. –