Incremental Growing Autoencoder

The incremental growth autoencoder addresses the inefficiencies of fixed compression ratio autoencoders by progressively training encoder and decoder blocks, enhancing CSI compression efficiency and network flexibility.

JP2026506085APending Publication Date: 2026-02-20NOKIA TECHNOLOGIES OY
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
JP2025547551
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2023-02-17
Filing Date
2023-11-30
Publication Date
2026-02-20

AI Technical Summary

Technical Problem

Existing autoencoder solutions for channel state information (CSI) compression in MIMO FDD networks require multiple models with fixed compression ratios, leading to overhead and inefficiencies in training and management, and gradient sharing is repetitive across different compression ratios.

Method used

An incremental growth autoencoder is trained progressively, allowing for flexible compression ratios by training the encoder and decoder blocks incrementally, enabling efficient adaptation to varying compression needs without repeated gradient sharing.

Benefits of technology

This approach reduces overhead and enhances flexibility in CSI compression by allowing dynamic adjustment of compression ratios, improving network performance and resource utilization.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2026506085000001_ABST
    Figure 2026506085000001_ABST
Patent Text Reader

Abstract

According to one aspect, an apparatus is provided that can be configured to provide an incrementally growing autoencoder based on the training data by obtaining training data, obtaining a plurality of compression rates, and incrementally training a compression block of an encoder of the autoencoder and a reconstruction block of a decoder of the autoencoder, training a first block of the encoder and a last block of the decoder to provide a first compression rate of the plurality of compression rates, and then incrementally training the remaining compression blocks of the encoder and the remaining reconstruction blocks of the decoder to provide respective remaining compression rates of the plurality of compression rates.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] Various exemplary embodiments relate generally to the field of telecommunications systems, and more particularly to a solution for providing an incremental growth autoencoder. [Background technology]

[0002] In wireless communication networks, channel state information (CSI) is required for precoding in multiple-input multiple-output (MIMO) communications using frequency division duplex (FDD). Accurate CSI can be used by a base station (BS) to obtain a higher signal-to-noise ratio (SNR) and channel capacity. However, in FDD networks, only user equipment (UE) can estimate downlink CSI. This means that the estimated CSI needs to be shared with the base station. This, in turn, means that overhead is introduced into the network. To reduce overhead, various compression and quantization methods can be used to generate codebooks that achieve a high compression ratio (CR), i.e., the ratio of compressed size to uncompressed size. A lower CR therefore means more compression.

[0003] Because compression also requires restoration (reconstruction), an autoencoder (AE) structure can be applied to provide feedback from the UE to the BS. The encoder can generate a compressed representation of the input CSI, and the decoder can then restore the CSI from the compressed representation. The CR of the AE can be determined by the available bandwidth and resources of the network. However, known solutions consider autoencoders with a fixed CR. This means that multiple AE models need to be trained, stored, and managed by the gNB and the UE. Furthermore, if it is necessary to share gradients for training two-sided AE models at the gNB and the UE, the gradient training and sharing needs to be repeated for all desired CRs. Summary of the Invention

[0004] This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter.

[0005] According to a first aspect, an apparatus may include at least one processor and at least one memory that stores instructions that, when executed by the at least one processor, cause the apparatus to obtain training data; obtain a plurality of compression ratios; and progressively train a compression block of an encoder of the autoencoder and a reconstruction block of a decoder of the autoencoder, training a first block of the encoder and a last block of the decoder to provide a first compression ratio of the plurality of compression ratios, and then progressively training the remaining compression blocks of the encoder and the remaining reconstruction blocks of the decoder to provide respective remaining compression ratios of the plurality of compression ratios, thereby providing an incrementally growing autoencoder based on the training data.

[0006] In an exemplary embodiment of the first aspect, the instructions, when executed by at least one processor, cause the device to: send to a terminal device a model structure of the encoder, trained weights of the encoder, multiple compression rates and the number of blocks required for execution at each compression rate to enable the terminal device to configure the encoder model and compress the target data; select the compression rate to be used; and send to the terminal device an indication of the compression rate to be used.

[0007] In an exemplary embodiment of the first aspect, the instructions, when executed by at least one processor, cause the device to receive compressed target data associated with a compression ratio to be used from a terminal device, and decompress the compressed target data using a reconstruction block of a decoder corresponding to the compression ratio to be used to reconstruct the target data.

[0008] In an exemplary embodiment of the first aspect, the instructions, when executed by at least one processor, cause the device to select a new compression ratio to be used, send an indication of the new compression ratio to be used to a terminal device, receive new compressed target data associated with the new compression ratio to be used from the terminal device, and decompress the new compressed target data associated with the new compression ratio to be used using a reconstruction block of a decoder corresponding to the new compression ratio to be used to reconstruct the new target data.

[0009] In an exemplary embodiment of the first aspect, the instructions, when executed by at least one processor, cause the apparatus to: send to a base station a decoder model structure, trained weights for the decoder, multiple compression rates and the number of blocks required for execution at each compression rate to enable the base station to configure the decoder model and decompress the target data; and receive from the base station an indication of the compression rate used.

[0010] In an exemplary embodiment of the first aspect, the instructions, when executed by at least one processor, cause the apparatus to obtain target data to be compressed, compress the target data using a compression block of an encoder corresponding to the compression ratio used to provide compressed target data, and transmit the compressed target data to a base station.

[0011] In an exemplary embodiment of the first aspect, the instructions, when executed by the at least one processor, cause the apparatus to receive from a base station an indication of a new compression ratio to be used; obtain new target data to be compressed; compress the new target data using a compression block of an encoder corresponding to the new compression ratio to be used to provide new compressed target data; and transmit the new compressed target data to the base station.

[0012] According to a second aspect, a method includes obtaining training data; obtaining a plurality of compression ratios; and providing an incrementally growing autoencoder based on the training data by progressively training a compression block of an encoder of the autoencoder and a reconstruction block of a decoder of the autoencoder, training a first block of the encoder and a last block of the decoder to provide a first compression ratio of the plurality of compression ratios, and then progressively training the remaining compression blocks of the encoder and the remaining reconstruction blocks of the decoder to provide respective remaining compression ratios of the plurality of compression ratios.

[0013] Many of the attendant features will be more readily appreciated as the same becomes better understood by reference to the following detailed description considered in connection with the accompanying drawings.

