By deep learning, I'll assume you mean neural network. To develop a neural network, you'll need labeled data. This means you need a bunch of example inputs ($r$) and outputs ($X$). Once you have that, you need to build a network. As far as I can tell, currently the guidelines for building these things are very loose and ad-hoc. There is general consensus on good or bad activation functions and general suggestions, but there is no formal theory about how many neurons to choose, how many layers, etc. (at least since the last time I took a dive into this).
Common problems will arise such as overfitting and there are techniques to help this but you need to be smart enough to spot the signs and then apply the fixes. For example, you can read about how observing your training and testing accuracy can help determine if a network is overfitting.
The better part of this answer is this: what you're describing is called deconvolution (https://en.wikipedia.org/wiki/Blind_deconvolution) and has been accomplished using "traditional" signal processing techniques long before the deep learning craze. Personally, any time a problem has a structured solution, I go in that direction. Reliable neural networks can be hard to develop despite all the helpful libraries in the world and when it comes to troubleshooting I think you'll find more traditional "tried-and-true" methods to be much easier to not only get working but also to understand why they work and this will lend itself much better to be able to adapt to your specific problem.