Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
DEEP LEARNING MULTI-USER COMMUNICATION
Document Type and Number:
WIPO Patent Application WO/2022/123259
Kind Code:
A1
Abstract:
A method and devices for the machine-learning of multi-user uplink and downlink communication are described. A machine learning system is to: obtain by a transmitter device a plurality of user input streams associated with a plurality of devices; train at least one encoder deep learning network of the transmitter device to map the plurality of user input streams to a plurality of symbols for transmission as an encoded signal, where the mapping of the plurality of user input streams to the plurality of symbols is performed in aggregation; and train a plurality of decoder deep learning networks associated with the plurality of user devices to receive the encoded signal and to recover the plurality of user input stream associated with the user devices from the signal. The training of the at least one encoder deep learning network and the plurality of decoder deep learning networks depends on an accuracy of recovery of the plurality of user input streams.

Inventors:
SELLATHURAI MATHINI (GB)
GUPTA ANKIT (GB)
Application Number:
PCT/GB2021/053232
Publication Date:
June 16, 2022
Filing Date:
December 09, 2021
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
UNIV HERIOT WATT (GB)
International Classes:
H04L25/03; H04L5/00
Foreign References:
US20180367192A12018-12-20
Other References:
VAN LUONG THIEN ET AL: "Deep Energy Autoencoder for Noncoherent Multicarrier MU-SIMO Systems", IEEE TRANSACTIONS ON WIRELESS COMMUNICATIONS, IEEE SERVICE CENTER, PISCATAWAY, NJ, US, vol. 19, no. 6, 13 March 2020 (2020-03-13), pages 3952 - 3962, XP011793164, ISSN: 1536-1276, [retrieved on 20200610], DOI: 10.1109/TWC.2020.2979138
Attorney, Agent or Firm:
HGF (GB)
Download PDF:
Claims:
CLAIMS

1. A method for training a machine-learning system for multi-user downlink communication, the method comprising: obtaining, by a transmitter device, a plurality of user input streams associated with a respective plurality of user devices; training at least one encoder deep learning network of the transmitter device to map the plurality of user input streams in aggregate to a plurality of symbols for transmission as an encoded signal; and training a plurality of decoder deep learning networks associated with respective ones of the plurality of user devices, to receive the encoded signal and to recover the plurality of user input streams associated with the respective user devices from the signal; wherein the at least one encoder deep learning network and the plurality of decoder deep learning networks are trained depending on an accuracy of recovery of the plurality of user input streams.

2. The method of claim 1 , wherein: each of the plurality of user input streams comprises a plurality of bits, and for each user input stream a number of bits are grouped together to form a block; and mapping the plurality of user input streams in aggregate to the plurality of symbols for transmission as the encoded signal comprises performing block-by-block mapping of the plurality of user input streams.

3. The method of claim 2, wherein the determination of the number of bits in each block is based on a pre-determined coding rate of the machine learning system.

4. The method of any of the preceding claims, wherein mapping the plurality of user input streams in aggregate comprises simultaneously solving for a plurality of mappings, wherein each mapping comprises mapping a number of user input stream bits to a number of symbols, wherein the user input stream bits and the symbols are determined by the joint learning of the at least one encoder deep learning network and the plurality of decoder deep learning networks.

49

5. The method of any of the preceding claims, wherein the encoder deep learning network performs a mapping that represents joint channel coding and modulation of the plurality of user input streams and the plurality of decoder deep learning networks perform respective mappings that represent joint de-coding and de-modulation of the received encoded signal.

6. The method of any of the preceding claims, wherein the output of the at least one encoder deep learning network is a vector output comprising pairs of real numbers, and each pair of real numbers represents a symbol.

7. The method of claim 6, wherein the transmitter device further comprises a digital-to- analog converter to convert each pair of real numbers representing a symbol to an analog signal for transmission.

8. The method of any of the preceding claims, wherein the transmitter device further comprises a power normalization layer to receive the vector output from the at least one encoder deep learning network before the digital-to-analog conversion is applied, and to normalize the transmission power of a sum of the plurality of symbols to the determined number of symbols in the plurality of symbols and wherein the transmitter device is to provide the normalized encoded signal to the decoder deep learning networks.

9. The method of any of the preceding claims, wherein each of the plurality of decoder deep learning networks comprises a first layer that is a fully-connected layer having a linear activation function and at least one further layer having a non-linear activation function.

10. The method of any of the preceding claims, further comprising applying a channel fading model to the encoded signal to emulate transmission characteristics from the transmitter device to each of the user devices, wherein the channel fading model is one of a Rayleigh, a Rician or a Nakagami-m model.

11. The method of any of the preceding claims, wherein the training of the machine learning system comprises training at a plurality of signal-to-noise ratio values.

12. The method of claim 11 , wherein one of the plurality of the signal-to-noise ratio values comprises a value higher than the intended signal-to-noise operation range.

13. The method of claim 11 or claim 12, wherein the encoded signal received at each of the plurality of the user devices is modified to provide a signal-to-noise ratio gap between consecutive user devices.

50

14. The method of any of the preceding claims, wherein training the encoder deep learning networks and the plurality of decoder deep learning networks depending on an accuracy of recovery of the plurality of user input streams further comprises minimizing a reconstruction loss error function.

15. The method of claim 14, wherein the reconstruction loss error function comprises a contribution from each user device and wherein the contribution from each user device is scaled by a scaling factor to provide an equal weighting for each user device in the minimization.

16. Machine readable instructions which when executed by processing circuitry cause the processing circuitry to perform the method of any of the preceding claims.

17. The machine readable instructions of claim 16 provided on a transitory or non- transitory medium.

18. A method for multi-user downlink communication to be performed at a user device, the method comprising: receiving an encoded signal comprising a plurality of symbols mapped in aggregate from a plurality of user input streams associated with a plurality of user devices; obtaining a matrix of weight values associated with the user device, wherein a plurality of weight values associated with a layer of a decoder deep learning network of the user device are to be applied to the layer of the decoder deep learning network; and recovering from the received encoded signal the user input stream associated with the user device, wherein the recovery of the user input stream associated with the user device is performed by the decoder deep learning network of the user device implementing the obtained matrix of weight values.

19. The method of claim 18, wherein the decoder deep learning network performs joint de-coding and de-modulation of the received encoded signal.

51

20. A user device for multi-user downlink communication, the user device comprising : receiver circuitry to receive an encoded signal, wherein the encoded signal comprises a plurality of symbols mapped in aggregate from a plurality of user input streams associated with a plurality of user devices; decoder deep learning circuitry, wherein the decoder deep learning circuitry implements a plurality of decoding layers and wherein successive decoding layers, including at least one non-linear decoding layer, are connected to each other by a matrix of weight values, the matrix of weight values having been obtained by training encoder deep learning circuitry and a plurality of decoder deep learning circuits depending on an accuracy of recovery of a plurality of training user input streams; and wherein the decoder deep learning circuitry is to identify the user input stream intended for the user device in the received encoded signal and to recover the user input stream intended for the user device from the received encoded signal.

21. The user device of claim 20, wherein the decoder deep learning circuitry implements a first decoding layer that is a fully-connected layer having a linear activation function and at least one further layer having a non-linear activation function.

22. A method for multi-user downlink communication to be performed at a transmitter device, the method comprising: obtaining for each of a plurality of user devices a plurality user input streams associated with the plurality of user devices; obtaining a matrix of weight values associated with the transmitter device, wherein the weight values are to be applied to respective layers of at least one encoder deep learning network of the transmitter device; and mapping in aggregate the plurality of user input streams associated with the plurality of user devices to a plurality of symbols for transmission as an encoded signal; wherein the mapping is performed by the at least one encoder deep learning network using the obtained weight values.

23. The method of claim 22, wherein the at least one encoder network performs joint coding and modulation of the plurality of user input streams.

52

24. A transmitter device for multi-user downlink communication, the transmitter device comprising: at least one encoder deep learning circuit, wherein the at least one encoder deep learning circuit implements a plurality of encoding layers and wherein successive encoding layers, including at least one non-linear encoding layer, are connected to each other by a matrix of weight values having been obtained by training the at least one encoder deep learning circuit and a plurality of decoder deep learning circuits depending on an accuracy of recovery of a plurality of training user input streams; the at least one encoder deep learning circuit to obtain for each of a plurality of user devices a plurality of user input streams associated with the plurality of user devices and to map in aggregate the plurality of user input streams associated with the plurality of user devices to a plurality of symbols for transmission as an encoded signal; and transmitter circuitry to transmit the encoded signal.

25. The transmitter device of claim 24, further comprising power normalization circuitry to receive a vector output from the at least one encoder deep learning circuit before a digital-to- analog conversion is applied to the vector output, wherein the vector output comprises pairs of real numbers and each pair of real numbers represents a symbol, the power normalization circuitry to normalize the transmission power of the sum of the plurality of symbols represented by the vector output to the determined number of symbols in the plurality of symbols.

26. A method for training a machine-learning system for multi-user uplink communication, the method comprising: obtaining, at each of a plurality of user devices, an associated user input stream to be transmitted to a receiver device; training a plurality of encoder deep learning networks associated with respective ones of the plurality of user devices to map the plurality of user input streams in aggregate to a plurality of symbols for transmission as an encoded signal; training a decoder deep learning network of the receiver device to receive the encoded signal and to recover the plurality of user input streams associated with the respective ones of the plurality of user devices from the signal; wherein the encoder deep learning networks of the plurality of user devices and the decoder deep learning network of the receiver device are trained depending on an accuracy of recovery of the plurality of user input streams.

27. A user device for multi-user uplink communication, the user device comprising: an encoder deep learning circuit, wherein the encoder deep learning circuit implements a plurality of encoding layers and wherein successive encoding layers, including at least one non-linear encoding layer, are connected to each other by a matrix of weight values having been obtained by training: the encoder deep learning circuit, at least an encoder deep learning circuit of another user device, and a decoder deep learning circuit of a receiver device depending on an accuracy of recovery of a plurality of training user input streams; the encoder deep learning circuit to obtain an associated user input stream to be transmitted to a receiver device and to map the obtained user input stream in aggregate with at least a user input stream associated with the other user device to at least one symbol for transmission as a portion of an encoded signal; and transmitter circuitry to transmit the portion of the encoded signal.

28. A receiver device for multi-user uplink communication, the receiver device comprising : receiver circuitry to receive an encoded signal comprising a plurality of portions transmitted from a plurality of user devices, wherein each portion of the encoded signal comprises at least one symbol mapped in aggregate from a plurality of user input streams associated with the respective ones of plurality of user devices; decoder deep learning circuitry, wherein the decoder deep learning circuitry implements a plurality of decoding layers and wherein successive decoding layers are connected to each other by a matrix of weight values, the matrix of weight values having been obtained by training a plurality of encoder deep learning circuits and the decoder deep learning circuitry depending on an accuracy of recovery of a plurality of training user input streams; and wherein the decoder deep learning circuitry is to recover each of the plurality of user input streams intended for the receiver device from the received encoded signal.

Description:
Deep Learning Multi-User Communication

BACKGROUND OF THE INVENTION

Telecommunication networks that serve multiple user devices (such a mobile devices or other receiving devices) conventionally use multiplexing techniques such as space-division (e.g. beamforming), time-division or frequency-division multiplexing to encode a plurality of data streams intended for receipt by different user devices into a signal for transmission. Such conventional multiplexing techniques share a transmission medium (e.g. a radio access network, RAN, an optical transmission medium or a wired transmission medium) by allowing each of the individual data streams to be combined for transmission. By employing some form of separation in at least one transmission domain (e.g. in the space, time or frequency domain) for signal encoding, the multiplexed signal can be processed when it is received at a user device to allow each of the individual data streams encoded in the multiplexed signal to be isolated and recovered by an intended recipient user device. However, due to the need to reduce the effects of interference caused by multiple devices sharing a common transmission medium, conventional multiplexing schemes exploit orthogonality between the portions of the signal associated with the individual data streams. As a result of this reliance on orthogonality, conventional multiplexing schemes do not make optimal use of available network capacity.

As communication networks, such as 5G wireless communication networks and beyond, are populated with an increasing number of user devices, for example with the advent of the Internet of Things (loT), the bandwidth available for communication between devices in the network becomes increasingly in demand. To support the expansion of such networks, it is beneficial to provide a method for communication which allows multiple user devices to more efficiently share transmission medium resources while still being able to mitigate the effects of the interference introduced in such communication systems by the large number of communicating devices.

One such proposed method for multiple-user communication (i.e. multi-user uplink or downlink) is Non-Orthogonal Multiple Access (NOMA). In contrast to conventional multiplexing schemes, NOMA allows the data streams intended for different user devices (i.e. during multi-user downlink) to be sent over the same carrier wave without separation in the space or frequency domains by superposing all portions of the signal associated with the individual user devices non-orthogonally. For example in the case of power-domain NOMA, this non-orthogonality is enabled by utilising superposition coding, which uses the channel characteristics between a transmitter device (e.g. a base station or access station) and each of the user devices of the network to superpose each of the portions of the signal to be transmitted based on a Power Allocation Factor (PAF). The superposition coding at the transmitter allows each of the receiving user devices to isolate and recover the portion of the received signal that was intended for a given recipient device by performing successive interference cancellation (SIC). The SIC approach applied by the receiving devices involves isolating the portion of the signal with the highest signal-to-noise ratio (SNR) from the combined signal, with the remainder of the combined signal being considered purely as noise. This portion of the signal is then subtracted from the remaining signal and the procedure is repeated for each successively lower signal-to-noise portion of the signal.