[0014] The accompanying drawings, which are included to provide a further understanding of the exemplary embodiments and constitute a part of this specification, illustrate exemplary embodiments and, together with the description, aid in understanding the exemplary embodiments. [Brief explanation of the drawings]

[0015] [Figure 1] FIG. 1 illustrates an example method according to an exemplary embodiment. [Figure 2A] FIG. 1 illustrates block-wise incremental training of an autoencoder according to an example embodiment. [Figure 2B] FIG. 1 illustrates a fade in technique for an incremental growth autoencoder according to an example embodiment. [Figure 3] FIG. 1 illustrates an example method according to an exemplary embodiment. [Figure 4] FIG. 1 illustrates an example method according to an exemplary embodiment. [Figure 5] FIG. 1 illustrates an example method according to an exemplary embodiment. [Figure 6] FIG. 1 illustrates an example method according to an exemplary embodiment. [Figure 7] FIG. 1 illustrates an example method according to an exemplary embodiment. [Figure 8] FIG. 1 illustrates an example method according to an exemplary embodiment. [Figure 9] FIG. 1 is a flow diagram according to an exemplary embodiment. [Figure 10] FIG. 1 is a flow diagram according to an exemplary embodiment. [Figure 11] FIG. 1 is a flow diagram according to an exemplary embodiment. [Figure 12] FIG. 1 is a flow diagram according to an exemplary embodiment. [Figure 13] FIG. 1 illustrates a communication system applying an incremental growth autoencoder framework according to an exemplary embodiment. [Figure 14] FIG. 1 illustrates an example of an apparatus configured to practice one or more exemplary embodiments. DETAILED DESCRIPTION OF THE INVENTION

[0016] Like references are used to designate like parts in the accompanying drawings.

[0017] Reference will now be made in detail to exemplary embodiments, examples of which are illustrated in the accompanying drawings. The detailed description provided below in connection with the accompanying drawings is intended as a description of the examples and is not intended to represent the only manner in which the examples may be constructed or utilized. The description sets forth functions of the examples and the sequence of steps for constructing and operating the examples. However, the same or equivalent functions and sequences may be accomplished by different examples.

[0018] 1 illustrates an example of a method according to an exemplary embodiment. The method can be implemented, for example, by a base station (BS), a user equipment (UE) of a cloud node.

[0019] At 100, training data is obtained. The training data includes, for example, at least one of channel state information (CSI) estimated by a UE, a set of valid compression ratios (CRs), and compressed CSI with all valid CRs.

[0020] At 102, a plurality of CRs are obtained. CR refers to the ratio of compressed size to uncompressed size. In an exemplary embodiment, the CRs may be arranged in a descending list (i.e., CR1>CR2>...CRn).

[0021] At 104, the autoencoder is incrementally trained, whereby the compression block of the encoder of the autoencoder and the reconstruction block of the decoder of the autoencoder are incrementally trained to provide an incrementally growing autoencoder based on the training data. The first block of the encoder and the last block of the decoder are trained to provide a first compression ratio of the multiple compression ratios. The remaining compression blocks of the encoder and the remaining reconstruction blocks of the decoder are then incrementally trained to provide each of the remaining compression ratios of the multiple compression ratios. In other words, the second block of the encoder and the penultimate block of the decoder are trained to provide a second compression ratio of the multiple compression ratios. This procedure continues until the last block of the encoder and the first block of the decoder are trained to provide the last compression ratio of the multiple compression ratios.

[0022] In an exemplary embodiment, when deploying an autoencoder, depending on the target CR, the UE uses the first B block of the encoder and the base station uses the last B block of the decoder, where B corresponds to the location of the target CR in the CR list.

[0023] In an exemplary embodiment, the autoencoder can be trained incrementally according to the following pseudocode:

[0024] Compression list CR_list=[CR1,CR2,...,CR N ] to initialize To support the CR_list, the encoder uses N blocks (C1, C2, ..., C N ) To support the CR_list, N blocks (R1, R2, ..., R N ) For i=1, N do Block C to the encoder i Add Block R in the decoder i Add Train the autoencoder Block C i and Block R i Freeze the trained parameters of End for

[0025] 2A illustrates block-by-block incremental training of an autoencoder according to an example embodiment. In this example, channel state information (CSI) 200 is compressed into codewords and reconstructed back into reconstructed CSI 216.

[0026] In the example illustrated in FIG. 2A, several compression blocks C1, C2, ..., Cn 202 and reconstruction blocks R1, R2, ..., Rn 214 are trained incrementally. This procedure may involve flattening 204, quantization 206, dequantization 210, and reshaping 212. After compression, a codeword 218 is provided. Each compression or reconstruction block may use only fully connected layers, only convolutional layers, a transformer model, or a combination of these layers. Each compression or reconstruction block may include one or more layers. While FIG. 2A illustrates a three-dimensional CSI input, e.g., a space-frequency-time CSI input, as an example, in other exemplary embodiments, the illustrated solution can operate with CSI of any dimension as input.

[0027] In an exemplary embodiment, the implementation of the discussed incrementally trained autoencoder may depend on, for example, the choice of bit / scalar / vector quantization and freezing or fine-tuning previously trained blocks in the training progression phase. If vector quantization is considered for quantizing the encoder output, it is necessary to define a specific set of quantization codewords at each stage of incremental training. In this case, all obtained quantization codebooks are shared with the UE, and the UE uses the appropriate codebook depending on the target CR.

[0028] In scalar quantization, fewer bits are used to represent each entry in the encoder output, and this includes uniform and non-uniform quantization methods. On the other hand, vector quantization considers the correlation between entries in the encoder output. In this approach, quantization error can be minimized by finding optimal quantization centers in a multidimensional space. In the illustrated solution, a different vector quantization block is needed for each stage of the training procedure.

[0029] FIG. 2B illustrates a fade-in technique for an incremental growth autoencoder according to an example embodiment.

[0030] At the ith stage of the incremental training procedure, the compression block Ci and the reconstruction block Ri are the target encoder and decoder training blocks. All already successfully trained encoder blocks {C1, C2, ..., Ci-1} and decoder blocks {R1, R2, ..., Ri-1} are a) Frozen, i.e. the weights of these blocks are not updated; b) have been fine-tuned, i.e., the weights of these blocks are part of the training procedure in the i-th stage.

