Open nadwir opened 4 years ago
For example, if your object consists of 5 properties, and you have 2 extra features, then you could treat your object as having 7 properties, where the last 2 properties are the same for all objects. The extra features are called global features. Intuitively, your object could be a moving ball with properties like position, velocity, and acceleration. If you want to add extra features like the friction of the ground, you can think of it as a global feature that every ball shares. So if the friction is 0.8, then all the balls should have friction=0.8 as its extra feature. I discovered this global feature duplication trick from PointNet architecture.
Another way is to include the extra features later in the network. After you merge the objects into one vector, then you can concatenate the extra features to this vector. If your network does not have merging, then the global features duplication trick is needed. You just need to decide when to concatenate the global features. You can choose to concatenate as early as possible or you can concatenate after 2 permutational layers, it's up to you.
By the way, I suggest using PointNet architecture for permutation invariant instead of PermutationalLayer if you have many objects as input e.g. more than 5. Because running many comparisons using PermutationalLayer is expensive. If you have 5 objects there will be 5**2=25 comparisons using PairwiseModel.
Hi,
I have two questions: