1
$\begingroup$

Consider the following paragraph from section 2: General Design Principles of the research paper titled Rethinking the Inception Architecture for Computer Vision

Avoid representational bottlenecks, especially early in the network. Feed-forward networks can be represented by an acyclic graph from the input layer(s) to the classifier or regressor. This defines a clear direction for the information flow. For any cut separating the inputs from the outputs, one can access the amount of information passing though the cut. One should avoid bottlenecks with extreme compression. In general the representation size should gently decrease from the inputs to the outputs before reaching the final representation used for the task at hand. Theoretically, information content cannot be assessed merely by the dimensionality of the representation as it discards important factors like correlation structure; the dimensionality merely provides a rough estimate of information content.

This paragraph warned us to avoid bottlenecks and also representational bottlenecks. What does it mean by a bottleneck of/in a neural network and representational bottleneck?

$\endgroup$
3
  • 1
    $\begingroup$ I don't feel like providing a formal answer because I am not sure whether these terms "bottlenecks" are formally defined. In fact, we had similar questions in the past, here or this (actually, I think your question is a duplicate of this last one), but it seems to me that these terms have been used more loosely. Having said that, I think the authors of that quote are using the term "representational bottleneck" as a synonym for just "bottleneck". $\endgroup$
    – nbro
    Sep 9, 2021 at 13:14
  • $\begingroup$ Yeah, @nbro. After understanding the terminology regarding this, I also feel that this is a duplicate one. But, while asking the question, I thought that the word bottleneck may be used for different purposes and hence I asked. $\endgroup$
    – hanugm
    Jan 5, 2022 at 23:43
  • $\begingroup$ what-are-bottlenecks-in-neural-networks? $\endgroup$ Oct 28, 2022 at 3:29

1 Answer 1

1
$\begingroup$

A bottleneck layer is a layer that contains few nodes compared to the previous layers. It can be used to obtain a representation of the input with reduced dimensionality.

If you create bottlenecks in the initial layers it can cause loss of information.

Why it is done?

Take the example of an image dataset that contains high-resolution images. High resolution means more pixels means it will need more nodes in the input layer. Having more nodes will need more computational power to train the network. Hence in such cases, we can use fewer nodes in the next layer. As images are high resolution we might not lose any important information.

Feedforward Network with bottleneck

Bottleneck

$\endgroup$
1
  • $\begingroup$ You should at least acknowledge the source from which you took that excerpt, which seems to be this answer. So, please, edit your post to provide a link to that answer or the source where you took that quote from. In general, you should not just copy and paste content from places without citing, as plagiarism is at least discouraged and at most not allowed here. Having said that, your answer seems to be partially inconsistent with the quote that the asker provided because it states that the dimensionality is not sufficient for "information content". $\endgroup$
    – nbro
    Sep 9, 2021 at 13:08

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .