Answers.Body: <p>Equivariance is useful because the neural network can learn to detect common image components - edges, corners, curves in specific orientations - in a general way that is then applied across a whole image evenly. These components typically do exist and can appear in multiple places within an image, and may be parts of larger-scale features in turn. Identifying all the edges in an image can be useful <em>before</em> any kind of pooling that adds invariance is applied.</p>
  <p>Without equivariance, an edge oriented in one way in one part of the image would be completely different to the neural network to the same kind of edge elsewhere. It would only get made part of a relevant filter and used if a specific training example had an important edge in that one place.</p>
  <p>It is hard to separate this usefulness of equivariance from the associated reduction in number of free parameters, thanks to using convolutional filters with small amount of local connection as opposed to fully connected neural networks. CNNs <em>have</em> to be equivariant due to the architecture, whilst the invariance requires a little more effort (pooling and/or strided convolutions).</p>
  <p>The fact that CNNs are so successful using this approach probably says something about natural images. It should be possible to construct non-natural images where equivariance would be of limited use e.g. where local features don't exist, or where they vary over the image in a way that makes detecting them in more than a few places pointless.</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2021-08-16T18:55:25.460Z
Answers.LastActivityDate: 2021-08-16T18:55:25.460Z
Answers.UserDisplayName: Neil Slater
Answers.Body: <p>As explained <a href="https://datascience.stackexchange.com/questions/16060/what-is-the-difference-between-equivariant-to-translation-and-invariant-to-tr">here</a>, both properties are useful depending on your application and expected result.</p>
  <ul>
  <li>For an image classifier, you'll expect a <strong>invariance</strong> (<em>in-variance = not change</em>) result, meaning all results are the same, no matter how you translate the image.</li>
  <li>For an image segmentation, or an object detector, on the other hand, you'll expect the output to shift together as the input varies. In other words, an <strong>equivariance</strong> (<em>equi-variance = same change</em>) is expected.</li>
  </ul>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2021-08-16T22:38:14.480Z
Answers.LastActivityDate: 2021-08-16T22:38:14.480Z
Answers.UserDisplayName: Andre Goulart
Body: <p>I just learnt about the properties of equivariance and invariance to translation and other transformations.
  Being invariant to translation is clearly an advantage, as even if the input gets shifted, the network will still learn the same features, and work fine.
  But how is equivariance useful?</p>
  
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2022-05-14T01:33:24.510Z
Comments.Text: I think your question is mostly about what the difference between invariance and equivariance is. If invariance is clearly an advantage, imo equivariance is also clear. Can you explain what isn't clear to you?
  
  Invariance means output does NOT change with inputs. Equivariance means output changes equivalently with the input. Depending on your application (image classification versus image segmentation) you will want one or the other.
Comments.UserDisplayName: Frank Bryce
Tags: <neural-networks><deep-learning><convolutional-neural-networks><convolutional-layers>
Title: How can equivariance to translation be a benefit of a CNN?
UserDisplayName: Aether
ThreadText: # How can equivariance to translation be a benefit of a CNN?
  
  (Asked by: username_0 on 2021-08-16)
  
  I just learnt about the properties of equivariance and invariance to translation and other transformations.
  Being invariant to translation is clearly an advantage, as even if the input gets shifted, the network will still learn the same features, and work fine.
  But how is equivariance useful?
  
  **Tags:** neural-networks, deep-learning, convolutional-neural-networks, convolutional-layers
  
  > **Comments:**
  > **username_1**: I think your question is mostly about what the difference between invariance and equivariance is. If invariance is clearly an advantage, imo equivariance is also clear. Can you explain what isn't clear to you?  Invariance means output does NOT change with inputs. Equivariance means output changes equivalently with the input. Depending on your application (image classification versus image segmentation) you will want one or the other.  
  
  ---
  
  ## 2 answers
  
  ### Answer by username_2 on 2021-08-16. Score: 2
  
  Equivariance is useful because the neural network can learn to detect common image components - edges, corners, curves in specific orientations - in a general way that is then applied across a whole image evenly. These components typically do exist and can appear in multiple places within an image, and may be parts of larger-scale features in turn. Identifying all the edges in an image can be useful *before* any kind of pooling that adds invariance is applied.
  
  Without equivariance, an edge oriented in one way in one part of the image would be completely different to the neural network to the same kind of edge elsewhere. It would only get made part of a relevant filter and used if a specific training example had an important edge in that one place.
  
  It is hard to separate this usefulness of equivariance from the associated reduction in number of free parameters, thanks to using convolutional filters with small amount of local connection as opposed to fully connected neural networks. CNNs *have* to be equivariant due to the architecture, whilst the invariance requires a little more effort (pooling and/or strided convolutions).
  
  The fact that CNNs are so successful using this approach probably says something about natural images. It should be possible to construct non-natural images where equivariance would be of limited use e.g. where local features don't exist, or where they vary over the image in a way that makes detecting them in more than a few places pointless.
  
  
  ---
  
  ### Answer by username_3 on 2021-08-16. Score: 1
  
  As explained [here](https://datascience.stackexchange.com/questions/16060/what-is-the-difference-between-equivariant-to-translation-and-invariant-to-tr), both properties are useful depending on your application and expected result.
  
  * For an image classifier, you'll expect a **invariance** (*in-variance = not change*) result, meaning all results are the same, no matter how you translate the image.
  * For an image segmentation, or an object detector, on the other hand, you'll expect the output to shift together as the input varies. In other words, an **equivariance** (*equi-variance = same change*) is expected.
  
  
  ---
  
  