<p><strong>TLDR</strong></p>

<ol>
<li>Dilated convolutions have generally improved performance (see the better semantic segmentation results in <a href="https://arxiv.org/pdf/1511.07122.pdf" rel="noreferrer">Multi-Scale Context Aggregation by Dilated Convolutions</a>)</li>
<li><p>The more important point is that <strong>the architecture is based on the fact that dilated convolutions support exponential expansion of the receptive field without loss of resolution or coverage</strong>.</p></li>
<li><p>Allows one to have <strong>larger receptive field</strong> with <strong>same computation and memory costs</strong> while also <strong>preserving resolution</strong>.</p></li>
<li><strong>Pooling</strong> and <strong>Strided Convolutions</strong> are similar concepts but both <strong>reduce the resolution</strong>. </li>
</ol>

<p>@Rahul referenced <a href="https://arxiv.org/pdf/1609.03499.pdf" rel="noreferrer">WaveNet</a>, which put it very succinctly in 2.1 Dilated Causal Convolutions. It is also worth looking at <a href="https://arxiv.org/pdf/1511.07122.pdf" rel="noreferrer">Multi-Scale Context Aggregation by Dilated Convolutions</a> I break it down further here:</p>

<p><a href="https://i.stack.imgur.com/tOg0g.png" rel="noreferrer"><img src="https://i.stack.imgur.com/tOg0g.png" alt="Screenshot from https://arxiv.org/pdf/1511.07122.pdf"></a></p>

<ul>
<li>Figure (a) is a 1-dilated 3x3 convolution filter. In other words, it's a standard 3x3 convolution filter.</li>
<li>Figure (b) is a 2-dilated 3x3 convolution filter. The red dots are where the weights are and everywhere else is 0. In other words, it's a <strong>5x5 convolution filter with 9 non-zero weights and everywhere else 0</strong>, as mentioned in the question. The receptive field in this case is 7x7 because each unit in the previous output has a receptive field of 3x3. The highlighted portions in blue show the receptive field and <strong>NOT</strong> the convolution filter (you could see it as a convolution filter if you wanted to but it's not helpful).</li>
<li>Figure (c) is a 4-dilated 3x3 convolution filter. It's a <strong>9x9 convolution filter with 9 non-zeros weights and everywhere else 0</strong>. From (b), we have it that each unit now has a 7x7 receptive field, and hence you can see a 7x7 blue portion around each red dot.</li>
</ul>

<p>To draw an explicit contrast, consider this:</p>

<ul>
<li>If we use 3 successive layers of 3x3 convolution filters with stride of 1, the effective receptive field will only be 7x7 at the end of it. However, with the same computation and memory costs, we can achieve 15x15 with dilated convolutions. Both operations preserve resolution.</li>
<li>If we use 3 successive layers of 3x3 convolution filters with increasing stride at an exponential rate at exactly the same rate as dilated convolutions in the paper, we will get a 15x15 receptive field at the end of it <strong>but with loss of coverage</strong> eventually as the stride gets larger. What this loss of coverage means is that the effective receptive field at some point will not be what we see above. Some parts will not be overlapping.</li>
</ul>
What's the use of dilated convolutions?
<p>I refer to <a href="https://arxiv.org/abs/1511.07122" rel="noreferrer">Multi-Scale Context Aggregation by Dilated Convolutions</a>.</p>

<ul>
<li>A 2x2 kernel would have holes in it such that it becomes a 3x3 kernel.</li>
<li>A 3x3 kernel would have holes in it such that it becomes a 5x5 kernel.</li>
<li>Above assumes interval 1 of course.</li>
</ul>

<p>I can clearly see that this allows you to effectively use 4 parameters but have a receptive field of 3x3 and 9 parameters but have a receptive field of 5x5. </p>

<p>Is the case of dilated convolution simply to save on parameters while reaping the benefit of a larger receptive field and thus save memory and computations?</p>