  Polar codes are the first class of error correcting codes that provably
achieve the channel capacity at infinite code length. They were selected for
use in the fifth generation of cellular mobile communications (5G). In
practical scenarios such as 5G, a cyclic redundancy check (CRC) is concatenated
with polar codes to improve their finite length performance. This is mostly
beneficial for sequential successive-cancellation list decoders. However, for
parallel iterative belief propagation (BP) decoders, CRC is only used as an
early stopping criterion with incremental error-correction performance
improvement. In this paper, we first propose a CRC-polar BP (CPBP) decoder by
exchanging the extrinsic information between the factor graph of the polar code
and that of the CRC. We then propose a neural CPBP (NCPBP) algorithm which
improves the CPBP decoder by introducing trainable normalizing weights on the
concatenated factor graph. Our results on a 5G polar code of length 128 show
that at the frame error rate of 10^(-5) and with a maximum of 30 iterations,
the error-correction performance of CPBP and NCPBP are approximately 0.25 dB
and 0.5 dB better than that of the conventional CRC-aided BP decoder,
respectively, while introducing almost no latency overhead.