NOMA may provide greater spectrum efficiency than conventional multiplexing techniques by allowing multiple user devices to be served at the same time without requiring e.g. the allocation of specific frequency channels or sub-carriers to individual devices or directional antenna to be employed. However, techniques such as NOMA still consume some of the available communication bandwidth to transmit signalling information, e.g. channel state information (CSI), to the multiple receivers to allow them to identify and decode their respective signals from among the superposed signal received at each receiver. This may result in limitations to the service provided to each user. For example, by reducing the bandwidth available for communication, the NOMA approach may result in lags or delays in communication over the network, or may result in poorer quality of service per user etc. Channel State Information (CSI) relates to known channel properties of a wireless communication link and knowledge of CSI makes it possible to adapt transmissions depending on current communication channel conditions. CSI may be estimated at a receiver by extracting reference signals from a received signal and may be fed back to a corresponding transmitter.

In addition to the service limitations that may be imposed by the CSI signalling requirements of NOMA, if SIC is to be employed at the receiver devices, each receiver device (e.g. user device) may perform more complex and computationally intensive decoding methods (in contrast to receiver devices employing conventional decoding methods) to disentangle the signal intended for said receiver. Furthermore, due to the successive nature of the SIC decoding technique, errors in decoding may propagate through each iteration, resulting in increasing levels of noise in the data streams recovered by each receiver. Thus, there is a need for a multi-user communication scheme in which signals for multiple user devices may be transmitted, but in which there is no need for additional signalling such as signalling to communicate CSI or for complex decoding at the receiver. BRIEF DESCRIPTION OF THE DRAWINGS

Figure 1 schematically illustrates an example implementation of a machine learning system for determining a method for multi-user downlink communication;

Figure 1 B schematically illustrates an example mapping of the user input streams to an encoded signal for transmission by a single encoder deep learning network;

Figure 2 is a flowchart schematically illustrating an example implementation for training the machine learning system to provide a method for multi-user downlink communication;

Figure 3 is a flowchart schematically illustrating an alternative example implementation for training the machine learning system;

Figure 4 schematically illustrates an example implementation of a trained machine learning system;

Figure 5 schematically illustrates an example implementation of a transmitter device for performing multi-user downlink communication based on training the machine learning system of Figure 1 ;

Figure 6 schematically illustrates an alternative example implementation of a transmitter device for performing multi-user downlink communication based on training the machine learning system of Figure 1 ;

Figure 6B schematically illustrates an example mapping of the user input streams to an encoded signal for multiple encoder deep learning networks;

Figure 7 is a flowchart schematically illustrating how a transmitter device of either Figure 5 or Figure 6 may perform multi-user downlink communication based on a trained machine learning system;

Figure 8 schematically illustrates an example implementation of a plurality of user devices for performing multi-user downlink communication based on training the machine learning system of Figure 1 ; Figure 9 is a flowchart schematically illustrating how a user device of Figure 8 may perform multi-user downlink communication based on a trained machine learning system;

Figure 10A is a transmitter device for implementing the method for machine learning based multi-user downlink communication according to the present technique; and

Figure 10B is a user device for implementing the method for machine learning based multiuser downlink communication according to the present technique.

DETAILED DESCRIPTION

A method for providing improved spectral efficiency for multiple-user communication may utilise a Dirty Paper Encoding technique.

Dirty paper encoding is a technique for digital transmission of data via a communication channel subjected to some interference that is known to a transmitter of the signal. The transmitter precodes (e.g. beamforms) the data to cancel the interference so that a receiving device can accurately decode the received signal without knowledge of the interference.

This is analogous to writing a message on a piece of paper that has smudges and marks on the paper and erasing and adding ink in appropriate places to allow the reader to extract the information without knowledge of where the marks and smudges were originally.

According to the present technique a deep learning network at a transmitter and a plurality of deep learning networks at receiving user devices are trained together to allow the bits representing information intended for each user device to be encoded, transmitted and recovered from an encoded signal without using channel state information to perform the encoding (or optionally also the decoding). This allows for the accurate recovery of bits in multi-user uplink or downlink communication and increases the bandwidth available for data transmission in the network without, for example, having to rely on orthogonality of subcarrier signals to reliably communicate data. The present technique makes transmission of non-orthogonal signals more efficient by allowing decoding of the non-orthogonal signals to be performed even in the absence of CSI. Furthermore, decoding of signals for multiple users on a downlink (or uplink) can be performed without using a power allocation factor, in contrast with previously known NOMA techniques.

In the example implementations that follow, the deep learning network of a transmitter device performs the functionality of an encoder and may learn, based on processing of a training data set, a first mapping to be applied to multiple user input data streams obtained by the transmitter. The respective deep learning networks of the receiving user devices perform the functionality of decoders and may learn at least a second mapping to be applied to a received encoded signal.

The mapping of the encoder deep learning networks is to be applied by a transmitter to transform a plurality of user input streams into an encoded signal for transmission, which when subsequently transformed by the mapping of a decoder deep learning network of a respective user device enables the user device to (isolate and) recover the user input stream intended for the user device from the encoded signal. The encoding and decoding may be performed block-by-block where each user input stream is split into blocks comprising a given number of bits of the user input stream. The block size (k bits) may be configurable.

The mappings are learned by jointly training an encoder deep learning network at the transmitter and a plurality of decoder deep learning networks at a plurality of user devices. In alternative embodiments the deep learning networks may be machine learning networks other than deep learning networks providing the same or similar functionality. In one example implementation, the mappings represent conventional modulation and demodulation and in another example implementation the mappings represent conventional joint coding and modulation and joint de-coding and de-modulation, where the machine learning system may be considered to learn a constellation diagram as part of the mapping.

For example, the encoder deep learning may encode information bits corresponding to each of a plurality of recipient user devices (UEs) and encode the obtained plurality of data streams in blocks of k bits, where k is a non-zero integer. Considering a simple example of a multi-user downlink transmission to three UEs (U1 , U2, U3) then an equal numbers of bits (k1 , k2, k3) may be taken from each user input stream and encoded by an encoder deep learning network to map the block of k bits for each of the three user devices to three corresponding blocks each having n output symbols. If only modulation of the input symbols is performed then it may be that n is less than or equal to k (n<k) whereas if coding and modulation are both performed then it may be that n is greater than k (n>k) due to redundant bits being added as part of the coding scheme.

Conventional modulation techniques encode digital information (e.g. bits) on to carrier waves using complex values to modulate a carrier wave. However, where a machine learning network comprising deep learning networks (e.g. neural networks) is used to learn an encoding for the digital information, complex values cannot be manipulated by the neural networks. Thus, according to the present technique, the complex values to be used for modulating a carrier wave are provided in output from the machine learning network as a number of real values corresponding to twice the number of n output symbols, such that half of the values correspond to real components and the other half correspond to imaginary components.

As opposed to the output from the encoding layers of the machine learning system, which as detailed above, comprises real number, the input to the machine learning system or the encoding layers thereof, i.e. the input data streams, comprises bits.

In some examples a mapping is performed (by the encoding layers of the machine learning system) from input bits of blocks of size k bits to output symbols represented by 2n real numbers (real number b m , where m=1 to 2n) representing I and Q components of a complex number. The first n numbers ( b m =i to b m =n) of an output vector of a neural network may correspond to the real components whereas the second n numbers (b m =n+i to b m =2n) of the output vector of the neural network may correspond to the imaginary components of the n symbols, s m where m=1 to n. Within the encoding layers of the neural network/deep learning network the bits (k1 , k2 and k3) of all three users are taken into account in performing the mapping such that the vector of n complex valued symbols represented by the 2n real numbers b m output by the encoder is a “black-box” combination of all of the bits of all of the users together because weightings of the encoder layers are fine-tuned during the network training depending on all of the concurrently encoded input bits from all of the users. In embodiments where a different encoder is provided for each user, each encoder maps k information bits to a respective vector of 2n real values and an element by element sum of the vectors for the plurality of users is performed to generate the n symbol output values (as shown in Figure 6B). Thus for either a single encoder or for multiple encoders, the encoding is performed in aggregate for all of the concurrently encoded bits for the plurality of UEs. This mapping from information bits to encoded symbols in aggregate for the multiple users allows the mapping to be more robust to noise and interference than would be the case by performing mappings independently for each UE. For these mappings there is code rate R = ik/n, where i is the total number of users (associated with respective user devices, e.g. receiver devices) whose information is included in the multi-user communication. Thus the code rate R is given by a ratio of the total number of bits over the number of channels used (=number of symbols, n).

In conventional modulation a certain modulation scheme may be specified and the modulation scheme may be determined based on a pre-determined coding rate set by a base station. Example modulation schemes include Binary Phase Shift Key (BPSK) and Quadrature Phase Shift Key (QPSK). In the case of one user (i=1) and no channel coding and where QPSK modulation is implemented then R=2/1 . To implement the same scenario using the deep learning encoder/decoder of the present technique then the system parameters are set such that k=2 and n=1 which gives the same coding rate of R=2/1. Other conventional modulation schemes include BPSK modulation, the k bits may be mapped to n=k symbols; QAM modulation, where the k bits may be mapped to n=k/2 symbols; and 16- QAM modulation, where the k bits may be mapped to n=k/4 symbols.

In cases where coding is performed in addition to modulation by the deep learning networks of the present technique no particular coding scheme need be defined to calculate the (n-k) redundant bits. Instead coding is implemented by simply specifying the desired value of n such that it is greater than k and the neural networks of the deep learning network generate the n symbols as the output.

A modulated signal may represented by a “constellation diagram” that conventionally displays a modulated signal in an x-y scatter diagram having an I axis (horizontal real axis) representing an in-phase carrier and a Q axis (imaginary vertical axis) representing a quadrature carrier and each symbol is represented by a complex number. An ideal constellation diagram represents correct positions of each symbol, but after passing via a communication channel a point representing a received version of the symbol (after demodulation) is likely to have the symbol offset from the correct position due to the effects of channel conditions such as noise and interference levels. If noise causes a point representing a sample to stray into a region of the constellation diagram representing another symbol then a symbol error may result. Thus, the spacing between points on a constellation diagram which is utilised for the modulation of a communication signal is important for the recoverability of the information communicated via the signal.

The learned constellation diagram according to the present technique may not be limited to 2 dimensions, in contrast with constellation diagrams for conventional modulation schemes. Instead, the learned constellation diagram may have higher dimensions. For example, the learned constellation map may have a 2n-dimensional constellation diagram, where there are 2 dimensions for each and every symbol. There may be n physical carriers corresponding to the n symbols output by the encoder and the n physical carriers may be in n timeslots such that the transmission of each symbol takes place in a separate timeslot and a user device receives a symbol in each timeslot. However, in contrast to conventional multiplexing techniques that utilise e.g. time division multiplexing TDMA, or frequency division multiplexing such as OFDMA that makes use of orthogonality, a superposed signal for all the users is sent together in each time slot.

In this way, the machine learning system may choose the symbols to which the bits of the user input streams are to be mapped and may add higher dimensions to a constellation diagram than would be achievable/allowed in conventional modulation during the joint training of the encoder and plurality of decoder mappings. These choices may enable the machine learning system to maximize the distance between respective symbols in the constellation diagram parameter space (e.g. to maximize the minimum Euclidean distance between the constellation points of the symbols and/or to maximize the minimum Hamming distance of the codewords when joint coding and modulation is learned). The training of the machine learning system may therefore enable the isolation and recovery of the individual bits associated with specific user devices at the receivers when user input streams are encoded and subsequently decoded according to the learned (potentially higher-dimensional) constellation diagram.

Figure 1 is an illustrative example of a machine learning system, 100, for multi-user downlink communication. The system comprises a transmitter (or transmitting) device 110 and a plurality (i) of user devices (or receiver devices), including a first user device 120 and an ith user device 130.

The transmitter device 101 of machine learning system 100 may comprise transmitter circuitry 114 and at least one encoder deep learning network 112 comprising a plurality of encoding layers 113i to 113 x . Only one encoder deep learning network is shown in Figure 1 , however there may be more than one encoder deep learning network, as described with reference to Figure 6 below.

The user devices may each comprise receiver circuitry 124,134 and a decoder deep learning network 122, 132. Each of the decoder deep learning networks 122, 132 may comprise a plurality of decoding layers 123i to 123 y , 133i to 133 y , where each of the decoder deep learning networks may comprise the same number of layers (y), which may be the same as, or different from, the number of layers of the encoder deep learning network (x).

The machine learning system 100 may be trained on at least one set of training data. Each set of training data may comprise a plurality of groups of training data, where one group corresponds to a plurality of i user input streams, where i is equal to the number of receiving user devices over which the machine learning system is to be trained.

For each user device there may be k bits to be transmitted. The number of input streams for lx lx each user device may be 2 For i user devices there may be i2 input stream combinations at the transmitter device. A large set of training data may be generated by using different SNR values and channel fading for each of the i2 k input stream combinations. The volume of training data that it is appropriate to use may be determined based upon an error rate achievable in recovery of the decoded signal for the given volume. For example, the training data set may comprise a range, i.e. a number of distinct signal-to- noise ratio values for the signal-to-noise of the encoded signal received at the furthest user device (i.e. the user device with the highest SNR). For example, the machine learning system may be trained on received encoded signals at the furthest user device having 3 different SNR values, e.g. 3, 23, 28 dB. The size of the training data set for each of these SNR values may be of order of 1x10 5 . Thus, for 3 different SNR values, the size of the total training data set may be 3x10 5 . It may be that if n different SNR values are included in the training set, the size of the total training set may be nx10 5 .