[0031] Option a) guarantees the performance of the autoencoder for previous CRs while providing acceptable performance for the target CRi. However, this choice may lead to a degradation in performance compared to option b).

[0032] On the other hand, having all parameters in the training list in option b) may lead to severe performance degradation for previously trained CRs. After each training stage, it is necessary to evaluate the performance of the incrementally growing autoencoder for all previous {CRs, CR1, CR2, ..., CRi-1}. If the performance for any of the previous CRs is lacking, the ith stage of the training procedure needs to be repeated by following option a).

[0033] In the case of option b), a fade-in technique can be used to prevent a sudden shock to previously well-trained blocks. As illustrated in FIG. 2B, a weighted bypass branch is added to control the influence of the target block on the loss function, smoothly fading in the target block. At each stage of the training procedure, and during training of the target compressed block and the target restored block, α is gradually increased from 0 to 1 to smoothly fade in new blocks. In the example illustrated in FIG. 2B, we fade in blocks C2 and R2 in the ML model by gradually increasing α from 0 to 1.

[0034] 3 illustrates an example of a method according to an exemplary embodiment. The method may be performed by a terminal device, such as a user equipment (UE), wirelessly connected to a network device, such as a base station or a gNB.

[0035] At 300, the UE may receive the encoder model structure, the trained weights of the encoder, multiple compression ratios, and the number of compression blocks required for execution at each compression ratio. This information may be received from, for example, a base station, gNB, or cloud node that trained the autoencoder based on the incremental training procedure discussed in Figures 1, 2A, and 2B.

[0036] At 302, the UE may receive an indication of the compression rate to be used from the base station.

[0037] At 304, the UE may configure the encoder model based on the encoder model structure, the encoder's trained weights, multiple compression rates, and the number of compression blocks required for execution at each compression rate. The UE may then use the encoder to compress target data. Target data may include, for example, channel state information (CSI). In other exemplary embodiments, other types of data may also be used, such as image data or any other data that needs to be compressed by the UE and then decompressed / recovered by the gNB.

[0038] 4 illustrates an example of a method according to an exemplary embodiment, which may be implemented by a base station, e.g., a gNB.

[0039] At 400, the gNB may receive the decoder model structure, the decoder's trained weights, multiple compression ratios, and the number of reconstruction blocks required for execution at each compression ratio. This information may be received from, for example, a UE or cloud node that trained the autoencoder based on the incremental training procedure discussed in more detail in Figures 1, 2A, and 2B and their descriptions.

[0040] At 402, the gNB may configure a decoder model based on the decoder model structure, the decoder's trained weights, multiple compression ratios, and the number of reconstruction blocks required for execution at each compression ratio, after which the gNB can use the encoder to reconstruct the compressed target data.

[0041] At 404, the gNB may send an indication of the compression rate used to the UE.

[0042] The data of interest includes, for example, channel state information (CSI). In other exemplary embodiments, other types of data may also be used, such as image data or any other data that needs to be compressed by the UE and then decompressed / decompressed by the gNB.

[0043] 5 illustrates an example of a method according to an exemplary embodiment, which may be performed by a UE where the UE first trains the encoder and then the gNB trains the decoder.

[0044] At 500, the UE may receive multiple compression rates from the gNB.

[0045] At 502, the UE may obtain training data for training the encoder.

[0046] At 504, the UE may provide a progressive growth encoder based on the training data by progressively training compression blocks of the encoder, training a first block of the encoder to provide a first compression rate of the plurality of compression rates and then progressively training the remaining compression blocks of the encoder to provide respective remaining compression rates of the plurality of compression rates. This training was discussed in more detail in Figures 1, 2A, and 2B and their description.

[0047] At 506, the UE may transmit the encoder output shape and quantized output at each compression rate to the gNB.

[0048] The UE may transmit the target data for each training sample at each compression rate and its associated compressed target data to the base station at 508. Using the data transmitted in steps 506 and 508, the gNB can train a decoder.

[0049] 6 illustrates an example of a method according to an exemplary embodiment. The method may be performed by a gNB where the gNB trains the decoder first and then the UE trains the encoder.

[0050] At 600, the gNB may obtain training data.

[0051] At 602, the gNB may receive multiple compression rates from the UE.

[0052] At 604, the gNB may provide an incrementally growing decoder based on the training data by incrementally training reconstruction blocks of the decoder, training a last block of the decoder to provide a first compression rate of the plurality of compression rates, and then incrementally training the remaining reconstruction blocks of the decoder to provide each remaining compression rate of the plurality of compression rates. This training was discussed in more detail in Figures 1, 2A, and 2B and their description.

[0053] At 606, the gNB may transmit the decoder output shape and quantized output at each compression rate to the UE.

[0054] At 608, the gNB may transmit the target data for each training sample at each compression rate and its associated compressed target data to the UE. Using the data transmitted at steps 606 and 608, the UE can train the encoder.

[0055] 7 shows an example of a method according to an exemplary embodiment. The method may be performed by a gNB where the UE first trains the encoder and then the gNB trains the decoder.

[0056] At 700, the gNB may obtain multiple compression ratios.

[0057] At 702, the gNB may transmit multiple compression rates to the UE.

[0058] At 704, the gNB may receive first data from the UE, the first data including the encoder output shape and the quantized output at each compression rate.

[0059] At 706, the gNB may receive second data from the UE, the second data including the target data for each training sample at each compression rate and its associated compressed target data.

[0060] At 708, the gNB may provide a progressively growing decoder based on the first data and the second data by progressively training reconstruction blocks of the decoder to provide a first compression rate of the plurality of compression rates and then progressively training the remaining reconstruction blocks of the decoder to provide respective remaining compression rates of the plurality of compression rates. This training was discussed in more detail in Figures 1, 2A, and 2B and their description.

[0061] 8 shows an example of a method according to an exemplary embodiment. The method can be performed by a UE where the gNB trains the decoder first and then the UE trains the encoder.

[0062] At 800, the UE may obtain multiple compression rates.

[0063] At 802, the UE may transmit multiple compression rates to the gNB.

[0064] At 804, the UE may receive first data from the gNB, the first data including a decoder output shape and a quantized output at each compression rate.

[0065] At 806, the UE may receive second data from the gNB, the second data including target data for each training sample at each compression rate and its associated compressed target data.

