# Deep Learning: Classification vs. Convolution for Signal Restoration

Assume we have vector $$X = [x_1, x_2, x_3, x_4 ,..... x_N], ∈ -1,1$$. Therefore the value of $$x$$ is either 1 or -1. The vector $$X$$ is convoluted with random generated vector $$Y$$ whose length is the same of $$X$$, so $$r = X*Y$$ where $$*$$ denote to the convolution operation.

Is there classification deep learning model which can extract the vector $$X$$ based on $$r$$ ?? I mean the input should be the vector $$r$$ and output the vector $$X$$.

thank you in advance.

• What makes you think deep learning is suitable for this task?
– GKH
Feb 12, 2020 at 16:34
• Can you not use deconvolution? Perhaps this is a learning exercise? Feb 12, 2020 at 17:31
• You can obviously get more advice posting such questions in AI stackoverflow instead Feb 12, 2020 at 21:23

## 1 Answer

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.