Additionally, each of the training data sets (of size nx10 5 ), may have a different channel fading coefficient value, e.g. Rayleigh channel fading coefficient value, and noise value, e.g. Additive White Gaussian Noise (AWGN) value.

During training of the machine learning system 100, the transmitter device 110 may obtain a plurality (i) of user input streams 1011 to 101 j, where each of the individual user input streams is intended for transmission to one of the plurality (i) of user devices 120, 130. The transmitter device may obtain the plurality of user input streams by, for example, receiving the plurality of user input streams or from generating the streams locally.

The encoding layers 113i to 113 x of the at least one encoder deep learning network 112, may be configured to combine the plurality of user input streams 1011 to 101 i and encode the combined streams as a signal for transmission. The at least one encoder deep learning network may be trained, for example, by way of an end-to-end learning 102 method, to map the plurality of user input signals 1011 to 101 i (and the combination of all bits of the input streams) in aggregate to a plurality of symbols for transmission as an encoded signal.

In one example implementation, the transmitter device may comprise a single encoder deep learning network. In an alternative example implementation, the transmitter device may comprise more than one encoder deep learning network. The mapping in aggregate of the user input streams to the encoded signal is described in more detail for the different example implementations below, in the passages relating to Figure 5 and 6, respectively.

The encoded signal may be received by each of the plurality (i) of user devices 120, 130 and the plurality of decoding layers 123i to 123 y , 133i to 133 y of the respective decoder deep learning networks 122, 132 of the user devices 120, 130 may be configured to decode the encoded signal. The decoder deep learning networks 122, 132 may be trained, for example, by way of an end-to-end learning 102 method, to receive the encoded signal and recover from the encoded signal the user input stream 1011 , 101 j associated with said user device 120,130, i.e. by generating a recovered user input stream 121 , 131. When conventional modulation techniques are employed to map a plurality of k bits received from multiple user input streams to n symbols for transmission, the transmitter device may first group the plurality of bits of each user-specific data stream into separate codewords, where the codewords are designed based on the coding rate and may be, for example, be based on Hamming codes, or convolutional codes etc. The transmitter device may then map each codeword to a symbol for transmission, where the grouping of bits in the codeword into a symbol is dependent on the type of modulation scheme employed ( e.g. BPSK, QAM etc), and the mapping uses a constellation diagram. The constellation diagram describes a unique relationship between a codeword and (a) pre-defined characteristic(s) of a carrier waveform, for example these characteristics may be the amplitudes of the I and Q values of the carrier wave, or the frequency or phase values of the carrier wave. The relationships defined between the codewords and the characteristics of the carrier waveform depend of the particular form of digital modulation that is applied, for example different forms of digital modulation include Binary Phase Shift Keying (BPSK) or Quadrature Amplitude Modulation (QAM).

Regardless of the exact type of modulation, the constellation diagrams used for modulation are commonly chosen such that the (modulated) carrier waveform characteristics (for example the I and Q values) associated with each generated symbol are sufficiently spaced apart within the parameter space defined by the diagram (e.g. in I vs Q space) such that a generated symbol that is transmitted across a communication network and subjected to noise, which may alter the e.g. I and Q values of the received symbol, can be uniquely associated back to the e.g. I and Q values with which the carrier was transmitted. For example, the spacings between the I and Q values of different symbols may be such that when a transmitted symbol is received, and the corresponding I and Q values have been altered by the effects of noise on the transmission channel, the received I and Q values will be closer in value to the transmitted I and Q of that particular symbol than to the I and Q values of any other symbol. In this way, conventional digital modulation schemes, with or without the addition of elements of introducing redundant bits into the data streams by way of signal coding, allow for the simultaneous transmission and subsequent recovery of bits intended for different user devices over a shared transmission medium.

The choice of constellation diagrams for conventional modulation schemes may be restrictive and may be tuned by hand. Constellation maps of conventional modulation schemes are limited to 2-dimensions, the I and Q axes corresponding to a given symbol.

The machine learning system 100 of Figure 1 provides a method for transmitting a plurality of data streams combined as an encoded signal and for recovering the individual data streams, e.g. user input streams, at respective user devices by enabling the separability of respective data streams via an encoding and decoding mapping learned by the deep learning networks (e.g. neural networks) of the transmitter device and the user devices such that training of the deep learning system results in a modulation scheme that is described by a set of weights that can be implemented on non-training data with a reasonable expectation of an acceptable error rate for the expected transmission channel conditions.

The mappings learned by the deep learning networks of the transmitter and user devices may emulate the effects of conventional modulation (and optionally conventional coding) to allow the bits of individual data streams to be separable even when all k bits from each of the plurality of individual user input streams are mapped in combination, e.g. in aggregate, to n symbols for transmission as an encoded signal. In this way, the training, or learning, (e.g. end-to-end learning) performed by the machine learning system 100 of Figure 1 may be considered as an alternative to designing a constellation diagram for multi-user downlink and may be considered a method for learning a modulation scheme for multi-user downlink where the number of symbols to which the k bits are mapped is specified depending upon a desired coding rate. In this example implementation the mapping learned by the encoder deep learning network may represent modulation of the user input streams and the mapping learned by the plurality of user devices may represent de-modulation of the user input streams.

However, the training may not be so limited. For example, the machine learning system may learn a mapping that includes setting n such that it includes counterparts of conventional redundant bits in the generation of the n symbols. In these example implementations, the learned mapping may be considered as an alternative to (or may represent) joint coding and modulation. In such as alternative implementation, the mappings learned by the encoding and decoding deep learning layers may emulate (or represent) conventional joint coding and modulation and the machine learning system may be considered to learn a joint coding and modulation scheme.

The encoding deep learning network 112 and each of the decoding deep learning networks 122, 132 may have free parameters that allow the respective networks to be trained. The encoder and decoder deep learning networks may be configured to be trained together and may be trained based on an accuracy of the recovery of the plurality (i) of user input streams, for example, based on a comparison of the user input streams 101i to 101jwith the recovered user input streams 121, 131. The machine-learning system 100 may be configured to be trained by optimizing the accuracy of the recovered user input streams, for example using a loss function and an iterative approach, where the parameters of the encoding and decoding networks may be updated in successive iterations (or training epochs) e.g. using a downhill gradient method, to cause convergence of the training at a set of optimal machine learning network trained parameters. These trained network parameters may be stored or otherwise provided to the encoding and decoding networks of the transmitter and receiver user devices once the training phase is complete to allow the transmitter and user devices to be deployed to perform multi-user downlink communication according to the trained scheme, i.e. according to the mappings to be performed at the encoder and each respective decoder which best recover the user input streams.

The trained deep learning network parameters may be stored in memory, for example in Random Access memory (RAM) or read only memory (ROM), integrated with, or operatively connected to, the transmitter device and the plurality of user devices of the system. For example, the trained parameters may be stored in a memory of the transmitter device and communicated to each of the user devices, or may for example be stored on e.g. a server or other centralised network entity and communicated (e.g. over a network, for example, wirelessly) to the transmitter device and each of the user devices.

The trained deep learning network parameters may be matrices of weight values that are to be applied to each layer of the respective encoding and decoding networks. For each of the encoding and decoding deep learning networks the matrices may comprise weight values to be applied to each layer for each user input stream of the plurality of user input streams of the set of training data. The trained parameters may alternatively or additionally be other parameters of the networks or the fitted optimization function, such as parameters that may correspond to scaling factors that may be applied to the contributions from each user device for the determination of the accuracy of the recovered user input streams. For example, the scaling factors representing the contributions from each user device to the optimization function, or superposition factors, power normalization values etc.

The deep learning network may further include hyperparameters, which may be used to control the learning of the network. The hyperparameters may correspond to values of variables of the machine learning network or may be alternative constraints placed on the network, such as the structure or architecture of the encoder or decoder deep learning networks. For example, a hyperparameter of the machine learning network may be a learning rate of the jointly trained network.

In one example implementation, the learning rate of the network may be held fixed at a predetermined value. For example, during the training of a machine learning systems with either a single encoder or multiple encoders at the transmitter device, the learning rate may be fixed at the same, predetermined value. This value may be larger, for example on the order of 10 times larger, than the learning rate of a machine learning system trained to learn a conventional, lower dimensional, constellation diagram, such as for conventional BPSK modulation. In some example implementations, the learning rate of the machine learning system may held at a value of 0.00125.

Additionally, or alternatively, when the at least one encoder of the transmitter device may be trained to learn a mapping that does not include redundant bits, i.e. a modulation only mapping, the highest signal-to-noise ratio value for the received encoded signal at any one of the user devices may be set to a predetermined limit, which may be lower than highest signal-to-noise ratio set for any user device when the at least one encoder is trained to learn a mapping that includes redundant bits, i.e. a joint coding and modulation mapping. For example, it may be that the maximum SNR for learning a joint coding and modulation mapping may be set to match the range of SNR values expected when the machine learning system is implemented in use, or the maximum SNR may be set to an SNR value beyond the upper end of such a range. In contrast, the maximum SNR value set for learning a modulation mapping may be less than the upper end of the expected range of operational SNR values. For example, the maximum SNR value for learning a modulation mapping may be set to 5dB. Additionally, it may be that the difference in SNR values between the encoded signal received at the respective plurality of user devices (i.e. an SNR gap) may be considered as a hyperparameter and it may be that when a joint and modulation mapping is learned the difference between SNR values may be non-zero. In contrast, when a modulation mapping is learned it may be that the difference between SNR values between the plurality of user device may be set to zero, such that all user devices receive the encoded signal with the same SNR (i.e. no SNR gap between devices).

Another hyperparameter of the machine learning system may be the architecture of the decoder deep learning networks, which in one example implementation may be configured to comprise a batch normalization layer. Additionally, or alternatively, the decoder deep learning networks may comprise a first layer that is a linear layer, or a deep layer with a linear activation function.

Another hyperparameter of the machine learning system may be a batch size, which may for example be set to a predetermined value, which may be a low value or a high value based on the required accuracy of the network . For example, the batch size may be set at a low value, such as 16 or 32.

The training, or learning, of the machine-learning system may be conducted by a method of end-to-end learning, where the plurality (x,y) of layers of the encoder and decoder deep learning networks are hidden layers. The choice of the layers of the encoder and decoder deep learning networks will be described in more detail with reference to Figures 5 and 8 below. Additionally, the machine-learning system 100 may be an auto-encoder.

Optionally, in addition to the encoding and decoding deep learning networks to map and recover the user input streams, the machine learning system 100 may further comprise channel impairment circuitry 103 and 104 that is configured to emulate the effects of transmission over a physical medium to which the encoded signal would be subjected if it were to be transmitted over the physical medium (such as a RAN). For example, there may be individual channel impairment circuitry for each user device, which may emulate the effects of e.g. noise or channel fading on each of the respective channels over which the encoded signal may be transmitted to the respective user devices when the trained system is deployed for use for multi-user downlink communication.

By incorporating channel impairment circuitry into the machine learning system 100, the encoder and decoder deep learning networks may be trained to account for physical noise that may be introduced into the multi-user downlink communication when the trained system is deployed in a communication network, such as a wireless communication network e.g. a RAN. This sensitivity to channel impairments resulting from the characteristics of physical transmission within a communication network may improve the accuracy of the recovered user input streams when the trained encoder and decoder deep learning networks are employed by the transmitter device and user devices of the communication network, and may prevent the need for the machine learning system to be re-trained on each of a plurality of different configurations of the communication network (e.g. different respective signal-to- noise ratios of the user devices).

The channel impairment circuitry 103, 104 may be configured to alter or modify the encoded signal prior to reception by each of the plurality of user devices of the machine learning system. For example, channel impairment circuitry 103,304 may be located in the signal transmission path of the machine learning system (which emulates or represents the signal transmission path within a deployed communication network) between the output of the encoder deep learning network 112 and the receiver circuits 124,134 of the user devices 120, 130. For example, the channel impairment circuitry 103, 104 may be located to intercept and modify the encoded signal before or after the transmitter circuitry 114 of the transmitter device 110. Prior to transmission by the transmitter circuitry 114, the n symbols output by the encoding layers 112 for each block of k input bits, which are in a digital domain may be passed through a digital-to-analog converter (DAC) to form a transmission signal such as an RF (radio frequency) signal. The channel impairment circuitry 103, 104 may be located after the digital-to-analog conversion of the encoded signal. The RF signal may then be transmitted to the plurality of user devices, with the channel impairment circuitry for each user device separately modifying the RF signal corresponding to the symbol mapping of the k bits to reflect variations in channel conditions between different user devices. Upon reception at each user device 120, 130, the channel impaired RF signal is received, and passed through an analog-to-digital converter to retrieve the symbols (digital domain), which are then passed though the decoding layers in the user device to recover the bits of the information stream of the corresponding user.

