  Many important schemes in signal processing and communications, ranging from
the BCJR algorithm to the Kalman filter, are instances of factor graph methods.
This family of algorithms is based on recursive message passing-based
computations carried out over graphical models, representing a factorization of
the underlying statistics. Consequently, in order to implement these
algorithms, one must have accurate knowledge of the statistical model of the
considered signals. In this work we propose to implement factor graph methods
in a data-driven manner. In particular, we propose to use machine learning (ML)
tools to learn the factor graph, instead of the overall system task, which in
turn is used for inference by message passing over the learned graph. We apply
the proposed approach to learn the factor graph representing a finite-memory
channel, demonstrating the resulting ability to implement BCJR detection in a
data-driven fashion. We demonstrate that the proposed system, referred to as
BCJRNet, learns to implement the BCJR algorithm from a small training set, and
that the resulting receiver exhibits improved robustness to inaccurate training
compared to the conventional channel-model-based receiver operating under the
same level of uncertainty. Our results indicate that by utilizing ML tools to
learn factor graphs from labeled data, one can implement a broad range of
model-based algorithms, which traditionally require full knowledge of the
underlying statistics, in a data-driven fashion.
