I am working on a project which involves developing a machine learning/deep learning for an application in a roll-to-roll industry. For a long time, I have been looking for similar problems as a way to get some guidance but I was never able to find anything related.

Basically the problem can be seen as follows:

  • An industrial machine is producing a roll of some material, which tends to have visible defects throughout the roll. I have already available a machine learning algorithm capable of analyzing segments of the roll and classifying each segment as having defects or not, so the task it not detect the defects.
  • What I am actually developing is an algorithm that receives time-series inputs of the production, including the outputs (probabilities) of the machine learning vision model that classify the segments as having defects or not, and evaluates if the machine should stop or not at a specific instant, to avoid further generation of defects.
  • In many roll-to-roll = continuous production industries, unlike the industries where very 'isolated' parts are produced with very specific reject/don't reject quality criteria (e.g: car parts), you might not want to stop production at the sight of a single defect, but rather when groups of continuous defects start to ruin the production. So the problem is more about detecting those continuous defects by analyzing each timestep of information and be able to 'separate' those from the cases of just single defects.

Hope that the description provides a little context in order to understand the purpose here. I am using an approach based on LSTMs and a sigmoid activation function. I am developing a custom loss function and modeling the learning problem labels based on regions of timesteps in which the machine should stop - it gives a classification at each timestep. Something like:

[0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1]
 - the zeros represent timesteps where no stop should happen
 - the ones represent timesteps where at least a stop should happen = continuous defects

The NN should learn to not stop on the places with zeros and stop on the places with ones, by being fed different timestep inputs. There are some particularities of course but I believe this is a simple explanation that I hope can provide some insights.

-> With this, I was curious to know if someone has ever worked on a problem that follows a similar 'logic' and direct me to similar ways of looking at the problem. Would also be interested in similar network architectures/configurations that would lead to a starting point. I am also very curious on any other contribution as a way to look at the problem. Really interested in hearing your perspectives!

  • 1
    $\begingroup$ A simple baseline could be to compute an exponential moving average of your defect model output and stop once it reaches a threshold. $\endgroup$
    – Valentas
    Jun 10, 2022 at 7:41

1 Answer 1


I would try to apply techniques from the "changing point problem" world. In this kind of problem, you try to identify times when the probability distribution of a stochastic process or time series changes. This is a classic problem with classic solutions, so maybe you don't need a neural network to solve it. In your particular case, you're interested in the online version, this is, you have to detect the change in the distribution in real-time.

I leave here some sources I've found that may be interesting

If you ask me, I would try a Bayesian approach, where you have a prior distribution on the defects rate and you update the distribution with incoming data. You could model the probability of receiving a defective segment as a beta distribution $B(x; \alpha, \beta)$, which has the nice property that parameters $\alpha$ and $\beta$ are updated as

$$ \alpha_{t+1} = \alpha_t + s_t $$ $$ \beta_{t+1} = \beta_t + f_t $$

where $s_t$ is the number of segments without any defect at time $t$ and $\beta_t$ is the number of segments with defect at time $t$. Therefore, after observing $T$ segments you would have

$$ P = B(x; \alpha_T, \beta_T) $$

And with this distribution, you can implement strategies like "Stop the production if the defect rate is higher than some threshold $t$ with a probability $>95$, ie: stop if $\int_{t}^1 B(x; \alpha_T, \beta_T) dx > 0.95$"

  • $\begingroup$ Thanks for the contribution! I have actually looked into a similar approach using a beta distribution before getting into deep learning. However, I don't think I can apply it to my problem as the output of my vision model does not tell me if a certain segment has a defect or not, but rather the probability of it having a score. To classify a segment has having a defect or not a threshold would be required which is something that I am trying to avoid. Still, good contribution. $\endgroup$
    – Kunis
    Jun 12, 2022 at 22:37

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.