How to create inverse function of neural net?

Neural net (NN) is a function, right.

The realm what it do may be converting the image into another image (segmentation tasks).
NN: I => I

Can you provide some hints or papers how based on NN we can create inverse neural net INN?

Hi Dejan!

Yes, but not necessarily an invertible function.

In general, you cannot invert a neural network. And this is true
not just for unusual edge cases – most typical neural networks
won’t be invertible.

Consider (among others) these two points:

Rectified linear units (f (x) = max (0, x)) are not invertible.

Any linear layer with fewer outputs than inputs in not invertible.


K. Frank

1 Like

Hi @dejanbatanjac,

You can take a look at this paper Deep Invertible Networks and its (PyTorch) official implementation. :slightly_smiling_face:

It propose two fully invertible architectures (section 3.1), the first one being only injective and the second one bijective. The two are actually made of two sub-models: a mapping Φ and it’s pseudo-inverse Φ-1, the latter being built with inverse and pseudo-inverse blocks/layers from Φ.

The authors focus classification, so I’m not sure how (good) you could reuse this work for segmentation task