In some example implementations the channel impairment circuitry 103, 104 may be operably connected to the output of the encoder deep learning network 112, the transmitter circuitry 114 of the transmitter device 110, the receiver circuitry 124, 134 of the user devices 120, 130, or some combination thereof. The channel impairment circuitry 103, 104 may be configured to emulate the effects of channel fading in each of the transmission paths of the encoded signal between the transmitter device 110 and the plurality (i) of user devices 120, 130. In some example implementations, the channel impairment circuitry 103, 104 may be configured to emulate the effects of Rayleigh channel fading on each of the transmission paths between the transmitter device 110 and the plurality of user devices 120, 130. In this example implementation, the channel impairment circuitry 103, 104 may be configured to intercept the encoded signal and modify the intercepted signal by applying a Rayleigh fading model. The fading applied to each transmission path by the channel impairment circuitry may be varied to emulate different transmission paths between different user devices 120, 130 by randomly, or pseudo-randomly, selecting a fading effect (e.g. amplitude or phase variations in the signal) to be applied to the encoded signal from a Rayleigh fading distribution.

Alternatively, the channel impairment circuitry 103, 104 may be configured to emulate the effects of the transmission channel characteristics on the encoded signal by employing other noise models, such as Rician or Nakagami-m fading, or Additive White Gaussian Noise (AWGN).

Alternatively, or additionally, the channel impairment circuitry 103, 104 may modify the encoded signal to produce a received signal at each of the user devices 120, 130 with a pre-determined signal-to-noise ratio (SNR). The signal-to-noise ratio of the encoded and modified signal received at each user device may be the same (i.e. there may be a signal-to- noise ratio gap between the signals received at different user devices of zero, or substantially zero), or may be different such that there is a non-zero signal-to-noise ratio gap between the signals received at different devices). The channel impairment circuitry 103, 104 may be configured to introduce noise, or emulate the introduction of noise, to the plurality of received encoded signals. This may be achieved by convolving or otherwise modifying the encoded signal by a noise function. Alternatively, this may be achieved by modelling signal-to-noise ratios of the encoded signal. The modelling may involve selecting signal-to-noise ratio values from a pre-defined distribution of values, for example from a distribution represented by e.g. a Gaussian function for example Additive White Gaussian Noise (AWGN). For example, signal-to-noise ratio values may be selected from a Gaussian distribution with e.g. a mean value of zero and a variance of one.

For example, the encoded signal e s output by the encoder deep learning network may be modified to emulate channel impairment and/or noise on each of the w=1 , .., i channels between the transmitter device and the plurality of i user devices. A resulting received signal z w may be received at each of the w=1, .., i user devices. Each of the z w received signals may be generated by modifying the encoded signal output by a channel-specific complex Rayleigh channel h w and noise term n w , i.e. : z w = h w e s + n w Equation 1

For example, during the training of the machine learning system 100, the channel impairment circuitry 103, 104 may be configured to modify the encoded signal (i.e. for each plurality of i user input streams) to emulate or result in a single pre-determined signal-to- noise ratio for the encoded signal that is received at each of the user devices 120, 130 (i.e. with a signal-to-noise gap of zero between the user devices). Optionally, the channel impairment circuitry may be configured to emulate or result in different, or substantially different, signal-to-noise ratios for the encoded signal such that the training of the machine learning system using a full set of training data is performed over a distribution of received signal-to-noise ratios for the encoded signals.

Within the training data, where there may be a range of signal-to-noise ratios of the received encoded signal, the channel impairment circuitry 103, 104 may be configured to maintain a zero signal-to-noise gap between user devices, or may alternatively be configured to additionally introduce a signal-to-noise gap between user devices.

The distribution of signal-to-noise ratio values of the encoded signal emulated by the channel impairment circuitry 103, 104 over the entire set of training data may be selected to be equivalent to, narrower than, or wider than the distribution of signal-to-noise ratios of the encoded signal that will be present when the trained networks are implemented in practice. For example, it may be that the channel impairment circuitry is configured to emulate or result in a signal-to-noise ratio distribution of encoded signals that comprises a value higher or lower signal-to-noise ratio value than the distribution of the encoded signals in use. Alternatively, it may be that the channel impairment circuitry is configured to emulate or result in a signal-to-noise ratio distribution of encoded signals that is symmetrically broader (e.g. 5, 10, 15 , or 20 percent broader ) at both the lower and upper ends than the distribution of the signal-to-noise ratio of encoded signals in use. Alternatively, it may be that the impairment circuitry is configured to emulate a signal-to-noise ratio distribution where either the upper or lower end of the distribution is respectively higher or lower (e.g. 5, 10, 15 , or 20 percent) than the distribution of the signal-to-noise ratio of encoded signals in use.

Figure 1 B is an illustrative example of a mapping of the plurality of user input streams in aggregate performed by a single encoder deep learning network.

Each of the plurality of user input streams of Figure 1 , 1011 to 101 j comprises a respective plurality of bits. The bits of the user input streams may be grouped together into blocks, such that a block of a user input stream 1911, 1912, 191 j, comprises a configured number of bits ki , k2, kj. The number of bits in each block may be pre-determined, for example by the transmitter device, and may be based on achieving a coding rate for the trained machine learning system 100, where the coding rate is equal to ik/n, i is the number of user devices, k is the number of bits in each user input block, which may or may not include redundant bits added to the bits of the user input stream to allow for error correction coding, and n is the number of symbols to which the user input block bits are to be mapped. For example, it may be that a minimum level of accuracy in recovering transmitted user input stream bits is requested for/by a particular user device. In this case, the transmitter device, which may be a base station, may establish that only a relatively low level of accuracy for recovering user input stream bits is sought for the multi-user communication. As a result, the base station may set the ratio of k to n to be high. Alternatively, if the base station determines that a higher level of accuracy is sought for the communication, the ratio of k to n may be set at a lower value.

The number of bits in a block may be the same for each block in a user input stream and for all respective user input streams, such that ki =k2=kj=k. Each block of a user input stream 1911 may comprise a plurality (ki) of the bits (1 ,1), (1 ,2), (1 ,ki). Each user input block 1911,1912, 191 j, may be input to the encoder deep learning network and the encoder deep learning network may learn a mapping (or learn a scheme, such as a constellation diagram) to map all of the bits (1 ,1), (1 ,2), (1,ki), (2,1), (2,2), (2,ki), (3,1), (3,2), (3,ki), of the user input blocks 1911,1912, 191 j, to an output vector 190 of real numbers bi,... b2n, where the length of the output vector is 2n to provide two real numbers to represent each symbol (a) 193i , 193 n , of the plurality of symbols (n). All of the k bits intended for the plurality of user device may also be learned by the encoder deep learning network. The output vector may for example be constructed such that consecutive elements bi , b2 (b2n-i, b2n) are the real numbers corresponding to a real component and an imaginary component of a given symbol ai (a n ). Alternatively, it may be that the output vector is constructed such that the first half of the vector (bi , ... ,b n ) comprises a plurality of real numbers each corresponding to a real component of each of the symbols (ai , ... ,a n ), and the second half of the vector (b n +i , - - - ,b2n) comprises a plurality of real numbers each corresponding to an imaginary component of each of the symbols (ai , ... ,a n ).

The mapping of the corresponding blocks of each user input stream may be performed in aggregation by encoding the bits of the respective blocks in parallel, where the encoder deep learning network considers all of the ki =k2=kj bits in combination when learning a mapping. In other words, the weights of the deep learning networks and the constellation diagram are learned by the machine learning system by performing a simultaneous mapping of all bits (ki+k2+kj) to all n symbols and where the mapping of all of the bits is interdependent, i.e. the mapping in aggregation finds a solution to a multi-user mapping problem by simultaneously solving for a set of (R=ik/n) mappings to find a common solution. The transmission of the symbols by the encoder deep learning network results in a superposed signal being sent together for all users in each time slot of a transmission medium resource.

In the case of a single encoder deep learning network, the mapping may also have the freedom when training to decide on which bits of which user input block to combine for the mapping to a given signal, i.e. the network may decide which bits from which user input block to group as a codeword. For example, it may be that the bits from different user input blocks (1 ,1), (2,2), (3,kj) are grouped as a codeword. This provides an additional level of aggregation (or parallel encoding) in comparison to an implementation comprising multiple encoder deep learning networks which may only group kits from a given user input block together to generate a codeword (1 ,1), (1 ,2), (1,kj), as is discussed below with reference to Figure 6B.

Figure 2 is a flowchart schematically illustrating a method of training the machine learning system of Figure 1. At process element 201 a transmitter device may obtain (e.g. receive) training data. The training data may comprise a plurality of groups of training data where each group has individual user input streams for each of the user devices over which the machine learning system is to be trained. Each of the user input streams may have a plurality of bits such that the total number of bits for the combination of user input streams in a block of training data is ik. The encoder and decoder deep learning networks of the machine learning system may be trained iteratively over j iterations, where the aim of each iteration is to improve the accuracy of the recovered user input streams until the learning converges on an optimal recovered accuracy. The optimal recovered accuracy may not correspond to the most accurately recovered user input streams, but may correspond to a lower recovered accuracy in an attempt to prevent over-fitting of the training data.

At process element 202 the first iteration of the training may be initialised. For example, the initialisation may include setting the free parameters or the parameters to be trained, e.g. weight and bias values of the layers, of the deep learning networks to initial, first attempt starting values. The free parameters of the respective deep learning networks may be initially set such that the parameters of each of the decoder deep learning networks are equal and may be the same as or different from the parameters of the encoder deep learning network.

At process element 203 the first iteration of the training, i.e. the first epoch, may be executed. This may include instantiating each of the deep learning networks and providing the initial values of the free parameters (or parameters to be trained) to each of the networks.

At process element 204 the encoder deep learning network may be run with the initial values of the parameters of the network that are to be fitted. The encoder deep learning network may perform a mapping based on the (x) layers of the encoder deep learning network and the trial values of the free parameters of the network to map the plurality of user input streams in aggregate i.e. to map the k bits of the combination of the user input streams to n symbols for transmission. The mapping may be performed by one or more than one encoder deep learning network of the transmitter device. The output of the process element may be an encoded signal. The encoding may comprise only modulation or a combination of error correction coding and modulation.

Optionally, at process element 205, prior to outputting an encoded signal, the transmission power of the n symbols may be normalized to n. This normalization may be performed by a power normalization layer of the encoder deep learning network, which may be the last layer of the deep learning network. The preceding layers of the encoder deep learning may be hidden layers and will be described in more detail with reference to Figures 5 and 6. In this case, the output of the hidden layers may be the output vector comprising the 2n real numbers that represent each symbol. This output vector may be used as input to the power normalization layer, which may also output a vector of 2n real numbers. The power normalization layer may normalize the transmission power of the symbols in the digital domain, i.e. before the encoded signal is converted to the analog domain by way of a digital-to-analog converter (DAC). By normalizing the transmission power of the signal in the digital domain, this may prevent power amplifiers acting on the encoded signal in the analog domain from operating in non-linear regions, and may therefore prevent clipping of a generated RF signal.

Normalizing the transmission power of the n symbols to n may include normalizing each the power of each symbol to unity, but the normalization is not so limited. For example, the power of each of the individual symbols may be less than or more than unity such that the power of the combination of the n symbols is equal to n. Normalizing the power of the n symbols to n may allow the output of the hidden layers of the encoding deep learning network to be utilised for multi-user downlink communication, as process element 205 may allow the output of the encoding deep learning network hidden layers to be made appropriate or suitable for downlink communication i.e. the normalization may modify the output of the preceding layers of the deep learning network to be provide an encoded signal that has transmission characteristics which reflect the transmission characteristics of a conventionally modulated (or the jointly coded and modulated) plurality of user input streams.

If the power normalization process element is implemented, the encoded signal received: at the transmitter circuitry of the transmitter device, which may further include or be preceded by a digital-to-anlog converter; the user device; and any other circuitry in the transmission path between the power normalization circuitry of the transmitter device and the user device, for example the optional channel impairment circuitry detailed below, may be a power- normalized encoded signal.

Optionally, at process elements 206a and 206b the output of the encoder deep learning network, i.e. the encoded signal, may be modified to emulate the effect(s) of channel characteristics, or channel impairments. During training of the machine learning system the encoded signal generated by the encoder deep learning network is not transmitted over a physical medium, such as a RAN, to each of the user devices, as is the case during the implementation of the trained machine learning system. Thus, in order to account for the effects of real physical (and potentially variable) channels between the transmitter and each of the user devices, the effects on the encoded signal of such channels are modelled, algorithmically or otherwise. At optional process elements 206a and 206b, the effects of channel fading, e.g. Rayleigh fading, and others sources of noise on the encoded signal may be modelled separately for each of the respective channels between the transmitter device and the user devices.

At process elements 207a and 207b, the encoded signal (with or without the inclusion of channel impairment effects) may be received by the respective user devices (e.g. user devices 120 and 130 of Figure 1). The received encoded signals may then be decoded by running the respective decoder deep learning networks of the user devices. These networks may be run with the free parameters of the networks set at the initial values as described with reference to process element 202 above.

At process elements 208a and 208b the bits of the user input stream intended for transmission to the receiving user devices may be isolated and recovered from the k bits of the n symbols of the encoded signal.

During the training phase of the machine learning system, the bits recovered by the decoding deep learning layer may not be the same as the bits intended for transmission to the user device as there may be error introduced by the encoding, (and optionally the simulated transmission over a shared medium) and decoding. The difference between the bits received at the transmitter device and the recovered bits may be described by a bit error ratio (BER).

