﻿ 基于深度学习的实用HDPC码译码方法研究
 计算机系统应用  2019, Vol. 28 Issue (4): 247-251 PDF

Research on Practical Method for Decoding to HDPC Codes via Deep Learning
GUO Jun-Jun, BAI Shuo-Dong, WANG Le
School of Computer Science and Engineering, Xi’an Technological University, Xi’an 710021, China
Foundation item: Key Research and Development Program of Shaanxi Province (2018GY-023); President Fund of Xi’an Technological University (XAGDXJJ16016)
Abstract: Aiming at the problem of quantitative decoding performance of high-density parity-check codes, this study proposes a quantitative min-sum decoding approach based on deep learning, referenced as QMSND. In order to improve the decoding performance and efficiency, the proposed decoder can adjust the weight parameters of a Tanner graph dynamically, and quantize the input vector and the message of nodes at every iteration in nonuniform fashion via deep neural network. Computer simulation results show that the performance of proposed QMSND decoding with 8-bits presentation is very close to that of the float neural min-sum decoding without quantization. Therefore, the proposed decoding approach is easy to implement by hardware and has some practicability.
Key words: deep learning     channel decoding     AWGN     BCH codes

1 基于深度神经网络的最小和译码 1.1 深度神经网络模型

$r$ $s$ 分别表示DNN的输入和输出, $L$ 为层数或深度, $\rho$ 为相关参数, 则深度神经网络的计算模型可用式(1)来表示.

 $r = f(s,\rho ) = {f^{(L - 1)}}\left( {{f^{(L - 2)}}\left( {\cdots\left( {{f^{(0)}}(s)} \right)} \right)} \right)$ (1)

1.2 HDPC码神经最小和译码

 ${{{l}}_v} = \log \frac{{\Pr ({c_v} = 1|{y_v})}}{{\Pr ({c_v} = 0|{y_v})}}{{ = }}\frac{{2{{{y}}_v}}}{{{\sigma ^2}}}$ (2)

 $m_{v \to c}^{(l)} = {m_v} + \displaystyle\sum\nolimits_{c' \in N(v)\backslash \{ c\} } {m_{c' \to v}^{(l)}}$ (3)

 $m_{c \to v}^{(l)} = \left( {\prod\limits_{v' \in N(c)\backslash \{ v\} } {{\rm{sign}}(m_{v' \to c}^{(l - 1)})} } \right)\mathop {\min }\limits_{v' \in N(c)\backslash \{ v\} } \left| {m_{v' \to c}^{(l - 1)}} \right|$ (4)

 $m_{c \to v}^{(l)} = {\rm{ReLU}} \left( {\mathop {\min }\limits_{v' \in N(c)\backslash \{ v\} } \beta _{v' \to c}^{(l)}\left| {m_{v' \to c}^{(l - 1)}} \right|} \right)\prod\limits_{v' \in N(c)\backslash \{ v\} } \!\!\!{{\rm{sign}}(m_{v' \to c}^{(l - 1)})}$ (5)

2 量化神经最小和译码 2.1 量化方法

 $Q(x) = \left\{ \begin{array}{l} {L_i},\;{T_i} \le x < {T_{i + 1}}\\ 0,\;\;{\text{其它情况}} \end{array} \right.$ (6)

2.2 译码框架

(1) 变量节点更新

(2) 校验节点更新

 $\begin{array}{l}m_{c \to v}^{(l)} = {\rm{QReLU}} \left( {\mathop {\min }\limits_{v' \in N(c)\backslash \{ v\} } {Q} \left( {\beta _{v' \to c}^{(l)}\left| {m_{v' \to c}^{(l - 1)}} \right|} \right)} \right) \\ \quad\quad\quad\prod\limits_{v' \in N(c)\backslash \{ v\} } {{\rm{sign}}(m_{v' \to c}^{(l - 1)})} \end{array}$ (7)

(3) 译码判决

 $m_{v \to c}^{(l)} = {m_v} + \sum\nolimits_{c \in N(v)} {m_{c \to v}^{(l)}}$ (8)

(4) 停止条件

${\widehat {\bf{c}}^{\rm{T}} }{\bf{H}} = 0$ 或超过最大迭代次数宣告译码结束,否则跳转到(1)继续执行.

QMSND译码算法的最大迭代次数与码长、码的结构以及信道噪声大小有关. 一般而言, 码字结构越复杂、码长越长或信道质量越差, 译码最大迭代次数的设值也越大. 通常, 为了平衡译码性能和速度, 对于中短长度的HDPC码, 如BCH或Polar码的最大迭代次数设置在5~30之间.

3 实验结果及分析 3.1 实验环境

3.2 网络模型训练

 ${L} ({{o}},y) = - \frac{1}{n}\sum\limits_{v = 1}^n {{y_v}\log ({o_v}) + (1 - {y_v})\log (1 - {o_v})}$ (9)

3.3 实验结果分析

 图 1 BCH(63, 36)性能仿真图

 图 2 BCH(63, 45)性能仿真图

 图 3 BCH(127, 99)性能仿真图

4 结论

 [1] 孙志军, 薛磊, 许阳明, 等. 深度学习研究综述. 计算机应用研究, 2012, 29(8): 2806-2810. DOI:10.3969/j.issn.1001-3695.2012.08.002 [2] 郭潇逍, 李程, 梅俏竹. 深度学习在游戏中的应用. 自动化学报, 2016, 42(5): 676-684. [3] 胡二雷, 冯瑞. 基于深度学习的图像检索系统. 计算机系统应用, 2017, 26(3): 8-19. [4] 侯一民, 周慧琼, 王政一. 深度学习在语音识别中的研究进展综述. 计算机应用研究, 2017, 34(8): 2241-2246. DOI:10.3969/j.issn.1001-3695.2017.08.001 [5] Luong MT, Pham H, Manning CD. Effective approaches to attention-based neural machine translation. eprint arXiv:1508.04025, 2015. [6] Völker M, Hammer J, Schirrmeister RT, et al. Intracranial error detection via deep learning. eprint arXiv:1805.01667, 2018. [7] Ye H, Li GY. Initial results on deep learning for joint channel equalization and decoding. 2017 IEEE 86th Vehicular Technology Conference. Toronto, ON, Canada. 2018. 1–5. [8] Cammerer S, Gruber T, Hoydis J, et al. Scaling deep learning-based decoding of polar codes via partitioning. eprint arXiv:1702.06901, 2017. [9] Nachmani E, Beery Y, Burshtein D. Learning to decode linear codes using deep learning. eprint arXiv:1607.04793, 2016: 341–346. [10] Nachmani E, Marciano E, Lugosch L, et al. Deep learning methods for improved decoding of linear codes. IEEE Journal of Selected Topics in Signal Processing, 2018, 12(1): 119-131. DOI:10.1109/JSTSP.2017.2788405 [11] Liang F, Shen C, Wu F. An iterative BP-CNN architecture for channel decoding. IEEE Journal of Selected Topics in Signal Processing, 2018, 12(1): 144-159. DOI:10.1109/JSTSP.2018.2794062 [12] Lugosch L, Gross WJ. Neural offset min-sum decoding. eprint arXiv:1701.05931, 2017: 1361–1365.