[0066] At 808, the UE may provide a progressive growth encoder based on the first data and the second data by progressively training compression blocks of the encoder to provide a first compression rate of the plurality of compression rates and then progressively training the remaining compression rates of the encoder thereafter. This training was discussed in more detail in Figures 1, 2A, and 2B and their description.

[0067] Figure 9 shows a flow diagram according to an exemplary embodiment. Figure 9 illustrates an example in which the autoencoder is trained incrementally by a single entity, namely the gNB 900. In other words, both the encoder and decoder are trained incrementally on the gNB side.

[0068] The gNB is configured to collect 904 the training data necessary to train the autoencoder and train the autoencoder based on the training data at 906. At 908, the gNB 900 then transmits the encoder model structure and trained weights to the UE 902. In an example embodiment, if the network is trained incrementally, the gNB 900 may set Prog_Train=1 to inform the UE of the option of using a single network for different CRs. - Prog_Train=0 means that the ML model is trained at the traditional end to terminate the scheme for a fixed CR, which means that the network cannot be used for some CRs. - Prog_Train=1 means that progressive training is used for training the ML model, which supports some CRs.

[0069] At 910, the gNB 900 is configured to send a list of CRs and the number of blocks required to the UE 902. At 912, the gNB 900 is configured to send the trained weights of the encoder available for some of the CRs to the UE 902. At 914, the gNB 900 is configured to send an indication of the CR to be used to the UE 902. In an exemplary embodiment, the UE 902 may be configured to send an acknowledgement to the gNB 900 at 916. The acknowledgement confirms that the UE 902 has received all necessary information and is ready to use the encoder. The UE 902 can configure the encoder model using the received model structure and training weights. Instead of sending an explicit acknowledgement, the UE 902 can wait a predetermined time before using the encoder model.

[0070] The UE 902 may be configured to estimate channel state information (CSI) at 918 and compress the CSI using the first B blocks of the encoder at 920. The parameter B is defined by the applied CR. The UE 902 may be configured to transmit the compressed CSI to the gNB 900 at 922. The gNB 900 may be configured to recover the CSI using the last B blocks of the decoder at 924.

[0071] At some point, the gNB 900 may be configured to select a new CR from the list of CRs at 926. The gNB 900 is configured to send an indication of the new CR to be used to the UE 902 at 928. In an exemplary embodiment, the UE 902 may be configured to send an acknowledgement to the gNB 900 at 930. The acknowledgement confirms that the UE 902 has received all necessary information and is ready to use the encoder. Instead of sending an explicit acknowledgement, the UE 902 may wait a predetermined time before using the new CR to apply it. If, at any point, the gNB 900 decides to change the CR, the previously shared network can be used for the new CR, so there is no need to re-share the network and its weights. Thus, the gNB sends the new number of required encoder blocks B_New to the UE 902, and the UE 902 adapts the active part of the encoder accordingly.

[0072] The UE 902 may be configured to estimate the CSI at 932 and compress the CSI using the first B_New block of the encoder at 934. The parameter B_New is defined by the applied CR. At 936, the UE 902 may be configured to transmit the compressed CSI to the gNB 900. At 938, the gNB 900 may be configured to recover the CSI using the last B_New block of the decoder.

[0073] 9 illustrates an example of a gNB 900 training an autoencoder. In another exemplary embodiment, the autoencoder may be trained by a UE 902, and steps 904-912 may therefore be performed by the UE 902.

[0074] Figure 10 shows a flow diagram according to an example embodiment. Figure 10 illustrates an example in which both sides, i.e., the gNB 900 and the UE 902, are involved in progressive training. Training involves sharing information including CSI and codewords from the encoder side and backward gradients from the decoder side.

[0075] The gNB 900 is configured to determine a list of CRs at 1000 and transmit the CRs to the UE 902 at 1002. The US 902 is configured to transmit the encoder output shape for each CR at 1004. At 1006-1010, the gNB 900 and the UE 902 train the first block of the encoder and the last block of the decoder, respectively, by sharing the CSI, codewords, and backward gradients for each training sample. At 1012-1016, the gNB 900 and the UE 902 continue the procedure to incrementally train the remaining blocks of the autoencoder.

[0076] In an example embodiment, the UE 902 may be configured to send a grant to the gNB 900 at 1018. The grant confirms that the UE 902 has received all necessary information and is ready to use the encoder. Instead of sending an explicit grant, the UE 902 may wait a predetermined amount of time before using the encoder model. At 1020, the gNB 900 may be configured to send the CR to be used to the UE 902.

[0077] The UE 902 may be configured to estimate channel state information (CSI) at 1022 and compress the CSI using the first B blocks of the encoder at 1024. The parameter B is defined by the applied CR. The UE 902 may be configured to transmit the compressed CSI to the gNB 900 at 1026. The gNB 900 may be configured to recover the CSI using the last B blocks of the decoder at 1028.

[0078] At some point, the gNB 900 may be configured to select a new CR from the list of CRs at 1030. The gNB 900 is configured to send an indication of the new CR to be used to the UE 902 at 1032. In an exemplary embodiment, the UE 902 may be configured to send an acknowledgement to the gNB 900 at 1034. The acknowledgement confirms that the UE 902 has received all necessary information and is ready to use the encoder. Instead of sending an explicit acknowledgement, the UE 902 may wait a predetermined time before using the new CR to apply it. If, at any time, the gNB 900 decides to change the CR, the previously shared network can be used for the new CR, so there is no need to re-share the network and its weights. Therefore, the gNB sends the new number of required encoder blocks B_New to the UE 902, and the UE 902 adapts the active portion of the encoder accordingly.

[0079] The UE 902 may be configured to estimate the CSI at 1036 and compress the CSI using the first B_New block of the encoder at 1038. The parameter B_New is defined by the applied CR. The UE 902 may be configured to transmit the compressed CSI to the gNB 900 at 1040. The gNB 900 may be configured to recover the CSI using the last B_New block of the decoder at 1042.

[0080] Figure 11 shows a flow diagram according to an example embodiment. Figure 11 illustrates an example in which both sides, i.e., the gNB 900 and the UE 902, are involved in incremental training. The UE 902 is configured to train the encoder first, and the gNB 900 then trains the decoder.