At process element 209, the accuracy of the recovered user input streams (or bits of the user input streams) may be determined. This may be performed by considering the accuracy in recovering all of the user input streams. The determination of the accuracy may be performed by comparing the recovered user input stream (or the bits thereof) with the user input stream (or bits thereof) obtained (e.g. received) by the transmitter device. This comparison may be performed using a loss function such as a reconstruction loss function, as will be discussed in more detail with respect to Figure 3, which describes an example implementation of the training method in more detail.

At process element 210 it may be determined if the accuracy of the recovered bits is optimized. This may be achieved by e.g. determining if the accuracy of the recovered bits meets a pre-determined threshold, by determining if there is convergence in the training to an accuracy (or level of accuracy) in the recovery of the bits, by determining that the machine learning system is approaching an over-fitting limit or by any other method for optimization known in the art for training of a machine-learning system.

It is the aim of the machine learning to reduce the error on the recovered user input streams by iterating over process elements 203 to 208 to converge on the best choice of free parameters for the deep learning networks to most accurately recover the user input streams.

At process element 211 if it is determined that the accuracy of the recovered bits has not been optimized, then a further iteration of the training may be initiated and performed. The epoch of the iteration may be incremented (or decremented) and the values of the free parameters of the encoder and decoder deep learning networks may be updated in process element 213 and adopted in the execution of the incremented (or decremented) training epoch at process element 203 (which may be run on the same training data). Once the updated parameters of the respective deep learning networks have been adopted, processing elements 203 to 212 may be repeated until process element 213 is reached.

The updating of the deep learning network parameters (e.g. the matrix of weight and bias values of the layers) may be performed randomly, pseudo-randomly, or for example via any downhill gradient method or any alternative method that takes into account the values of the parameters adopted in the preceding iteration and the errors in the recovered bits (e.g. the Bit Error Rate). This may be achieved through back-propagation in the machine learning system e.g. through back-propagation in the end-to-end learning that is implemented by the machine learning system.

At process element 213, if it is determined that the accuracy has been optimized, or e.g. the accuracy has been maximized, the free parameters of the encoding deep learning network, and each of the decoding deep learning networks may be retained as the trained parameters. An absolute maximum need not be reached, just an acceptable one for reliable implementation. These trained parameters may be stored or communicated to the encoder and decoder deep learning networks to be adopted during use of the transmitter and user devices for multi-user downlink communication.

It may be that the trained parameters may be adopted during the implementation of the communication system when the same, or a fewer, number of user devices are implemented as were included in the training of the system. Additionally, the inclusion of a range of SNR values and SNR gaps between user devices implemented in the training data may allow the trained values to be implemented when the communication network conditions of the system vary with time. For example, due to the range of SNR values and SNR gaps included in the training data, the trained deep learning network parameters may be considered agnostic to changes in the SNR values and gaps between user devices during the implementation of the system. Alternatively, it may be that if the communication network conditions vary beyond a threshold, the machine learning system may have to be adaptively re-trained and the retrained values may be stored and implemented in the system. The adaptive re-training may be performed by updating the distribution of emulated SNR values and optionally, the SNR gaps between user devices in the training data and reperforming the processing elements 201 to 213.

Figure 3 is an example implementation of the method described schematically by the flowchart of Figure 2.

Process element 301 is the same as process element 201 of Figure 2.

Process element 302 is the same as process element at 202 of Figure 2, where at least one of the parameters of each of the deep learning networks that is to be trained is a matrix of weight values for each layer of the respective deep learning networks. In each of the deep learning networks there are a plurality of layers, which may be hidden layers. In deep learning networks, which are based on neural networks, each layer of the network may perform a transformation on data input into the layer based on an activation function applied in each layer. A matrix of weight values may be assigned to each of the dense and/or convolutional layers to govern the extent to which input data is passed along through the respective layers. Linear layers of the learning networks, or layers that perform mathematical operations, such as the power normalization layers, or addition or division layers etc may not assigned weight values. Alternatively, linear layers, or layers that perform mathematical operations may be dense layers, with associated assigned weight values, and linear activation functions.

For example, the machine learning system may be based on a neural network and each dense layer of the machine learning system may include a predetermined number of neurons, for example, 256, 512 or 1024 neurons. Each neuron in a given dense layer (e.g the ith layer) is connected to a neuron in a subsequent layer (e.g. the i+1 th layer) and this connection is given associated weight. The weight matrix for a given layer is a matrix of dimension equal to [the number of neurons in the ith layer x the number of neurons in the i+ 1 th layer], where each element of the matrix is the associated weight value for the represented connection. The weight matrices for all the connected layers of the machine learning system (i.e. the layers of the at least one decoder deep learning network and the layers of the plurality of encoder deep learning networks) may be combined into a single weight matrix.

For the case of each dense layer of the machine learning system, a vector of bits may be input to the layer. Alternatively, for example if a layer of the encoder or decoder deep learning network is a convolutional layer, a matrix of bits may be input to the layer. For example, multiple streams of bits for each user may be input together into a convolutional layer, such that the convolutional layer may process the bits together, for example by extracting spatial and temporal characteristics. The dimension of the weight matrix for a convolutional layer may be less than the dimension of the weight matrix for a dense layer.

At process element 302 initial values of the weights may be set for the first iteration of the training machine learning system.

At process element 303 these initial weight values are input to the respective layers of the deep learning networks and in element 304 the encoder deep learning network may be run.

At process element 305 the encoded signal output by the encoder deep learning network may optionally be modified, as discussed with reference to Figure 1 , to simulate a single SNR value or a range or distribution of SNR values for the encoded signals received at the user devices.

At process elements 306a and 306b the encoded signals for receipt at the user devices may optionally be further modified to introduce pre-defined SNR gaps between the encoded signals received at each of the i user devices.

Process elements 307a, 307b, 308a, 308b, 309 and 310 are similar to process elements 207a, 207b, 208a, 208b, 209, 210.

However, at process elements 309 and 310 the machine learning system may utilise a loss function for determining the accuracy of the recovered bit and performing optimization by considering whether or not the losses have been minimized or at least reduced to at or below a target level. The loss function may be a reconstruction loss function.

The reconstruction loss function (L) may represent the sum over all of the user devices (i) in the machine learning system of the reconstruction losses L w for each user device, where the reconstruction loss for each user device, L M , is determined based on the comparison of the recovered bits with respect to the bits input to the transmitter device. The reconstruction loss function may be given by L below: Equation 2

Where i is the number of user devices (and decoder deep learning networks), x w represents the original plurality of bits intended for transmission to the w=1 ,... , ith user device (the original user input stream), z w represents the encoded signal output from the encoding deep learning network modified for channel impairments, g w (z w ,9gw) represents the mapping or transformation performed by the w=1 ,... , ith decoding deep learning network on the received encoded signal, where 0 gw represents the weight and bias terms of the decoder deep learning network. The contribution to the reconstruction loss function from each user device may be equal or may be weighted. For example, a scaling factor may be applied to each term in the loss function associated with a user input stream. In equation 2 above this scaling factor is represented

The scaling factor may act to impose a quality of service constraint on the machine learning, such that all users have equal importance in decoding their respective signals correctly. This quality of service constraint (or user fairness) may be imposed in conventional multi-user downlink communication implementations by alternative methods. For example, according to NOMA, a similar user fairness is achieved by utilising the Power Allocation Factor (PAF) in the encoding of the signal at the transmitter device. As the method disclosed herein may be performed without the use or knowledge of (fed-back) channel state information at the encoder, and may further, optionally, be performed without the use or knowledge of channel state information at the decoder(s) (i.e. the encoding, and optionally the decoding, is (are) blind to channel state information), the application of the scaling factors in the reconstruction loss function may ensure user fairness that may not otherwise be achieved.

During the process element 202 the scaling factors for user device may be set at 1/i. During training (i.e. in successive iterations), the scaling factor for each user device may be set to a value equal to the reconstruction loss of the user device for the current iteration divided by the total reconstruction loss of all users for the current iteration.

The reconstruction loss function may be a binary cross entropy function (i.e. a sigmoid cross entropy loss function) and the binary cross entropy function may be used to calculate a binary cross entropy loss by combining the losses for all of the user devices in the network.

At process element 310 and 312 the accuracy of the recovered bits may be optimized by minimizing the combined binary cross entropy loss. The binary cross entropy loss may be minimized by increasing the log-probability of recovering the bits of the user input streams. This is equivalent to improving the bit log-likelihood ratio (LLR).

The binary cross entropy loss function may be described as below: Equation 3

Where s may be the output of the sigmoid function, b may be the set of all bits originally obtained (e.g. received) by the transmitter device (i.e. the training data), q may be the set of recovered bits, and E is the expectation value.

The minimization of the binary cross entropy loss is equivalent to minimizing the BER and maximizing the Generalized Mutual Information (GMI). This minimization may provide an improvement on alternative techniques commonly adopted for designing constellation maps, such as minimizing the BER alone, or maximizing the sum rate.

The maximization of the generalised mutual information by minimizing the binary cross entropy loss may be considered the same as increasing the space between symbols in the designed (e.g. 2-dimensional or higher dimensional, i.e. 2n-dimensional when n is the number of symbols to which the user input stream bits are mapped) constellation map so that each of the n symbols can be uniquely mapped back to a codeword.

The binary loss entropy loss function may be implemented as a sigmoid activation function and a cross-entropy loss function. The sigmoid activation function may be implemented in a final layer of each of the decoder deep learning network layers and the cross-entropy loss function may be implemented outside of the encoder or decoder deep learning networks.

In some example implementations, the calculation of the reconstruction loss function may be performed by processing circuitry of the (e.g. end-to-end) machine learning system, which may be processing circuitry of the transmitter device or may be processing circuitry of a centralised entity (i.e. neither the transmitter device nor the user devices), such as a server. Upon completion of the calculation of the loss function, the weights of the respective layers being trained may be updated at the encoder and decoder deep learning networks using a back-propagation method. It may be that if the reconstruction loss function is calculated by processing circuitry at a centralised entity, the updating of the weights at the encoder and decoder deep learning networks may be instructed by the centralised entity, for example via signalling where the centralised server may provide updated weight values to the deep learning networks or may provide the deep learning networks with an indication to update the weight values, such as via an instruction to update the weight values and an indication of either the updated weight values or the value (i.e. the increase or decrease) by which the current weight values are to be updated.

In the case that the reconstruction loss function is a binary cross entropy loss function, it may be that the at least one encoder network may obtain (e.g. receive or derive, process etc) bits as input and each of the respective decoder networks at the user devices may decode bits as output. The binary cross entropy loss function may be implemented as a sigmoid activation function in the final layer of the decoder deep learning networks at each user device. The respective sigmoid activation functions may provide a probabilistic output between 0 and 1. A threshold may then be set, at for example, a predetermined threshold (e.g. 0.5), and the probabilistic output may be compared to the threshold to provide a binary output. For example, if the probabilistic output is less than or equal to the threshold value it may be assigned a first value (e.g. 0) and if the probabilistic output is greater than the threshold value it may be assigned a second value (e.g. 1). Alternatively, if the probabilistic output is less than the threshold value it may be assigned the first value and if the probabilistic output is greater than or equal to the threshold value it may be assigned the second value.

In some example implementations, the transmitter device may optionally further include additional encoders, such as Low-density parity check (LDPC) encoders. The LDPC encoders may be used by the transmitter device (e.g. a base station) to obtain the input bits. The LDPC encoders may then pass the obtained bits to the at least one encoder deep learning network (e.g. at least one encoder neural network) of the transmitter device. It may be that a probabilistic output is obtained at a user device from the decoder deep learning network (e.g. the decoder neural network), for example, from a sigmoid activation function in the final layer of the decoder network. The probabilistic output may be equivalent to loglikelihood ratios (LLRs) of the bits. The probabilistic output may be further processed by additional decoders of the user device, e.g. Low-density parity check (LDPC) decoders, of the user device.

Alternatively, the reconstruction loss function may be a categorical cross entropy function. In this case it may be that the at least one encoder network may obtain (e.g. receive or derive, process etc) symbols (as opposed to bits) as input and each of the respective decoder networks at the user devices may decode symbols as output. In some example implementations, it may be that k bits are input to, and output by (i.e. recovered from) the encoder-decoder deep learning networks of the machine learning system. It may be that to obtain k bits for input-output to the encoder-decoder deep learning networks, a one-hot vector of size 2 , is generated, as there may be 2 possible combinations of bits. Each value in the one-hot vector representation may represent a symbol. For example, it may be that k=2, thus there may be 4 (e.g. {00, 01, 10, 11}) possible combinations of bits that are to be input-output to the encoder-decoder deep learning networks. Instead of inputting bits directly to the at least one encoder deep learning network, or encoding layers thereof, a one hot vector of size [1x2 ] (e.g. [1x4] where k=2) may be generated (e.g. by a one-hot vector encoding layer) for input to the encoder deep learning network, or encoding layers thereof. For example, in order to input the bit combination 00, a first entry of the one-hot vector is marked as 1 and the remainder of the entries are marked as 0 in the one-hot vector. As a further example, in order to input the bit combination 01, a second entry of the one-hot vector is marked as 1 and the remainder of the entries are marked as 0 in the one-hot vector, and so on. It may be that the one-hot vector generation, or encoding, is performed by a layer (for example, a deep learning network layer, or neural network layer) similar to the encoding layers 113i , ... , 113 X of the transmitter device, with the difference that the one-hot encoding layer is not configured to perform an activation operation. For example, the one-hot encoding layer may be a dedicated layer and may only perform one-hot encoding.

