US20210027161A1
LEARNING IN COMMUNICATION SYSTEMS
Publication
Application
Classifications
IPC Classifications
CPC Classifications
Applicants
Nokia Technologies OY
Inventors
Jakob HOYDIS, Faycal AIT AOUDIA
Abstract
Apparatuses, methods and computer programs are described including receiving a sequence of messages at a correction module of a transmission system, wherein the transmission system includes a transmitter, a channel, the correction module and a receiver, wherein the correction module includes a correction algorithm having at least some trainable weights; converting the received sequence of messages into a converted sequence of messages using the correction algorithm; receiving a reward or loss function from the receiver based on the modified sequence of messages; and training at least some weights of the correction algorithm based on the received reward or loss function.
Figures
Description
BACKGROUND
[0001]A simple communications system includes a transmitter, a transmission channel, and a receiver. In some implementations, the transmitter-receiver pair may not achieve the best possible performance. There remains a need for improving the performance of such systems.
SUMMARY
[0002]In a first aspect, this specification describes an apparatus comprising: means for receiving a sequence of messages at a correction module of a transmission system, wherein the transmission system comprises a transmitter, a channel, the correction module and a receiver, wherein the correction module includes a correction algorithm having at least some trainable weights; means for converting the received sequence of messages into a converted sequence of messages using the correction algorithm; means for receiving a reward or loss function from the receiver; and means for training at least some weights of the correction algorithm based on the received reward or loss function. In some embodiments, there may be provided means for generating the reward or loss function.
[0003]Some embodiments include: means for modifying the converted sequence of messages to provide a modified sequence of messages based on a random perturbation of the converted sequence of messages; and means for providing the modified sequence of messages to the receiver of the transmission system, wherein the reward or loss function is based on the modified sequence of messages. The said means for modifying the converted sequence of messages may make use of a distribution to generate the perturbations. The perturbations may be zero-mean Gaussian perturbations.
[0004]The reward or loss function may be related to one or more of block error rate, bit error rate, error vector magnitude, mean square error in estimation and categorical cross-entropy.
[0005]In some embodiment, there may be provided means for repeating the training of the at least some weights of the correction algorithm until a first condition (such as a defined number of iteration and/or a defined performance level) is reached.
[0006]The means for training may comprise optimising one or more of a batch size of the sequence of messages, a learning rate, and a distribution of perturbations.
[0007]The means for training at least some weights of the correction algorithm may comprise using reinforcement learning or stochastic gradient descent.
[0008]In a second aspect, this specification describes an apparatus comprising: means for obtaining or generating a sequence of messages for transmission over a transmission system, wherein the transmission system comprises a transmitter, a channel, a correction module and a receiver, wherein the correction module includes a correction algorithm having at least some trainable weights; means for receiving the transmitted sequence of messages at the correction module; means for converting the received sequence of messages into a converted sequence of messages using the correction algorithm; means for generating a reward or loss function at the receiver; and means for training at least some weights of the correction algorithm based on the reward or loss function.
[0009]Some embodiments include: means for modifying the converted sequence of messages to provide a modified sequence of messages based on a random perturbation of the converted sequence of messages; and means for providing the modified sequence of messages to the receiver of the transmission system, wherein the reward or loss function is based on the modified sequence of messages. The means for modifying the converted sequence of messages may make use of a distribution to generate the perturbations. The perturbations may be zero-mean Gaussian perturbations.
[0010]The reward or loss function may be related to one or more of block error rate, bit error rate, error vector magnitude, mean square error in estimation and categorical cross-entropy.
[0011]In some embodiment, there may be provided means for repeating the training of the at least some weights of the correction algorithm until a first condition (such as a defined number of iteration and/or a defined performance level) is reached.
[0012]The means for training may comprise optimising one or more of a batch size of the sequence of messages, a learning rate, and a distribution of perturbations.
[0013]The means for training at least some weights of the correction algorithm may comprise using reinforcement learning or stochastic gradient descent.
[0014]In either the first or the second aspect, the said means may comprise: at least one processor; and at least one memory including computer program code, the at least one memory and the computer program code configured, with the at least one processor, to cause the performance of the apparatus.
[0015]In a third aspect, this specification describes a method comprising: receiving a sequence of messages at a correction module of a transmission system, wherein the transmission system comprises a transmitter, a channel, the correction module and a receiver, wherein the correction module includes a correction algorithm having at least some trainable weights; converting the received sequence of messages into a converted sequence of messages using the correction algorithm; receiving a reward or loss function from the receiver; and training at least some weights of the correction algorithm based on the received reward or loss function. The method may further comprise: modifying the converted sequence of messages to provide a modified sequence of messages based on a random perturbation of the converted sequence of messages; and providing the modified sequence of messages to the receiver of the transmission system, wherein the reward or loss function is based on the modified sequence of messages. The method may make use of a distribution to generate the perturbations.
[0016]In a fourth aspect, this specification describes a method comprising: obtaining or generating a sequence of messages for transmission over a transmission system, wherein the transmission system comprises a transmitter, a channel, a correction module and a receiver, wherein the correction module includes a correction algorithm having at least some trainable weights; receiving the transmitted sequence of messages at the correction module; converting the received sequence of messages into a converted sequence of messages using the correction algorithm; generating a reward or loss function at the receiver; and training at least some weights of the correction algorithm based on the reward or loss function. The method may further comprise: modifying the converted sequence of messages to provide a modified sequence of messages based on a random perturbation of the converted sequence of messages; and providing the modified sequence of messages to the receiver of the transmission system, wherein the reward or loss function is based on the modified sequence of messages. The method may make use of a distribution to generate the perturbations.
[0017]In a fifth aspect, this specification describes an apparatus configured to perform any method as described with reference to the third or fourth aspect.
[0018]In a sixth aspect, this specification describes computer-readable instructions which, when executed by computing apparatus, cause the computing apparatus to perform any method as described with reference to the third or fourth aspect.
[0019]In a seventh aspect, this specification describes a computer program comprising instructions stored thereon for performing at least the following: receiving a sequence of messages at a correction module of a transmission system, wherein the transmission system comprises a transmitter, a channel, the correction module and a receiver, wherein the correction module includes a correction algorithm having at least some trainable weights; converting the received sequence of messages into a converted sequence of messages using the correction algorithm; receiving a reward or loss function from the receiver; and training at least some weights of the correction algorithm based on the received reward or loss function. The computer program may further comprise instructions stored thereon for performing at least the following: modifying the converted sequence of messages to provide a modified sequence of messages based on a random perturbation of the converted sequence of messages; and providing the modified sequence of messages to the receiver of the transmission system, wherein the reward or loss function is based on the modified sequence of messages.
[0020]In an eighth aspect, this specification describes a computer program comprising instructions stored thereon for performing at least the following: obtaining or generating a sequence of messages for transmission over a transmission system, wherein the transmission system comprises a transmitter, a channel, a correction module and a receiver, wherein the correction module includes a correction algorithm having at least some trainable weights; receiving the transmitted sequence of messages at the correction module; converting the received sequence of messages into a converted sequence of messages using the correction algorithm; generating a reward or loss function at the receiver; and training at least some weights of the correction algorithm based on the reward or loss function. The computer program may further comprise instructions stored thereon for performing at least the following: modifying the converted sequence of messages to provide a modified sequence of messages based on a random perturbation of the converted sequence of messages; and providing the modified sequence of messages to the receiver of the transmission system, wherein the reward or loss function is based on the modified sequence of messages.
[0021]In a ninth aspect, this specification describes a non-transitory computer-readable medium comprising program instructions stored thereon for performing at least the following: receiving a sequence of messages at a correction module of a transmission system, wherein the transmission system comprises a transmitter, a channel, the correction module and a receiver, wherein the correction module includes a correction algorithm having at least some trainable weights; converting the received sequence of messages into a converted sequence of messages using the correction algorithm; receiving a reward or loss function from the receiver; and training at least some weights of the correction algorithm based on the received reward or loss function.
[0022]In a tenth aspect, this specification describes a non-transitory computer-readable medium comprising program instructions stored thereon for performing at least the following: obtaining or generating a sequence of messages for transmission over a transmission system, wherein the transmission system comprises a transmitter, a channel, a correction module and a receiver, wherein the correction module includes a correction algorithm having at least some trainable weights; receiving the transmitted sequence of messages at the correction module; converting the received sequence of messages into a converted sequence of messages using the correction algorithm; generating a reward or loss function at the receiver; and training at least some weights of the correction algorithm based on the reward or loss function.
BRIEF DESCRIPTION OF THE DRAWINGS
[0023]Example embodiments will now be described, by way of non-limiting examples, with reference to the following schematic drawings, in which:
[0024]
[0025]
[0026]
[0027]
[0028]
[0029]
[0030]
[0031]
[0032]
DETAILED DESCRIPTION
[0033]
x, e.g., an energy constraint ∥x∥22≥n, an amplitude constraint |xi|≤1∀i, or an average power constraint
[0035]The transmitter 2, channel 4 and receiver 6 may take many different forms. For example, the transmitter 2 may include a module (such as a neural network) for implementing a transmitter algorithm and the receiver 6 may include a module (such as a neural network) for implementing a receiver algorithm. The transmitter and receiver modules may be trained in order to optimise the performance of the system as a whole accordingly to some metric. However, this is not essential to all embodiments. Indeed, in some embodiments, the existence or details of such modules may be unknown.
[0036]In many cases, the transmitter/receiver pair does not achieve the best possible performance. This may, for example, be because the transmitter/receiver pair are designed to suit a wide variety of applications and channel conditions.
[0037]
[0039]The output of the channel 4 (the vector y) is provided to the input of the receiver signal pre-processor module 22. The module 22 is a correction unit whose objective is to increase the performance of the communication system 20. The module 22 modifies the signal y to provide an output yp that is provided to the receiver 24. The receiver generates an output symbol GO that is provided to a receiver application 26 of the system 20.
[0040]As shown in
[0041]
[0043]As shown in
[0045]
[0046]The system 40 includes the transmitter 2, channel 4 and transmitter application 8 described above. The system 40 also includes a signal pre-processor module 42, receiver 44 and receiver application 46 similar to the module 22, receiver 24 and receiver application 26 described above. Further, the system 40 includes a mixer 48 and a training algorithm indicated schematically by the reference numeral 50.
[0047]
[0048]The algorithm 60 starts at operation 62, w here the transmitter 2 and the receiver 44 of the transmission system 40 are initialised.
[0049]At operation 64 of the algorithm 60, the transmitter application 8 generates a set of A messages S={si, i=1, . . . , N} and the transmitter 2 computes the corresponding output vectors xi for each si.
[0050]At operation 66, the vectors xi are transmitted over the channel 4. The corresponding channel outputs are denoted by yi, i=1, . . . , N.
[0051]At operation 68, the receiver signal pre-processor (RSP) module 42 generates outputs yp,i for all i (where y is a function of the signal pre-processor module 42 such that yp,i=RSP(yi)) and the mixer 48 generates the outputs {tilde over (y)}p,i for all i.
[0052]The mixer 48 generates the outputs {tilde over (y)}p,i by adding a small perturbation wi, i=1, . . . , N, drawn from a known random distribution to the vector yp,i, such that {tilde over (y)}p,i=yp,i+wi.
[0054]At operation 72, the signal pre-processor module 42 is optimised, for example by updating trainable parameters (or weights) of the module neural networks (such as the neural networks 32 and 34 described above). The trainable parameters may be updated, for example, using a stochastic gradient descent (SGD) algorithm, by reducing the loss, L, in the objective function:
[0055]The objective function, L, set out above is a function of which the gradient with respect to the trainable parameters θ of the signal pre-processor module 42 is computed. The function ∇θL is also known as the policy gradient.
[0056]The goal of the optimisation is to improve a chosen performance metric (the reward), thereby improving metrics such as block error rate (BLER), bit error rate (BER), error vector magnitude, mean squared error in estimate, categorical cross-entropy, etc. It should be noted that the reward r does not necessarily need to be differentiable.
[0057]The trainable parameters may take many different forms. For example, the batch size N, the learning rate, and other parameters of the chosen reinforcement learning algorithm (e.g. stochastic gradient descent (SGD) algorithms such as ADAM, RMSProp, Momentum) are possible optimisation parameters.
[0058]At operation 74, a determination is made regarding whether the algorithm 60 is complete. If the algorithm is deemed to be complete, then the algorithm terminates. If not, the algorithm returns to operation 62 and the operations 62 to 74 are repeated. The operation 74 may take many different forms. For example, the algorithm 70 may be deemed complete after a fixed number of training iterations, when the loss function L has not decreased during a fixed number of iterations, when a loss function meets a desired value, or a combination of such features. Other implementations of the operation 74 are also possible.
[0059]Training of the signal pre-processor module 42 may take place on demand. Alternatively, training may take place periodically (e.g. when a defined time has elapsed since training last took place). Many alternative arrangements are possible. For example, training may take place sporadically on an as-needed basis, for example in the event that performance of the signal pre-processor module 42 and/or the communication system 40 is deemed to have degraded (e.g. due to changes in channel or application requirements). Moreover, in some embodiments, the operation 74 may be omitted such that the operation 72 always loops back to the operation 62 (thereby implementing a permanent control loop, such that training of the system 40 never stops).
- [0061]Gaussian policy, in which a perturbation vector c is drawn from a multivariate zero-mean normal distribution and added to the current policy. This ensures exploration “in the neighbourhood” of the current policy.
- [0062]ε-greedy, in which with probability 1−ε, the token action is the one of the policy, and with probability c a random action is taken.
[0063]The covariance matrix of the normal distribution from which the perturbation vector c is drawn in the Gaussian policy, and the c parameter of the c-greedy approach, are usually fixed parameters, i.e., not learned during training. These parameters control the “amount of exploration”, as making these parameters smaller reduces the amount of random exploration, and favours actions from the current policy.
[0064]The system 40 described above can be used for training the signal pre-processor module 42. However, when not training the signal pre-processor module 42, no perturbation is added to the vector yp and no reward feedback r is required.
[0065]
[0066]The system 80 includes the transmitter 2, channel 4 and transmitter application 8 described above. The system 80 also includes a signal pre-processor module 82, receiver 84 and receiver application 86 similar to the modules 22 and 42, receivers 24 and 44 and receiver applications 26 and 46 described above.
[0067]
[0068]The algorithm 90 starts at operation 92, where the transmitter application 8 generates a set of N messages S={si, i=1, . . . , N} and the transmitter 2 computes the corresponding output vectors xi for each si.
[0069]At operation 94, the vectors xi are transmitted over the channel 4. The corresponding channel outputs are denoted by yi, i=1, . . . , N.
[0070]At operation 96, the receiver signal pre-processor (RSP) module 82 generates outputs yp,i for all i (where y is a function of the signal pre-processor module 82 such that yp,i=RSP(yi)).
[0072]There are number of potential applications of the principles described herein.
[0076]For completeness,
[0077]The processor 112 is connected to each of the other components in order to control operation thereof.
[0078]The memory 114 may comprise a non-volatile memory, a hard disk drive (HDD) or a solid state drive (SSD). The ROM 122 of the memory 114 stores, amongst other things, an operating system 125 and may store software applications 126. The RAM 124 of the memory 114 is used by the processor 112 for the temporary storage of data. The operating system 125 may contain code which, when executed by the processor, implements aspects of the algorithms 60 and 90.
[0079]The processor 112 may take any suitable form. For instance, it may be a microcontroller, plural microcontrollers, a processor, or plural processors.
[0080]The processing system no may be a standalone computer, a server, a console, or a network thereof.
[0081]In some embodiments, the processing system no may also be associated with external software applications. These may be applications stored on a remote server device and may run partly or exclusively on the remote server device. These applications may be termed cloud-hosted applications. The processing system no may be in communication with the remote server device in order to utilize the software application stored there.
[0082]
[0083]Embodiments of the present invention may be implemented in software, hardware, application logic or a combination of software, hardware and application logic. The software, application logic and/or hardware may reside on memory, or any computer media. In an example embodiment, the application logic, software or an instruction set is maintained on any one of various conventional computer-readable media. In the context of this document, a “memory” or “computer-readable medium” may be any non-transitory media or means that can contain, store, communicate, propagate or transport the instructions for use by or in connection with an instruction execution system, apparatus, or device, such as a computer.
[0084]Reference to, where relevant, “computer-readable storage medium”, “computer program product”, “tangibly embodied computer program” etc., or a “processor” or “processing circuitry” etc. should be understood to encompass not only computers having differing architectures such as single/multi-processor architectures and sequencers/parallel architectures, but also specialised circuits such as field programmable gate arrays FPGA, application specify circuits ASIC, signal processing devices and other devices. References to computer program, instructions, code etc. should be understood to express software for a programmable processor firmware such as the programmable content of a hardware device as instructions for a processor or configured or configuration settings for a fixed function device, gate array, programmable logic device, etc.
[0085]As used in this application, the term “circuitry” refers to all of the following: (a) hardware-only circuit implementations (such as implementations in only analogue and/or digital circuitry) and (b) to combinations of circuits and software (and/or firmware), such as (as applicable): (i) to a combination of processor(s) or (ii) to portions of processor(s)/software (including digital signal processor(s)), software, and memory(ies) that work together to cause an apparatus, such as a server, to perform various functions) and (c) to circuits, such as a microprocessor(s) or a portion of a microprocessor(s), that require software or firmware for operation, even if the software or firmware is not physically present.
[0086]If desired, the different functions discussed herein may be performed in a different order and/or concurrently with each other. Furthermore, if desired, one or more of the above-described functions may be optional or may be combined. Similarly, it will also be appreciated that the flow diagram of
[0087]It will be appreciated that the above described example embodiments are purely illustrative and are not limiting on the scope of the invention. Other variations and modifications will be apparent to persons skilled in the art upon reading the present specification.
[0088]Moreover, the disclosure of the present application should be understood to include any novel features or any novel combination of features either explicitly or implicitly disclosed herein or any generalization thereof and during the prosecution of the present application or of any application derived therefrom, new claims may be formulated to cover any such features and/or combination of such features.
[0089]Although various aspects of the invention are set out in the independent claims, other aspects of the invention comprise other combinations of features from the described embodiments and/or the dependent claims with the features of the independent claims, and not solely the combinations explicitly set out in the claims.
[0090]It is also noted herein that while the above describes various examples, these descriptions should not be viewed in a limiting sense. Rather, there are several variations and modifications which may be made without departing from the scope of the present invention as defined in the appended claims.
Claims
1. An apparatus comprising:
at least one processor; and
at least one memory including computer program code, the at least one memory and the computer program code configured, with the at least one processor, to cause the apparatus to perform,
receiving a sequence of messages at a correction module of a transmission system, wherein the transmission system comprises a transmitter, a channel, the correction module and a receiver, wherein the correction module includes a correction algorithm having at least some trainable weights;
converting the received sequence of messages into a converted sequence of messages using the correction algorithm;
receiving a reward or loss function from the receiver; and
training at least some weights of the correction algorithm based on the received reward or loss function.
2. An apparatus as claimed in
modifying the converted sequence of messages to provide a modified sequence of messages based on a random perturbation of the converted sequence of messages; and
providing the modified sequence of messages to the receiver of the transmission system,
wherein the reward or loss function is based on the modified sequence of messages.
3. An apparatus as claimed in
4. An apparatus as claimed in
5. An apparatus as claimed in
6. An apparatus comprising:
at least one processor; and
at least one memory including computer program code, the at least one memory and the computer program code configured, with the at least one processor, to cause the apparatus to perform,
obtaining or generating a sequence of messages for transmission over a transmission system, wherein the transmission system comprises a transmitter, a channel, a correction module and a receiver, wherein the correction module includes a correction algorithm having at least some trainable weights;
receiving the transmitted sequence of messages at the correction module;
converting the received sequence of messages into a converted sequence of messages using the correction algorithm;
generating a reward or loss function at the receiver; and
training at least some weights of the correction algorithm based on the reward or loss function.
7. An apparatus as claimed in
modifying the converted sequence of messages to provide a modified sequence of messages based on a random perturbation of the converted sequence of messages; and
providing the modified sequence of messages to the receiver of the transmission system,
wherein the reward or loss function is based on the modified sequence of messages.
8. An apparatus as claimed in
9. An apparatus as claimed in
10. An apparatus as claimed in
11. An apparatus as claimed in
12. An apparatus as claimed in
13. An apparatus as claimed in
14. An apparatus as claimed in
15. An apparatus as claimed in
16. (canceled)
17. A method comprising:
receiving a sequence of messages at a correction module of a transmission system, wherein the transmission system comprises a transmitter, a channel, the correction module and a receiver, wherein the correction module includes a correction algorithm having at least some trainable weights;
converting the received sequence of messages into a converted sequence of messages using the correction algorithm;
receiving a reward or loss function from the receiver; and
training at least some weights of the correction algorithm based on the received reward or loss function.
18. A method as claimed in
modifying the converted sequence of messages to provide a modified sequence of messages based on a random perturbation of the converted sequence of messages; and
providing the modified sequence of messages to the receiver of the transmission system,
wherein the reward or loss function is based on the modified sequence of messages.
19. A method comprising:
obtaining or generating a sequence of messages for transmission over a transmission system, wherein the transmission system comprises a transmitter, a channel, a correction module and a receiver, wherein the correction module includes a correction algorithm having at least some trainable weights;
receiving the transmitted sequence of messages at the correction module;
converting the received sequence of messages into a converted sequence of messages using the correction algorithm;
generating a reward or loss function at the receiver; and
training at least some weights of the correction algorithm based on the reward or loss function.
20. A method as claimed in
modifying the converted sequence of messages to provide a modified sequence of messages based on a random perturbation of the converted sequence of messages; and
providing the modified sequence of messages to the receiver of the transmission system,
wherein the reward or loss function is based on the modified sequence of messages.
21. A non-transitory computer readable medium storing a computer program comprising instructions, which when executed by a processor, cause an apparatus including the processor to perform the following:
receiving a sequence of messages at a correction module of a transmission system, wherein the transmission system comprises a transmitter, a channel, the correction module and a receiver, wherein the correction module includes a correction algorithm having at least some trainable weights;
converting the received sequence of messages into a converted sequence of messages using the correction algorithm;
receiving a reward or loss function from the receiver; and
training at least some weights of the correction algorithm based on the received reward or loss function.
22. A non-transitory computer readable medium storing a computer program comprising instructions, which when executed by a processor, cause an apparatus including the processor to perform the following:
obtaining or generating a sequence of messages for transmission over a transmission system, wherein the transmission system comprises a transmitter, a channel, a correction module and a receiver, wherein the correction module includes a correction algorithm having at least some trainable weights;
receiving the transmitted sequence of messages at the correction module;
converting the received sequence of messages into a converted sequence of messages using the correction algorithm;
generating a reward or loss function at the receiver; and
training at least some weights of the correction algorithm based on the reward or loss function.