[0081] The gNB 900 is configured to determine a list of CRs at 1100 and transmit the CRs to the UE 902 at 1102. In an example embodiment, if the network is trained progressively, the gNB 900 may set Prog_Train=1 to inform the UE 902 of the option to use a single network for different CRs. - Prog_Train=0 means that the ML model is trained at the conventional end to terminate the method for a fixed CR. This means that the network cannot be used for some CRs. - Prog_Train=1 means that progressive training is used for training the ML model, which supports some CRs.

[0082] At 1104, the UE 902 is configured to train the encoder based on the training data. The UE 902 is configured to transmit the encoder's output shape and quantization approach for each CR. At 1108, the UE 902 can be configured to transmit the training data (e.g., CSI and codewords) used to train the encoder with a given CR to the gNB 900 directly or via a remote server so that the gNB can download the same training data configured for decoder training. The training data can also correspond to different CRs.

[0083] At 1110, the gNB 900 may be configured to train the decoder based on the training data. In an exemplary embodiment, at 1112, the gNB 900 may be configured to send an acknowledgement to the UE 902. The acknowledgement confirms that the gNB 900 has received all necessary information and is ready to use the decoder. Instead of waiting for explicit acknowledgement, the UE 902 may wait a predetermined time before using the encoder model. At 1114, the gNB 900 may be configured to send a CR to be used to the UE 902.

[0084] The UE 902 may be configured to estimate channel state information (CSI) at 1116 and compress the CSI using the first B blocks of the encoder at 1118. The parameter B is defined by the applied CR. The UE 902 may be configured to transmit the compressed CSI to the gNB 900 at 1120. The gNB 900 may be configured to recover the CSI using the last B blocks of the decoder at 1122.

[0085] At some point, the gNB 900 may be configured to select a new CR from the list of CRs at 1124. The gNB 900 is configured to send an indication of the new CR to be used to the UE 902 at 1126. In an exemplary embodiment, the UE 902 may be configured to send an acknowledgement to the gNB 900 at 1128. The acknowledgement confirms that the UE 902 has received all necessary information and is ready to use the encoder. Instead of sending an explicit acknowledgement, the UE 902 may wait a predetermined time before using the new CR to apply it. If, at any time, the gNB 900 decides to change the CR, the previously shared network can be used for the new CR, so there is no need to re-share the network and its weights. Thus, the gNB sends the new number of required encoder blocks B_New to the UE 902, and the UE 902 adapts the active portion of the encoder accordingly.

[0086] The UE 902 may be configured to estimate CSI at 1130 and compress the CSI using the first B_New block of the encoder at 1132. The parameter B_New is defined by the applied CR. The UE 902 may be configured to transmit the compressed CSI to the gNB 900 at 1134. The gNB 900 may be configured to recover the CSI using the last B_New block of the decoder at 1136.

[0087] 11 illustrates an example where the encoder is trained first. In another exemplary embodiment, the decoder is trained first by the gNB 900.

[0088] Figure 12 shows a flow diagram according to an example embodiment. Figure 12 illustrates an example in which an autoencoder is trained incrementally by a single entity, namely, cloud node 1200. In other words, both the encoder and decoder are trained incrementally by cloud node 1200.

[0089] At 1202, cloud node 1200 is configured to collect training data necessary to train the autoencoder. At 1204, cloud node 1200 is configured to determine a list of CRs and train the autoencoder based on the training data at 1206. Cloud node 1200 then transmits the CRs to the gNB at 1208 and to the UE 902 at 1210. At 1212, cloud node 1200 is configured to transmit a decoder model structure and trained weights to the gNB 900. At 1214, cloud node 1200 is configured to transmit an encoder model structure and trained weights to the UE 902.

[0090] In an example embodiment, if the network is trained progressively, the cloud node 1200 may set Prog_Train=1 to inform the UE 902 of the option to use a single network for different CRs. - Prog_Train=0 means that the ML model is trained at the conventional end to terminate the method for a fixed CR. This means that the network cannot be used for some CRs. - Prog_Train=1 means that progressive training is used for training the ML model, which supports some CRs.

[0091] The parameter Prog_Train=1 may be sent to the UE 902 along with the CR at 1210.

[0092] At 1216, the gNB 900 is configured to send an indication of the new CR to be used to the UE 902. The UE 902 may be configured to estimate the CSI at 1218 and compress the CSI using the first B block of the encoder at 1220. The parameter B is defined by the applied CR. At 1222, the UE 902 may be configured to send the compressed CSI to the gNB 900. At 1224, the gNB 900 may be configured to recover the CSI using the last B block of the decoder.

[0093] At some point, the gNB 900 may be configured to select a new CR from the list of CRs at 1226. The gNB 900 is configured to send an indication of the new CR to be used to the UE 902 at 1228. In an exemplary embodiment, the UE 902 may be configured to send an acknowledgement to the gNB 900 at 1230. The acknowledgement confirms that the UE 902 has received all necessary information and is ready to use the encoder. Instead of sending an explicit acknowledgement, the UE 902 can wait a predetermined time before using the new CR to apply it. If, at any time, the gNB 900 decides to change the CR, the previously shared network can be used for the new CR, so there is no need to re-share the network and its weights. Thus, the gNB sends the new number of required encoder blocks B_New to the UE 902, and the UE 902 adapts the active portion of the encoder accordingly.

[0094] The UE 902 may be configured to estimate the CSI at 1232 and compress the CSI using the first B_New block of the encoder at 1234. The parameter B_New is defined by the applied CR. At 1236, the UE 902 may be configured to transmit the compressed CSI to the gNB 900. At 1238, the gNB 900 may be configured to recover the CSI using the last B_New block of the decoder.

[0095] FIG. 13 illustrates a communication system applying an incremental growth autoencoder framework according to an exemplary embodiment. For example, the communication system may include a UE 902 that may receive an applied compression rate (CR) 1302, e.g., from a base station (BS) 900. The UE 902 may also estimate downlink channel state information (CSI) 1300. As discussed in more detail in FIGS. 1, 2A, and 2B and their descriptions, an autoencoder may be incrementally trained, whereby a compression block of the encoder of the autoencoder and a reconstruction block of the decoder of the autoencoder are incrementally trained to provide an incremental growth autoencoder based on training data. The first block of the encoder and the last block of the decoder are trained to provide a first compression rate of the multiple compression rates. The remaining compression blocks of the encoder and the remaining reconstruction blocks of the decoder are then incrementally trained to provide respective remaining compression rates of the multiple compression rates. In other words, the second block of the encoder and the penultimate block of the decoder are trained to provide a second compression rate of the multiple compression rates. This procedure continues until the last block in the encoder and the first block in the decoder have been trained to provide the last of the multiple compression ratios.