It may be that the one-hot encoding layer is integrated with the at least one encoder deep learning network 112 and may precede the encoding layers 113i , ... , 113 X such that the output of the one-hot encoding layer is input to encoding layers (e.g. input to the first encoding layer 113i). For example, it may be that the user input stream bits are obtained by the encoder deep learning network (e.g. received by or provided to the network) and these bits may be converted to the one-hot vector using a one-hot encoding layer having no activation functions.

Alternatively, it may be that the machine learning system is configured such that the at least one encoder deep learning network may obtain (for example may receive or be provided with) the symbol number to be encoded by the encoding layers without the use of a one-hot encoding layer. For example, the encoder deep learning network may directly obtain (for example from a separate entity or separate component of the machine learning system) the symbol number to be encoded by the encoding layers, as opposed to obtaining the user input stream bits and performing further processing to obtain (e.g. derive) the symbol numbers to be encoded by the encoding layers. For example, the transmitter device may further comprise one-hot vector encoding circuitry, which may or may not be dedicated circuitry, to generate the symbol numbers from the user input stream bits, or the symbol numbers may be directly received by circuitry of the transmitter device.

It may be that the at least encoder deep learning network obtains ( e.g. receives or is provided with) symbols in the form of the one-hot vector as input, and the decoder deep learning networks at the respective users devices decode symbols in the form of the one-hot vector as output. In this case of implementing a categorical cross entropy function, the final layer of the decoders at each user device may use a softmax activation function. As the decoding layers are decoding symbols, instead of bits, there may not be probabilistic outputs in this case.

At process element 312 the minimization of the binary cross entropy loss function may further involve implementing a method of back-propagation through the machine learning system including the encoder and decoder deep learning networks to tune the deep learning network parameters. For example, an adaptive moment estimation (Adam) method may be used for the back-propagation.

Process elements 303 to 312 may be repeated iteratively until it is determined at process element 310 that the binary cross entropy loss function has been minimized. At this point, process element 313 may be reached, and similar to process element 213 of Figure 2, the matrix of weight values (and other trained parameters such as bias values) may be stored as the trained values.

Optionally, at process element 310 it may be determined whether the machine learning system is being over-fitted and the iteration of the above process elements may be halted if it is determined that the system is being over-fitted or the iteration of the above process elements may be continued if it is determined that the system is or has not yet been overfitted.

The optional determination of over-fitting may be performed based on an analysis of the adaptive learning rates for each free parameter of the network. In one example implementation, over-fitting may be monitored by separating the set of all available training data into a training set and a validation set. The ratio of data in the training set vs the validation set may be e.g. 4:1. During training, the accuracy of the recovered user input streams for the validation set (i.e. the validation loss) may be monitored and it may be determined at which point during the iterative training process the accuracy of the validation data asymptotes to a threshold. It may be that at this identified point in the iterative training process it is considered that further iteration may result in over-fitting. Thus, in one example implementation, a method of early-stopping may be implemented at this point in the iterative training process to avoid over-fitting as a result of monitoring the validation loss of the machine learning system. In one example implementation, it may be that the parameterizations of the end-to-end learning that describe the patience and minimum change in the validation loss of the machine learning system training may be used to represent the point in the iterative process beyond which the system may be over-fitted and it may be that these parameters are set to pre-determined values ( e.g. 20 and 0.075 respectively).

Figure 4 is an illustrative example of a trained machine-learning system, 400, for multi-user downlink communication. The trained system 400 comprises components common to the machine learning system to be trained in Figure 1, which is reflected in the like numbering of the reference symbols.

In contrast to machine learning system 100 to be trained, the trained system 400 comprises at least one trained encoder deep learning network 412 and trained decoder deep learning networks 422 and 432. These deep learning networks may obtain (e.g. may receive) trained network parameter values by way of the trained end-to-end deep learning 402.

In further contrast to machine learning system 100, the trained machine learning system 400 may not comprise the optional channel impairment circuitry 103, 104 as the trained machine learning system 400 is to be implemented for use in a communication network to provide multi-user downlink communication. As the trained machine learning system 400 may be adopted with the use of a physical medium (e.g. a RAN) to transmit and receive the encoded signal, the emulation of channel impairments is no longer be implemented. Instead, the channel impairments 403 and 404 are to be applied by the effects of transmission over the physical medium (e.g the RAN) itself.

The use of a physical medium for transmission and reception has been described by way of example as a RAN. However, it is not so limited and may be any medium that enables either wireless or wired communication, such as optical or satellite communication etc.

When the at least one trained encoder deep learning network 412 is run with the trained network parameters (such as the matrix of trained weight values) the encoder deep learning network may modulate, or optionally jointly code and modulate, the plurality of user input streams to an encoded signal for transmission.

When the trained decoder deep learning networks 422 and 432 are run with the trained network parameters (such as the matrix of trained weight values) the respective decoder deep learning networks 422, 432 may de-modulate, or optionally jointly de-code and demodulate, the received encoded signal.

Figure 5 is an illustrative example of an implementation of a transmitter device, 500, for multi-user downlink communication. The illustrated implementation of the transmitter device may be adopted for training the deep learning circuitry of the transmitting device or for deploying a trained transmitter device in a communication system. The transmitting device comprises encoder deep learning circuitry 510.

The deep learning circuitry may be configured to obtain (e.g. receive) a plurality of i user input streams 5011 , 501 i, and receive or otherwise obtain a matrix of trained weight values 551 , or trial weight values, for the plurality of layers of the encoding deep learning circuitry.

The deep learning circuitry may be further configured to map the obtained i user input streams to an encoded signal for transmission 552.

The transmitter device may comprise transmitter circuitry 514 for transmitting the encoded signal 552.

When the transmitter device is being trained by way of e.g. end-to-end learning, for example as part of an auto-encoder, channel impairment circuitry for emulating the effects of channel impairments 503 on the encoded signal that is received at a user device may optionally be operatively coupled to the transmitter device. When the trained transmitter device is deployed in a communication system, the channel impairments 503 may be introduced by the medium itself.

Figure 5 schematically illustrates the implementation of a single encoder deep learning network at the transmitter device. In this example implementation all of the user input streams associated with the user devices of the multi-user downlink communication are received by a single encoder deep learning circuit, which may comprise a plurality of layers.

In this example implementation the encoder deep learning circuit 510 maps the plurality of i user input streams in aggregate to a plurality of n symbols for transmission as an encoded signal 552.

For example, the encoded signal (e s ), comprising the k bits of the user input streams mapped to n symbols may be represented by : Equation 4

Where i is the number of user devices, the vector e s represents the encoded signal, the vector x represents the original plurality of user input streams comprising the plurality of of k bits obtained by the transmitter device, i.e. x=[xi,...Xj], f(x,0f) represents the mapping or transformation performed on the plurality of user input streams x by the encoder deep learning layers, where 0f represents the weight and bias terms of the encoder deep learning network.

The encoding by the encoder deep learning circuitry 510 may be performed without knowledge or use of (fed-back) channel state information of the multi-user downlink communication network, and/or without knowledge or use of (a) power allocation factor(s).

The encoding performed by the encoder deep learning circuitry 510 may optionally also involve block-by-block encoding, where the encoder deep learning circuitry 510 obtains (e.g. receives) k input bits for each i user devices and creates n combined symbols. The ratio of k to n may be pre-determined, for example by the transmitter device, and may be based on an accuracy to be achieved for the trained communication. For example, if the ratio of k to n is high, a lower accuracy of recovered bits may be achieved after training of the machine learning system.. Additionally, this mapping may include using a linear error-correcting code, such as a Hamming coding, where redundant bits are inserted into the n symbols to facilitate error-correction in a received encoded signal.

The encoder deep learning circuitry 510 of Figure 5 is schematically illustrated to comprise three encoding layers 513 and a power normalization layer 550, but it may not be so limited. For example, the encoder deep learning circuitry 510 may comprise a different number of encoding layers 513 and may not comprise a power normalization layer 550.

The encoding layers 513 may be hidden layers and may utilise the same or different activation functions, which may be linear or non-linear activation functions. For example, the encoding layers 513 may be linear layers, dense/fully-connected ( i.e. non-linear), convolution (i.e. non-linear) layers or a combination thereof.

For example, the plurality of encoding layers may comprise a stack of a same type of layer.

For example, each of the encoding layers 513 of the encoder deep learning circuitry 512 may be a linear layer or a dense layer with a linear activation function.

Optionally, the encoder deep learning circuitry 510 may further comprise a final layer after the plurality of encoding layers 513 that may be of a different type than the preceding layers. For example, in addition to the encoding layers 513, the encoder deep learning circuitry 510 may comprise a power normalization layer 550 which may be a normalization layer with a power constraint. The power constraint may result in the power of the n symbols output by the encoding layers 513 being normalized to n. The power normalization layer may not have an associated matrix of weights, but may be an operation that is to be uniformly and consistently performed on an input to the layer.

Figure 6 is an illustrative example of an implementation of a transmitter device, 600, for multi-user downlink communication that comprises a plurality i of encoder deep learning circuits 610, 620. The transmitter device 600 of Figure 6 is otherwise similar to the transmitter device 500 of Figure 5.

The encoder deep learning circuits 610, 620 of transmitter device 600 may also comprise encoding layers 613, 614. These encoding layers may be the same in architecture and type as the encoding layers 513 of the single encoder deep learning circuit 510 of device 500.

In one example implementation the encoding layers 613 and 614 of the respective encoder deep learning circuits 610 and 620 may have the same architecture and may be the same in type as each other and the parameters of the layers of the respective circuits may be trained together via the end-to-end learning. The trained matrix of weight values of the respective layers of the circuit 610 may be the same or may be different from the matrix of weights values for circuit 620.

In the example implementation illustrated, the first encoder deep learning circuit 610 may obtain a first user input stream 6011 and an ith encoder deep learning circuit 620 may obtain an ith user input stream 601 j. For example, there may be a one-to-one correspondence of encoder deep learning circuits to user input streams. Alternatively, there may be fewer encoder deep learning circuits than user input streams, where a plurality of user input streams are obtained by at least one of the encoder deep learning circuits. Alternatively, there may be more encoder deep learning circuits than user input streams, where at least one of the encoder deep learning circuits may not obtain (or map/be trained on) a user input stream.

Each of the user input streams (or bits thereof) obtained by the plurality of encoder deep learning networks may be mapped in aggregate (or in combination) to an encoded signal for transmission 662. For example, the encoded signal (e s ), comprising the k bits of the user input streams mapped to n symbols may be represented by : Equation 5

Where i is the number of encoder deep learning networks and is the same as the number of user devices, the vector e s represents the encoded signal, the vector x w represents the original user input stream for the w=1,... , ith user device received by the transmitter device, f(x w ,9tw) represents the mapping or transformation performed on each of the plurality of user input streams x by the encoder deep learning layers, where 0fw represents the weight and bias terms of each of the i encoder deep learning network and the encoded signal is the sum of the outputs of the w=1,... ,i encoder deep learning networks.

The summation of the transformations performed by each of the i encoder deep learning circuits may be performed by the superposition circuitry 661 of the transmitter device of Figure 6. This may be performed by a linear layer, for example an addition layer. The superposition may be performed without the knowledge or use of PAFs (e.g. the superposition may be blind to PAF information).

The mapping of the multiple encoder deep encoding circuits may also optionally involve the inclusion of redundant bits, and the normalization of the power of the n symbols, as described above.

Figure 6B is an illustrative example of a mapping of the plurality of user input streams in aggregate performed by the plurality (i) of encoder deep learning networks and is an alternative to the mapping performed by a single encoder deep learning network illustrated in Figure 1 B. The encoding by the plurality of encoder deep learning circuits may also be performed without knowledge or use of (fed-back) channel state information of the multi-user downlink communication network, and/or without knowledge or use of a power allocation factor. Similar to Figure 1 B, each of the plurality of user input streams 6011 to 601 j comprises a respective plurality of bits and corresponding blocks of user input streams may be formed based on a number of bits ki , k2, kj to be included in each block, which may be learned by the encoder deep learning networks based at least in part on achieving a code rate for the trained machine learning system 100.

In contrast to a transmitter device of a machine learning system that comprises a single encoder deep learning network, each user input block 6911, 6912, 691 j, may be input to a respective the encoder deep learning network 610, 620, 630 and each of the encoder deep learning networks may learn to map (or learn a scheme, such as a constellation diagram to map) the bits (1 ,1), (1,2), (1,ki), or (2,1), (2,2), (2,ki),or (3,1), (3,2), (3,ki), of the input user block 6911,6912, 691 j : to an initial output vector 690i, 6902, 690; of real numbers xi,...X2n, or yi , ... y2n, or zi , ... Z2n, where the length of each of the initial output vector 690i ,6902, 690; is 2n. All of the initial output vectors 690i ,6902, 690; may be input to superposition circuitry 661 (which may be a linear layer of the machine learning system) and the corresponding elements of the initial output vectors may be linearly combined to form the output vector 691. As an example, element bi of the output vector 691 may be the sum of the real values xi+yi+zi and element b2n of the output vector 691 may be the sum of the real values X2n+y2n+Z 2n .

