Answers.Body: <p>An <strong>MLP</strong> is just a fully-connected feedforward neural net. In PointNet, a <strong>shared MLP</strong> means that you are applying the <em>exact same</em> MLP to each point in the point cloud.</p>
  <p>Think of a CNN's convolutional layer. There you apply the exact same filter at all locations, and hence the filter weights are <em>shared</em> or <em>tied</em>. If they were not shared, you'd have potentially different filters (MLPs) at each pixel (point), updating independently.</p>
  <p>As an example, let <span class="math-container">$f_\theta$</span> be an MLP with parameters <span class="math-container">$\theta$</span>. Say we have a 3D point cloud <span class="math-container">$[\vec{x}_1,\ldots,\vec{x}_n]\subseteq \mathbb{R}^3$</span>. If we apply <span class="math-container">$f_\theta$</span> as a shared MLP in the way PointNet describes, the result would be <span class="math-container">$[f_\theta(\vec{x}_1),\ldots,f_\theta(\vec{x}_n)]$</span>.</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2021-09-16T03:19:26.487Z
Answers.LastActivityDate: 2021-09-16T03:19:26.487Z
Answers.UserDisplayName: Christian Bueno
Body: <p>I am trying to understand the <a href="https://arxiv.org/abs/1612.00593" rel="nofollow noreferrer">PointNet</a> network for dealing with point clouds and struggling with understanding the difference between FC and MLP: </p>
  
  <blockquote>
    <p>"FC is fully connected layer operating on each point. MLP is
    multi-layer perceptron on each point."</p>
  </blockquote>
  
  <p>I understand how <a href="https://missinglink.ai/guides/convolutional-neural-networks/fully-connected-layers-convolutional-neural-networks-complete-guide/" rel="nofollow noreferrer">fully connected</a> layers are used to classify and I previously thought, was that MLP was the same thing but it seems varying academic papers have a differing definition from each other and from general online courses. In PointNet what is meant by a shared MLP different to a standard feedforward fully connected network?</p>
  
  <p><a href="https://i.sstatic.net/vDWpQ.png" rel="nofollow noreferrer"><img src="https://i.sstatic.net/vDWpQ.png" alt="PointNet Network Architecture"></a></p>
  
Tags: <convolutional-neural-networks><models><pytorch>
Title: What is the difference between FC and MLP in as used in PointNet?
UserDisplayName: EddyWD
ThreadText: # What is the difference between FC and MLP in as used in PointNet?
  
  (Asked by: username_0 on 2020-04-19)
  
  I am trying to understand the [PointNet](https://arxiv.org/abs/1612.00593) network for dealing with point clouds and struggling with understanding the difference between FC and MLP:
  
  > "FC is fully connected layer operating on each point. MLP is
  > multi-layer perceptron on each point."
  
  I understand how [fully connected](https://missinglink.ai/guides/convolutional-neural-networks/fully-connected-layers-convolutional-neural-networks-complete-guide/) layers are used to classify and I previously thought, was that MLP was the same thing but it seems varying academic papers have a differing definition from each other and from general online courses. In PointNet what is meant by a shared MLP different to a standard feedforward fully connected network?
  
  [![PointNet Network Architecture](https://i.sstatic.net/vDWpQ.png)](https://i.sstatic.net/vDWpQ.png)
  
  **Tags:** convolutional-neural-networks, models, pytorch
  
  ---
  
  ## 1 answers
  
  ### Answer by username_1 on 2021-09-16. Score: 2
  
  An **MLP** is just a fully-connected feedforward neural net. In PointNet, a **shared MLP** means that you are applying the *exact same* MLP to each point in the point cloud.
  
  Think of a CNN's convolutional layer. There you apply the exact same filter at all locations, and hence the filter weights are *shared* or *tied*. If they were not shared, you'd have potentially different filters (MLPs) at each pixel (point), updating independently.
  
  As an example, let $f\_\theta$ be an MLP with parameters $\theta$. Say we have a 3D point cloud $[\vec{x}\_1,\ldots,\vec{x}\_n]\subseteq \mathbb{R}^3$. If we apply $f\_\theta$ as a shared MLP in the way PointNet describes, the result would be $[f\_\theta(\vec{x}\_1),\ldots,f\_\theta(\vec{x}\_n)]$.
  
  
  ---
  
  