[0096] The encoder 1304 may compress the CSI 1300 using the first B blocks of the encoder with an ML module 1306 to provide compressed CSI, i.e., codeword 1308. The parameter B is defined by the CR used. The codeword 1308 may be transmitted to the BS 900 via a transmitter 1310.

[0097] As shown, BS 900 may receive codeword 1308 via receiver 1312. BS 900 may include a decoder 1314 having an ML module 1316 for decompressing codeword 1308 and for generating a decompressed (or recovered) codeword, i.e., decompressed CSI 1318.

[0098] 14 illustrates an example of an apparatus 1400 configured to practice one or more exemplary embodiments. The apparatus 1400 may comprise, for example, a base station, a gNB, a terminal device, a user node, user equipment, a cloud node, or generally a device configured to perform the functions described herein. While the apparatus 1400 is illustrated as a single device, it will be appreciated that, wherever applicable, the functionality of the apparatus 1400 may be distributed across multiple devices.

[0099] The apparatus 1400 may comprise at least one processor 1402. The at least one processor 1402 may comprise, for example, one or more of various processing devices or processor circuitry, such as, for example, a coprocessor, a microprocessor, a controller, a digital signal processor (DSP), processing circuitry with or without an associated DSP, or various other processing devices including integrated circuits, such as, for example, an Application Specific Integrated Circuit (ASIC), a Field Programmable Gate Array (FPGA), a Microcontroller Unit (MCU), a hardware accelerator, a special purpose computer chip, or the like.

[0100] The apparatus 1400 may further comprise at least one memory 1404. The at least one memory 1404 may be configured to store, for example, computer program code, such as operating system software and application software. The at least one memory 1404 may comprise one or more volatile memory devices, one or more non-volatile memory devices, and / or a combination thereof. For example, the at least one memory 1404 may be embodied as a magnetic storage device (such as a hard disk drive, solid-state drive, or magnetic tape), a magneto-optical storage device, or a semiconductor memory (such as a masked ROM, a programmable ROM (PROM), an erasable ROM (EPROM), a flash ROM, or a random access memory (RAM)).

[0101] The device 1400 may further comprise a communication interface 1408 configured to enable the device 1400 to transmit and / or receive information to / from other devices. In one example, the device 1400 may use the communication interface 1408 to transmit or receive signaling information and data according to at least one data communication or cellular communication protocol. The communication interface 1408 may be configured to provide at least one wireless radio connection, such as a 3GPP® mobile broadband connection (e.g., 3G, 4G, 5G, 6G, etc.). The communication interface 1408 may comprise or be configured to couple to at least one antenna for transmitting and / or receiving radio frequency signals. One or more of the various types of connections may also be implemented as separate communication interfaces that may be coupled to or configured to couple to one or more of multiple antennas. The communication interface 1408 may comprise a receiver, a transmitter, or a transceiver.

[0102] When device 1400 is configured to perform a function, a component, and / or element of device 1400, for example, at least one processor 1402 and / or at least one memory 1404 may be configured to perform this function. Further, when at least one processor 1402 is configured to perform a function, this function may be implemented using program code 1406 included in at least one memory 1404, for example.

[0103] The functionality described herein may be implemented, at least in part, by one or more computer program product components, such as software components. According to an embodiment, an apparatus may include a processor or processor circuitry, e.g., a microcontroller, configured with program code that, when executed, performs embodiments of the operations and functionality described herein. Program code 1406 is provided as an example of instructions that, when executed by at least one processor 1402, cause an apparatus to be implemented. Alternatively, or additionally, the functionality described herein may be implemented, at least in part, by one or more hardware logic components. For example, without limitation, exemplary types of hardware logic components that may be used include field programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), application specific standard products (ASSPs), system-on-a-chip (SOCs), complex programmable logic devices (CPLDs), and graphics processing units (GPUs).

[0104] The apparatus 1400 may be configured to perform or cause the performance of any aspect of the methods described herein, e.g., functions performed by a UE or a gNB. Furthermore, a computer program may comprise instructions that, when executed, cause the apparatus to perform any aspect of the methods described herein. The computer program may be stored on a computer-readable medium. Furthermore, the apparatus 1400 may comprise means for performing any aspect of the methods described herein. In one example, the means may comprise at least one processor 1402 and at least one memory 1404 containing program code 1406 (instructions) that, when executed by the at least one processor 1402, cause the apparatus 1400 to perform the method. Generally, computer program instructions may be executed on a means providing general-purpose processing functionality. Thus, the method may be a computer-implemented, e.g., algorithm-based, executable by the general-purpose processing functionality, an example of which is the at least one processor 1402. The means may comprise transmitting means and / or receiving means, e.g., one or more wireless transmitters or wireless receivers, that may be coupled or configured to be coupled to one or more antennas or a transmitter or receiver of a wired communication interface.

[0105] One or more of the examples and exemplary embodiments discussed above may enable a solution that can be used for any ML structure, such as a fully connected network, a FullyConv, or a network with a mix of convolutional and fully connected layers. Furthermore, one or more of the examples and exemplary embodiments discussed above may enable a solution that allows more deep networks to move toward lower compression ratios (smaller feedback sizes), which helps ensure performance at small feedback sizes (low compression ratios). Furthermore, one or more of the examples and exemplary embodiments discussed above may enable a solution that ensures good training of all encoder and decoder layers, while conventional training of early layers of the encoder may face problems due to the vanishing gradient property of backpropagation.

[0106] Any range or device value given herein may be expanded or modified without losing its desired effect, and any embodiment may be combined with another embodiment unless expressly prohibited.

[0107] Although the subject matter has been described in language specific to structural features and / or acts, it should be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are disclosed as example ways of implementing the claims, and other equivalent features and acts are intended to be within the scope of the claims.

[0108] It is understood that the benefits and advantages described above may relate to one embodiment or may relate to several embodiments. Embodiments are not limited to those that solve any or all of the stated problems or that have any or all of the stated benefits and advantages. It is further understood that references to "an" item can refer to one or more of those items.