As in the single encoder deep learning network example implementation, the length of the output vector 691 is 2n to provide two real numbers to represent each symbol (a) 693i,693 n , of the plurality of symbols (n).

In this example implementation, the mapping of the corresponding blocks of each user input stream may be performed in aggregation by training each of the encoders together such that although each encoder maps the bits of a given user input block in a separate operation, the weights of the layers of the multiple encoder deep learning networks are trained together as the weights of layers of the different encoder deep learning networks are interdependent and a single constellation diagram is learned that will be utilised by all of the encoder deep learning networks. In this way, the encoding the bits of the respective blocks is still performed in parallel, where the encoder deep learning network considers all of the ki =k2=kj bits in combination when learning a mapping (e.g. constellation diagram and choice of n to k ratio) and the mapping in aggregation finds a solution to a multi-user mapping problem by simultaneously solving for a set (R=ik/n) of mappings to find a common solution.

Figure 7 is a flowchart schematically illustrating a method of implementing a transmitter device comprising at least one trained encoder deep learning circuit. At process element 710 the at least one trained encoder deep learning circuit may obtain (e.g. receive) a plurality of user input streams. According to the example implementation of Figure 5, the at least one encoder deep learning circuit may comprise a single encoder deep learning circuity to obtain the plurality of user input streams. According to the example implementation of Figure 6, the encoder deep learning circuitry may alternatively comprise a plurality of encoder deep learning circuits, where each of the circuits obtains one or more user input streams. For example, each circuit may receive one user input stream, or each circuit may obtain a plurality of user input streams.

At process element 720, the at least one encoder deep learning circuit may receive or otherwise obtain (e.g. retrieve from memory or e.g. from a centralised server) at least one matrix of trained weight values, where the weight values of the at least one matrix are to be applied to the layers of the at least one encoder deep learning circuit. In the example implementation of Figure 6, each of the encoder deep learning circuits may receive or otherwise obtain an individual matrix of weight values. Alternatively, the matrices of weight values for each encoder deep learning circuit may be concatenated or otherwise amalgamated such that each encoder deep learning circuit receives a combined matrix and retrieves the plurality of weight values corresponding to the layers of the respective circuit from the combined matrix.

At process element 730 the at least one encoder deep learning circuit may be run with the weights of each of its layers, where appropriate, set at the trained weight values. For example, it may be that at least one of the layers of the at least encoder deep learning circuit does not require a weight value, e.g. the power normalization layer. In which case, it may be that no weight value is stored in the matrix of weight values for that layer and it may be that no weight values is applied to that layer.

At process element 740, the at least one encoder deep learning circuit may map each of the plurality of user input streams in aggregate to an encoded signal for transmission. As described above, this mapping may involve mapping k bits of the user input streams to n symbols for transmission, where this mapping may or may not include the insertion of redundant bits in the symbols. As has been described, this mapping may involve the determination of how many (n) symbols to map the k bits and the adoption of a constellation map ( of 2n-dimensions) that has been trained (or learned) by the machine-learning system of the encoder and plurality of decoder deep learning networks. The trained mapping (or learned modulation scheme) may represent any type of conventional modulation scheme, e.g. it may be, or may act on the input user bits similarly to, a QAM or PSK modulation scheme. For example, it may be that trained mapping may utilise the same code rate (R) for converting groups of user inputs to codewords (e.g. it may use the same ratio of user input bits to symbols as, for example, PSK or QAM) and/or it may use the same carrier waveform characteristics for providing the codeword to symbol transformations as any conventional modulation scheme. This may be the case in any of the example implementations.

At process element 750, the encoded signal may be transmitted to a plurality of user devices, where the plurality of user devices may comprise each of the user devices to which the plurality of user input streams were intended to be transmitted. The encoded signal may be transmitted via the transmitter circuitry of the transmitter device.

Figure 8 is an illustrative example of an implementation of two user devices (or receiving devices), for multi-user downlink communication. The illustrated implementation of one or more of the user devices may be adopted for training the deep learning circuitry of one or more of the user devices or for deploying one or more trained user devices in a communication system. Each user device comprises decoder deep learning circuitry 822, 832 and receiver circuitry 824, 834.

The receiver circuitry 824, 834 of each of the user devices may be configured to receive an encoded signal 882 that has been subjected to channel impairments 803, 804, either as a result of emulation during the training of the user devices or from transmission over a medium during the deployment of the trained user devices. This encoded signal may be communicated to the decoder deep learning circuitry 822, 832. The decoder deep learning circuitry may also receive, or otherwise obtain, a matrix of trained weight values 881 , or trial weight values, for the plurality of layers 823, 833 of the decoding deep learning circuitry 822, 832.

The decoder deep learning circuitry 822, 832 may be further configured to (isolate and) recover the user input stream (or bits thereof) associated with the respective user device from the received encoded signal. This may be performed by mapping the n symbols back to the k user input bits as accurately as possible in view of noise and interference effects on the received signal. The decoding of the decoder deep learning circuits 822, 832 may be performed without the use or knowledge of the channel state information of the multi-user downlink information. Instead, this may be performed based on the end-to-end training of the encoder and plurality of decoder deep learning networks together as a single system 100. Alternatively, channel state information may be used in addition to the results of the end-to- end training during the decoding of the encoded signal to improve the recovery of the user input streams. For example, when k>n, i.e. for higher order modulation schemes such as 64QAM and 256QAM etc, the symbols become very close to one another in the constellation diagram space. In this case, the channel state information may be utilised in the end-to-end training of the encoder and decoder deep learning networks to improve the accuracy in the recovery of the bits of the user input stream block intended for each user device.

The decoding performed by each of the decoder deep learning circuits 822, 832 may optionally also involve block-by-block decoding, where the decoder deep learning circuitry 822, 832 may receive n symbols (optionally modified by noise and channel fading etc) and may recover the particular set of k input bits associated with the corresponding user device.

Each of the decoder deep learning circuits 822, 832 of the plurality of user devices may comprise the same number and same type and architecture of decoding layers 823, 833.

The decoding layers 823,833 may be hidden layers and may utilise the same or different activation functions, which may be linear or non-linear activation functions. For example, the decoding layers 823, 833 may be linear layers, dense/fully-connected ( i.e. non-linear), convolution (i.e. non-linear) layers or a combination thereof.

For example, the first layer of each of the decoding deep learning circuits 822, 832 may be a linear layer and at least one further layer may be a non-linear layer. For example, the first layer may be a dense layer with a linear activation function and at least one further layer may be a dense layer with a non-linear activation function. For example the at least one further non-linear layer may utilise a ReLLI or Tanh activation function, a batch normalization layer or a sigmoid activation function.

In one example implementation the first layer of each decoder deep learning circuits 822, 832 may be a linear layer, and each of a plurality of subsequent layers may be the same type of layer or may be a combination of different types of layers, or may be the same type of layer with a combination of different activation functions.

In one example implementation, the first layer of each of the decoder deep learning circuits 822, 832 may be a non-linear layer (for example a dense layer with a linear activation function), and a final layer of each of the decoder deep learning circuits 822, 832 may be a dense layer with a sigmoid activation function.

Optionally, each of the decoder deep learning circuits 822, 832 may further comprise at least one intervening layer. For example, each of the decoder deep learning circuits 822, 832 may further comprise a dense layer or a stack of dense layers with ReLLI or Tanh activation functions.

Optionally, each of the decoder deep learning circuits 822, 832 may further comprise an intervening batch normalization layer. In one example implementation, each of the decoder deep learning circuits 822, 832 may comprise a plurality of intervening dense layers, for example dense layers with ReLLI or Tanh activation functions, and each dense layer may be followed by a batch normalization layer. It may be that the final layer, e.g. a dense layer with a sigmoid activation function, is the only dense layer of the circuit not accompanied by a batch normalization layer. The batch normalization layer(s) may not have (an) associated weight(s).

Optionally, the first layer of each deep learning circuit 822, 823 may be a complex channel division layer. This layer may be a linear layer. This layer may not have an associated matrix of weight values and may be an operation that is to be performed consistently and independently of the input to the layer.

Figure 9 is a flowchart schematically illustrating a method of implementing a user/receiving device comprising a trained decoder deep learning circuit.

At process element 910, the user device may receive an signal encoded by at least one trained encoder deep learning circuit of a transmitter device jointly trained with the decoder deep learning circuit of the user device and at least a decoder deep learning circuit of one other user device. The encoded signal may be received by receiving circuitry of the user device.

At process element 920, the user device may also obtain a matrix of weight values that have been trained via the joint end-to-end training of the transmitter device, the user device, and at least one other user device. As described with respect to Figure 7, the user device may receive, or otherwise obtain, the matrix of weight values as a dedicated matrix for values to be applied to the decoder deep learning layers of the decoder deep learning circuit of the user device. Alternatively, the user device may isolate the plurality of trained weight values to be applied to the decoder deep learning layers of the user device from a combined matrix of weight values for a plurality of user devices.

At process element 930, the decoder deep learning circuit of the user device may be run with the trained weight values from the obtained matrix.

At process element 940, the decoder deep learning circuit may recover the user input stream associated with the user device from the encoded signal. The recovery may include isolating and recovering a plurality of bits of the user input stream from a plurality of symbols of the encoded signal. As described above, the recovery may be performed by a learned mapping of the decoder deep learning network that may be, or may be similar to (i.e. may utilize a higher dimensional constellation diagram or different bit to codeword grouping than), conventional (de-coding and ) de-modulation of the encoded signal, where the training of the mapping of the decoder deep learning network may comprise having jointly learned a constellation map (or a portion of the mapping representing a constellation map) with at least one encoder deep learning circuit of a transmitter device and a decoder deep learning circuit of another user device. The jointly learned constellation map (or learned mapping representing or providing the functionality of a learned constellation map with or without error-correcting coding) may be communicated between the transmitter device and each of the user devices by way of higher layer signalling over the network (e.g. MAC layer signalling over control channels).

Figure 10A is an illustrative example of a transmitter device 1100 for multi-user downlink communication. The transmitter device 1100 may be implemented for training of the machine learning system 100 or may be deployed as a trained device for multi-user downlink communication.

The transmitter device 1100, may comprise encoder deep learning circuitry 1110, and transmitter circuitry 1120. The encoder deep learning circuitry 1110 may be implemented within processing circuitry 1150 and may be operatively coupled to memory 1130, which may be configured to store instructions 1140.

Figure 10B is an illustrative example of a user device 1200 for multi-user downlink communication. The user device 1200 may be implemented for training of the machine learning system 100 or may be deployed as a trained user device for multi-user downlink communication.

The user device 1200, may comprise decoder deep learning circuitry 1210, and receiver circuitry 1220. The encoder deep learning circuitry 1210 may be implemented within processing circuity 1250 and may be operatively coupled to memory 1230, which may be configured to store instructions 1240.

Where functional units have been described as circuitry, the circuitry may be general purpose processor circuitry configured by program code to perform specified processing functions. The circuitry may also be configured by modification to the processing hardware. Configuration of the circuitry to perform a specified function may be entirely in hardware, entirely in software or using a combination of hardware modification and software execution. Program instructions may be used to configure logic gates of general purpose or special-purpose processor circuitry to perform a processing function.

Circuitry may be implemented, for example, as a hardware circuit comprising custom Very Large Scale Integrated, VLSI, circuits or gate arrays, off-the-shelf semiconductors such as logic chips, transistors, or other discrete components. Circuitry may also be implemented in programmable hardware devices such as field programmable gate arrays, FPGA, programmable array logic, programmable logic devices, A System on Chip, SoC, or the like.

Circuitry may be implemented, for example, as part of a computing device comprising single or multiple cores, or may be implemented as part of a distributed computing system. Alternatively, or additionally, the circuitry may be implemented by way of a virtual machine.

Circuitry may be implemented, for example, with a single or with multiple central processing units (CPUs), or, for example, with a single or with multiple graphics processing units (GPUs).

Machine readable program instructions may be provided on a transitory medium such as a transmission medium or on a non-transitory medium such as a storage medium. Such machine readable instructions (computer program code) may be implemented in a high level procedural or object oriented programming language. However, the program(s) may be implemented in assembly or machine language, if desired. In any case, the language may be a compiled or interpreted language, and combined with hardware implementations. Program instructions may be executed on a single processor or on two or more processors in a distributed manner.

The example implementations detailed above in Figures 1-10 have been described within the context of multi-user downlink communication. However, the jointly-trained encoder and decoder deep learning networks may also be implemented for multi-user uplink communication.

In this case, it may be that a receiver device (e.g a base station) is to receive an encoded signal comprising a plurality of portions transmitted from a plurality of transmitter devices (e.g. user devices). The base station may comprise a single decoder deep learning network and each of the plurality of user devices may comprise an encoder deep learning network, or at least one encoder deep learning network. For example, as an alternative to the machine learning systems of Figures 1 and 4, an uplink communication machine learning system may comprise a device 110 that is a receiving device, such as a base station, with receiving circuitry 114, which may comprise decoding layers 412. The uplink machine learning system may also comprise user devices 120, 130 that may include transmitter circuitry 124, 134 to transmit encoded signals. Each of the user devices 120, 130 may comprise encoder deep learning circuitry 422, 432.

