Deep learning optimization iterative process and its application in layered belief propagation optimization for low-density parity-check decoding
Patent Information
- Application Number
- CN202180062128.9
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2021-09-16
- Filing Date
- 2021-09-17
- Publication Date
- 2026-10-27
- Estimated Expiration
- 2041-09-17
Smart Images

Figure CN116368752B_ABST
Abstract
Description
[0001] Cross-references to related applications
[0002] This application claims priority to U.S. Patent Application No. 17 / 477,421, filed September 16, 2021, entitled “Deep Learning Optimiz Editerative Process with Application to the Optimization of Layered Belief Propagation for Low Density Parity Check Decoding,” which claims the benefit of U.S. Provisional Patent Application No. 63 / 079,751, filed September 17, 2020, entitled “Deep Learning Optimiz Editerative Process with Application to the Optimization of Layered Belief Propagation for Low Density Parity Check Decoding,” the disclosures of both applications are incorporated herein by reference in their entirety. Technical Field
[0003] Various aspects of this disclosure generally relate to wireless communication, and more specifically to techniques and apparatus for optimizing iterative processes in deep learning, such as partially iterative low-density parity-check (LDPC) decoding. Background Technology
[0004] Wireless communication systems are widely deployed to provide a variety of telecommunications services, such as telephone, video, data, messaging, and broadcasting. Typical wireless communication systems employ multiple access technologies that enable communication with multiple users by sharing available system resources (e.g., bandwidth, transmit power, etc.). Examples of such multiple access technologies include Code Division Multiple Access (CDMA) systems, Time Division Multiple Access (TDMA) systems, Frequency Division Multiple Access (FDMA) systems, Orthogonal Frequency Division Multiple Access (OFDMA) systems, Single Carrier Frequency Division Multiple Access (SC-FDMA) systems, Time Division Synchronous Code Division Multiple Access (TD-SCDMA) systems, Long Term Evolution (LTE), and 5G New Radio (NR).
[0005] A wireless communication network may include multiple base stations (BSs) capable of supporting communication for multiple user equipments (UEs). UEs may communicate with base stations (BSs) via downlinks and uplinks. A downlink (or forward link) refers to the communication link from the BS to the UE, while an uplink (or backward link) refers to the communication link from the UE to the BS. As will be described in more detail, a BS may be referred to as a Node B, gNB, Access Point (AP), Radio Head, Transmit and Receive Point (TRP), New Radio (NR) BS, 5G Node B, and / or the like.
[0006] To provide a common protocol enabling different user equipment to communicate at the city, national, regional, and even global levels, the aforementioned multiple access technologies have been adopted in various telecommunications standards. New Radio (NR), also known as 5G, is a set of enhancements to the LTE mobile standard issued by the 3rd Generation Partnership Project (3GPP). NR aims to better support mobile broadband internet access by improving spectrum efficiency, reducing costs, improving service, utilizing new spectrum, and better integrating with other open standards through the use of Orthogonal Frequency Division Multiplexing (OFDM) with Cyclic Prefix (CP) (CP-OFDM) on the downlink (DL), the use of CP-OFDM and / or SC-FDM (e.g., also known as Discrete Fourier Transform Diffused OFDM (DFT-s-OFDM)) on the uplink (UL), and support for beamforming, multiple-input multiple-output (MIMO) antenna technologies, and carrier aggregation.
[0007] Supervised machine learning encompasses a set of techniques used to optimize model parameters using data, and then using the optimized model to process new data. For example, machine learning can be used to automatically detect patterns in data and use these patterns to make predictions about future data. The aim is to apply machine learning to computing and communication to improve the accuracy of communicated information and reduce computational complexity and cost. Summary of the Invention
[0008] This disclosure is set forth in the independent claims. Some aspects of this disclosure are described in the dependent claims.
[0009] In one aspect of this disclosure, a method for optimizing an iterative process is provided. The method includes defining a set of trainable parameters and defining a differentiable gate function to be applied to each parameter in the set of trainable parameters. The method also includes constructing a trainable model of the iterative process, wherein the iterative process is modified by using the values of the differentiable gate functions applied to these parameters to compute a weighted sum of the internal variables of the iterative process before and after each iteration. Additionally, the method includes determining an iterative subset of the iterative process to be performed via machine learning-based optimization of the trainable model of the iterative process. This iterative subset is determined such that the accuracy and the number of active iterations of the iterative process are jointly optimized. The method also includes processing only the optimized iterative subset to perform the iterative process.
[0010] On the other hand, a method for optimizing an iterative process is provided. This method includes determining a subset of iterations for the iterative process to be performed via machine learning-based optimization. This subset of iterations is determined such that the accuracy and number of active iterations of the iterative process are jointly optimized. The method also includes processing only the subset of iterations to perform the iterative process.
[0011] In another aspect of this disclosure, a method is provided for optimizing a hierarchical confidence propagation (LBP) algorithm for low-density parity-check (LDPC) decoding. The method includes defining a set of trainable parameters and defining a differentiable gate function to be applied to each parameter in the set of trainable parameters. The method also includes constructing a trainable model of the LBP algorithm, wherein the values of the differentiable gate functions applied to these parameters are used to compute a weighted sum of check node messages corresponding to the current LDPC decoder iteration and previous LDPC decoder iterations. Additionally, the method includes determining a subset of layers to be executed in each LDPC decoder iteration via machine learning-based optimization of the trainable model of the LBP algorithm. This subset of layers is determined such that decoding accuracy and the number of active layers are jointly optimized. The method also includes processing only the subset of layers in each LDPC decoder iteration.
[0012] In another aspect of this disclosure, an apparatus for optimizing an iterative process is provided. The apparatus includes a memory and one or more processors coupled to the memory. The processor(s) are configured to define a set of trainable parameters and to define a differentiable gate function to be applied to each parameter in the set of trainable parameters. The processor(s) are also configured to construct a trainable model of the iterative process, wherein the iterative process is modified by using the values of the differentiable gate functions applied to these parameters to compute a weighted sum of the internal variables of the iterative process before and after each iteration. Additionally, the processor(s) are configured to determine an iterative subset of the iterative process to be executed via machine learning-based optimization of the trainable model of the iterative process. This iterative subset is determined such that the accuracy and the number of active iterations of the iterative process are jointly optimized. Further, the processor(s) are configured to process only the optimized iterative subset to execute the iterative process.
[0013] In another aspect of this disclosure, an apparatus for optimizing an iterative process is provided. The apparatus includes a memory and one or more processors coupled to the memory. The processor(s) are configured to determine a subset of iterations for the iterative process to be executed via machine learning-based optimization. The subset of iterations is determined such that the accuracy and number of active iterations of the iterative process are jointly optimized. The processor(s) are also configured to process only the subset of iterations to execute the iterative process.
[0014] In another aspect of this disclosure, an apparatus for optimizing an LBP algorithm for LDPC decoding is provided. The apparatus includes a memory and one or more processors coupled to the memory. The processor(s) are configured to define a set of trainable parameters and a differentiable gate function to be applied to each parameter in the set of trainable parameters. The processor(s) are also configured to construct a trainable model of the LBP algorithm, wherein the values of the differentiable gate functions applied to these parameters are used to compute a weighted sum of check node messages corresponding to the current LDPC decoder iteration and previous LDPC decoder iterations. Furthermore, the processor(s) are configured to determine a subset of layers to be executed in each LDPC decoder iteration via machine learning-based optimization of the trainable model of the LBP algorithm. This subset of layers is determined such that decoding accuracy and the number of active layers are jointly optimized. Further, the processor(s) are configured to process only the optimized subset of layers in each LDPC decoder iteration.
[0015] In one aspect of this disclosure, an apparatus for optimizing an iterative process is provided. The apparatus includes components for defining a set of trainable parameters and defining a differentiable gate function to be applied to each parameter in the set of trainable parameters. The apparatus also includes components for constructing a trainable model of the iterative process, wherein the iterative process is modified by using the values of the differentiable gate functions applied to these parameters to compute a weighted sum of the internal variables of the iterative process before and after each iteration. Additionally, the apparatus includes components for determining an iterative subset of the iterative process to be performed via machine learning-based optimization of the trainable model of the iterative process. This iterative subset is determined such that the accuracy and the number of active iterations of the iterative process are jointly optimized. The apparatus also includes components for processing only the optimized iterative subset to perform the iterative process.
[0016] On the other hand, an apparatus for optimizing an iterative process is provided. The apparatus includes components for determining a subset of iterations for the iterative process to be performed via machine learning-based optimization. This subset of iterations is determined such that the accuracy and number of active iterations of the iterative process are jointly optimized. The apparatus also includes components for processing only the subset of iterations to perform the iterative process.
[0017] In another aspect of this disclosure, an apparatus for optimizing an LBP algorithm for LDPC decoding is provided. The apparatus includes components for defining a set of trainable parameters and defining a differentiable gate function to be applied to each parameter in the set of trainable parameters. The apparatus also includes components for constructing a trainable model of the LBP algorithm, wherein the values of the differentiable gate functions applied to these parameters are used to compute a weighted sum of check node messages corresponding to the current LDPC decoder iteration and previous LDPC decoder iterations. Additionally, the apparatus includes components for determining a subset of layers to be executed in each LDPC decoder iteration through machine learning-based optimization of the trainable model of the LBP algorithm. This subset of layers is determined such that decoding accuracy and the number of active layers are jointly optimized. The apparatus also includes components for processing only the subset of layers in each LDPC decoder iteration.
[0018] In another aspect of this disclosure, a non-transitory computer-readable medium is provided. The computer-readable medium has program code encoded thereon for optimizing an iterative process. This program code is executed by a processor and includes code for defining a set of trainable parameters and defining a differentiable gate function to be applied to each parameter in the set of trainable parameters. The program code includes code for constructing a trainable model of the iterative process, wherein the iterative process is modified by using the values of the differentiable gate functions applied to these parameters to compute a weighted sum of the internal variables of the iterative process before and after each iteration. Additionally, the program code includes code for determining an iterative subset of the iterative process to be executed via machine learning-based optimization of the trainable model of the iterative process. This iterative subset is determined such that the accuracy and the number of active iterations of the iterative process are jointly optimized. Further, the program code includes code for processing only the optimized iterative subset to execute the iterative process.
[0019] In another aspect of this disclosure, a non-transitory computer-readable medium is provided. The computer-readable medium has program code encoded thereon for optimizing an iterative process. The program code is executed by a processor and includes code for determining an iterative subset of the iterative process to be performed via machine learning-based optimization. This iterative subset is determined such that the accuracy and the number of active iterations of the iterative process are jointly optimized. The program code also includes code for processing only the iterative subset to perform the iterative process.
[0020] In another aspect of this disclosure, a non-transitory computer-readable medium is provided. A computer-readable medium is provided having program code encoded thereon for optimizing an LBP algorithm for LDPC decoding. This program code is executed by a processor and includes code for defining a set of trainable parameters and a differentiable gate function to be applied to each parameter in the set of trainable parameters. The program code also includes code for constructing a trainable model of the LBP algorithm, wherein the values of the differentiable gate functions applied to these parameters are used to compute a weighted sum of check node messages corresponding to the current LDPC decoder iteration and previous LDPC decoder iterations. Additionally, the program code includes code for determining a subset of layers to be executed in each LDPC decoder iteration via machine learning-based optimization of the trainable model of the LBP algorithm. This subset of layers is determined such that decoding accuracy and the number of active layers are jointly optimized. Further, the program code includes code for processing only the subset of layers in each LDPC decoder iteration.
[0021] The aspects generally include, as described substantially with reference to the accompanying drawings and description, and as shown in the accompanying drawings and description, methods, apparatus, systems, computer program products, non-transitory computer-readable media, user equipment, base stations, wireless communication equipment, and processing systems.
[0022] The foregoing has provided a fairly broad overview of the features and technical advantages of the examples according to this disclosure in order to facilitate a better understanding of the following detailed description. Additional features and advantages will be described. The disclosed concepts and specific examples can be readily used as the basis for modifying or designing other structures for achieving the same purpose as this disclosure. Such equivalent structures do not depart from the scope of the appended claims. The characteristics of the disclosed concepts, their organization and operation, and related advantages will be better understood from the following description when considered in conjunction with the accompanying drawings. Each drawing is provided for illustrative and descriptive purposes and not as a limitation of the definitions in the claims. Attached Figure Description
[0023] To fully understand the foregoing features of this disclosure, a detailed description can be obtained by referring to various aspects, some of which are illustrated in the accompanying drawings. However, it should be noted that the drawings illustrate only certain aspects of this disclosure and should therefore not be considered as limiting its scope, as the description may allow for other equivalent aspects. The same reference numerals in different drawings can identify the same or similar elements.
[0024] Figure 1 An example implementation of designing a neural network using a system-on-a-chip (SoC) including a general-purpose processor, according to certain aspects of this disclosure, is shown.
[0025] Figure 2A and Figure 2B This is a diagram illustrating a neural network according to various aspects of this disclosure.
[0026] Figure 3 This is a diagram illustrating example gate functions for training and inference according to various aspects of this disclosure.
[0027] Figure 4 This is a diagram illustrating an example parity check matrix (PCM) and the corresponding Tanner diagram according to various aspects of this disclosure.
[0028] Figure 5A and Figure 5B This is a diagram illustrating example subgraphs of low-density parity-check (LDPC) Tanner graphs for c-nodes and v-nodes respectively, according to various aspects of this disclosure.
[0029] Figure 6 This is a diagram illustrating an example of a loss function defined according to various aspects of this disclosure to minimize the number of active layers in a generic algorithm or a hierarchical confidence propagation (LBP) algorithm.
[0030] Figures 7-9 This is a flowchart illustrating, for example, an example process executed by a processor according to various aspects of this disclosure. Detailed Implementation
[0031] The various aspects of this disclosure are described more fully below with reference to the accompanying drawings. However, this disclosure may be embodied in many different forms and should not be construed as limited to any particular structure or function presented throughout this disclosure. Rather, these aspects are provided so that this disclosure will be exhaustive and complete, and will fully convey the scope of this disclosure to those skilled in the art. Based on these teachings, those skilled in the art will understand that the scope of this disclosure is intended to cover any aspect of this disclosure, whether implemented independently of or in combination with any other aspect of this disclosure. For example, an apparatus or a method may be implemented using any number of the aspects set forth. Furthermore, the scope of this disclosure is intended to cover an apparatus or method practiced using structures, functions, or structures and functions other than those set forth in this disclosure. It should be understood that any aspect of this disclosure may be embodied by one or more elements of the claims.
[0032] Several aspects of a telecommunications system will now be described with reference to various devices and techniques. These devices and techniques will be described in detail below and illustrated in the accompanying drawings, through various frames, modules, components, circuits, steps, processes, algorithms, etc. (collectively referred to as “elements”). These elements can be implemented using hardware, software, or any combination thereof. Whether these elements are implemented as hardware or software depends on the specific application and the design constraints imposed on the entire system.
[0033] It should be noted that while the aspects may be described using terms commonly associated with 5G and subsequent wireless technologies, the aspects of this disclosure may be applied to communication systems based on other generations, such as and including any 802.11 Wi-Fi standard since 802.11n (e.g., 802.11n, 802.11ac).
[0034] Iterative processes are frequently used in computing and communication, where specific computations are performed on repeated loops or iterations of an operation until a condition that triggers a given process is met; these iterations can often be nested within other iterations. Typically, subsets of iterations can be efficiently skipped with minimal impact on the overall expected performance or accuracy of the iterative process. Therefore, significant computational time may be consumed in the processing involved in iterations with minimal performance impact, leading to delays in process completion, increased costs in terms of area (e.g., memory or processor footprint) or power consumption, or an undesirable user experience. Therefore, it is desirable to identify which iterations can be efficiently skipped with minimal impact on performance or accuracy, allowing the skipping of processing involved in these iterations to save computational time and resources where the impact on process performance or accuracy is minimal.
[0035] Therefore, aspects of this disclosure relate to a machine learning framework for improving, and in some cases optimizing, the performance of an iterative process by simultaneously or jointly optimizing accuracy and active iteration, wherein the iteration is active if processing of the iteration is not skipped. Other aspects of this disclosure relate to applying this machine learning framework to jointly optimize the performance of a hierarchical confidence propagation algorithm for low-density parity-check (LDPC) decoding and active iteration.
[0036] Figure 1 An example implementation of a system-on-a-chip (SOC) 100 according to certain aspects of this disclosure is shown, which may include a central processing unit (CPU) 102 or a multi-core CPU configured to generate gradients for training a neural network. Variables (e.g., neural signals and synaptic weights), system parameters associated with the computing device (e.g., a neural network with weights), latency, frequency band information, and task information may be stored in a memory block associated with a neural processing unit (NPU) 108, a memory block associated with the CPU 102, a memory block associated with a graphics processing unit (GPU) 104, a memory block associated with a digital signal processor (DSP) 106, a memory block 118, or may be distributed across multiple blocks. Instructions executed at the CPU 102 may be loaded from the program memory associated with the CPU 102 or may be loaded from memory block 118.
[0037] SOC 100 may also include additional processing blocks tailored for specific functions, such as GPU 104, DSP 106, connectivity block 110 (which may include fifth-generation (5G) connectivity, fourth-generation LTE (4G) connectivity, Wi-Fi connectivity, USB connectivity, Bluetooth connectivity, etc.), and multimedia processor 112, for example, capable of detecting and recognizing gestures. In one implementation, the NPU is implemented within a CPU, DSP, and / or GPU. SOC 100 may also include sensor processor 114, image signal processor (ISP) 116, and / or navigation module 120, the navigation module including a global positioning system.
[0038] The SOC 100 may be based on the ARM instruction set. In one aspect of this disclosure, the instructions loaded into the general-purpose processor 102 may include code for determining an iterative subset of the iterative process to be executed via an artificial neural network. The accuracy and number of active iterations of the iterative process are jointly optimized. The instructions loaded into the general-purpose processor 102 may include code for processing only the iterative subset to execute the iterative process.
[0039] In another aspect of this disclosure, the instructions loaded into the general-purpose processor 102 may include code for defining a set of trainable parameters and defining a differentiable gate function to be applied to each parameter in the set of trainable parameters. The instructions loaded into the general-purpose processor 102 may also include code for constructing a trainable model of the iterative process, wherein the iterative process is modified by using the values of the differentiable gate functions applied to these parameters to compute a weighted sum of the internal variables of the iterative process before and after each iteration. Additionally, the instructions loaded into the general-purpose processor 102 may include code for determining an iterative subset of the iterative process to be executed via machine learning-based optimization of the trainable model of the iterative process. This iterative subset is determined such that the accuracy and the number of active iterations of the iterative process are jointly optimized. Furthermore, the instructions loaded into the general-purpose processor 102 may include code for processing only the iterative subset to execute the iterative process.
[0040] In another aspect of this disclosure, the instructions loaded into the general-purpose processor 102 may include code for defining a set of trainable parameters and defining a differentiable gate function to be applied to each parameter in the set of trainable parameters. The instructions loaded into the general-purpose processor 102 may also include code for constructing a trainable model of the LBP algorithm, wherein the values of the differentiable gate functions applied to these parameters are used to compute a weighted sum of check node messages corresponding to the current LDPC decoder iteration and previous LDPC decoder iterations. Additionally, the instructions loaded into the general-purpose processor 102 may include code for determining a subset of layers to be processed in each LDPC decoder iteration via machine learning-based optimization of the trainable model of the LBP algorithm. This subset of layers is determined such that decoding accuracy and the number of active layers are jointly optimized. Furthermore, the instructions loaded into the general-purpose processor 102 may include code for processing only a subset of layers in each LDPC decoder iteration.
[0041] The learning algorithm can be implemented on a device (e.g., via SOC 100) or offline. It can be used, for example, to optimize the performance of an iterative process. The learning algorithm determines the optimal values of the trainable parameters by defining a loss or error function associated with the trainable parameters and using minimization techniques such as gradient descent to adjust the trainable parameters.
[0042] Deep learning architectures can learn hierarchical levels of features. For example, if visual data is presented to the first layer, it can learn to recognize relatively simple features (such as edges) in the input stream. In another example, if auditory data is presented to the first layer, it can learn to identify spectral power at specific frequencies. A second layer, taking the output of the first layer as input, can learn to recognize combinations of features, such as recognizing simple shapes in visual data or sound combinations in auditory data. For example, higher layers can learn to represent complex shapes in visual data or words in auditory data. Even higher layers can learn to recognize common visual objects or spoken phrases.
[0043] Deep learning architectures can perform particularly well when applied to problems with a naturally hierarchical structure. For example, the classification of motor vehicles can benefit from first learning to identify wheels, windshields, and other features. These features can then be combined in different ways at higher levels to identify cars, trucks, and airplanes.
[0044] Neural networks can be designed with a wide variety of connection patterns. In feedforward networks, information is passed from lower layers to higher layers, where each neuron in a given layer communicates to neurons in higher layers. As mentioned above, hierarchical representations can be constructed in successive layers of a feedforward network. Neural networks can also have backflow or feedback (also known as top-down) connections. In a backflow connection, the output from a neuron in a given layer can be communicated to another neuron in the same layer. Backflow architectures can help identify patterns across more than one block of input data sequentially delivered to the neural network. Connections from neurons in a given layer to neurons in lower layers are called feedback (or top-down) connections. Networks with many feedback connections can be helpful when the recognition of high-level concepts might help distinguish specific low-level features of the input.
[0045] The connections between layers of a neural network can be fully connected or locally connected. Figure 2A An example of a fully connected neural network 202 is shown. In the fully connected neural network 202, a neuron in the first layer can communicate its output to each neuron in the second layer, so that each neuron in the second layer receives input from each neuron in the first layer. Figure 2BAn example of a locally connected neural network 204 is shown. In the locally connected neural network 204, neurons in a first layer can connect to a finite number of neurons in a second layer. More generally, the locally connected layers of the locally connected neural network 204 can be configured such that each neuron in a layer will have the same or similar connection pattern, but its connection strength can have different values (e.g., 210, 212, 214, and 216). The connection patterns of locally connected networks may produce spatially dissimilar receptive fields in higher layers due to the nature of higher-layer neurons in a given region receiving input, which is tuned to a limited portion of the total input to the network through training.
[0046] To adjust the weights, a learning algorithm or process can compute a gradient vector for the weights. This gradient indicates the amount by which the error will increase or decrease as the weights are adjusted. At the top layers, this gradient directly corresponds to the values of the weights connecting the activated neurons in the penultimate layer to the neurons in the output layer. In lower layers, the gradient may depend on the values of the weights and the error gradients computed from the higher layers. The weights can then be adjusted to reduce the error. This method of adjusting weights is called "backpropagation" because it involves a "backward pass" through the neural network.
[0047] In practice, the error gradient of the weights can be calculated using a small number of examples. This approximation method is known as stochastic gradient descent. Stochastic gradient descent can be repeated until the achievable error rate of the entire system stops decreasing or until the error rate reaches the target level. After learning, a neural network (NN) can be presented with new inputs, and through the network's forward pass, it produces an output, which can be considered the NN's inference or prediction.
[0048] The performance of deep learning architectures can improve as more labeled data points become available or as computational power increases. Modern deep neural networks are routinely trained with thousands of times more computational resources than were available to a typical researcher just fifteen years ago. New architectures and training paradigms can further boost the performance of deep learning. Corrected linear units reduce the training problem known as vanishing gradients. New training techniques reduce overfitting and thus enable larger models to achieve better generalization. Encapsulation techniques can abstract the data within a given receptive field and further improve overall performance.
[0049] In some aspects, the SOC 100 or other device or component disclosed herein may include components for receiving, components for determining, and / or components for processing. In some aspects, the SOC 100 or other device or component may include components for defining, components for building, components for determining, and / or components for processing. In some aspects, the SOC 100 or other device disclosed herein may include components for joint minimization, components for optimization, components for setting, components for defining, components for computation, components for receiving, and / or components for skipping. Such components may include combinations. Figure 1 One or more components of the SOC 100 described.
[0050] As mentioned earlier, iterative processes are frequently used in computing and communication, where specific computations are performed on repeated loops or iterations of an operation until a condition that triggers a given process is met; these iterations can often be nested within other iterations. Typically, it is efficient to skip subsets of iterations with minimal impact on the overall expected performance or accuracy of the iterative process. Therefore, significant computational time may be spent on processing within the iterations that have the least impact on performance, leading to delays in completing the process, increased costs in terms of area or power, or an undesirable user experience.
[0051] To address these and other challenges, aspects of this disclosure relate to a machine learning framework for improving, and in some cases optimizing, the performance of an iterative process by simultaneously or jointly optimizing accuracy and active iteration, wherein the iteration is active if processing of the iteration is not skipped. Other aspects of this disclosure relate to applying this machine learning framework to jointly optimize the performance of a hierarchical confidence propagation algorithm for LDPC decoding and active iteration.
[0052] Consider an iterative process with input X = {x} and output Y = {y}, where a sample set of {x, y} can be readily generated for training (e.g., supervised learning). The iterative process can be formulated as a process from X to Y by mapping its input X to a set of internal variables initialized with values M[0], and updating these internal variables from values M[t-1] to M[t] in each iteration t; after T iterations, the internal variables can be given by M[T], which can be mapped to the desired output Y. An example pseudocode for the iterative process is shown in Process 1 below, where f i () maps the process input to the initial value M[0] of the internal variable, f o () maps the final internal variable values to the output Y, and for 1≤t≤T, {f t Let T be a set of functions f, where each function f t () Update the values of the internal variables in iteration t.
[0053]
[0054] Assume the performance of the iterative process of process 1 may vary depending on all its variables. The loss function is inversely proportional, where minimizing To maximize the performance of the iterative process, the iterative process can be optimized to determine the importance of each iteration to the process performance, or the iterations with the least impact on performance can be skipped.
[0055] According to various aspects of this disclosure, a gate function g(θ) is provided. The gate function g(θ) can be applied to a set of trainable parameters. in It is a T×1 vector, where T is the number of iterations. For the binary gate function g(θ), if Iteration t can be skipped. On the other hand, if The iteration t can be performed as specified, for example, in line 4 of procedure 1. That is, the internal variable (M) can be obtained by directly applying f. t (M[t-1]) is passed to M[t] for updating. This functionality can be implemented functionally by way of example, as shown in process 2.
[0056] It is worth noting that in process 2, f is not directly... t (M[t-1]) is passed to M[t], but f is passed instead. t The weighted average of (M[t-1]) and M[t-1], with weights respectively from and Give it. If Iteration t is effectively skipped because M[t] equals M[t-1], while if Then M[t] is updated to f t (M[t-1]), as shown in process 1, gives the functional equivalent process 3 of the binary-valued g(θ) (eg, g(θ)∈(0,1}).
[0057]
[0058]
[0059] Since any function of a binary-valued g(θ) has a derivative of 0 or an undefined derivative, optimization using derivative-based methods (such as gradient descent) is necessary. In some respects, g(θ) can be set as a real-valued, continuous, and differentiable function. In one example, the gate function can be a sigmoid function during training and can be expressed as:
[0060] During training:
[0061] Among them, f σ g(θ) is a sigmoid function. Since g(θ) is not a binary-valued function used for training, process 2 can be used for training.
[0062] After training, in some respects, for any t, where mean The corresponding iteration can be skipped. Therefore, for inference purposes, for example, when running the optimization process according to various aspects of this disclosure, the gate function g(θ) can be given as follows:
[0063] Inference period:
[0064] Where u(θ) is the unit step function.
[0065] Figure 3 Figure 300 illustrates gate functions for training and inference according to various aspects of this disclosure. (Reference) Figure 3 As shown by curve 302, and as Equation 1, during training, the gate function g(θ) can be, for example, a real-valued, continuous, and differentiable function as shown by curve 302. During training, if θ < -3, the gate function is very close to 0, thus effectively closed, and if θ > 3, the gate function is very close to 1, thus effectively open. However, the gate function f... σ (θ) is always continuous and differentiable for all values of θ. Therefore, the artificial neural network model implementing process 2 can be trained and optimized using gradient-based methods. This allows the gate function to be optimized so that doing so corresponds to the minimum reduction in accuracy associated with the iterative process. Optimized to effectively close.
[0066] On the other hand, during inference, the gate function g(θ) can be a step function as shown in waveform 304. Figure 3 As shown in waveform 304, during the inference period, if θ≥-3, the gate function g(θ) is 1 and is on; otherwise, the gate function g(θ) is 0 and is off.
[0067] For inferences, for example, g(θ) is a binary-valued variable, so skipping... The iteration, and The iteration is active, as shown in process 3.
[0068] Because one goal is to find The set is designed to minimize the total number of active iterations for a given performance objective, thus allowing the determination of a loss function that simultaneously minimizes both the number of active iterations and the algorithm accuracy loss function. As shown in Equation 2 and Process 3, if the iteration is in its corresponding If the activity is active, then the number of activity iterations L active It is given by the following formula:
[0069]
[0070] Where u(θ) is the unit step function.
[0071] Since the derivative of Equation 3 is zero or undefined, in order to optimize the number of activity iterations using derivative-based methods (such as gradient descent), the unit step function in Equation 3 can be replaced with a real-valued, continuous, and differentiable sigmoid function to produce the loss function component L. active To optimize the number of activity iterations, such as:
[0072]
[0073] Where f σ (x) is the sigmoid function given in Equation 1.
[0074] exist Figure 3 The range (-3, 3) shown in the rectangular region 306 below the middle waveform 304 It is usually suboptimal and can be avoided because for such... Although the optimizer instructs the corresponding iteration to at least partially decay with minimal loss of accuracy, the corresponding iteration remains active during inference. This can be conceptualized as an optimizer that indicates some remaining ambiguity about whether an iteration can be skipped. In some respects, the optimizer may preferably explicitly indicate that the iteration should be skipped (e.g., ) or definitely active (e.g., In equation 4, as... Figure 6 As shown in curve 602b, the shift of three is actually not conducive to having All iterations are skipped during inference because these iterations are not skipped. In fact, this offset relative to the training gate function in Equation 1 leads to the optimization... This is likely to be rare within the range (-3, 3), because of the corresponding f in equation 2 of the attenuation equation. t The (M[t-1]) component, in (-3,3) They compromised accuracy, therefore they caused and L active The high loss in the process. By using this shifted cost function, the ambiguity about whether an iteration should be active or skipped can therefore be greatly reduced, and in some respects eliminated entirely.
[0075] In some aspects, it is possible to optimize both the precision and the number of activity iterations simultaneously. This can be achieved through computation. and L active The weighted sum of the loss functions is used to generate the optimized total loss function, which is given by the following equation:
[0076]
[0077] Where, λ acc It is a scaling factor, which is set when λ active =1 and all iterations are active when Compared to Standardization, and λ active It is a hyperparameter that allows for different trade-offs between the number of active iterations (e.g., computation time and resources) and accuracy.
[0078] When all iterations are active and λ active When λ = 1, acc The scaling factor makes the two components of Equation 5 comparable, meaning the second term in Equation 5 is given by T. For a given iterative process, λ acc Training data can be fed into the iterative process, making all iterations active, and then the results can be calculated. Export, also known as Then λ acc It is given by the following formula:
[0079]
[0080] So that when all iterations are active, λ active =1, and The two components of equation 5 are equal.
[0081] For a given generic process to be optimized, the program first implements process 2 as a model in a machine learning framework (e.g., TensorFlow), which has differentiable g(θ), such as differentiability as defined in Equation 1. The machine learning framework can then be manipulated to find the optimal parameters. It minimizes the loss function provided in Equation 5. Then the optimized... Used in conjunction with a binary value g(θ) (such as the binary value defined in Equation 2 in Process 3) to indicate which iterations can be preferentially skipped with minimal performance loss.
[0082] Although the procedure in this example applies to an iterative process with a single, non-nested loop, this is for simplicity and ease of explanation, not as a limitation. Instead, by using multidimensional... Replace the trainable parameter vector indexed by a single loop variable t The example optimization can be applied to iterative algorithms and processes with an arbitrary number of nested loops, where t i This is the loop variable corresponding to each level of the nested loop. Similarly, the sum in equations 3 and 4 can be expressed by all loop variables t. i Instead. Therefore, the above optimization process can be applied to optimally include or exclude iterations at any arbitrary nesting level.
[0083] In some areas, such as optimization processes, the process can be applied to the decoding of Low-Density Parity-Check (LDPC) codes. LDPC codes are a special type of linear block code that can be used for forward error correction decoding. LDPC codes can be applied, for example, to wireless communications to improve their reliability and efficiency, especially in the presence of noise. Thus, LDPC codes have found widespread commercial applications, particularly in modern wireless communication standards such as 5G NR cellular, Wi-Fi 802.11n, and 802.11ac.
[0084] LDPC codes can be defined by their parity check matrix (PCM); an (N, K)LDPC code converts K information bits into N codeword bits and will have a PCM, i.e., (NK)×N, where N columns correspond to codeword bits and NK rows correspond to parity checks on these bits. The PCM is typically constructed using concatenated and stacked Z×Z identity matrices and Z×Z all-zero matrices, where Z is called the boost factor. This construction offers several advantages, including Z-level parallelism in the hardware implementation of encoding and decoding. In 5G NR implementations, the first 2Z coded bits can be truncated (e.g., removed from the codeword) before transmission. The truncated bits can then be inferred from other received bits during decoding.
[0085] It has been found that well-designed LDPC code achieves good capacity at its block length while allowing for efficient decoding using algorithms such as Hierarchical Confidence Propagation (LBP). LBP is an iterative algorithm in which rows of a parity check matrix (PCM) are processed sequentially. For LDPC code constructed with a boost factor Z, the Z rows corresponding to each permutation of the identity matrix can be called a “layer” and can be processed in parallel. The term “row” can refer to such a set of Z rows (e.g., a layer). Similarly, the term “column” can refer to the set of Z columns corresponding to the permutations of the identity matrix. The LBP algorithm typically runs several iterations, in which the LBP algorithm iterates on each layer in the PCM in each of these “outer” iterations. The processing of PCM layers is therefore the innermost nested loop of the LBP algorithm, and the term “layer” may also refer to this processing.
[0086] Increasing the number of LBP iterations can improve performance to a certain asymptotic level. Timeline and hardware constraints typically cause LDPC decoder implementations to terminate decoding with far fewer iterations than would be necessary to achieve asymptotic performance. In traditional LBP implementations, all layers are processed in each iteration of the algorithm. In early decoder iterations, the processing layers corresponding to parity checks, including truncated bits, produce little or no new information to the decoder, and thus can be skipped with minimal performance degradation. Processing only certain layers in later iterations allows the decoder to achieve better performance for a given total number of processing layers, and thus better performance for a given decoding timeline. Alternatively, the same performance can be achieved with a shorter decoding timeline, potentially saving area and / or cost.
[0087] Therefore, other aspects of this disclosure provide a machine learning framework for systematically optimizing the set of layers that will be processed in each decoder iteration, which may be referred to as a “schedule”. An improved (and in some cases optimal) schedule can be determined that skips the processing of several layers in early iterations of the LBP and multiple layers in later iterations of the LBP, thereby improving the performance of a given total number of active layers. Therefore, aspects of this disclosure can be applied to systematically optimize the scheduling of any LDPC code and rate.
[0088] In some respects, the parity check matrix (PCM) of any linear block code can be represented by a bipartite graph called the Tanner graph. Figure 4 This is a diagram illustrating an example PCM 400 according to various aspects of this disclosure and a corresponding Tanner diagram 420. Reference Figure 4 Tanner graph 420 includes two sets of vertices, V and C, which can be referred to as node v and node c, respectively. Tanner graph 420 also includes a set of edges E 430, where each edge e ∈ E connects to some node c. Connect to a v node It is represented as The v nodes correspond to the columns of the PCM 400, which in turn correspond to codeword bits, while the c nodes correspond to the rows of the PCM 400, which in turn correspond to parity. The Tanner graph 420 has edges connecting the v nodes to the c nodes if and only if there is a 1 in the corresponding {row, column} of the PCM 400. For example, some edges in 430 connect c node 1 to v node {1, 3, 5, 7}. A characteristic of LDPC codes is that, unlike the PCM 400, they have a sparse (e.g., low-density) PCM. Therefore, LDPC codes also have a low density (relatively few edges) in their Tanner graph representation, so |E| << |V| × |C|. For example, LDPC codes can be constructed from the PCM 400 by replacing the 1s (1) in the PCM 400 with a permuted Z × Z identity matrix and replacing the zeros (0) in the PCM 400 with a Z × Z all-zero matrix for some large value of Z, where Z is called the lifting factor.
[0089] For a codeword of size N, each of the N v-nodes, or codeword bits, can be associated with a probability indicating whether that bit is 0 or 1. In a decoder implementation, these probabilities can be represented by the log-likelihood ratio (LLR). Initially, these LLRs are set based on the conditional probability of a given received signal r:
[0090]
[0091] in It is the initial LLR associated with node v, and b v It is the codeword bit associated with node v.
[0092] The confidence propagation (BP) algorithm is a message passing process on the Tanner graph of the code, where LLRα = {α} is associated with node v. v The algorithm is updated and ideally improved. In each iteration of the traditional BP process, all nodes in the graph are visited at least once. The operation performed when visiting node c (where the incoming v→c message is converted into an outgoing c→v message) is called the "scan" operation. The operation performed when visiting node v (where the incoming c→v message is converted into an outgoing v→c message) and α is updated is called the "update" operation.
[0093] The order in which nodes are accessed is called a timetable. Traditionally, because all iterations use the same order, a timetable refers to the order in which nodes are accessed in a single iteration. According to various aspects of this disclosure, the nodes to be accessed can change in each iteration, therefore the term "timetable" refers to the order in which nodes are accessed across all iterations. In a flood messaging mechanism, in each iteration, all c nodes are accessed in parallel, then all v nodes are accessed in parallel. In a hierarchical timetable, c nodes are accessed sequentially. Typically, even in a hierarchical implementation, the Z c nodes corresponding to a layer are processed in parallel, followed by all v nodes connected to those Z c nodes (e.g., using a flood messaging mechanism on each batch of Z c nodes corresponding to a layer). Although this disclosure relates to a single c node and v node, this is merely an example and for simplicity and ease of understanding, and this disclosure applies to the case of multiple c nodes and v nodes with appropriate parallelization (e.g., Z > 1). A single particular c node or v node may be referred to as... or A collection of multiple 'c' nodes or 'v' nodes will be respectively called or
[0094] Figure 5A and Figure 5B This is a diagram illustrating example sub-graphs of the Tanner graphs for c-node 500 and v-node 550 respectively, according to various aspects of this disclosure. Reference Figure 5A In Layered Confidence Propagation (LBP), each time a c-node is visited, a scan operation is performed to generate outgoing c→v messages for each v-node connected to that c-node. Before visiting another c-node and performing another scan, an update operation is performed at each v-node connected to the visited c-node. Therefore, processing a layer in the LBP algorithm involves performing a scan at the visited c-node and an update at the v-nodes connected to that c-node. In traditional LBP implementations, the iteration of the LBP process is complete when all layers have been processed. Note that in a single iteration of traditional LBP, each c-node is visited exactly once, while a v-node connected to multiple c-nodes is visited once for each c-node it is connected to.
[0095] During an LBP iteration t, processing of a single layer involves accessing connections to a batch of d v nodes. A single c node During the scan operation, node c will transmit messages from node d (obtained from each node v). A message is converted into a d outgoing message (per v node). (Corresponding to a single message). The message passed to d in iteration t can be called... The message sent by d can be called Outgoing messages on an edge are independent of incoming messages on the same edge; these can be called "own" messages. Each outgoing message can be a function of other d-1 incoming messages. In the sum-product (SP) process, each News It can be calculated as follows:
[0096] For each
[0097] In some respects, equation 8 can be replaced by a more computationally efficient approximation.
[0098] Connected to Figure 5A c node in v node Each v node in the set It is connected to multiple C nodes. The set, including (For example, ),like Figure 5B As shown. In LBP, for node c corresponding to a given layer After applying Equation 8, immediately update each v node. All Typically, this can be achieved by checking all messages. Sum to update each v node of As shown below:
[0099] For each
[0100] The above sum is replaced by all incoming messages. Corresponding to the connection All C-nodes Including the c node corresponding to the current layer
[0101] Note that for any given layer, only those from the corresponding c node... The message has changed, and this update may be significantly simplified, meaning that for any given v node... The only new value in equation 9 is Therefore, it is possible to update with Related To reflect The new value. Because before this layer, Given by Equation 9, but using the values from the previous iteration. Calculations show that equation 9 can be easily updated. To achieve this effectively, as shown below:
[0102] For each
[0103] For all edges in the Tanner graph
[0104] Equation 8 assumes that the current iteration's v→c message m is received. v→c [t](For any given Tanner graph edge, e∈E, where By removing its own messages It is easy to obtain from the relevant The message is calculated within this timeframe. Because this calculation is performed before applying equations 8 and 10 in the current iteration, the message itself will be subtracted. Therefore, for the node corresponding to c For a given layer, the incoming message in Equation 8 Calculated as:
[0105] For each
[0106] The entire LBP algorithm is described in detail in process 4, including the total number of iterations T; the algorithm receives input LLR. Let G be a Tanner graph, represented by a set of v nodes, c nodes, and edges V, C, and E, respectively. The algorithm returns the updated LLR vector α. v This contains the updated LLR for each v node v∈V; the decoded bits can be easily derived from the symbols of these updated LLRs. The processing on lines 13, 14, and 15 of process 4 can be parallelized so that these are not nested loops; therefore, the innermost loop is a loop on the layer.
[0107] According to various aspects of this disclosure, the algorithm can be modified to efficiently skip processing layers in each iteration. In other aspects, the corresponding machine learning framework systematically optimizes the set of layers that will be processed in each decoder iteration.
[0108]
[0109]
[0110] According to various aspects of this disclosure, and as described above, a gate function g(θ) is provided and applied to trainable parameters. The set of, where It is a T×|C| matrix, where T is the number of iterations, C is the set of nodes c, and |C| refers to the number of elements in C, which is the number of layers (for Z>1, ...). It should be replaced with |C|). For the binary-valued g(θ), when When, layer l of iteration t is processed into process 4, and when At that time, layer 1 of iteration t is effectively skipped. This functionality can be implemented functionally, as shown in process 5. The processing on lines 13, 14, 15, and 16 of process 5 can be parallelized so that these are not nested loops; therefore, the innermost loop is a loop on the layer.
[0111]
[0112]
[0113] It is worth noting that, as shown in process 5, if Then line 14 is a simple passthrough, making the layer processing unchanged compared to process 4. However, if Then line 14 is mandatory for and A value of 0 gives the functional equivalent of process 6 for the binary-valued g(θ). Furthermore, note that processes 5 and 6 essentially apply nested versions of the more generalized processes 2 and 3, respectively, to the specific hierarchical confidence propagation algorithm of process 4, where the innermost nested iteration of the optimization is referred to as a "layer" in the context of the hierarchical confidence propagation algorithm.
[0114] Since any function of a binary-valued g(θ) always has a derivative of 0 or an undefined derivative, optimization using derivative-based methods (such as gradient descent) is necessary. g(θ) can be set to a real-valued, continuous, and differentiable sigmoid function during training. For example, the following functions are available for g(θ) during training:
[0115] During training:
[0116] Where f σ (x) is the sigmoid function defined in Equation 12. Because Since it is not a binary value used for training, process 5 is used for training.
[0117]
[0118] After training, in some respects, for any t and l, where mean The corresponding layer can be skipped. Therefore, for inference:
[0119] Inference period:
[0120] Where u(x) is the unit step function.
[0121] For inference (as opposed to training), g(θ) is a binary-valued variable, therefore skipping... The layer, and The layers are active, as shown in process 6. The gate functions used for training and inference can be given by equations 12 and 13, respectively.
[0122] In some aspects, optimization can be achieved using traditional machine learning frameworks such as TensorFlow. In some respects, a three-dimensional tensor of the Tanner graph message can be used in each layer. and Optimized via TensorFlow The dimensions are given by d, Z, and M, where d is the order of each of the Z c nodes in the layer, Z is the boosting factor, and M is the number of training examples in each mini-batch. LLRα v It can be represented by a three-dimensional tensor, whose dimensions are... Z and M are given, where N is the code block size. These three-dimensional tensors allow for efficient and fully parallel implementation of processing at each layer.
[0123] Because one goal is to find The set of values is chosen to minimize the total number of active layers for a given performance (decoding accuracy) objective, thus employing a loss function that allows for a trade-off between accuracy and active layers. The binary cross-entropy loss, averaged on the decoder output LLR, can be used for the accuracy component of the loss function. in this case:
[0124]
[0125] Where b v It is the encoded bit value for each training example (corresponding to the correct decoded bit value).
[0126] When the probability of "0" is greater than the probability of "1", since LLR is defined as positive, polarity reversal is used inside the sigmoid function (e.g., with α). v The opposite -α v The sigmoid function maps positive values to something closer to "1" and negative values to something closer to "0".
[0127] Minimizing only the loss function in Equation 14 optimizes the decoder accuracy, but not the number of active layers. Referring to Equation 13 and Procedure 6, note that if the layer is in its corresponding... If a layer is active in a specific iteration, then the number of active layers L is... active It is given by the following formula:
[0128]
[0129] Here, u(x) is the unit step function. Since the derivative of Equation 15 is zero or undefined, derivative-based methods (such as gradient descent) can be used to optimize the number of active layers by replacing the unit step function in Equation 15 with a differentiable function (such as the sigmoid function in Equation 12) to produce the loss function components. This optimizes the number of activity layers:
[0130]
[0131] Where f σ (x) is the sigmoid function given in Equation 12.
[0132] Figure 6 An example is shown illustrating the definition of a loss function according to various aspects of this disclosure to minimize the number of active layers in a hierarchical confidence propagation (LBP) algorithm. Figure 6 The range (-3, 3) shown in 604 It is usually suboptimal and can be avoided because for such... Although the optimizer instructs the corresponding layer to at least partially decay with minimal loss of accuracy, the corresponding layer remains active during inference. This can be conceptualized as the optimizer indicating some remaining ambiguity about whether a layer should be skipped; the optimizer may preferably explicitly indicate that the layer should be skipped (e.g., ) or definitely active (e.g., ). refer to Figure 6 The shift three in Equation 16 (shown by the shifts in waveforms 602a to 602b) ensures that it has The layers are effectively compromised because they are not skipped during inference. In fact, this shift relative to the training gate function in Equation 12 can lead to optimization errors. This is mainly outside the range (-3, 3), because through the corresponding message in decay process 5, in (-3, 3) The accuracy is compromised, resulting in high losses in equations 14 and 16. Therefore, by using appropriate impairment... Cost functions of this value, such as the cost function of Equation 16 (see also Equation 4), can significantly reduce and in some respects completely eliminate the ambiguity about whether a layer should be active or should be skipped, as indicated by region 604 in (-3, 3). lead to.
[0133] In some respects, the weighted sum of the loss functions of Equations 14 and 16 can be used as the total loss function to simultaneously optimize the accuracy and number of active layers, as given by the following equation:
[0134]
[0135] Where λ acc It is the scaling factor, λ acc Set for use when λ active =1 and all layers are active. Compared to Standardization. On the other hand, λ active It is a hyperparameter that allows for different trade-offs between the number of active layers (e.g., decoding time) and accuracy. Factor λ acc This ensures that both components of Equation 17 are active in all layers and λ active =1 is comparable, thus implying that the second term in Equation 17 is given by T×|C| / Z. For a given LDPC code, with all layers active, and using the signal-to-noise ratio (SNR) corresponding to the average codeword error rate (CWER) (e.g., 0.1) to generate the LLR, and through the calculated... (can be called) ), can derive λ acc Therefore, λ acc Given from the following:
[0136]
[0137] This ensures that when all layers are active, λ active =1, and The two components of the loss function in Equation 17 are equal.
[0138] Furthermore, to generate an optimization timeline for a given LDPC code, training examples can be generated by adding a random Gaussian noise vector to the all-zero codeword, such that the resulting SNR falls within the waterfall region of the LDPC code (where all layers are active). Due to the symmetry of the hierarchical confidence propagation algorithm, the all-zero codeword can be used for all training examples. Process 5 can be implemented as a model, for example in TensorFlow, with a differentiable gate function g(θ), as given by, for example, Equation 12. Traditional optimization techniques, such as those utilizing machine learning frameworks like TensorFlow, can be used to find the optimal parameters that minimize the loss function of Equation 17. Inference operations (e.g., decoding) can be performed using process 6 and a binary-valued gate function g(θ) (such as the gate function in Equation 13), where optimization is performed from training. This indicates which layers can be preferably skipped with minimal performance loss.
[0139] The timetable can be trained using the exact sum-product scan formula of Equation 8, or it can be trained using an approximation of Equation 8 (e.g., Offset Minimum Sum (OMS)). Regardless of the scan formula used during training, the optimized timetable can be used in an inference engine that uses any scan formula, including, for example, the exact formula of Equation 8 or any approximation of Equation 8, such as OMS.
[0140] As mentioned above, Figures 1-6 This is provided as an example only. Other examples may differ from those provided. Figures 1-6 The example described.
[0141] Figure 7 This is a flowchart illustrating an example process 700 executed by a processor, for example, according to various aspects of this disclosure. Process 700 is an example of optimizing an iterative process using machine learning-based optimization. At block 702, the process determines a subset of iterations for the iterative process to be executed via machine learning-based optimization. This subset of iterations is determined such that the accuracy and the number of active iterations of the iterative process are jointly optimized.
[0142] At box 704, process 700 processes only a subset of iterations to perform the iterative process.
[0143] Figure 8 This is a flowchart illustrating an example process 800 executed via a processor according to various aspects of this disclosure. Process 800 is an example of using machine learning to optimize an iterative process. At box 802, the process defines trainable parameters. The set, and defines what will be applied to the trainable parameters. Differentiable gate function g(θ) for each trainable parameter in the set.
[0144] At box 804, process 800 constructs a trainable model of the iterative process (e.g., as described in process 2), where a differentiable gate function is used. Modify the iteration process to calculate the weighted sum of the internal variables of the iteration process before and after each iteration (e.g., line 4 in process 2).
[0145] At box 806, process 800 determines a subset of iterations to be performed through machine learning-based optimization of a trainable model of the iterative process. This subset of iterations is determined such that the accuracy and number of active iterations of the iterative process are jointly optimized.
[0146] At box 808, process 800 processes only a subset of the iterations to perform the iterative process.
[0147] Figure 9This is a flowchart illustrating an example process 900 performed according to various aspects of this disclosure. Process 900 is an example of using machine learning to optimize a hierarchical confidence propagation algorithm for low-density parity-check (LDPC) decoding. At box 902, the process defines trainable parameters. The set, and the parameters to be applied to trainable parameters Differentiable gate function g(θ) for each trainable parameter in the set.
[0148] At box 904, procedure 900 constructs a trainable model of the hierarchical confidence propagation (LBP) algorithm for decoding LDPC codewords. Differentiable gate function. Used to calculate the weighted sum of the check node messages corresponding to the current LDPC decoder iteration and the previous LDPC decoder iteration (e.g., line 14 of procedure 5).
[0149] At box 906, process 900 determines the subset of layers to be processed in each LDPC decoder iteration via machine learning-based optimization of a trainable model of the LBP algorithm, thereby jointly optimizing decoding accuracy and the number of active layers.
[0150] At box 908, process 900 processes only an optimized subset of layers in each LDPC decoder iteration.
[0151] Examples of implementation methods are provided in the following numbered clauses:
[0152] 1. A method for optimizing an iterative process, comprising:
[0153] Define a set of trainable parameters, and define a differentiable gate function that will be applied to each trainable parameter in the set of trainable parameters;
[0154] Construct a trainable model of the iterative process, wherein the iterative process is modified by using the values of differentiable gate functions applied to the trainable parameters to compute a weighted sum of the internal variables of the iterative process before and after each iteration;
[0155] By optimizing a trainable model of the iterative process using machine learning, a subset of iterations to be performed is determined, thereby jointly optimizing the accuracy and number of active iterations of the iterative process; and
[0156] Only process a subset of the iterations to perform the iteration process.
[0157] 2. The method according to Clause 1, wherein determining includes jointly minimizing the number of activity iterations and the accuracy loss.
[0158] 3. The method according to clause 1 or 2, wherein minimizing the number of activity iterations includes optimizing a function of trainable parameters based on a weighted sum of a loss function and a precision loss function associated with the number of activity iterations.
[0159] 4. The method according to any one of clauses 1-3, wherein the loss function associated with the number of activity iterations comprises the sum of differentiable functions of trainable parameters.
[0160] 5. The method according to any one of clauses 1-4, wherein the differentiable function of the trainable parameters is given by a shifted sigmoid function.
[0161] 6. The method according to any one of Clauses 1-5 further includes setting a scaling hyperparameter to control the trade-off between decoding speed and decoding accuracy.
[0162] 7. The method according to any one of Clauses 1-6, including setting a scaling factor to standardize the loss function associated with the number of active iterations and the accuracy loss function.
[0163] 8. The method according to any one of Clauses 1-7, wherein the iterative process includes one or more nested loops, and the trainable parameters can be indexed by all loop variables, such that the determined subset of iterations can be adjusted to include or exclude iterations of any nesting level.
[0164] 9. The method according to any one of clauses 1-8, wherein the differentiable gate function is given by a sigmoid function.
[0165] 10. The method according to any one of clauses 1-9, wherein the construction includes computing a weighted sum using the values of a differentiable gate function with trainable parameters for a given iteration T to assign relative weights to the values of the internal variables before and after iteration T.
[0166] 11. The method according to any one of clauses 1-10, wherein the weights are computed by applying differentiable gate functions to trainable parameters corresponding to a given iteration T.
[0167] 12. The method according to any one of clauses 1-11, wherein the processing includes skipping at least one iteration of an iterative subset based on the values of the trained parameter set.
[0168] 13. The method according to any one of clauses 1-12, wherein a binary-valued function g() is applied to each value of the trained parameter set to determine whether the corresponding iteration is active or skipped.
[0169] 14. The method according to any one of clauses 1-13, wherein the binary-valued function g() is given by a shifted unit step function such that the iteration of the iterative subset is active whenever its corresponding value is above a threshold, and the iteration is skipped whenever its corresponding value is below the threshold.
[0170] 15. The method according to any one of clauses 1-15, wherein the iterative process includes a hierarchical confidence propagation (LBP) algorithm for decoding low-density parity-check (LDPC) codes, wherein the LBP algorithm is an iterative algorithm, wherein the innermost iteration is a layer, and further includes:
[0171] Through machine learning-based optimization of a trainable model of the LBP algorithm, a subset of layers to be processed in each LDPC decoder iteration is determined, thereby jointly optimizing decoding accuracy and the number of active layers; and
[0172] In each outermost iteration of the LBP algorithm used for LDPC decoding, only the determined subset of layers is processed.
[0173] 16. The method according to any one of clauses 1-15, wherein training is accelerated by using a model of the LBP algorithm implemented by a 3-D tensor, wherein one dimension is given by a boosting factor Z to increase parallelization.
[0174] 17. The method according to any one of clauses 1-16, wherein the trainable model and parameters are used to optimize the iterative process in such a way as:
[0175] Through machine learning-based optimization, a subset of iterations is determined for the iterative process to be executed, thereby jointly optimizing the accuracy of the iterative process and the number of active iterations; and
[0176] Only process a subset of the iterations to perform the iteration process.
[0177] 18. An apparatus for optimizing an iterative process, comprising:
[0178] Memory; and
[0179] At least one processor coupled to the memory, the at least one processor being configured to:
[0180] Define a set of trainable parameters, and define a differentiable gate function that will be applied to each trainable parameter in the set of trainable parameters;
[0181] Construct a trainable model of the iterative process, wherein the iterative process is modified by using the values of differentiable gate functions applied to the trainable parameters to compute a weighted sum of the internal variables of the iterative process before and after each iteration;
[0182] By optimizing a trainable model of the iterative process using machine learning, a subset of iterations to be performed is determined, thereby jointly optimizing the accuracy and number of active iterations of the iterative process; and
[0183] Only process a subset of the iterations to perform the iteration process.
[0184] 19. The apparatus according to Clause 18, wherein at least one processor is further configured to optimize a function of trainable parameters based on a weighted sum of a loss function and a precision loss function related to the number of active iterations.
[0185] 20. The apparatus according to clause 18 or 19, wherein the loss function associated with the number of active iterations comprises the sum of differentiable functions of trainable parameters.
[0186] 21. The apparatus according to any one of clauses 18-20, wherein the differentiable function of the trainable parameters is given by a shifted sigmoid function.
[0187] 22. The apparatus according to any one of clauses 18-21, wherein at least one processor is further configured to set scaling hyperparameters to control the trade-off between decoding speed and decoding accuracy.
[0188] 23. The apparatus according to any one of clauses 18-22, wherein at least one processor is further configured to set a scaling factor to standardize a loss function and a precision loss function related to the number of active iterations.
[0189] 24. The apparatus according to any one of clauses 18-23, wherein the iterative process comprises one or more nested loops, and the trainable parameters can be indexed by all loop variables such that the determined subset of iterations can be adjusted to include or exclude iterations of arbitrary nesting levels.
[0190] 25. The apparatus according to any one of clauses 18-24, wherein the differentiable gate function is given by an sigmoid function.
[0191] 26. An apparatus for optimizing a hierarchical confidence propagation (LBP) algorithm for low-density parity-check (LDPC) decoding, comprising:
[0192] Memory; and
[0193] At least one processor coupled to the memory, the at least one processor being configured to:
[0194] Define a set of trainable parameters, and define a differentiable gate function that will be applied to each trainable parameter in the set of trainable parameters;
[0195] Construct a trainable model of the LBP algorithm, where the differentiable gate function applied to the trainable parameters is used to compute a weighted sum of the check node messages corresponding to the current LDPC decoder iteration and the previous LDPC decoder iteration;
[0196] Through machine learning-based optimization of a trainable model of the LBP algorithm, a subset of layers to be processed in each LDPC decoder iteration is determined, thereby jointly optimizing decoding accuracy and the number of active layers; and
[0197] Only a subset of layers is processed in each LDPC decoder iteration.
[0198] 27. An apparatus for optimizing an iterative process, comprising:
[0199] The component used to define the set of trainable parameters and to define the differentiable gate function that will be applied to each trainable parameter in the set of trainable parameters;
[0200] The components used to build a trainable model of the iterative process, wherein the iterative process is modified by using the values of differentiable gate functions applied to the trainable parameters to compute a weighted sum of the internal variables of the iterative process before and after each iteration;
[0201] For machine learning-based optimization of a trainable model via an iterative process, the components for determining the iterative subset to be performed, and the components for jointly optimizing the accuracy and number of active iterations of the iterative process; and
[0202] A component used to process only a subset of iterations to perform the iterative process.
[0203] 28. The apparatus according to Clause 27, wherein the iterative process is a hierarchical confidence propagation (LBP) algorithm for low-density parity-check (LDPC) decoding, and further comprising:
[0204] Machine learning-based optimization for a trainable model via the LBP algorithm, determining the subset of layers to be processed in each LDPC decoder iteration, and components that jointly optimize decoding accuracy and the number of active layers; and
[0205] A component used to process only a subset of layers in each LDPC decoder iteration.
[0206] The foregoing disclosure provides illustrations and descriptions, but is not intended to be exhaustive or to limit the aspects to the precise forms disclosed. Modifications and alterations can be made based on the foregoing disclosure, or from practice in various aspects.
[0207] As used, the term "component" is intended to be interpreted broadly as hardware, firmware, or a combination of hardware and software. As used, a processor is implemented as hardware, firmware, and / or a combination of hardware and software.
[0208] The threshold is used to describe several aspects. As used, depending on the context, satisfying the threshold can refer to a value that is greater than the threshold, greater than or equal to the threshold, less than the threshold, less than or equal to the threshold, equal to the threshold, not equal to the threshold, etc.
[0209] Clearly, the described systems and / or methods can be implemented in various forms of hardware, firmware, and / or combinations of hardware and software. The actual dedicated control hardware or software code used to implement these systems and / or methods does not limit these aspects. Therefore, there is no reference to specific software code to describe the operation and behavior of the systems and / or methods—it should be understood that software and hardware can be designed to implement the systems and / or methods, at least in part, based on this description.
[0210] Although specific combinations of features are recited in the claims and / or disclosed in the specification, these combinations are not intended to limit the disclosure of the aspects. In fact, many of these features can be combined in ways not specifically stated in the claims and / or disclosed in the specification. Although each dependent claim listed below may be directly subordinated to only one claim, the disclosure of an aspect includes every dependent claim in combination with every other claim in the claims list. The phrase “at least one” in the list of items refers to any combination of those items, including single members. As an example, “at least one of a, b, or c” is intended to cover a, b, c, ab, ac, bc, and abc, as well as any combination with multiple identical elements (e.g., aa, aaa, aab, aac, abb, acc, bb, bbb, bbc, cc, and ccc, or any other order of a, b, and c).
[0211] Unless explicitly stated otherwise, no element, action, or instruction used should be construed as essential or necessary. Furthermore, as used, the articles “an” and “a” are intended to include one or more items and are interchangeable with “one or more.” Additionally, as used, the terms “set,” “group,” and “batch” are intended to include one or more items (e.g., related items, unrelated items, a combination of related and unrelated items, etc.) and are interchangeable with “one or more.” If only one item is intended to be used, the phrase “only one” or similar language is used. Additionally, as used, the terms “has,” “have,” “having,” and / or similar are identified as open-ended terms. Furthermore, the phrase “based on” is intended to mean “at least partially based on,” unless explicitly stated otherwise.
Claims
1. An iterative optimization method for hierarchical confidence propagation (LBP) in a low-density parity-check (LDPC) decoder, wherein the LDPC decoder has a three-dimensional tensor parallel operation structure, wherein one dimension is set with an improvement factor Z to enhance the hierarchical parallel processing capability, the method comprising: Acquire the LDPC-encoded received signal and set the initial log-likelihood ratio (LLR) based on the received signal; Define a set of trainable parameters, in which the trainable parameters are indexed by the number of iterations and the number of layers of the LBP algorithm, and define a differentiable gate function to be applied to each trainable parameter in the set of trainable parameters; A trainable model corresponding to the layer structure of the LBP algorithm is constructed, wherein the update process of the LBP algorithm for each layer's verification node message and variable node message is modified by using the value of the differentiable gate function applied to the trainable parameters, so as to calculate the weighted sum of the internal variables of the LBP algorithm before and after each iteration through the three-dimensional tensor parallel operation structure; Through machine learning-based optimization of the trainable model, a subset of layers that will be activated for parallel processing in each LDPC decoder iteration is determined, such that decoding accuracy and the number of active layers are jointly optimized, wherein the joint optimization includes a function that optimizes the trainable parameters based on a weighted sum of a loss function related to the number of active layers and an accuracy loss function. as well as In each outermost iteration of the LBP algorithm used for LDPC decoding, only the check node scan and variable node update operations are performed on the determined subset of layers to decode the received signal based on the updated LLR value.
2. The method according to claim 1, wherein, The determination includes jointly minimizing the number and accuracy loss of the active layers.
3. The method according to claim 1, wherein, The loss function, which is related to the number of active layers, comprises the sum of differentiable functions of the trainable parameters.
4. The method according to claim 3, wherein, The differentiable function of the trainable parameters is given by a shifted sigmoid function.
5. The method of claim 1, further comprising setting a scaling factor to standardize the loss function relating to the number of active layers and the accuracy loss function.
6. The method according to claim 1, wherein, The LBP algorithm includes one or more nested loops, and the trainable parameters are indexed by all loop variables, such that the determined subset of iterations can be adjusted to include or exclude iterations of any nesting level.
7. The method according to claim 1, wherein, The differentiable gate function is given by the sigmoid function.
8. The method according to claim 1, wherein, The construction includes using the values of differentiable gate functions of the trainable parameters at a given iteration T to compute a weighted sum to assign relative weights to the values of the internal variables before and after the iteration T.
9. The method according to claim 8, wherein, The weights are computed by applying the differentiable gate function to the trainable parameters corresponding to the given iteration T.
10. The method according to claim 1, wherein, The process includes skipping at least one iteration of the iterative subset based on the values of the set of trained parameters θ.
11. The method according to claim 10, wherein, The binary-valued function g(θ) is applied to each value of the set of parameters θ trained to determine whether the corresponding iteration is active or skipped.
12. The method according to claim 11, wherein, The binary-valued function g(θ) is given by a shifted unit step function such that the iteration of the iterative subset is active whenever its corresponding θ is above a threshold, and the iteration is skipped whenever its corresponding θ is below the threshold.
13. An iterative optimization apparatus for hierarchical confidence propagation (LBP) in a low-density parity-check (LDPC) decoder, wherein the LDPC decoder is configured with a three-dimensional tensor parallel operation structure, wherein one dimension is configured with an improvement factor Z to enhance hierarchical parallel processing capability, the apparatus comprising: Memory; as well as At least one processor coupled to the memory, the at least one processor being configured to: Acquire the LDPC-encoded received signal and set the initial log-likelihood ratio (LLR) based on the received signal; Define a set of trainable parameters, in which the trainable parameters are indexed by the number of iterations and the number of layers of the LBP algorithm, and define a differentiable gate function to be applied to each trainable parameter in the set of trainable parameters; A trainable model corresponding to the layer structure of the LBP algorithm is constructed, wherein the update process of the LBP algorithm for each layer's verification node message and variable node message is modified by using the value of the differentiable gate function applied to the trainable parameters, so as to calculate the weighted sum of the internal variables of the LBP algorithm before and after each iteration through the three-dimensional tensor parallel operation structure; Through machine learning-based optimization of the trainable model, a subset of layers that will be activated for parallel processing in each LDPC decoder iteration is determined, such that decoding accuracy and the number of active layers are jointly optimized, wherein the joint optimization includes a function that optimizes the trainable parameters based on a weighted sum of a loss function related to the number of active layers and an accuracy loss function. as well as In each outermost iteration of the LBP algorithm used for LDPC decoding, only the check node scan and variable node update operations are performed on the determined subset of layers to decode the received signal based on the updated LLR value.
14. The apparatus according to claim 13, wherein, The loss function, which is related to the number of active layers, comprises the sum of differentiable functions of the trainable parameters.
15. The apparatus according to claim 14, wherein, The differentiable function of the trainable parameters is given by a shifted sigmoid function.
16. The apparatus according to claim 13, wherein, The at least one processor is also configured to set a scaling factor to standardize the loss function and the accuracy loss function in relation to the number of active layers.
17. The apparatus according to claim 13, wherein, The LBP algorithm includes one or more nested loops, and the trainable parameters are indexed by all loop variables, such that the determined subset of iterations can be adjusted to include or exclude iterations of any nesting level.
18. The apparatus according to claim 13, wherein, The differentiable gate function is given by the sigmoid function.
19. An iterative optimization apparatus for hierarchical confidence propagation (LBP) in a low-density parity-check (LDPC) decoder, wherein the LDPC decoder is provided with a three-dimensional tensor parallel operation structure, wherein one dimension is provided with an enhancement factor Z to enhance hierarchical parallel processing capability, the apparatus comprising components for performing the method according to any one of claims 1 to 12.
20. A computer-readable medium having program code recorded thereon, wherein the program code is executable by one or more processors to cause the processors to perform the method according to any one of claims 1 to 12.
21. A computer program product comprising computer-readable instructions that, when executed by one or more processors, cause the processors to perform the method according to any one of claims 1 to 12.