[0109] The steps or actions of the methods described herein may be carried out in any suitable order, or simultaneously where appropriate. In addition, individual blocks may be deleted from any of the methods without departing from the scope of the subject matter described herein. Aspects of any of the above-described embodiments may be combined with aspects of any of the other embodiments described to form further embodiments without losing the desired effect.

[0110] The term "comprising" is used herein to mean inclusive of the identified methods, blocks, or elements, but such blocks or elements do not comprise an exclusive list and a method or apparatus may include additional blocks or elements.

[0111] As used in this application, the term "circuitry" may refer to one or more or all of the following: (a) an implementation of circuitry solely in hardware (such as an implementation solely in analog and / or digital circuitry), (b) (where applicable) a combination of (i) analog and / or digital hardware circuitry with software / firmware, (ii) a combination of hardware circuitry and software, such as a hardware processor with software (including a digital signal processor), software, and any portion of memory that cooperate to cause a device such as a mobile phone or server to perform various functions, and (c) a hardware circuit and / or a processor, such as a microprocessor or portion of a microprocessor, that requires software (e.g., firmware) to operate, but the software may not be present when it is not needed for operation. This definition of circuitry applies to all uses of the term in this application, including within any claims.

[0112] It will be understood that the above description is provided by way of example only, and that various modifications may be made by those skilled in the art. The above specification, examples, and data provide a complete description of the structure and use of the exemplary embodiments. Although various embodiments have been described above with a degree of particularity, or with reference to one or more individual embodiments, those skilled in the art could make many modifications to the disclosed embodiments without departing from the scope of the present specification.

Claims

1. 1. An apparatus comprising: at least one processor; and at least one memory that stores instructions that, when executed by the at least one processor, cause the apparatus to: Obtaining training data; Obtaining multiple compression ratios; providing an incrementally growing autoencoder based on the training data by progressively training a compression block of an encoder of an autoencoder and a reconstruction block of a decoder of the autoencoder, training a first block of the encoder and a last block of the decoder to provide a first compression ratio of the plurality of compression ratios, and then progressively training the remaining compression blocks of the encoder and the remaining reconstruction blocks of the decoder to provide respective remaining compression ratios of the plurality of compression ratios; An apparatus for carrying out the above.

2. The instructions, when executed by the at least one processor, cause the device to: sending to the terminal device an encoder model structure, the trained weights of the encoder, the multiple compression rates, and the number of blocks required for execution at each compression rate to enable the terminal device to configure the encoder model and compress target data; selecting the compression ratio to be used; and transmitting to the terminal device an indication of the compression ratio used.

3. The instructions, when executed by the at least one processor, cause the device to: receiving compressed target data associated with the compression ratio to be used from the terminal device; and decompressing the compressed subject data using the reconstruction block of the decoder corresponding to the compression ratio used to reconstruct the subject data.

4. The instructions, when executed by the at least one processor, cause the device to: transmitting to the base station a decoder model structure, trained weights of the decoder, the plurality of compression rates, and the number of blocks required for execution at each compression rate to enable the base station to configure the decoder model and decompress the target data; and receiving from the base station an indication of the compression ratio to be used.

5. The instructions, when executed by the at least one processor, cause the device to: Obtaining data to be compressed; compressing the subject data using the compression block of the encoder corresponding to the compression ratio used to provide compressed subject data; and transmitting the compressed target data to the base station.

6. The instructions, when executed by the at least one processor, cause the device to: sending to the terminal device an encoder model structure, the encoder's trained weights, the multiple compression rates, and the number of blocks required for execution at each compression rate to enable the terminal device to configure the encoder model and compress target data; 10. The apparatus of claim 1, further comprising: transmitting to a base station a decoder model structure, the trained weights of the decoder, the plurality of compression rates, and the number of the required blocks for execution at each compression rate to enable the base station to configure a decoder model and decompress the target data.

7. 1. An apparatus comprising: at least one processor; and at least one memory that stores instructions that, when executed by the at least one processor, cause the apparatus to: receiving an encoder model structure, trained weights for the encoder, a number of compression ratios and the number of compression blocks required for implementation at each compression ratio; receiving an indication from a base station of the compression ratio to be used; configuring the encoder model based on the encoder model structure, the trained weights of the encoder, the multiple compression ratios and the number of compressed blocks required for implementation at each compression ratio; An apparatus for carrying out the above.

8. The instructions, when executed by the at least one processor, cause the device to: Obtaining data to be compressed; compressing the subject data using the compression block of the encoder corresponding to the compression ratio used to provide compressed subject data; and transmitting the compressed target data to the base station.

9. 1. An apparatus comprising: at least one processor; and at least one memory that stores instructions that, when executed by the at least one processor, cause the apparatus to: receiving a decoder model structure, trained weights for the decoder, a number of compression ratios and the number of reconstruction blocks required for implementation at each compression ratio; configuring the decoder model based on the decoder model structure, the trained weights of the decoder, the multiple compression ratios and the number of reconstruction blocks required for implementation at each compression ratio; sending an indication of the compression ratio used to the terminal device; An apparatus for carrying out the above.

10. The instructions, when executed by the at least one processor, cause the device to: receiving compressed target data associated with the compression ratio to be used from the terminal device; and decompressing the compressed subject data using the reconstruction block of the decoder that corresponds to the compression ratio used to reconstruct the subject data.

11. 1. An apparatus comprising: at least one processor; and at least one memory that stores instructions that, when executed by the at least one processor, cause the apparatus to: receiving a plurality of compression ratios from a base station; Obtaining training data; providing a progressive growth encoder based on the training data by progressively training compression blocks of an encoder, training a first block of the encoder to provide a first compression ratio of the plurality of compression ratios and then progressively training remaining compression blocks of the encoder to provide respective remaining compression ratios of the plurality of compression ratios; transmitting the encoder output shape and the quantized output at each compression rate to a base station; transmitting subject data for each training sample at each compression ratio and its associated compressed subject data to the base station; An apparatus for carrying out the above.

12. The instructions, when executed by the at least one processor, cause the device to: receiving an indication from the base station of the compression ratio to be used; Obtaining data to be compressed; compressing the subject data using the compression block of the encoder corresponding to the compression ratio used to provide compressed subject data; and transmitting the compressed target data to the base station.

