Diferença entre as camadas Conv e FC?

Respostas:

12

Uma camada convolucional aplica o mesmo filtro (geralmente pequeno) repetidamente em posições diferentes na camada abaixo dela. Por exemplo, se a camada de entrada tiver dimensões 512 x 512, você poderá ter uma camada conv que aplique o mesmo filtro 8 x 8 (especificado por 64 coeficientes de filtro), em cada ponto (por exemplo) em uma grade de 128 x 128 sobreposta na camada de entrada . Por outro lado, cada nó em uma camada totalmente conectada aprenderia pesos 512 x 512, um para cada nó na camada de entrada.

As camadas de conv são, portanto, adequadas para detectar recursos locais que podem aparecer em qualquer lugar da entrada (por exemplo, bordas em uma imagem visual). A idéia é que você não precise treinar todos os nós separadamente para detectar o mesmo recurso, mas aprenda um filtro que seja compartilhado entre todos os nós.

(Observe que cada camada conv geralmente aprende um conjunto de vários filtros, cada um dos quais é aplicado repetidamente na entrada. Por exemplo, se a camada conv aprende 16 recursos diferentes, diz-se que possui uma 'profundidade' de 16.)

As camadas FC são usadas para detectar configurações globais específicas dos recursos detectados pelas camadas inferiores na rede. Eles geralmente ficam no topo da hierarquia da rede, em um ponto em que a entrada foi reduzida (pelas camadas anteriores, geralmente convolucionais) para uma representação compacta dos recursos. Cada nó na camada FC aprende seu próprio conjunto de pesos em todos os nós na camada abaixo dela.

Assim, você pode (grosso modo) pensar nas camadas de conv. Como dividir a entrada (por exemplo, uma imagem) em recursos comuns, e as camadas de FC como agrupar esses recursos em, por exemplo, objetos que você deseja que a rede reconheça.

Ruben van Bergen
fonte
Por que a grade de 128 x 128, depende do andamento e do preenchimento do kernel.
Gradukasz Grad
11
Sim, 128 x 128 foi apenas um exemplo (editei minha resposta para esclarecer).
Ruben van Bergen
Onde saber quantos filtros precisamos ter?
MiniMax
Bem escrito para até um leigo no campo, como eu .. #
288 de
0

Você pode usar camadas de conv para, em vez de FC. No entanto, devido à natureza das camadas de convenção onde os pesos são compartilhados, haverá muito menos parâmetros. Isso pode causar que sua rede não seja capaz o suficiente para aprender as coisas. Mas tudo depende da sua rede.

Deniz Beker
fonte