Similarly to Figures 1 and 4, a multi-user uplink communication machine learning system may comprise channel impairment circuitry between the respective encoder deep learning networks and the decoder deep learning network. Additionally, each of the encoder deep learning networks at the user devices may comprise power normalization circuitry.

During the training of the machine learning system for multi-user uplink communication, each user device may obtain (e.g. receive) a user input stream and the machine learning system may be trained to obtain a matrix of weight values for the respective layers of the encoder deep learning networks and the layers of the decoder deep learning network. The training of the machine learning system may involve joint training of the encoder deep learning networks of each user device and the decoder deep learning network of the receiving device (i.e. the base station). Similarly to the case of multi-user downlink communication for multiple encoders as described above with reference to Figures 6 and 6A, the encoder deep learning networks may map the corresponding blocks of the plurality of user input streams in aggregate by training each of the encoders of the user devices together such that although each encoder maps the bits of a given user input block in a separate operation at a separate device, the weights of the layers of the multiple encoder deep learning networks are trained together as the weights of layers of the different encoder deep learning networks are interdependent and a single constellation diagram is learned that will be utilised by all of the encoder deep learning networks of the user devices (and the decoder deep learning network). In this way, the encoding the bits of the respective blocks is still performed in parallel, where the encoder deep learning networks consider all of the ki =k2=kj bits in combination when learning a mapping (e.g. constellation diagram and choice of n to k ratio) and the mapping in aggregation finds a solution to a multi-user uplink communication mapping problem by simultaneously solving for a set (R=ik/n) of mappings to find a common solution.

During the training of the uplink system, or during implementation, the shared constellation map may be communicated between each of uplink user devices and the receiver device by way of higher layer signalling over the network (e.g. MAC layer signalling over control channels).

Once the machine learning system has been trained, the encoder deep learning network of each user device may be run by adopting an obtained weight matrix.

During training or during implementation when adopting a trained weight matrix, each of the user devices may transmit an encoded signal, or portion of an encoded signal that comprises a respective block of a user input stream mapped to at least one symbol by the encoder deep learning network of the user device. Each user device may transmit the encoded signal, or the portion of the encoded signal (which may optionally have been normalized), over the same transmission medium. The transmission medium over which the plurality of user devices communicate with the receiving device (e.g. base station), may comprise n physical carriers corresponding to the n symbols output by the plurality of encoder deep learning networks of the user devices, and the n physical carriers may be in n timeslots. Each of the user devices, or transmitter circuitry thereof, may be configured such that the transmission of the mapped symbols by each of the user devices results in a superposed signal for all the users being sent together in each time slot.

During training or in use, a receiver device of the machine learning system for multi-user uplink communication may obtain (e.g. receive) an encoded signal and obtain a matrix of weight values to be applied to the layers of the decoder deep learning network of the receiving device. The decoder deep learning network may be run with the obtained matrix of weight values and may recover (and isolate) each of the user input streams (or blocks thereof) intended for the receiving device from the recovered encoded signal. During training it may be that the obtained matrix of weight values is determined by joint training of the decoder deep learning network with the plurality of encoder deep learning networks of the user devices. During implementation, it may be that the obtained matrix of weight values is a trained matrix of weight values that may be retrieved from the stored output of the training.

The methods, devices and machine learning architecture for the learning, or training, of the machine learning system for multi-user uplink communication may otherwise be the same as the methods, devices and machine learning architecture for the learning, or training, of the machine learning system for the multi-user downlink communication as described above.

For the purposes of the description, a phrase in the form "A I B" or in the form "A and/or B" means (A), (B), or (A and B). For the purposes of the description, a phrase in the form "at least one of A, B, and C" means (A), (B), (C), (A and B), (A and C), (B and C), or (A, B and C).

Within the scope of this application it is expressly intended that the various aspects, embodiments, examples and alternatives set out in the preceding paragraphs, in the claims and/or in the following description and drawings, and in particular the individual features thereof, may be taken independently or in any combination. That is, all embodiments and/or features of any embodiment or aspect can be combined in any way and/or combination, for example it may be that apparatus features correspond to method features or vice versa, unless such features are incompatible. The applicant reserves the right to change any originally filed claim or file any new claim accordingly, including the right to amend any originally filed claim to depend from and/or incorporate any feature of any other claim although not originally claimed in that manner.

The disclosure also extends to the following examples. Example 1. A method for training a machine-learning system for multi-user downlink communication, the method comprising: obtaining, by a transmitter device, a plurality of user input streams associated with a respective plurality of user devices; training at least one encoder deep learning network of the transmitter device to map the plurality of user input streams in aggregate to a plurality of symbols for transmission as an encoded signal; and training a plurality of decoder deep learning networks associated with respective ones of the plurality of user devices, to receive the encoded signal and to recover the plurality of user input streams associated with the respective user devices from the signal; wherein the at least one encoder deep learning network and the plurality of decoder deep learning networks are trained depending on an accuracy of recovery of the plurality of user input streams.

Example 2 . The method of Example 1, wherein the training of the at least one encoder deep learning network of the transmitter device is blind to Power Allocation Factors, PAFs, associated with respective ones of the plurality of user devices.

Example 3. The method of Example 1 or Example 2, wherein training the at least one encoder deep learning network of the transmitter device to map the plurality of user input streams in aggregate to the plurality of symbols for transmission as the encoded signal is not based on Power Allocation Factors, PAFs, associated with respective one of the plurality of user devices (e.g. for a single encoder deep learning network the mapping of a plurality of user input stream bits to the plurality of symbols is not based on PAFs and e.g. for a multiple encoder deep learning network a superposition of a plurality of initial output vectors output by respective ones of the multiple encoder networks is not based on PAFs).

Example 4. A method for multi-user downlink communication to be performed at a user device, the method comprising: receiving an encoded signal comprising a plurality of symbols mapped in aggregate from a plurality of user input streams associated with a plurality of user devices; obtaining a matrix of weight values associated with the user device, wherein a plurality of weight values associated with a layer of a decoder deep learning network of the user device are to be applied to the layer of the decoder deep learning network; and recovering from the received encoded signal the user input stream associated with the user device, wherein the recovery of the user input stream associated with the user device is performed by the decoder deep learning network of the user device implementing the obtained matrix of weight values.

Example 5. A user device for multi-user downlink communication, the user device comprising : receiver circuitry to receive an encoded signal, wherein the encoded signal comprises a plurality of symbols mapped in aggregate from a plurality of user input streams associated with a plurality of user devices; decoder deep learning circuitry, wherein the decoder deep learning circuitry implements a plurality of decoding layers and wherein successive decoding layers (e.g. including at least one non-linear decoding layers, such as dense decoding layers) are connected to each other by a matrix of weight values, the matrix of weight values having been obtained by training encoder deep learning circuitry and a plurality of decoder deep learning circuits depending on an accuracy of recovery of a plurality of training user input streams; and wherein the decoder deep learning circuitry is to identify the user input stream intended for the user device in the received encoded signal and to recover the user input stream intended for the user device from the received encoded signal.

Example 6. A method for multi-user downlink communication to be performed at a transmitter device, the method comprising: obtaining for each of a plurality of user devices a plurality user input streams associated with the plurality of user devices; obtaining a matrix of weight values associated with the transmitter device, wherein the weight values are to be applied to respective layers of at least one encoder deep learning network of the transmitter device; and mapping in aggregate the plurality of user input streams associated with the plurality of user devices to a plurality of symbols for transmission as an encoded signal; wherein the mapping is performed by the at least one encoder deep learning network using the obtained weight values. Example 7 . The method of Example 6, wherein the mapping in aggregate of the plurality of user input streams associated with the plurality of user devices to the plurality of symbols for transmission as the encoded signal is blind to Power Allocation Factors, PAFs, associated with respective ones of the plurality of user devices.

Example 8. The method of Example 6 or Example 7, wherein mapping in aggregate the plurality of user input streams associated with the plurality of user devices to the plurality of symbols for transmission as the encoded signal is not based on Power Allocation Factors, PAFs, associated with respective one of the plurality of user devices.

Example 9. A transmitter device for multi-user downlink communication, the transmitter device comprising: at least one encoder deep learning circuit, wherein the at least one encoder deep learning circuit implements a plurality of encoding layers and wherein successive encoding layers (e.g. including at least one non-linear encoding layers, such as dense encoding layers) are connected to each other by a matrix of weight values having been obtained by training the at least one encoder deep learning circuit and a plurality of decoder deep learning circuits depending on an accuracy of recovery of a plurality of training user input streams; the at least one encoder deep learning circuit is to obtain for each of a plurality of user devices a plurality of user input streams associated with the plurality of user devices and to map in aggregate the plurality of user input streams associated with the plurality of user devices to a plurality of symbols for transmission as an encoded signal; and transmitter circuitry to transmit the encoded signal.

10. A method for training a machine-learning system for multi-user uplink communication, the method comprising: obtaining, at each of a plurality of user devices, an associated user input stream to be transmitted to a receiver device; training a plurality of encoder deep learning networks associated with respective ones of the plurality of user devices to map the plurality of user input streams in aggregate to a plurality of symbols for transmission as an encoded signal; training a decoder deep learning network of the receiver device to receive the encoded signal and to recover the plurality of user input streams associated with the respective ones of the plurality of user devices from the signal; wherein the encoder deep learning networks of the plurality of user devices and the decoder deep learning network of the receiver device are trained depending on an accuracy of recovery of the plurality of user input streams.

Example 11 . The method of Example 10, wherein the training of the plurality of encoder deep learning networks associated with the respective user devices is blind to Power Allocation Factors, PAFs, associated with respective ones of the plurality of user devices.

Example 12. The method of Example 10 or Example 11 , wherein training the plurality of encoder deep learning networks of the respective user devices to map the plurality of user input streams in aggregate to the plurality of symbols for transmission as the encoded signal is not based on Power Allocation Factors, PAFs, associated with respective one of the plurality of user devices.

13. A method for multi-user uplink communication to be performed at a user device, the method comprising: obtaining an associated user input stream to be transmitted to a receiver device; obtaining a matrix of weight values associated with the receiver device, wherein the weight values are to be applied to respective layers of an encoder deep learning network of the user device; and mapping the obtained user input stream in aggregate with a plurality of user input streams associated with a plurality of user devices to at least one symbol for transmission as a portion of an encoded signal; wherein the mapping is performed by the encoder deep learning network using the obtained weight values.

Example 14 . The method of Example 13, wherein mapping the obtained user input stream in aggregate with the plurality of user input streams associated with the plurality of user devices to the at least one symbol for transmission as a portion of the encoded signal is blind to Power Allocation Factors, PAFs, associated with respective ones of the plurality of user devices.

Example 15. The method of Example 13 or Example 14, wherein mapping the obtained user input stream in aggregate with the plurality of user input streams associated with the plurality of user devices to the at least one symbol for transmission as a portion of the encoded signal is not based on Power Allocation Factors, PAFs, associated with respective one of the plurality of user devices.

Example 16. A user device for multi-user uplink communication, the user device comprising: an encoder deep learning circuit, wherein the encoder deep learning circuit implements a plurality of encoding layers and wherein successive encoding layers, including at least one non-linear layer, are connected to each other by a matrix of weight values having been obtained by training: the encoder deep learning circuit, at least an encoder deep learning circuit of another user device, and a decoder deep learning circuit of a receiver device depending on an accuracy of recovery of a plurality of training user input streams; the encoder deep learning circuit to obtain an associated user input stream to be transmitted to a receiver device and to map the obtained user input stream in aggregate with at least a user input stream associated with the other user device to at least one symbol for transmission as a portion of an encoded signal; and transmitter circuitry to transmit the portion of the encoded signal.

Example 17. A method for multi-user uplink communication to be performed at a receiver device, the method comprising: receiving an encoded signal comprising a plurality of portions transmitted from a plurality of user devices, wherein each portion of the encoded signal comprises at least one symbol mapped in aggregate from a plurality of user input streams associated with the respective ones of plurality of user devices; obtaining a matrix of weight values associated with the receiver device, wherein a plurality of weight values associated with a layer of a decoder deep learning network of the receiver device are to be applied to the layer of the decoder deep learning network; and recovering from the received encoded signal each of the plurality of user input streams intended for the receiver device, wherein the recovery of each of the user input streams intended for the receiver device is performed by the decoder deep learning network of the receiver device implementing the obtained matrix of weight values. Example 18. A receiver device for multi-user uplink communication, the receiver device comprising : receiver circuitry to receive an encoded signal comprising a plurality of portions transmitted from a plurality of user devices, wherein each portion of the encoded signal comprises at least one symbol mapped in aggregate from a plurality of user input streams associated with the respective ones of plurality of user devices; decoder deep learning circuitry, wherein the decoder deep learning circuitry implements a plurality of decoding layers and wherein successive decoding layers, including at least one non-linear layer, are connected to each other by a matrix of weight values, the matrix of weight values having been obtained by training a plurality of encoder deep learning circuits and the decoder deep learning circuitry depending on an accuracy of recovery of a plurality of training user input streams; and wherein the decoder deep learning circuitry is to recover each of the plurality of user input streams intended for the receiver device from the received encoded signal. Example 19. Machine readable instructions which when executed by processing circuitry cause the processing circuitry to perform the method of any of examples 1 ,2,3,4,6,7,8,10,11 , 12, 13, 14, 15 or 17.

Example 20. The machine readable instructions of example 19 provided on a transitory or non-transitory medium.