§9.5b–9.6Convolution Variants II — Locally Connected, Tiled, Transpose · Structured Outputs

Part II DL pp. 353–359 · ~4 min read

  • locally connected layer / unshared convolution
  • tiled convolution
  • transpose convolution
  • structured output
  • recurrent convolutional network

§9.5b Sharing less — locally connected and tiled

Sometimes we want convolution’s connectivity but not its sharing. A locally connected layer (unshared convolution) keeps each output tied to a small local patch, but gives every connection its own weight:

Term by term

Zi,j,k=l,m,nVl,j+m1,k+n1wi,j,k,l,m,nZ_{i,j,k} = \sum_{l,m,n} V_{l,\, j+m-1,\, k+n-1}\, w_{i,j,k,l,m,n}
wi,j,k,l,m,nw_{i,j,k,l,m,n}a 6-D weight tensor — note the extra OUTPUT-position indices (j,k): every location has its OWN weights, so there is NO parameter sharingunshared
vs Ki,l,m,n\text{vs } K_{i,l,m,n}convolution's kernel has no output-position index, so the same weights apply at every locationthe contrast
use case\text{use case}when a feature belongs to a specific place — e.g. a mouth only in the lower half of a face-centered imagewhen to use

Between the two extremes sits tiled convolution : cycle through tt kernels across space, so neighbors differ (like locally connected) but memory grows only ×t\times t. All three share the same connectivity — only the weight-sharing pattern differs. Switch modes:

Figs 9.14/9.16 — locally connected, tiled (t=2), and convolution have identical connectivity but differ in weight sharing: 8 vs 4 vs 2 unique weights here
ababababs1s2s3s4x1x2x3x4x5
unique weights = 2
one kernel shared everywhere

All three have the same connectivity — they differ only in how weights are shared. Locally connected uses a unique weight per edge; tiled cycles through t kernels; convolution reuses one. Repeated letters (colors) mark tied weights.

Two related tricks: restricted channel connectivity (each output channel sees only a subset of input channels — fig 9.15, fewer parameters without fewer units), and choosing how to share the biases (one per output channel for convolution; one per unit for locally connected; per-location if the input is fixed-size, since zero-padded border units get less input).

The three operations that train a CNN

Convolution is linear, so it is matrix multiplication by a sparse matrix. To train a conv net you need that matrix’s transpose too — the transpose convolution . Altogether, three operations suffice for any depth:

The three operations needed to train a convolutional network
role
convolution c(K,V,s)forward pass — compute the feature maps from the input
kernel gradient gback-propagate output→weights (eq 9.11) — the gradient that trains the kernel
input gradient h (transpose conv)back-propagate output→inputs (eq 9.12–9.13) — trains deeper layers; also reconstructs the input in autoencoders/RBMs (R = h(K,H,s))
Dotted-underlined cells have explanations — click one.

§9.6 Structured outputs

A conv net need not output a single label — it can emit a whole tensor. For pixel labeling, Si,j,kS_{i,j,k} is the probability that pixel (j,k)(j,k) belongs to class ii, letting the model draw a segmentation mask that follows an object’s outline. One wrinkle: pooling with large stride shrinks the output plane, so to keep it near input size you avoid pooling, emit a lower-resolution label grid, or pool with unit stride.

A powerful strategy is to make an initial label guess and then refine it using interactions between neighboring pixels — applying the same convolutions at each refinement step (sharing weights across steps) makes this a recurrent convolutional network (fig 9.17):

XŶ¹UVŶ²UVWŶ³UVWsame U, V, W each step → a recurrent network (ch10)

Once each pixel is labeled, graphical models (or a CNN trained to approximate their objective) clean up the result into coherent regions, assuming contiguous pixels tend to share a label.

Next: data types, efficient convolution algorithms, and random/unsupervised features — data types, efficiency & random features.

Check yourself — locally connected/tiled/transpose convolution and structured outputs

1.How does a locally connected layer differ from a convolutional layer?

2.In SharingLab, switching from convolution to tiled (t=2) to locally connected changes the unique-weight count from 2 to 4 to 8. What stays the same?

3.What three operations suffice to train a convolutional network of any depth?

4.What is a 'structured output' from a convolutional network?

5.Why is the pixel-label refinement scheme in fig 9.17 a recurrent network?

5 questions