class_docstr: Given a time series tuple (time, signal), this algorithm trains an MLP with
  each element in time and corresponding signal as input-taget pair. Once the
  MLP is trained for a few itertions, the loss values at each time is
  regarded as the anomaly score for the corresponding signal. The intuition is
  that DNNs learn global patterns before overfitting local details. Therefore
  any point anomalies in the signal will have high MLP loss. These intuitions
  can be found in:
  Arpit, Devansh, et al. "A closer look at memorization in deep networks." ICML 2017
  Rahaman, Nasim, et al. "On the spectral bias of neural networks." ICML 2019
code: def _get_anomaly_score(
      self,
      time_series: pd.DataFrame,
      time_series_prev: pd.DataFrame = None,
  ) -> pd.DataFrame:
      ts = (
          pd.concat((time_series_prev, time_series))
          if time_series_prev is None
          else time_series
      )
      processed_times, values = self._preprocess(
          to_timestamp(ts.index)
      ), self._preprocess(ts.values)
      scores = get_dnn_loss_as_anomaly_score(
          processed_times, values, use_cuda=self.use_cuda
      )
      return pd.DataFrame(
          scores[-len(time_series) :], index=time_series.index
      )
  
imports: import logging
  import math
  import numpy
  import pandas
  from merlion.models.anomaly.base import DetectorConfig, DetectorBase
  from merlion.post_process.threshold import AdaptiveAggregateAlarms
  from merlion.transform.moving_average import DifferenceTransform
  from merlion.utils import UnivariateTimeSeries, TimeSeries, to_timestamp
label_desc: Use image node_id 6 for calling the DeepPointAnomalyDetector obj's underlying member method code with example usage: obj._get_anomaly_score(time_series, time_series_prev) and returns: pd