13. 1. An apparatus comprising: at least one processor; and at least one memory that stores instructions that, when executed by the at least one processor, cause the apparatus to: Obtaining training data; receiving a plurality of compression ratios from a terminal device; providing a progressively growing decoder based on the training data by progressively training reconstruction blocks of a decoder, training a last block of the decoder to provide a first compression ratio of the plurality of compression ratios, and then progressively training the remaining reconstruction blocks of the decoder to provide respective remaining compression ratios of the plurality of compression ratios; transmitting the decoder output shape and the quantized output at each compression rate to a terminal device; transmitting the target data for each training sample at each compression ratio and its associated compressed target data to the terminal device; An apparatus for carrying out the above.

14. The instructions, when executed by the at least one processor, cause the device to: sending an indication of the compression ratio used to the terminal device; receiving compressed target data associated with the compression ratio to be used from the terminal device; and decompressing the compressed subject data using the reconstruction block of the decoder that corresponds to the compression ratio used to reconstruct the subject data.

15. 1. An apparatus comprising: at least one processor; and at least one memory that stores instructions that, when executed by the at least one processor, cause the apparatus to: Obtaining multiple compression ratios; transmitting the plurality of compression ratios to a terminal device; receiving first data from the terminal device, the first data including an encoder output shape and a quantized output at each compression ratio; receiving second data from the terminal device, the second data including subject data for each training sample at each compression ratio and its associated compressed subject data; providing a progressively growing decoder based on the first data and the second data by progressively training reconstruction blocks of a decoder, training a last reconstruction block of the decoder to provide a first compression ratio of the plurality of compression ratios and then progressively training the remaining reconstruction blocks of the decoder to provide respective remaining compression ratios of the plurality of compression ratios; An apparatus for carrying out the above.

16. The instructions, when executed by the at least one processor, cause the device to: sending an indication of the compression ratio used to the terminal device; receiving compressed target data associated with the compression ratio to be used from the terminal device; and decompressing the compressed subject data using the reconstruction block of the decoder that corresponds to the compression ratio used to reconstruct the subject data.

17. 1. An apparatus comprising: at least one processor; and at least one memory that stores instructions that, when executed by the at least one processor, cause the apparatus to: Obtaining multiple compression ratios; transmitting the plurality of compression ratios to a base station; receiving first data from the base station, the first data including a decoder output shape and a quantized output at each compression rate; receiving second data from the base station, the second data including target data for each training sample at each compression ratio and its associated compressed target data; providing a progressive growth encoder based on the first data and the second data by progressively training compression blocks of an encoder, training a first compression block of the encoder to provide a first compression ratio of the plurality of compression ratios and then progressively training remaining compression blocks of the encoder to provide respective remaining compression ratios of the plurality of compression ratios; An apparatus for carrying out the above.

18. The instructions, when executed by the at least one processor, cause the device to: receiving an indication from the base station of the compression ratio to be used; Obtaining data to be compressed; compressing the subject data using the compression block of the encoder corresponding to the compression ratio used to provide compressed subject data; and transmitting the compressed target data to the base station.

19. obtaining training data; obtaining a plurality of compression ratios; providing an incrementally growing autoencoder based on the training data by progressively training a compression block of an encoder of an autoencoder and a reconstruction block of a decoder of the autoencoder, training a first block of the encoder and a last block of the decoder to provide a first compression ratio of the plurality of compression ratios, and then progressively training the remaining compression blocks of the encoder and the remaining reconstruction blocks of the decoder to provide respective remaining compression ratios of the plurality of compression ratios; A method comprising:

20. receiving an encoder model structure, trained weights for the encoder, a number of compression ratios and the number of compression blocks required for implementation at each compression ratio; receiving an indication from a base station of the compression ratio to be used; configuring the encoder model based on the encoder model structure, the trained weights of the encoder, the multiple compression ratios and the number of compressed blocks required for implementation at each compression ratio; A method comprising:

21. receiving from a terminal device a decoder model structure, trained weights of the decoder, a number of compression ratios, and the number of reconstruction blocks required for implementation at each compression ratio; configuring the decoder model based on the decoder model structure, the trained weights of the decoder, the multiple compression ratios and the number of reconstruction blocks required for implementation at each compression ratio; sending an indication of the compression ratio used to the terminal device; A method comprising:

22. receiving a plurality of compression ratios from a base station; obtaining training data; providing a progressive growth encoder based on the training data by progressively training compression blocks of an encoder, training a first block of the encoder to provide a first compression ratio of the plurality of compression ratios and then progressively training the remaining compression blocks of the encoder to provide respective remaining compression ratios of the plurality of compression ratios; transmitting the encoder output shape and the quantized output at each compression ratio to a base station; transmitting target data for each training sample at each compression ratio and its associated compressed target data to the base station; A method comprising:

23. obtaining training data; receiving a plurality of compression ratios from a terminal device; providing an incrementally growing decoder based on the training data by progressively training reconstruction blocks of a decoder, training a last block of the decoder to provide a first compression ratio of the plurality of compression ratios, and then progressively training the remaining reconstruction blocks of the decoder to provide respective remaining compression ratios of the plurality of compression ratios; transmitting the decoder output shape and quantized output at each compression rate to a terminal device; transmitting the target data for each training sample at each compression ratio and its associated compressed target data to the terminal device; A method comprising:

24. obtaining a plurality of compression ratios; transmitting the plurality of compression ratios to a terminal device; receiving first data from a terminal device, the first data including an encoder output shape and a quantized output at each compression ratio; receiving second data from the terminal device, the second data including subject data for each training sample at each compression ratio and its associated compressed subject data; providing a progressively growing decoder based on the first data and the second data by progressively training reconstruction blocks of a decoder, training a last reconstruction block of the decoder to provide a first compression ratio of the plurality of compression ratios and then progressively training the remaining reconstruction blocks of the decoder to provide respective remaining compression ratios of the plurality of compression ratios; A method comprising:

25. obtaining a plurality of compression ratios; transmitting the plurality of compression ratios to a base station; receiving first data from the base station, the first data including a decoder output shape and a quantized output at each compression rate; receiving second data from the base station, the second data including target data for each training sample at each compression ratio and its associated compressed target data; providing a progressive growth encoder based on the first data and the second data by progressively training compression blocks of an encoder, training a first compression block of the encoder to provide a first compression ratio of the plurality of compression ratios and then progressively training remaining compression blocks of the encoder to provide respective remaining compression ratios of the plurality of compression ratios; A method comprising: