Method and node for cancelling PIM interference in a communications system
The method employs a neural network model with fully connected or binary hidden layers to efficiently cancel PIM interference in communications systems, addressing resource constraints and memory issues, and achieving effective real-time deployment in live radio access networks.
Patent Information
- Application Number
- PCT/EP2023/074047
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2023-09-01
- Publication Date
- 2025-03-06
AI Technical Summary
Current methods for cancelling Passive Intermodulation (PIM) interference in communications systems are inefficient, particularly in live radio access networks, due to high computational requirements, limited resource constraints, and large memory footprints of traditional PIM cancellation solutions.
A method and network node that utilize a neural network model with fully connected or binary hidden layers to determine a PIM signal, allowing for effective cancellation of PIM interference by subtracting the PIM signal from the receive signal, while employing model compression techniques to reduce computational complexity and memory requirements.
The proposed solution improves the efficiency of PIM cancellation, making it more feasible for real-time deployment in live radio access networks by reducing computational complexity, storage requirements, and memory footprint, while maintaining effective cancellation performance.
Smart Images

Figure EP2023074047_06032025_PF_FP_ABST
Abstract
Description
[0001] METHOD AND NODE FOR CANCELLING PIM INTERFERENCE IN A COMMUNICATIONS SYSTEM
[0002] TECHNICAL FIELD
[0003] The present disclosure relates generally to a network node, a method performed by the network node, a computer program product and a non-transitory computer-readable medium. More particularly, the present disclosure relates to cancelling Passive Intermodulation (PIM) interference in a communications system.
[0004] BACKGROUND
[0005] PIM is a common type of interference in radio access networks caused when transmitted signals pass through passive components which produces non-linear distortions to the signals. Examples of passive components that typically cause this behavior comprises poorly connected cables within the radio unit or rusty bolts in the vicinity of the radio unit. Other examples of a passive component that produces PIM interference are filter, duplexer, connector, antenna etc. The passive component that produces PIM interference may be internal within a network node or it may be externally located with respect to the network node. For example, PIM interference generated by a filter of the transmission (TX) radio chain in the network node may be referred to as internal PIM interference, whereas PIM interference generated by a metal fence on the roof top of a building, or even rusty bolts, in vicinity of a cell site may be referred to as external PIM interference. When the PIM produced by these passive components falls into the frequency band used for uplink communication it causes receiver sensitivity degradation leading to poor throughput and / or network performance. These passive components causing PIM interference may be referred to as a PIM source.
[0006] PIM interference may be mitigated by backing off transmitted signals in power or replacing the problematic passive components. PIM interference may also be reduced by scheduling the downlink and uplink carrier frequency in a clever way. However, such solutions are not always feasible. The most tractable solution is often to cancel the PIM interference directly from the uplink signals. This approach, known as PIM cancellation (PIMC), involves using the transmitted (Tx) signal(s) to build a model of non-linearity that impacts the received (Rx) signals. This non-linearity is then subtracted from the uplink signals to improve its signal to noise ratio.
[0007] Traditionally, memoryless polynomial models have been used for PIMC due to their computational efficiency and ability to cancel simple PIM signals well. More recently, Machine Learning (ML) approaches have been shown to have improved cancellation performance over memoryless polynomials, especially for higher complexity PIM signals. Artificial Neural Networks (NN) models also avoid any underlying assumptions about the type of PIM source or its location, which is another key advantage over traditional PIMC approaches.
[0008] Neural network solutions have shown improved cancellation performance over traditional non-ML methods. It is still challenging to deploy neural network PIMC in live networks as such deployments require highly performant models that exhibit low prediction latencies and handle high data throughputs. This challenge is compounded by the fact that PIMC is often executed on resource-constrained platforms where compute and memory resources are limited. In addition, the larger memory footprint and storage requirements of the neural network models in comparison to traditional PIMC solutions makes it difficult to update and transfer models into the radio units where PIMC is performed. An automated framework that can be used to efficiently train, compress, and optimize inference is essential to accomplish real time deployment of ML PIMC solutions.
[0009] Therefore, there is a strive to develop further improved technology relating to cancelling PIM interference.
[0010] SUMMARY
[0011] An object is to obviate at least one of the above disadvantages and to provide improved cancellation of PIM interference in a communication system.
[0012] According to a first aspect, the object is achieved by a method in performed by a network node for cancelling PIM interference in a communications system. The network node transmits a transmit signal. The network node determines a ML model by determining a neural network comprising layers. The layers comprise an input layer, a hidden layer and an output layer. The hidden layer is a fully connected layer or a binary layer. Each layer comprises one or more neurons. The network node determines a PIM signal based on the transmit signal before the ML model has been determined, and based on the ML model with the transmit signal as input signal to the ML model after the ML model has been determined. The network node receives a receive signal which is affected by the PIM interference. The network node cancels the PIM interference from the receive signal by subtracting the PIM signal from the receive signal.
[0013] According to a second aspect, the object is achieved by a network node for cancelling PIM interference in a communications system. The network node comprising a processing circuitry configured to transmit a transmit signal. The processing circuitry is configured to determine a ML model by determining neural network comprising layers. The layers comprise an input layer, a hidden layer and an output layer. The hidden layer is a fully connected layer or a binary layer. Each layer comprises one or more neurons. The processing circuitry is configured to determine a PIM signal based on the transmit signal before the ML model has been determined, and based on the ML model with the transmit signal as input signal to the ML model after the ML model has been determined. The processing circuitry is configured to receive a receive signal which is affected by the PIM interference, and to cancel the PIM interference from the receive signal by subtracting the PIM signal from the receive signal.
[0014] According to a third aspect, the object is achieved by a computer program product comprising program code for performing, when executed by a processing circuitry, the method of the first aspect.
[0015] According to a fourth aspect, the object is achieved by a non-transitory computer- readable storage medium comprising instructions, which when executed by a processing circuitry, cause the processing circuitry to perform the method of the first aspect.
[0016] Thanks to the ML model being determined by a neural network comprising a hidden layers that is a fully connected layer or a binary layer, a PIM signal may be determined that improves the cancellation of PIM interference in a communication system. The present disclosure herein affords many advantages, of which a non-exhaustive list of examples follows:
[0017] An advantage of the present disclosure is that it provides model compression techniques that reduce the computational complexity, storage requirements, and memory footprint of neural network models for PIMC.
[0018] Another advantage of the present disclosure is that the model inference provides an improved efficiency by the present disclosure and makes it more feasible to implement neural network PIMC in live radio access networks.
[0019] A further advantage of the present disclosure is that it can also be implemented in an automated pipeline that takes as input raw PIM-affected signals, trains computationally efficient ML models to cancel PIM from the signals, compresses those models to the smallest form possible without significant decreases in performance, and cancels PIM using the models to improve network performance.
[0020] Another advantage of the present disclosure is that users of the techniques can optionally decide how aggressive they want to be in their compression efforts. This comes in the form of user-controlled binary-to-dense layer ratios, sparsity grids, and pruning stopping criteria that can be adjusted depending on the user’s preference for high compression versus higher cancellation performance.
[0021] The present disclosure is not limited to the features and advantages mentioned above. A person skilled in the art will recognize additional features and advantages upon reading the following detailed description.
[0022] BRIEF DESCRIPTION OF THE DRAWINGS
[0023] The present disclosure will now be described in more detail by way of example only in the following detailed description by reference to the appended drawings in which:
[0024] Fig. 1 is a schematic block diagram illustrating a communications system. Fig. 2 is a schematic block diagram illustrating a communications system.
[0025] Fig. 3a is a schematic block diagram illustrating a network node.
[0026] Fig. 3b is a schematic block diagram illustrating a network node.
[0027] Fig. 4 is a flow chart illustrating a method.
[0028] Fig. 5 is a flow chart illustrating a method.
[0029] Fig. 6 is a block diagram illustrating an example of a general neural network architecture.
[0030] Fig. 7 is a graph illustrating PIM cancellation versus pruning sparsity.
[0031] Fig. 8 is a graph illustrating PIM cancellation versus number of neurons per layer.
[0032] Fig. 9 is a schematic drawing illustrating a generic neural network.
[0033] Fig. 10 is a schematic drawing illustrating forward pass.
[0034] Fig. 11 is a schematic drawing illustrating the neural network after the forward pass has been performed.
[0035] Fig. 12 is a schematic drawing the backward pass
[0036] Fig. 13 is a schematic drawing illustrating the neural network after the backward pass has been performed.
[0037] Fig. 14 is a flow chart illustrating a method.
[0038] Fig. 15a is a schematic drawing illustrating a network node.
[0039] Fig. 15b is a schematic drawing illustrating a network node.
[0040] Fig. 16 shows an example of a communication system.
[0041] Fig. 17 shows an example of a UE
[0042] Fig. 18 shows an example of a network node.
[0043] The drawings are not necessarily to scale, and the dimensions of certain features may have been exaggerated for the sake of clarity. Emphasis is instead placed upon illustrating the principle.
[0044] DETAILED DESCRIPTION
[0045] Fig. 1 depicts a non-limiting example of a communications system 100, which may be a wireless communications system, sometimes also referred to as a wireless communications network, cellular radio system, or cellular network, in which the present disclosure may be implemented. The communications system 100 may be a 5G system, 5G network, NR-U or Next Gen system or network. The communications system 100 may alternatively be a younger system or older system than a 5G system, such as e.g. a 2G system, a 3G system, a 4G system, a 6G system a 7G system etc. The communications system 100 may support other technologies such as, for example, Long-Term Evolution (LTE), LTE-Advanced / LTE-Advanced Pro, e.g. LTE Frequency Division Duplex (FDD), LTE Time Division Duplex (TDD), LTE Half-Duplex Frequency Division Duplex (HD-FDD), LTE operating in an unlicensed band, NB-loT. Thus, although terminology from 5G / NR and LTE may be used in this disclosure to exemplify, this should not be seen as limiting to only the aforementioned systems.
[0046] The communications system 100 comprises one or a plurality of network nodes, whereof a first network node 101a and a second network node 101b are depicted in the nonlimiting example of fig. 1. Any of the first network node 101a, and the second network node 101b may be a radio network node, such as a radio base station, or any other network node with similar features capable of serving a user equipment, such as a wireless device or a machine type communication device, in the communications system 100. The first network node 101a may be an eNB and the second network node 101b may be a gNB. The first network node 101a may be a first eNB, and the second network node 101b may be a second eNB. The first network node 101a may be a first gNB, and the second network node 101b may be a second gNB. The first network node 101a may be a MeNB and the second network node 101b may be a gNB. Any of the first network node 101a and the second network node 101b may be co-localized, or they may be part of the same network node. The first network node 101a may be referred to as a source node or source network node, whereas the second network node 101b may be referred to as a target node or target network node. When the reference number 101 is used herein without the letters a or b, it refers to a network node in general, i.e. it refers to any of the first network node 101a or second network node 101b.
[0047] The communications system 100 covers a geographical area which may be divided into cell areas, wherein each cell area may be served by a network node, although, one network node may serve one or several cells. In fig. 1 , the communications system 100 comprises a first cell 103a and a second cell 103b. Note that two cells are exemplified in fig. 1 only as an example, and that any n number of cells may be comprised in the communication system 100, where n is any positive integer. A cell is a geographical area where radio coverage is provided by the network node at a network node site. Each cell is identified by an identity within the local network node area, which is broadcast in the cell. In fig. 1, first network node 101a serves the first cell 103a, and the second network node 101b serves the second cell 103b. Any of the first network node 101a and the second network node 101b may be of different classes, such as, e.g., macro base station (BS), home BS or pico BS, based on transmission power and thereby also cell size. Any of the first network node 101a and the second network node 101b may be directly connected to one or more core networks, which are not depicted in fig. 1 for the sake of simplicity. Any of the first network node 101a and the second network node 101n may be a distributed node, such as a virtual node in the cloud, and it may perform its functions entirely on the cloud, or partially, in collaboration with another network node. The first cell 103a may be referred to as a source cell, whereas the second cell 103b may be referred to as a target cell. When the reference number 103 is used herein without the letters a or b, it refers to a cell in general, i.e. it refers to any of the first cell 103a or second cell 103b.
[0048] One or a plurality of UEs 105 is comprised in the communication system 100. Only one UE 105 is exemplified in fig. 1 for the sake of simplicity. A UE 105 may also be referred to simply as a device. The UE 105, e.g. an LTE UE or a 5G / NR UE, may be a wireless communication device which may also be known as e.g., a wireless device, a mobile terminal, wireless terminal and / or mobile station, a mobile telephone, cellular telephone, or laptop with wireless capability, just to mention some examples. The UE 105 may be a device by which a subscriber may access services offered by an operator’s network and services outside operator’s network to which the operator’s radio access network and core network provide access, e.g. access to the Internet. The UE 105 may be any device, mobile or stationary, enabled to communicate over a radio channel in the communications system 100, for instance but not limited to e.g. UE, mobile phone, smart phone, sensors, meters, vehicles, household appliances, medical appliances, media players, cameras, Machine to Machine (M2M) device, Internet of Things (IOT) device, terminal device, communication device or any type of consumer electronic, for instance but not limited to television, radio, lighting arrangements, tablet computer, laptop or Personal Computer (PC). The UE 105 may be portable, pocket storable, hand held, computer comprised, or vehicle mounted devices, enabled to communicate voice and / or data, via the radio access network, with another entity, such as another UE, a server, a laptop, a Personal Digital Assistant (PDA), or a tablet, Machine-to-Machine (M2M) device, device equipped with a wireless interface, such as a printer or a file storage device, modem, or any other radio network unit capable of communicating over a radio link in the communications system 100.
[0049] The UE 105 is enabled to communicate wirelessly within the communications system 100. The communication may be performed e.g. between two UEs 105, between a UE 105 and a regular telephone, between the UE 105 and a network node, between network nodes, and / or between the UE 105 and a server via the radio access network and possibly one or more core networks and possibly the internet.
[0050] The first network node 101a may be configured to communicate in the communications system 100 with the UE 105 over a first communication link 108a, e.g., a radio link. The second network node 101b may be configured to communicate in the communications system 100 with the UE 105 over a second communication link 108b, e.g., a radio link. The first network node 101a may be configured to communicate in the communications system 100 with the second network node 101b over a third communication link 108c, e.g., a radio link or a wired link, although communication over more links may be possible. When the reference number 108 is used herein without the letters a, b or c, it refers to a communication link in general, i.e. it refers to any of the first communication link 108a, the second communication link 108b and the third communication link 108c.
[0051] It should be noted that the communication links 108 in the communications system 100 may be of any suitable kind comprising either a wired or wireless link. The link may use any suitable protocol depending on type and level of layer (e.g. as indicated by the Open Systems Interconnection (OSI) model) as understood by the person skilled in the art.
[0052] Fig. 2 is a schematic drawing illustrating the communications system 100. Note that not all of the entities in fig. 1 are illustrated in fig. 2, but they may equally be present in the communication system 100 of fig. 2, but they are not illustrated for the sake of simplicity. Fig. 2 illustrates a network node 101, and this network node 101 may be any of the first network node 101a or the second network node 101b in fig. 1a.
[0053] Fig. 2 illustrates that the network node 101 may comprise a baseband unit 201. The baseband unit 201 may be a digital baseband unit. The base band unit 201 is connected to a Digital to Analogue Converter (DAC) 202 and to an Analogue to Digital Converter (ADC) 203. The DAC 202 is connected to a Tx radio chain 204 and the ADC 203 is connected to a Rx radio chain 205. The Tx radio chain 204 is connected to a Power Amplifier (PA) 206 and the Rx radio chain 205 is connected to a Low Noise Amplifier (LNA) 207. The PA 206 is connected to a Tx filter 208 and the LNA 207 is connected to a Rx filter 209. The Tx filter 208 and the Rx filter 209 are both configured to be connected to an antenna 210. The antenna 210 may be referred to as an antenna system. Note that even though the network node 101 in fig. 2 is exemplified to have one Tx radio chain 204 and one Rx radio chain 205, the network node 101 may equally have a plurality of Tx radio chains 204, a plurality of Rx radio chains 205 and a plurality of antennas 210.
[0054] Fig. 2 illustrates that the network node 101 is configured to transmit a Tx signal 213 and / or to receive a Rx signal 214.
[0055] Fig. 2 illustrates a PIM source 215. The PIM source 215 may be an external PIM source 215, e.g. it may be located externally to the network node 101, or it may be an internal PIM source 215 which may be located internally within the network node 101. Note that fig. 2 illustrates one PIM source 215 for the sake of simplicity, but the communication system 100 may comprise any n number of PIM sources 215, where n is a positive integer. Using other words, there may be one or multiple PIM sources 215. The PIM source 215 is the source of PIM interface. As exemplified earlier, the PIM source 215 may be described as a passive component configured to produce non-linear distortions to the signals, e.g. to the Tx signal 213 and / or the Rx signal 214. Examples of PIM sources 215 may be poorly connected cables within the network node 101, rusty bolts in the vicinity of the network node, filters, duplexers, connectors, antennas etc., just to mention some. Fig. 3a is a schematic block diagram illustrating the network node 101. In particular, it illustrates that the transmit signal and the receive signal are collected in a supervised ML data set 301 that is used for a ML trainer 303 of a non-linear machine learning model, without any actual PIM cancellation being performed. Accordingly, since a data set with PIM for different PIM source features may be retrieved, training of the non-linear machine learning model can be treated as a supervised time series regression problem. The overall approach is that a set of transmit signals and receive signals is used to train, and possibly finetune, the non-linear machine learning model. Each sample of the receive signal in the training dataset is considered as the label for the supervised time series regression problem. Training, or finetuning, of the non-linear machine learning model is performed in absence of PIM cancellation. This is to ensure that the receiver sensitivity is not degraded during the training, or finetuning, process. Once the training, or finetuning is complete, the nonlinear ML model is used to predict the PIM in the receive signal on a per sample basis. This is illustrated in the further block diagram of the network node 101 in Fig. 3b. In particular, in fig. 3b is illustrated that the transmit signal is fed into a ML predictor 305 for predicting the PIM and then in a subtractor 308 subtracting the predicted PIM from the receive signal, resulting in a cleaned Rx signal 310. From fig. 3a and 3b, it is clear that the main path of the Tx signal is not disturbed. The Tx signal is tapped, and the Rx path is cleaned through predicted PIM samples. Furthermore, all the modelling, inference and cancellation is happening on a sampled signal and not on the RF signals directly.
[0056] Fig. 4 is a flow chart illustrating a method. The method is performed by the network node 101. The present disclosure provides an automated framework for training and deploying computationally efficient neural network models for PIM cancellation. The present disclosure relies on a series of procedures that focus on optimizing the neural network models in terms of their computational complexity, memory footprint, and storage requirements while preserving their cancellation performance. The method comprises one or more of the following steps:
[0057] Step 401
[0058] The network node 101 transmits a downlink (DL) signal. The DL signal may be transmitted via the Tx radio chain 204. The DL signal may be received by for example another network node, a UE 105, multiple UEs 105 or any other receiver. The DL signal may be referred to as a transmit signal or a Tx signal.
[0059] Step 402
[0060] The network node 101 creates a ML model. The ML model may be created using one or more of the substeps 402a, 402b, 402c. Step 402 may comprise only step 402a, or it may comprise steps 402a and 402b, or it may comprise steps 402a and 402c, or it may comprise all three steps 402a, 402b and 402c. The ML model is used for cancelling the PIM.
[0061] Step 402 comprises to train the ML model. The training may be performed using a training data set, e.g. the supervised ML data set 301 as exemplified in fig. 3a. Training of the ML model may be an iterative step that may be performed multiple times, or it may be performed once. In order to find the optimal ML model, a variety of different models may be trained. Examples of the different may be binary-to-dense layer combinations, sparsity levels, etc. These models may be compared to identify the optimal ML model architecture given their cancellation versus compression trade-off.
[0062] The output of step 402 is the trained ML model that is ready to be used to cancel PIM.
[0063] Step 402a
[0064] The network node 101 creates a neural network. The neural network comprises layers, and the layers comprises the input layer, a hidden layer and an output layer. There may be one or more hidden layers. The one or more hidden layers may comprise only fully connected layers, only binary layers or a combination of fully connected layers and binary layers. A fully connected layer may be referred to as a regular layer. The different layers will be described in more detail later.
[0065] When step 402 comprises only substep 402a, i.e. it does not comprise steps 402b and 402c, then the ML model may be the trained neural network created in step 402a. The network node 101 may perform weight pruning. The weight pruning may be referred to as a first pruning. The weight pruning comprises removing the less influential connections. In the first pruning step, the weights of the incoming connections to the hidden and output layers are pruned. Since the input layer has no incoming connections, there are no weights there to prune. The weight pruning is performed on the weights of neurons of the hidden layer and the output layer, i.e. it is not performed on the input layer. The input of step 402b is the neural network from step 402a. The result or the output of the weight pruning may be referred to as a weight-pruned neural network. There may be different types of weight pruning, for example magnitude-based weight pruning, gradient-based weight pruning, sensitivity analysis-based weight pruning, weight and activation-based pruning etc., just to mention some. More details about the different weight pruning methods will be provided later. When steps 402 comprises the stubsteps 402a and 402b, i.e. it does not comprise 402c, then the ML model may be the trained weight-pruned network.
[0066] Step 402c
[0067] The network node 101 may perform a neuron pruning. In short, the neuron pruning comprises removing one or more neurons in any of the layers of the weight-pruned neural network from step 402b or the neural network from step 402a. Any of the layers refers to any of the input layer, the hidden layer and the output layer. The neuron pruning may be referred to as a second pruning. The input to the neuron pruning is the weight-pruned neural network from step 402b or the neural network from step 402a. The result or the output of the neuron pruning may be a weight- and neuron-pruned neural network or a neuron-pruned neural network. Consequently, the ML model may be a trained weight- and neuron-pruned neural network when step 402 comprises all three steps 402a, 402b and 402c. When step 402 comprises steps 402a and 402c, i.e. when it does not comprise step 402b, the ML model may be a trained neuron pruned neural network.
[0068] Step 403
[0069] The network node 101 determines a PIM signal. The first time the PIM signal is determined, it may use the transmitted DL signal from step 401 as input. The second and subsequent times the PIM signal is determined, the ML model is used to determine the PIM signal and with the transmitted DL signal from step 401 as input signal to the ML model. Thus, after the ML model has been determined in step 402, the PIM signal may be determined using the ML model with the transmitted DL signal as input signal. The PIM signal may be a PIM correction signal. The PIM signal may be an estimate of the PIM interference.
[0070] Step 404
[0071] The network node 101 receives an UL signal from the UE 105. The UL signal may be referred to as a receive signal or Rx signal. The UL signal may be received via the Rx radio chain 205. The Rx signal is affected by PIM interference.
[0072] Step 405
[0073] The network node 101 performs PIM interference cancelling, i.e. it removes the PIM interference from the UL signal from step 405 by subtracting the PIM signal from the UL signal. Thus, the UL signal is free from PIM interference.
[0074] The term pruning used herein refers to setting weights to zero and / or removing neurons from the neural network. The purpose of pruning is to remove less influential connections and neurone to make the model smaller at the cost slight performance degradation.
[0075] Fig. 5 is another flow chart illustrating the method. In particular, fig. 5 illustrates an example where the weight pruning comprises or is a magnitude-based weight pruning. Fig. 5 is illustrating some steps in the framework for training and deployment of computationally efficient neural network models for PIM cancellation.
[0076] Note that the description below is an example where all three steps 501 , 502 and 503 are preformed. Similar to fig. 4, not all of the steps 501 , 502 and 503 need to be performed. Only step 501 may be performed, steps 501 and 502 may be performed withtout step 503, steps 501 and 503 may be performed without step 502, or all three steps 501, 502 and 503 may be performed. Only an example where all three steps are performed is provided below for the sake of simplicity.
[0077] Step 501 This step corresponds to step 402 in fig. 4. Step 501 comprises to find an efficient ML PIMC architecture. This may be described as a first optimization which comes in the form of a unique neural network architecture that interlaces binary neural network layers with fully connected, i.e., dense, layers to reduce unnecessary computational, memory, and storage overhead. The output from step 501 is a neural network, i.e. an unpruned neural network.
[0078] An efficient ML PIMC architecture refers to the output models that have reduced computational complexity and storage requirements due to their reduced number of weights, neurons, and full-precision operations. These compressed models may make faster predictions and take up less storage space than their uncompressed counterparts, which makes them more efficient for deployment.
[0079] Step 501a
[0080] This step corresponds to step 402a in fig. 4. Step 501a may be a substep of step 501 . In step 501a, a ML PIMC base structure is determined.
[0081] Step 501b
[0082] This step corresponds to step 402a in fig. 4. Step 501b may be a substep of step 501 . In step 501b, different combinations of binary neural networks versus fully connected precision layers may be tested. Some examples of the combinations that may be tested are illustrated in fig. 6, which will be described in more detail later.
[0083] Step 501c
[0084] This step corresponds to step 402a in fig. 4. Step 501c may be a substep of step 501.
[0085] Step 501c comprises using an automated method to decide the optimal neural network configuration. Steps 501a, 501b and 501c may be seen as substeps of step 501. The output from step 501 is provided as input to step 502.
[0086] 502
[0087] This step corresponds to step 402b in fig. 4. Step 502 is performed after step 501 . In step 502, an automated model weight pruning, and architecture search is performed, i.e. a weight pruning or a first pruning. Step 502 may comprise finding the optimal binary-to- dense ratio, number of neurons per layer, total number of hidden layers, and weight sparsity per layer to discover the highest compression possible while preserving cancellation performance.
[0088] The output from step 502 may be a first pruned neural network or a weight-pruned network.
[0089] Step 502a
[0090] This step corresponds to step 402b in fig. 4. Step 502a may be a substep of step 502. In step 502a, the trained model is pruned for different sparsity levels. Note that step 502a may be different if the weight pruning is a weight gradient-based weight pruning, a sensitivity analysis-based weight pruning or a weight and activation-based pruning.
[0091] Step 502b
[0092] This step corresponds to step 402b in fig. 4. Step 502b may be a substep of step 502. In step 502b, an automated method is used to decide the optimal sparsity vs. performance. The output from step 502 is provided as input to step 503.
[0093] Step 503
[0094] This step corresponds to step 402c in fig. 4. Finally in step 503, a node removal algorithm is performed which comprises performing a soft neuron pruning algorithm. The term soft may refer to the fact that the step does not affect the predictions of the model, but rather removes neurons that have no bearing on the predicted output values of the neural network. The term soft may also or instead refer to software. This is since the neutron pruning algorithm is optimised on software level. As optimisations could be done on hardware level too.
[0095] In step 503, the high-sparsity models from step 502 are pruned further with a soft-neuron pruning approach that removes the parts of the computation graph that do not impact cancellation performance. Used in succession within a PIMC training pipeline, these methods provide significant improvements to prediction latency and make deployment on resource-constrained devices more feasible. Step 503 may be described as neuron pruning or a second pruning. The output from step 503 may be a weight- and neuron pruned neural network, and this may be the final or resulting ML model.
[0096] Note that steps 502, 502a, 502b and 503 may be different if the weight pruning is a weight gradient-based weight pruning, a sensitivity analysis-based weight pruning or a weight and activation-based pruning.
[0097] The term neural network will now be described in more detail.
[0098] A neural network may also be referred to as an artificial neurla network or simulated neural network. A neural network is a subset of ML. A neural network is trained based on training data in order to learn and improve its accuracy.
[0099] A neural network comprises three types of layers: input layer, one or more hidden layers and an output layer. The input layer receives input data from an external entity or system and passes the input data as raw data further into the hidden layers for further processing. The hidden layers may be described as an intermediate layer between the input layer and the output layer. The processing in the hidden layer is based on input data from the input layer. The term hidden may refer to that the layer does not have any connection to any external unit or system, i.e. no connection to the outside world. The output layer takes the processed data from the hidden layers and produces the final output data.
[0100] A layer compises one or more neurons, also referred to as nodes, and the neuron may be described as a computational unit. The neurons are connected to each other such that the output of one neuron may be the input of another. For each input value the neuron receives, it multiples the input value by a weight. All inputs have independent weights that are determined during the training process, i.e. the training of the ML model. After weights have been multiplied across each input value, all the weight*input terms are summed together into a single value. A bias term is added to that value and then passed to an activation function that determines how high or low the neuron’s output value will be, i.e. activated or not. In the hidden layer, a weight matrix is applied to the input data and an output is produced from an activation function
[0101] There are different types of hidden layers. One example of a hidden layer is a fully connected layer, also referred to as a regular layer or linear layer or a dense layer. In a fully connected layer, each input neuron is connected to each output neuron. In a fully connected layer, each neuron multiplies the input data with a weight and optionally adds a bias or threshold, i.e. the neuron applies a linear transformation to the input data through a weight. Another example of a hidden layer is a binary layer. In a binary layer, the weights are in binary values, i.e. +1 and -1. In a binary layer, both input activations and weights may be binary, i.e. they have the binary values +1 and -1.
[0102] A neural network may have any number of hidden layers, and each hidden layer may have any number of neurons. The weight in a hidden layer may have any suitable value. The value of the weight may depend on for example the precision used for the ML model. The hidden layers in a neural network may have the same or different number of neurons. For example, one layer may have 100 neurons and another layer may have 5 neurons. The sizes of the input layer, the hidden layer and output layer are all independent from one another. The input layer size is dependent on the number of input features that are used for the prediction. The input layer does not really comprise neurons at all, but rather the raw data values used for the prediction. The output layer’s number of neurons is dependent on the number of output values is to be predicted.
[0103] The three steps 501 , 502 and 503 in fig. 5 will now be described in more detail and continuing to use the magnitude-based weight pruning as an example of the weight pruning.
[0104] Step 501 : Efficient ML PIMC Architecture
[0105] As mentioned above, step 501 in fig. 5 corresponds to step 402a in fig. 4. Step 501 relates to finding an efficient ML PIMC architecture. Deployment of ML models in real time systems is challenging as the models are getting larger to be highly performant. These bigger ML models when deployed on the edge devices, need to be optimized for deployment due to resource constraints on these low complexity compute platforms. An edge device may be referred to as a radio unit.
[0106] In general, neural network models are universal approximators. A neural network is a type of ML model. For any function f(x), there may be a neural network model that may be approximated to converge into right results. This holds true for any number of inputs and outputs. Primarily to accomplish this, neural networks are over parameterized to learn and do this function approximation. This over parametrization, i.e. having more model parameters than required, may be leveraged and optimized to compose a model architecture that is computationally efficient.
[0107] For edge deployment cases it is necessary to make the ML models smaller and performant. For deployment of the present disclosure’s PIMC models effectively, a computationally efficient NN model architecture is used that comprises binary neural network (BNN) layers fused between the standard fully connected layers. In a binary neural network, the weights and activations are limited to 1 -bit values in the hidden layers. This simplifies computation to 1 bit which may be made more efficient using XNOR and pop-count operations. Besides binary neural network, the layers generate a lightweight representation that can save memory footprint in terms of storage and network bandwidth. Fig. 6 is a block diagram illustrating an example of a general neural network architecture and the process of switching out certain fully connected layers for binary counterparts. The left column of fig. 6 illustrates an example of a baseline model which comprises an input layer 601 , a number of hidden layers 603 and an output layer 605. The left column of fig. 6 illustrates an example with three hidden layers 603, i.e. a first hidden layer 603, a second hidden layer 603 and a third hidden layer 603. All three hidden layers 603 in the neural network of the left column are fully connected layers. The middle column of fig. 6 represents an example where one of the hidden layers 603 is binarized. The neural network in the middle column comprises an input layer 601, a first hidden layer 603, a second hidden layer 603, a third hidden layer 603 and an output layer 605. The first hidden layer 603 and the second hidden layer 603 are fully connected layers. The third hidden layer 603 is a binary layer. In the right column, the neural network comprises an input layer 601 , a first hidden layer 603, a second hidden layer 603, a third hidden layer 603 and an output layer 605. The first hidden layer 603 in the right column is a fully connected layer, and the second hidden layer 603 and the third hidden layer 603 are both binary layers. The reference number 603 is used when referring to a hidden layer irrespective of it being a fully connected layer or a binary layer, and irrespective of it being a first, second or third hidden layer. Thus, fig. 6 shows three different configurations of the neural network, the left column shows a neural network which comprises only fully connected layers and no binary layers, the middle column shows a neural network with two fully connected layers and one binary layer, and the right column shows a neural network with one fully connected layer and two binary layers. In addition to the hidden layers, each neural network comprises an input layer and an output layer.
[0108] In binary layers, both activations and weights are binary. The output from a binary layer is non-binary due to the summation of the product of activations and weights. It is important to understand which hidden layer needs to be fused as binary in the fully connected network, as binarizing the first hidden layer and last hidden layer may hurt the performance. In the present disclosure, there is a fusion of binary layers and fully connected layers in order to have an efficient ML model at the cost of low performance drop.
[0109] The final model configuration comprising layers, e.g. binary layers m number fully connected layers, only binary layers or only fully connected layers, may be decided using an automated method. Different combinations of fully connected layers and binary layers are initially tested. Then the final configuration of the neural network may be decided based on required model performance, i.e. referred to as cancellation performance herein, and target memory and compute requirement. This methodology is described below.
[0110] Step 502: Automated Model Weight Pruning & Architecture Search
[0111] Step 502 corresponds to step 402b in fig. 4. Step 502 may be referred to as a first pruning step or a weight pruning step. Step 502 may be an optional step.
[0112] In step 502, the weights of the hidden layer and the output layer are pruned. In the example of fig. 5, the magnitude-based weight pruning is used as an example. However, any other type of weight pruning may be equally applied, for example a gradient-based weight pruning, a sensitivity analysis-based weight pruning, a weight and activation-based pruning etc., just to mention some examples. Further details regarding this will be provided later.
[0113] In general, magnitude-based weight pruning comprises performing pruning based on the magnitude of the weight. This may be done for example by removing a weight by setting it to zero, by removing weights that are close to zero or that is zero. An aim for weight magnitude-based pruning is to gradually zero out weights during a training process, and this has the advantage of achieving model sparsity. Each neuron in the hidden layer and the output layer is associated with a weight. The neurons in the input layer are not associated with any weights.
[0114] The computational complexity, memory usage, and storage footprint of the neural network PIMC models discussed above may be further reduced by performing a weight pruning of the neural network. The weight pruning may be described as an unstructured pruning of the model weights.
[0115] In an example where the weight pruning is a magnitude-based weight pruning, it may comprise setting some number of weights in the trained neural network model from step 501 to zero, which reduces the amount of computation required within the neuron activation functions. The selection of weights to prune may be done by ranking the absolute values of the ML model’s weights and setting to zero the lowest X%, where X may vary depending on the desired level of weight sparsity in the pruned model. Higher values of X lead to higher rates of model compression and computation reduction but can also reduce the performance of the model on the task it was trained to perform. The selection of Xis a non-trivial problem that is oftentimes done through time-consuming trial-and-error experimentation by machine learning practitioners. X% may be described as a sparsity level. The sparsity level may be determined for the hidden layers and the output layers, but not for the input layer since it does not have any weight. The sparsity level for each hidden layer may be determined using an iterative method and cancellation performance comparisons. The sparsity level for each hidden layer may be determined using slope calculations or using a curve-fitting method which is described later.
[0116] Here, a method to automate the selection of X for pruning neural networks trained for PIMC is proposed. The method begins with a trained neural network for PIMC, e.g., the BNN model described in the previous section. This model is pruned using a grid of values for X to produce a grid of pruned models with varying sparsity levels. Note that the pruning can be done in either a one-shot approach, wherein the lowest X% of weights are set to zero at the same time, herein referred to as “constant” pruning, or iteratively such that the number of zeroed weights slowly increases to X% over a period of iterative pruning and re-training epochs, herein referred to as iterative pruning.
[0117] The PIM cancellation performance of each of the pruned models is then calculated on a hold-out validation data set. The cancellation performance (CdB) for a time series dataset of length ( / V) can be calculated using, for example, the following performance metric as in
[0118] , where y(ri) denotes the raw received signal at time step n and y(n) represents the modelled PIM component of the signal. This metric is setup such that higher cancellation values (CdB) represent cases where the model has more accurately modelled and cancelled the PIM that is present in the tested signal.
[0119] The cancellation of each pruned model on the hold-out validation set can be visualized as in fig. 7. Fig. 7 is a graph illustrating PIM cancellation versus pruning sparsity fraction for a single PIM source. The x-axis of fig. 7 represents sparsity and the y-axis of fig. 7 represents cancellation measured in decibel (db). The dashed lines denote the slope turn-over points used to select the optimal sparsity cut-off points at 0.6 for the constant pruning method (left dashed line) and 0.9 for the iterative pruning method (right dashed line). Each dot in fig. 7 represents a pruned model with a specific sparsity level. In this example, the grid of sparsity fractions S (where S =X / 100) tested was [0.0, 0.5, 0.6, 0.7, 0.8, 0.9, 0.95, 0.98], In this text, the curves shown in fig. 7 are referred to as cancellation-vs-sparsity curves. The left curve (darker color) represents constant pruning, and the right curve represents iterative pruning.
[0120] The final substep in our automated pruning approach in step 502 comprises calculating the slope of successive points along the cancellation-vs-sparsity curves. Here, the slope is defined as: where S2 & C2 are the sparsity fraction and cancellation performance, respectively, of the pruned model being tested while Si & Ci are the sparsity fraction and cancellation performance of the nearest model with a lower S value in the grid of sparsities tested.
[0121] Starting from the two lowest sparsity points in the sparsity grid, slopes are calculated until a stopping condition based on the magnitude of the current test slope is met. One example of the stopping condition could be m < -1 , but this is a user-defined parameter that is flexible depending on how conservative or aggressive the pruning should be conducted. Once the stopping condition is met, the model with the lower S value in the slope calculation is selected as the optimal model.
[0122] In the example presented in fig. 7, the first test slope calculation would involve the points at S2=0.5 and Si=0.0. With C2 being only slightly lower than Ci , the slope in this case would be close to zero. Since that slope does not meet the stopping condition of m < -1 , a new slope is calculated using the next pair of points in the cancellation-vs-sparsity curve. In this case, that would be the points at 82=0.6 and Si=0.5.
[0123] The dashed lines in fig. 7 denote the slopes that exceeded the stopping condition for tests using constant and iterative pruning. In this example, the stopping condition was met at S=0.6 for constant pruning and S=0.9 for iterative pruning. These slopes “turnover” points show the levels at which increased pruning results in significantly lower cancellation performance.
[0124] Two possible edge cases can be identified. Firstly, there is a possibility that the performance increases as the sparsity increases. This is because the sparsity, like dropout, can work as a regularization and increase the model’s generalization performance. This, however, was not observed for the PIMC use case and is in general more common for low sparsity levels, which was not as relevant to us. Secondly, to handle the case when the slope condition is not met but the cancellation performance goes slowly to zero, we can introduce a minimum cancellation performance condition which will stop the algorithm early.
[0125] When this approach is implemented as part of an ML PIMC model training pipeline, it may be a wish to start with a coarse grid of test sparsities to speed up the initial identification of the slope turn-over point. After the turn-over point is identified, however, a second round of the method can be applied using a fine-grained grid of test sparsities centered on the turn-over point identified in the first round of pruning. This approach helps ensure that the initial choice of sparsity grid does not prevent the discovery of the most optimal sparsity level.
[0126] This approach can also be applied to find the optimal number of binary neural network layers required in a fully connected layer model (binary-to-dense ratio). The binary neural network models are described above. Here the optimal number of Binary layers can be selected using the same slope approach. As the stopping condition may be set, when the cancellation performance degrades considerably for different binary layers in the network. For finding the optimal number of binary neural network layers, a gsimilar to fig. 7 may be used, but with the different that the graph is plotted for cancellation vs binary layers, instead of cancellation vs. sparsity in fig. 7. Based on the stopping condition, the optimal number of binary layers in the model can be selected in an automated way.
[0127] It is noted that this approach can also be applied layer-wise such that the sparsity of each hidden layer in the network is optimized individually using their own cancellation- vs-sparsity curves. This layer-wise approach allows different sparsity’s in each hidden layer, which can improve the cancellation performance for the same sparsity in the final model.
[0128] There may be another variation to the slope calculation that involves fitting a function, e.g., polynomial, exponential decay, to the points in the cancellation-vs-sparsity curve. The derivative of the fitted function can then be used to find the points where the stopping condition is met. The lowest sparsity point where the stopping condition is met is then selected as the optimal sparsity setting. The advantage of this approach is that it can be done in a single round of pruning and fitting as compared to the slope-based approach, which may require multiple pruning rounds.
[0129] The aforementioned methods can also be used to select the optimal number of layers and neurons per layer in a neural network based PIMC model architecture. In that case, instead of using the cancellation-vs-sparsity curve, one would use a cancellation-vs- complexity curve as shown in fig. 8. Fig. 8 illustrates PIM cancellation versus number of neurons per layer for a fully-connected neural network model with five hidden layers. The solid line with solid dots shows the performance of six different models where the number of neurons per layer was one of the following: [2, 4, 8, 16, 32, 64], The dashed line denotes the slope turn-over point used to select the optimal complexity cut-off point at 16 neurons per layer. The x-axis of fig. 8 represents a number of neurons per layer and the y-axis represents cancellation measured in dB. Some times the graph need not follow the same pattern. A similar graph as in fig. 8 may be used to optimise the number of neurons per layer for a neural network with binary layers as well. The actual shape of the curve may vary depending on the performance of the binary neural network, but the technique can still be applied. Note that this example in fig. 8 is also for a specific PIM case, so the exact shape of the curve will vary for each new case encountered, but the method can still be applied, however.
[0130] The term complexity in this case can be defined as, for example, the number of neurons per hidden layer, total number of hidden layers, total trainable parameters, etc. With that definition, one will typically see the cancellation performance steeply increase initially as the model complexity increases and then plateau as the models obtain enough capacity to fit the PIM accurately. Since this behavior is opposite to what is observed in the cancellation-vs-sparsity plots, to search for a slope turn-over point in cancellation-vs- complexity plots requires that the method begin at the highest complexities and move to lower complexities. Otherwise, the approach is the same as described above for sparsity turn-over points. In fig. 8, the slope turn-over point has been identified at 16 neurons per layer using the method described. In terms of implementing this approach in a PIMC pipeline, the order in which the cancellation-vs-complexity and cancellation-vs-sparsity optimization occurs is interchangeable. One advantage of performing the cancellation-vs-complexity optimization first is that the subsequent sparsity optimization would require fewer rounds of pruning since only one model architecture would need to be tested.
[0131] Step 503: Neuron Removal Algorithm
[0132] Step 503 corresponds to step 402c in fig. 4. Step 503 may be referred to as a second pruning step or a neuron pruning step. Step 503 may be an optional step.
[0133] In step 503, entire neurons from any layer may be removed, i.e. in the input layer, the hidden layer and the output layer. This is different from step 502 where only the hidden layer and the output layer are pruned.
[0134] A potential problem with the unstructured pruning method described in the previous section, i.e. step 502, may be its implementation. No latency reduction can be expected without some form of accelerator for sparse matrix multiplication. The network node 101 must still do all the Multiply-accumulate operations (MACs) even if the multiplication is times a zero weight.
[0135] One approach to reduce the number of computations may be to make the matrices denser by finding whole neurons that contribute little and remove them. This results in a dimensionally smaller but denser matrix that has fewer overall calculations.
[0136] To overcome the above, a two-step algorithm to identify and remove neurons non- destructively may be performed. The two steps will be referred to as the forward step and the backward step, where forward is in the direction from the input layer to the output layer and backward is in the direction from the output layer to the input layer. The forward step goes through and removes any neuron which has no incoming connections. Such a neuron only contributes with its bias, which may be compensated for in other parts of the neural network or fixed with short retraining at the end of the algorithm. The backward step goes in reverse from the output layer to the input layer. It identifies output activations from the previous layer that are never used by the next layer. These calculations are performed unnecessarily since the output will never contribute to the neural network output. The combination of these two steps may constitute an algorithm called soft neuron pruning since no information contributing to the neural network output is lost.
[0137] For this explanation, a simple dense neural network where columns of the weight matrix represent the weight for incoming connections to a single neuron may be assumed. A column with only zeros represents a neuron with no incoming connections, meaning the neuron’s output value will be constant and equal to the bias if used.
[0138] Fig. 9 is a schematic drawing illustrating a generic or original neural network after unstructured pruning but before Soft Neuron Pruning, i.e. after step 502 has been performed and before step 503 is performed. The neurons are illustrated as circles in fig. 8. The connections between the neurons are the non-zero weights. The rest of the weights can be assumed to be zero.
[0139] Starting with the forward pass, it begins at the first hidden layer and looks for neurons with no incoming connections from the input layer. If a column with only zeros is found, it may be removed from the weight matrix and the bias vector. However, the row of the subsequent weight matrix with a corresponding index may also be removed to ensure correct dimensionality. The process may be repeated for the next layer until the output layer is reached. Fig. 10 is a schematic drawing illustrating the forward pass. The black colored circles represent neurons that have been identified as having no incoming connections and can therefore be removed without loss of information. Fig. 11 is a schematic drawing illustrating the neural network after the forward pass has been performed. When comparing fig. 10 and fig. 11, the black colored circles in fig. 10 have been removed in fig. 11.
[0140] Once the forward pass is completed, the backward pass can be started. The backward pass starts at the output layer and looks at which outputs from the previous layer that are not used in this layer. Fig. 12 is a schematic drawing illustrating the backward pass. The grey colored circles represent the neurons that have been identified as having outputs that do not contribute to the next layer and can be removed.
[0141] A row of all zero weights represents a neuron in the previous layer with unused output. Therefore, the row may be removed from the weight matrix. The column with the same index from the previous weight matrix and bias vector may also be removed. Then the process works its way forward through the network, repeating the process until it gets to the input layer. Here it is possible to discover that one or more inputs into the network are never used, which can provide other useful insights into the network. Fig. 13 is a schematic drawing illustrating the neural network after the backward pass has been performed, i.e. after the complete soft neuron pruning step has been performed. As seen in fig. 13, input 2 has been removed, as illustrated with the strike through text, in addition to the grey colored neurons in fig. 12.
[0142] In this example network, the number of parameters, i.e. the number of neurons, has gone from 50 to 12 and one of the inputs has been shown to not contribute any information. That is a compression ratio of 4.2x.
[0143] The algorithm in step 503 may be summarized as (1) find and remove all neurons with no incoming connections going front to back through the neural network (forward pass) and (2) starting from the back, go forward though the neural network and remove any neurons which output is never used. (3) Retrain the neural network or keep track of the biases removed and add its contribution in a later layer of the neural network. One requirement for this method to work is the use of activation functions f (x) where: f (0) = 0
[0144] This is so that the effect of the bias is constant. Naturally, a neural network with higher sparsity has the potential for a greater compression ratio since it increases the chance of all-zero rows or columns. Additionally, hidden layers with significant size differences between activations and output dimensions will have a higher chance of all-zeros in the shorter dimension, as commonly found in output layers. If a higher compression ratio is required, the algorithm may be run again, but this time remove rows and columns with non-zero weights according to some metric and threshold. However, removing non-zero neurons may lead to a decline in the cancellation performance.
[0145] In one example, the number of neurons may be reduced by 35% by performing step 303.
[0146] The above may be summarized as follows:
[0147] The present disclosure relates to a ML Model Compression Framework for PIM Cancellation. It relates to an automated framework used for training and deploying efficient ML PIMC models. The present disclosure may comprise three parts.
[0148] A computationally efficient neural network architecture for PIM cancellation that may fuse standard fully connected neural network layers with binary neural network layers. This corresponds to step 501.
[0149] - An automated method to determine the optimal sparsity level of each neural network layer using iterative pruning experiments and cancellation performance comparisons. The approach comprises one variation that uses slope calculations and another that uses curve-fitting methods. The approach may also be applied to find the optimal number of neurons per layer, the total number of hidden layers, and the binary-to-dense ratio of layers in PIMC neural network models. This corresponds to step 502.
[0150] - A method to reduce computational requirements for weight-pruned neural network models by removing neurons from computation graph layer-wise in a non-destructive way. This corresponds to step 503.
[0151] Now, some more details regarding the weight pruning will be provided, i.e. step 402b in fig. 4 and step 502 in fig. 5. The weight pruning has been described above using the magnitude-based weight pruning is used as an example. A gradient weight-based pruning is another example of the weight pruning. In the gradient weight-based pruning, weights which have gradients below a weight threshold are assumed to have settled close to their resting values and can be pruned based on their magnitudes. As for the magnitude-based weight pruning, the gradient weight-based pruning may be performed iteratively. A sensitivity analysis-based weight pruning is a further example of weight pruning where a sensitivity analysis of the loss function is used to remove weights that have the smallest impact on performance, i.e. weights that have an impact below a performance threshold. A weight and activation-based pruning is yet another example of the weight pruning, and it comprises removing weights that have the smallest absolute value multiplied by their corresponding activation in the previous layer.
[0152] The method for cancelling PIM interference in a communications system 100 will now be described with reference to the flowchart depicted in fig. 14. The method may be referred to as an automated method. The method comprises the following steps, which steps may as well be carried out in another suitable order than described below:
[0153] Step 1401
[0154] The network node 101 transmits a transmit signal 213.
[0155] Step 1402
[0156] The network node 101 determines an ML model by performing one or more of steps 1402a, 1402b and 1402c. Step 1402 may comprise only step 1402a, or it may comprise both steps 1402a and 1402b, or it may comprise both steps 1402a and 1402c, or it may comprise all three steps 1402a, 1402b and 1402c.
[0157] The ML model may be trained using a training dataset associated with one or more different PIM sources 215.
[0158] Step 1402a
[0159] This step may be a substep of step 1402. This step corresponds to step 402a in fig. 4 and step 501 in fig. 5. The network node 101 determines a neural network. The neural network comprises layers. The layers comprise an input layer, a hidden layer and an output layer. The hidden layer is a fully connected layer or a binary layer. Each layer comprises one or more neurons. The output of step 1402a is a neural network. The neural network may comprise one hidden layer or the neural network may comprise multiple hidden layers. The multiple hidden layers may comprise n number of fully connected layers and m number of binary layers, where n is zero or a positive integer and m is zero or a positive integer.
[0160] The network node 101 may determine a number of hidden layers in the neural network. The number of hidden layers may be predetermined, or it may be determined using slope calculations or curve-fitting methods, or it may be determined using model complexity vs performance curves. The slope calculations or curve-fitting methods are described above with respect to the sparsity level but may equally be applied in determining the number of hidden layers in the neural network.
[0161] The network node 101 may determine a number of neurons for each hidden layer. The number of neurons for each hidden layer may be predetermined or it may be determined using slope calculations or curve-fitting methods, or it may be determined using model complexity vs performance curves. The slope calculations or curve-fitting methods are described above with respect to the sparsity level but may equally be applied in determining the number of neurons for each hidden layer.
[0162] The network node 101 may determine a binary-to-fully connected ratio of the hidden layers, i.e. the number of binary layers and the number of fully connected layers. The binary-to-fully connected ratio may be predetermined, or it may be determined using slope calculations or curve-fitting methods, or it may be determined using model complexity vs performance curves. The slope calculations or curve-fitting methods are described above with respect to the sparsity level but may equally be applied in determining the binary-to-fully connected ratio.
[0163] The ML model, i.e. the result of step 1402, may comprise the neural network determined in step 1402a when only step 1402a is performed, i.e. when steps 1402b and 1402c are not performed.
[0164] Step 1402b
[0165] This step may be a substep of step 1402. This step corresponds to step 402b in fig. 4 and step 502 in fig. 5. Step 1402b may be an optional step. The network node 101 may weight prune the weights of the hidden layer and the output layer. A result of the weight pruning is a weight- pruned neural network. The ML model, i.e. the result of step 1402, may comprise the weight- pruned network from step 1402b when both steps 1402a and 1402b are performed, i.e. when step 1402c is not performed. Step 1402b may be a first pruning.
[0166] The weight pruning may comprise one or more of:
[0167] • a magnitude-based weight pruning; and / or
[0168] • a gradient-based weight pruning; and / or
[0169] • a sensitivity analysis-based weight pruning; and / or
[0170] • a weight and activation-based pruning.
[0171] The magnitude-based weight pruning comprises one or more of the following: determining a sparsity level for a weight of each neuron in the hidden layer and the output layer; and / or ranking an absolute value of the sparsity level of each neuron; and / or setting the lowest X% of the ranked sparsity levels to zero, where X is a positive integer.
[0172] Sparsity level may be described as the % of the weights that are zero or close to zero. For the magnitude-based weight pruning, the pruning may be performed before determining the sparsity level for each layer. First, the network node 101 takes an unpruned model, i.e. from step 1402a, and prunes it to a grid of sparsity levels to create an array of new models with size equal to the sparsity grid. Secondly, the sparsity level, e.g. the optimal sparsity level, may be determined by looking at the performance of those different models.
[0173] The sparsity level may be determined using sparsity level for each hidden layer is determined based on model complexity vs performance curves. Model complexity may be for example a number of neurons per layer, total number of hidden layers, ratio of binary to fully connected layers, etc., just to mention some examples. Performance may be for example cancellation, mean-squared-error, etc., just to mention some examples. The sparsity level may be determined using slope calculations or using a curve-fitting method as described earlier.
[0174] Step 1402c This step may be a substep of step 1402. This step corresponds to step 402c in fig. 4 and step 503 in fig. 5. Step 1402c may be an optional step. The network node 101 may neuron prune by removing one or more neurons in any of the hidden layers of neural network from step 1402a or the weight-pruned neural network from step 1402b. The ML model, i.e. the result of step 1402, may comprises the neuron-pruned network from step 1402c when steps 1402a and 1402c are performed, or the weight- and neuron-pruned neural network when steps 1402a, 1402b and 1402c are performed. Step 1402c may be a second pruning or a soft pruning.
[0175] The network node 101 may remove one or more neurons with no incoming connection from a previous layer of the neural network are removed, which has been referred to as forward pass.
[0176] The network node 101 may remove one or more neurons with no outgoing connection to a subsequent layer of the neural network, which has been referred to as backward pass.
[0177] Step 1403
[0178] This step corresponds to step 403 in fig. 4. The network node 101 determines a PIM signal. The PIM signal is determined based on the transmit signal before the ML model has been determined. The PIM signal is determined based on the ML model with the transmit signal as input signal to the ML model after the ML model has been determined. Thus, the first time the PIM signal is determined and before the ML model is determined, then the PIM signal is determined based on the transmit signal. The second and subsequent times the PIM signal is determined, then the PIM signal is determined based on the ML model with the transmit signal as input signal to the ML model.
[0179] Step 1404
[0180] This step corresponds to step 404 in fig. 4. The network node 101 receives a receive signal 214 which is affected by the PIM interference.
[0181] Step 1405
[0182] This step corresponds to step 405 in fig. 4. The network node 101 cancels the PIM interference from the receive signal 214 by subtracting the PIM signal from the receive signal 214. The PIM interference may be caused by a PIM source 215 that is external or internal to the network node 101. Internal refers to when the PIM source 215 is located within the network node 101, i.e. it is located onboard the network node 101 , it is a component of the network node 101. External refers to when the PIM source 215 is located outside the network node 101, i.e. it is located offboard the network node 101, it is not a component of the network node 101.
[0183] To perform the method steps shown in fig. 4-14 for cancelling PIM interference in a communications system 100, the network node 101 may comprise an arrangement as shown in fig. 15a and / or fig. 15b. Figs. 15a and fig. 15b depict two different examples in panels a) and b), respectively, of the arrangement that the network node 101 may comprise. The network node 101 may comprise the following arrangement depicted in fig.15a.
[0184] The present disclosure associated with the network node 101 may be implemented through one or more processors, such as a processor 1501 in the network node 101 depicted in fig. 15a, together with computer program code for performing the functions and actions described herein. A processor, as used herein, may be understood to be a hardware component. The program code mentioned above may also be provided as a computer program product, for instance in the form of a data carrier carrying computer program code for performing the present disclosure when being loaded into the network node 101. One such carrier may be in the form of a CD ROM disc. It is however feasible with other data carriers such as a memory stick. The computer program code may be provided as pure program code on a server and downloaded to the network node 101.
[0185] The network node 101 may comprise a memory 1503 comprising one or more memory units. The memory 1503 is configured to be used to store obtained information, store data, configurations, schedulings, and applications etc. to perform the methods herein when being executed in the network node 101.
[0186] The network node 101 may receive information from, e.g., the UE 105, through a receiving port 1504. The receiving port 1501 may be, for example, connected to one or more antennas in network node 101. The network node 101 may receive information from another structure in the communications system 100 through the receiving port 1504. Since the receiving port 1504 may be in communication with the processor 1501 , the receiving port 1504 may then send the received information to the processor 1501. The receiving port 1504 may also be configured to receive other information.
[0187] The processor 1501 in the network node 101 may be configured to transmit or send information to e.g., the UE 105, or another structure in the communications system 100, through a sending port 1505, which may be in communication with the processor 1501 , and the memory 1503.
[0188] The network node 101 may comprise a transmitting module 1508, a determining module 1510, a weight pruning module 1513, a neuron pruning module 1515, a receiving module 1518, an interference cancelling module 1520, and other module(s) 1523 etc.
[0189] The network node 101 is configured to, e.g. by means of the transmitting module 1508 or a processing circuitry 1540, transmit a transmit signal 213. The reference number 1540 is illustrated in fig. 15b and will be described in more detail later. The transmitting module 1508 may also be referred to as a transmitting unit, a transmitting means, a transmitting circuit, means for transmitting, output unit etc. The transmitting module 1508 may be a transmitter, a transceiver etc. The transmitting module 1508 may be a wireless transmitter of the network node 101 of a wireless or fixed communications system. The transmitting module 1508 may be the sending port 1505 or comprised in the sending port 1505.
[0190] The network node 101 is configured to, e.g. by means of the determining module 1510, determine a ML model by performing steps 1402a, 1402b and 1402c. The ML model may be trained using a training dataset associated with one or more different PIM sources 215. The determining module 1510 may also be referred to as a determining unit, a determining means, a determining circuit, means for determining etc. The determining module 1510 may be a processor 1501 or the processing circuitry 1540 of the network node 101 or comprised in the processor 1501 or the processing circuitry 1540 of the network node 101. The network node 101 is configured to, e.g. by means of the determining module 1510, determine a neural network comprising layers. The layers comprise an input layer, a hidden layer and an output layer. The hidden layer is a fully connected layer or a binary layer. Each layer comprises one or more neurons. The ML model may comprise the neural network.
[0191] The neural network may comprise one hidden layer or the neural network may comprise multiple hidden layers. The multiple hidden layers may comprise n number of fully connected layers and m number of binary layers, where n is zero or a positive integer and m is zero or a positive integer.
[0192] The network node 101 may be configured to, e.g. by means of the determining module 1510, determine a number of hidden layers in the neural network.
[0193] The network node 101 may be configured to, e.g. by means of the determining module 1510, determine a number of neurons for each hidden layer.
[0194] The network node 101 may be configured to, e.g. by means of the determining module 1510, determine a binary-to-fully connected ratio of the hidden layers, i.e. the number of binary layers and the number of fully connected layers.
[0195] The network node 101 may be configured to, e.g. by means of the weight pruning module 1513, weight prune the weights of the hidden layer and the output layer. A result of the weight pruning is a weight-pruned neural network. The ML model may comprise the weight-pruned neural network.
[0196] The weight pruning may comprise one or more of:
[0197] • a magnitude-based weight pruning; and / or
[0198] • a gradient-based weight pruning; and / or
[0199] • a sensitivity analysis-based weight pruning; and / or
[0200] • a weight and activation-based pruning.
[0201] The magnitude-based weight pruning may comprise: determining a sparsity level for a weight of each neuron in the hidden layer and the output layer; ranking an absolute value of the sparsity level of each neuron; and setting the lowest X% of the ranked sparsity levels to zero, where X is a positive integer.
[0202] The weight pruning module 1513 may also be referred to as a weight pruning unit, a weight pruning means, a weight pruning circuit, means for weight pruning etc. The weight pruning module 1513 may be a processor 1501 or the processing circuitry 1540 of the network node 101 or comprised in the processor 1501 or the processing circuitry 1540 of the network node 101.
[0203] The network node 101 may be configured to, e.g. by means of the weight pruning module 1513, neuron pruning module 1515, neuron prune by removing one or more neurons in any of the hidden layers of the neural network or the weight-pruned neural network. The ML model may comprise the neuron-pruned network or the weight- and neuron-pruned neural network.
[0204] The network node 101 may be configured to, e.g. by means of the weight pruning module 1513, remove one or more neurons with no incoming connection from a previous layer of the neural network are removed, which has been referred to as forward pass.
[0205] The network node 101 may be configured to, e.g. by means of the neuron pruning module 1515, remove one or more neurons with no outgoing connection to a subsequent layer of the neural network, which has been referred to as backward pass. The neuron pruning module 1515 may also be referred to as a neuron pruning unit, a neuron pruning means, a neuron pruning circuit, means for neuron pruning etc. The neuron pruning module 1515 may be a processor 1501 or the processing circuitry 1540 of the network node 101 or comprised in the processor 1501 or the processing circuitry 1540 of the network node 101.
[0206] The network node 101 is configured to, e.g. by means of the determining module 1510, determine a PIM signal . The PIM signal is determined based on the transmit signal before the ML model has been determined. The PIM signal is determined based on the ML model with the transmit signal as input signal to the ML model after the ML model has been determined. Thus, the first time the PIM signal is determined and before the ML model is determined, then the PIM signal is determined based on the transmit signal. The second and subsequent times the PIM signal is determined, then the PIM signal is determined based on the ML model with the transmit signal as input signal to the ML model.
[0207] The network node 101 is configured to, e.g. by means of the receiving module 1518 or the processing circuitry 1540, receives a receive signal 214 which is affected by the PIM interference. The receiving module 1518 may also be referred to as a receiving unit, a receiving means, a receiving circuit, means for receiving, input unit etc. The receiving module 1518 may be a receiver, a transceiver etc. The receiving module 1518 may be a wireless receiving of the network node 101 of a wireless or fixed communications system. The receiving module 1508 may be the receiving port 1504 or comprised in the receiving port 1504.
[0208] The network node 101 is configured to, e.g. by means of the interference cancelling module 1520, cancels the PIM interference from the receive signal 214 by subtracting the PIM signal from the receive signal 214. The PIM interference may be caused by a PIM source 215 that is external or internal to the network node 101. The interference cancelling module 1520 may also be referred to as an interference cancelling unit, an interference cancelling means, an interference cancelling circuit, means for interference cancelling etc. The interference cancelling module 1520 may be a processor 1501 or the processing circuitry 1540 of the network node 101 or comprised in the processor 1501 or the processing circuitry 1540 of the network node 101.
[0209] A computer program product comprises program code for performing, when executed by a processing circuitry 1540 the method described herein.
[0210] A non-transitory computer-readable storage medium comprising instructions, which when executed by a processing circuitry 1540, cause the processing circuitry 1540 to perform the method described herein. Those skilled in the art will also appreciate that the transmitting module 1508, a determining module 1510, a weight pruning module 1513, a neuron pruning module 1515, a receiving module 1518, an interference cancelling module 1520, and other module(s) 1523 etc. described above may refer to a combination of analog and digital circuits, and / or one or more processors configured with software and / or firmware, e.g., stored in memory, that, when executed by the one or more processors such as the processor 2001, perform as described above. One or more of these processors, as well as the other digital hardware, may be comprised in a single Application-Specific Integrated Circuit (ASIC), or several processors and various digital hardware may be distributed among several separate components, whether individually packaged or assembled into a System-on-a-Chip (SoC).
[0211] Also, the different units 1508-1523 described above may be implemented as one or more applications running on one or more processors such as the processor 1501.
[0212] Thus, the methods described herein for the network node 101 may be respectively implemented by means of a computer program 1530 product, comprising instructions, i.e. , software code portions, which, when executed on at least one processor 1501, cause the at least one processor 1501 to carry out the actions described herein, as performed by the network node 101. The computer program 1530 product may be stored on a computer-readable storage medium 1533. The computer-readable storage medium 1533, having stored thereon the computer program 1530, may comprise instructions which, when executed on at least one processor 1501 , cause the at least one processor 1501 to carry out the actions described herein, as performed by the network node 101. The computer-readable storage medium 1533 may be a non- transitory computer-readable storage medium, such as a CD ROM disc, or a memory stick. The computer program 1530 product may be stored on a carrier containing the computer program 1530 just described, wherein the carrier is one of an electronic signal, optical signal, radio signal, or the second computer-readable storage medium 1533, as described above.
[0213] The network node 101 may comprise a communication interface configured to facilitate communications between the network node 101 and other nodes or devices, e.g., the UE 105, or another structure. The interface may, for example, comprise a transceiver configured to transmit and receive radio signals over an air interface in accordance with a suitable standard.
[0214] The network node 101 may comprise the following arrangement depicted in fig. 15b. The network node 101 may comprise a processing circuitry 1540, e.g., one or more processors such as the processor 1501, in the network node 101 and the memory 1503. The network node 101 may also comprise a radio circuitry 1543, which may comprise e.g., the receiving port 1504 and the sending port 1505. The processing circuitry 1540 may be configured to, or operable to, perform the method actions according to fig. 4-14 in a similar manner as that described in relation to fig. 15a. The radio circuitry 1543 may be configured to set up and maintain at least a wireless connection with the network node 101. Circuitry may be understood herein as a hardware component.
[0215] The network node 101 may be operative to operate in the communications system 100. The network node 101 may comprise the processing circuitry 1540 and the memory 1503. The memory 1503 comprises instructions executable by the processing circuitry 1540. The network node 101 is operative to perform the actions described herein in relation to the network node 101, e.g., in figs. 4-14.
[0216] Fig. 16 shows an example of a communication system 1600 in accordance with some embodiments. The communication system 1600 may be the same as the communication system 100 in fig. 1.
[0217] In the example, the communication system 1600 includes a telecommunication network 1602 that includes an access network 1604, such as a radio access network (RAN), and a core network 1606, which includes one or more core network nodes 1608. The access network 1604 includes one or more access network nodes, such as network nodes 1610a and 1610b (one or more of which may be generally referred to as network nodes 1610), or any other similar 3rdGeneration Partnership Project (3GPP) access nodes or non-3GPP access points. Moreover, as will be appreciated by those of skill in the art, a network node is not necessarily limited to an implementation in which a radio portion and a baseband portion are supplied and integrated by a single vendor. Thus, it will be understood that network nodes include disaggregated implementations or portions thereof. For example, in some embodiments, the telecommunication network 1602 includes one or more Open-RAN (ORAN) network nodes. An ORAN network node is a node in the telecommunication network 1602 that supports an ORAN specification (e.g., a specification published by the O-RAN Alliance, or any similar organization) and may operate alone or together with other nodes to implement one or more functionalities of any node in the telecommunication network 1602, including one or more network nodes 1610 and / or core network nodes 1608.
[0218] Examples of an ORAN network node include an open radio unit (0-Rll), an open distributed unit (0-Dll), an open central unit (O-CU), including an O-CU control plane (O- CLI-CP) or an O-CU user plane (O-CU-UP), a RAN intelligent controller (near-real time or non-real time) hosting software or software plug-ins, such as a near-real time control application (e.g., xApp) or a non-real time control application (e.g., rApp), or any combination thereof (the adjective “open” designating support of an ORAN specification). The network node may support a specification by, for example, supporting an interface defined by the ORAN specification, such as an A1 , F1 , W1, E1 , E2, X2, Xn interface, an open fronthaul user plane interface, or an open fronthaul management plane interface. Moreover, an ORAN access node may be a logical node in a physical node. Furthermore, an ORAN network node may be implemented in a virtualization environment (described further below) in which one or more network functions are virtualized. For example, the virtualization environment may include an O-Cloud computing platform orchestrated by a Service Management and Orchestration Framework via an O-2 interface defined by the O-RAN Alliance or comparable technologies. The network nodes 1610 facilitate direct or indirect connection of user equipment (UE), such as by connecting UEs 1612a, 1612b, 1612c, and 1612d (one or more of which may be generally referred to as UEs 1612) to the core network 1606 over one or more wireless connections.
[0219] Example wireless communications over a wireless connection include transmitting and / or receiving wireless signals using electromagnetic waves, radio waves, infrared waves, and / or other types of signals suitable for conveying information without the use of wires, cables, or other material conductors. Moreover, in different embodiments, the communication system 1600 may include any number of wired or wireless networks, network nodes, UEs, and / or any other components or systems that may facilitate or participate in the communication of data and / or signals whether via wired or wireless connections. The communication system 1600 may include and / or interface with any type of communication, telecommunication, data, cellular, radio network, and / or other similar type of system.
[0220] The UEs 1612 may be any of a wide variety of communication devices, including wireless devices arranged, configured, and / or operable to communicate wirelessly with the network nodes 1610 and other communication devices. Similarly, the network nodes 1610 are arranged, capable, configured, and / or operable to communicate directly or indirectly with the UEs 1612 and / or with other network nodes or equipment in the telecommunication network 1602 to enable and / or provide network access, such as wireless network access, and / or to perform other functions, such as administration in the telecommunication network 1602.
[0221] In the depicted example, the core network 1606 connects the network nodes 1610 to one or more hosts, such as host 166116. These connections may be direct or indirect via one or more intermediary networks or devices. In other examples, network nodes may be directly coupled to hosts. The core network 1606 includes one more core network nodes (e.g., core network node 1608) that are structured with hardware and software components. Features of these components may be substantially similar to those described with respect to the UEs, network nodes, and / or hosts, such that the descriptions thereof are generally applicable to the corresponding components of the core network node 1608. Example core network nodes include functions of one or more of a Mobile Switching Center (MSC), Mobility Management Entity (MME), Home Subscriber Server (HSS), Access and Mobility Management Function (AMF), Session Management Function (SMF), Authentication Server Function (AUSF), Subscription Identifier De-concealing function (SIDF), Unified Data Management (UDM), Security Edge Protection Proxy (SEPP), Network Exposure Function (NEF), and / or a User Plane Function (UPF). The host 1616 may be under the ownership or control of a service provider other than an operator or provider of the access network 1604 and / or the telecommunication network 1602, and may be operated by the service provider or on behalf of the service provider. The host 1616 may host a variety of applications to provide one or more service. Examples of such applications include live and pre-recorded audio / video content, data collection services such as retrieving and compiling data on various ambient conditions detected by a plurality of UEs, analytics functionality, social media, functions for controlling or otherwise interacting with remote devices, functions for an alarm and surveillance center, or any other such function performed by a server.
[0222] As a whole, the communication system 1600 of fig. 16 enables connectivity between the UEs, network nodes, and hosts. In that sense, the communication system may be configured to operate according to predefined rules or procedures, such as specific standards that include, but are not limited to: Global System for Mobile Communications (GSM); Universal Mobile Telecommunications System (UMTS); Long Term Evolution (LTE), and / or other suitable 2G, 3G, 4G, 5G standards, or any applicable future generation standard (e.g., 6G); wireless local area network (WLAN) standards, such as the Institute of Electrical and Electronics Engineers (IEEE) 802.11 standards (WiFi); and / or any other appropriate wireless communication standard, such as the Worldwide Interoperability for Microwave Access (WiMax), Bluetooth, Z-Wave, Near Field Communication (NFC) ZigBee, LiFi, and / or any low-power wide-area network (LPWAN) standards such as LoRa and Sigfox.
[0223] In some examples, the telecommunication network 1602 is a cellular network that implements 3GPP standardized features. Accordingly, the telecommunications network 1602 may support network slicing to provide different logical networks to different devices that are connected to the telecommunication network 1602. For example, the telecommunications network 1602 may provide Ultra Reliable Low Latency Communication (URLLC) services to some UEs, while providing Enhanced Mobile Broadband (eMBB) services to other UEs, and / or Massive Machine Type Communication (mMTC) / Massive loT services to yet further UEs. In some examples, the UEs 1612 are configured to transmit and / or receive information without direct human interaction. For instance, a UE may be designed to transmit information to the access network 1604 on a predetermined schedule, when triggered by an internal or external event, or in response to requests from the access network 1604. Additionally, a UE may be configured for operating in single- or multi-RAT or multistandard mode. For example, a UE may operate with any one or combination of Wi-Fi, NR (New Radio) and LTE, i.e. being configured for multi-radio dual connectivity (MR- DC), such as E-UTRAN (Evolved-UMTS Terrestrial Radio Access Network) New Radio - Dual Connectivity (EN-DC).
[0224] In the example, the hub 1614 communicates with the access network 1604 to facilitate indirect communication between one or more UEs (e.g., UE 1612c and / or 1612d) and network nodes (e.g., network node 1610b). In some examples, the hub 1614 may be a controller, router, content source and analytics, or any of the other communication devices described herein regarding UEs. For example, the hub 1614 may be a broadband router enabling access to the core network 1606 for the UEs. As another example, the hub 1614 may be a controller that sends commands or instructions to one or more actuators in the UEs. Commands or instructions may be received from the UEs, network nodes 1610, or by executable code, script, process, or other instructions in the hub 1614. As another example, the hub 1614 may be a data collector that acts as temporary storage for UE data and, in some embodiments, may perform analysis or other processing of the data. As another example, the hub 1614 may be a content source. For example, for a UE that is a VR headset, display, loudspeaker or other media delivery device, the hub 1614 may retrieve VR assets, video, audio, or other media or data related to sensory information via a network node, which the hub 1614 then provides to the UE either directly, after performing local processing, and / or after adding additional local content. In still another example, the hub 1614 acts as a proxy server or orchestrator for the UEs, in particular if one or more of the UEs are low energy loT devices.
[0225] The hub 1614 may have a constant / persistent or intermittent connection to the network node 1610b. The hub 1614 may also allow for a different communication scheme and / or schedule between the hub 1614 and UEs (e.g., UE 1612c and / or 1612d) , and between the hub 1614 and the core network 1606. In other examples, the hub 1614 is connected to the core network 1606 and / or one or more UEs via a wired connection. Moreover, the hub 1614 may be configured to connect to an M2M service provider over the access network 1604 and / or to another UE over a direct connection. In some scenarios, UEs may establish a wireless connection with the network nodes 1610 while still connected via the hub 1614 via a wired or wireless connection. In some embodiments, the hub 1614 may be a dedicated hub - that is, a hub whose primary function is to route communications to / from the UEs from / to the network node 1610b. In other embodiments, the hub 1614 may be a non-dedicated hub - that is, a device which is capable of operating to route communications between the UEs and network node 1610b, but which is additionally capable of operating as a communication start and / or end point for certain data channels.
[0226] Fig. 17 shows a UE 1700 in accordance with some embodiments. The UE 1700 may be the same as the UE 105 in fig. 1. As used herein, a UE refers to a device capable, configured, arranged and / or operable to communicate wirelessly with network nodes and / or other UEs. Examples of a UE include, but are not limited to, a smart phone, mobile phone, cell phone, voice over IP (VoIP) phone, wireless local loop phone, desktop computer, personal digital assistant (PDA), wireless cameras, gaming console or device, music storage device, playback appliance, wearable terminal device, wireless endpoint, mobile station, tablet, laptop, laptop-embedded equipment (LEE), laptopmounted equipment (LME), smart device, wireless customer-premise equipment (CPE), vehicle, vehicle-mounted or vehicle embedded / integrated wireless device, etc. Other examples include any UE identified by the 3rd Generation Partnership Project (3GPP), including a narrow band internet of things (NB-loT) UE, a machine type communication (MTC) UE, and / or an enhanced MTC (eMTC) UE.
[0227] A UE may support device-to-device (D2D) communication, for example by implementing a 3GPP standard for sidelink communication, Dedicated Short-Range Communication (DSRC), vehicle-to-vehicle (V2V), vehicle-to-infrastructure (V2I), or vehicle-to-everything (V2X). In other examples, a UE may not necessarily have a user in the sense of a human user who owns and / or operates the relevant device. Instead, a UE may represent a device that is intended for sale to, or operation by, a human user but which may not, or which may not initially, be associated with a specific human user (e.g., a smart sprinkler controller). Alternatively, a UE may represent a device that is not intended for sale to, or operation by, an end user but which may be associated with or operated for the benefit of a user (e.g., a smart power meter).
[0228] The UE 1700 includes processing circuitry 1702 that is operatively coupled via a bus 1704 to an input / output interface 1706, a power source 1708, a memory 1710, a communication interface 1712, and / or any other component, or any combination thereof. Certain UEs may utilize all or a subset of the components shown in fig. 17. The level of integration between the components may vary from one UE to another UE. Further, certain UEs may contain multiple instances of a component, such as multiple processors, memories, transceivers, transmitters, receivers, etc.
[0229] The processing circuitry 1702 is configured to process instructions and data and may be configured to implement any sequential state machine operative to execute instructions stored as machine-readable computer programs in the memory 1710. The processing circuitry 1702 may be implemented as one or more hardware-implemented state machines (e.g., in discrete logic, field-programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), etc.); programmable logic together with appropriate firmware; one or more stored computer programs, general-purpose processors, such as a microprocessor or digital signal processor (DSP), together with appropriate software; or any combination of the above. For example, the processing circuitry 1702 may include multiple central processing units (CPUs).
[0230] In the example, the input / output interface 1706 may be configured to provide an interface or interfaces to an input device, output device, or one or more input and / or output devices. Examples of an output device include a speaker, a sound card, a video card, a display, a monitor, a printer, an actuator, an emitter, a smartcard, another output device, or any combination thereof. An input device may allow a user to capture information into the UE 1700. Examples of an input device include a touch-sensitive or presence-sensitive display, a camera (e.g., a digital camera, a digital video camera, a web camera, etc.), a microphone, a sensor, a mouse, a trackball, a directional pad, a trackpad, a scroll wheel, a smartcard, and the like. The presence-sensitive display may include a capacitive or resistive touch sensor to sense input from a user. A sensor may be, for instance, an accelerometer, a gyroscope, a tilt sensor, a force sensor, a magnetometer, an optical sensor, a proximity sensor, a biometric sensor, etc., or any combination thereof. An output device may use the same type of interface port as an input device. For example, a Universal Serial Bus (USB) port may be used to provide an input device and an output device.
[0231] In some embodiments, the power source 1708 is structured as a battery or battery pack. Other types of power sources, such as an external power source (e.g., an electricity outlet), photovoltaic device, or power cell, may be used. The power source 1708 may further include power circuitry for delivering power from the power source 1708 itself, and / or an external power source, to the various parts of the UE 1700 via input circuitry or an interface such as an electrical power cable. Delivering power may be, for example, for charging of the power source 1708. Power circuitry may perform any formatting, converting, or other modification to the power from the power source 1708 to make the power suitable for the respective components of the UE 1700 to which power is supplied. The memory 1710 may be or be configured to include memory such as random access memory (RAM), read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), magnetic disks, optical disks, hard disks, removable cartridges, flash drives, and so forth. In one example, the memory 1710 includes one or more application programs 1714, such as an operating system, web browser application, a widget, gadget engine, or other application, and corresponding data 1716. The memory 1710 may store, for use by the UE 1700, any of a variety of various operating systems or combinations of operating systems.
[0232] The memory 1710 may be configured to include a number of physical drive units, such as redundant array of independent disks (RAID), flash memory, USB flash drive, external hard disk drive, thumb drive, pen drive, key drive, high-density digital versatile disc (HD- DVD) optical disc drive, internal hard disk drive, Blu-Ray optical disc drive, holographic digital data storage (HDDS) optical disc drive, external mini-dual in-line memory module (DIMM), synchronous dynamic random access memory (SDRAM), external micro-DIMM SDRAM, smartcard memory such as tamper resistant module in the form of a universal integrated circuit card (IIICC) including one or more subscriber identity modules (SIMs), such as a IISIM and / or ISIM, other memory, or any combination thereof. The IIICC may for example be an embedded IIICC (elllCC), integrated IIICC (illlCC) or a removable IIICC commonly known as ‘SIM card.’ The memory 1710 may allow the UE 1700 to access instructions, application programs and the like, stored on transitory or non- transitory memory media, to off-load data, or to upload data. An article of manufacture, such as one utilizing a communication system may be tangibly embodied as or in the memory 1710, which may be or comprise a device-readable storage medium.
[0233] The processing circuitry 1702 may be configured to communicate with an access network or other network using the communication interface 1712. The communication interface 1712 may comprise one or more communication subsystems and may include or be communicatively coupled to an antenna 1722. The communication interface 1712 may include one or more transceivers used to communicate, such as by communicating with one or more remote transceivers of another device capable of wireless communication (e.g., another UE or a network node in an access network). Each transceiver may include a transmitter 1718 and / or a receiver 1720 appropriate to provide network communications (e.g., optical, electrical, frequency allocations, and so forth). Moreover, the transmitter 1718 and receiver 1720 may be coupled to one or more antennas (e.g., antenna 1722) and may share circuit components, software or firmware, or alternatively be implemented separately.
[0234] In the illustrated embodiment, communication functions of the communication interface 1712 may include cellular communication, Wi-Fi communication, LPWAN communication, data communication, voice communication, multimedia communication, short-range communications such as Bluetooth, near-field communication, locationbased communication such as the use of the global positioning system (GPS) to determine a location, another like communication function, or any combination thereof. Communications may be implemented in according to one or more communication protocols and / or standards, such as IEEE 802.11, Code Division Multiplexing Access (CDMA), Wideband Code Division Multiple Access (WCDMA), GSM, LTE, New Radio (NR), UMTS, WiMax, Ethernet, transmission control protocol / internet protocol (TCP / IP), synchronous optical networking (SONET), Asynchronous Transfer Mode (ATM), QIIIC, Hypertext Transfer Protocol (HTTP), and so forth.
[0235] Regardless of the type of sensor, a UE may provide an output of data captured by its sensors, through its communication interface 1712, via a wireless connection to a network node. Data captured by sensors of a UE can be communicated through a wireless connection to a network node via another UE. The output may be periodic (e.g., once every 15 minutes if it reports the sensed temperature), random (e.g., to even out the load from reporting from several sensors), in response to a triggering event (e.g., when moisture is detected an alert is sent), in response to a request (e.g., a user initiated request), or a continuous stream (e.g., a live video feed of a patient).
[0236] As another example, a UE comprises an actuator, a motor, or a switch, related to a communication interface configured to receive wireless input from a network node via a wireless connection. In response to the received wireless input the states of the actuator, the motor, or the switch may change. For example, the UE may comprise a motor that adjusts the control surfaces or rotors of a drone in flight according to the received input or to a robotic arm performing a medical procedure according to the received input.
[0237] A UE, when in the form of an Internet of Things (loT) device, may be a device for use in one or more application domains, these domains comprising, but not limited to, city wearable technology, extended industrial application and healthcare. Non-limiting examples of such an loT device are a device which is or which is embedded in: a connected refrigerator or freezer, a TV, a connected lighting device, an electricity meter, a robot vacuum cleaner, a voice controlled smart speaker, a home security camera, a motion detector, a thermostat, a smoke detector, a door / window sensor, a flood / moisture sensor, an electrical door lock, a connected doorbell, an air conditioning system like a heat pump, an autonomous vehicle, a surveillance system, a weather monitoring device, a vehicle parking monitoring device, an electric vehicle charging station, a smart watch, a fitness tracker, a head-mounted display for Augmented Reality (AR) or Virtual Reality (VR), a wearable for tactile augmentation or sensory enhancement, a water sprinkler, an animal- or item-tracking device, a sensor for monitoring a plant or animal, an industrial robot, an Unmanned Aerial Vehicle (UAV), and any kind of medical device, like a heart rate monitor or a remote controlled surgical robot. A UE in the form of an loT device comprises circuitry and / or software in dependence of the intended application of the loT device in addition to other components as described in relation to the UE 1700 shown in fig. 17.
[0238] As yet another specific example, in an loT scenario, a UE may represent a machine or other device that performs monitoring and / or measurements, and transmits the results of such monitoring and / or measurements to another UE and / or a network node. The UE may in this case be an M2M device, which may in a 3GPP context be referred to as an MTC device. As one particular example, the UE may implement the 3GPP NB-loT standard. In other scenarios, a UE may represent a vehicle, such as a car, a bus, a truck, a ship and an airplane, or other equipment that is capable of monitoring and / or reporting on its operational status or other functions associated with its operation.
[0239] In practice, any number of UEs may be used together with respect to a single use case. For example, a first UE might be or be integrated in a drone and provide the drone’s speed information (obtained through a speed sensor) to a second UE that is a remote controller operating the drone. When the user makes changes from the remote controller, the first UE may adjust the throttle on the drone (e.g. by controlling an actuator) to increase or decrease the drone’s speed. The first and / or the second UE can also include more than one of the functionalities described above. For example, a UE might comprise the sensor and the actuator, and handle communication of data for both the speed sensor and the actuators.
[0240] Fig. 18 shows a network node 1800 in accordance with some embodiments. The network node 1800 in fig.18 may be the same as the network node 101 in fig. 1. As used herein, network node refers to equipment capable, configured, arranged and / or operable to communicate directly or indirectly with a UE and / or with other network nodes or equipment, in a telecommunication network. Examples of network nodes include, but are not limited to, access points (APs) (e.g., radio access points), base stations (BSs) (e.g., radio base stations, Node Bs, evolved Node Bs (eNBs) and NR NodeBs (gNBs)), O-RAN nodes or components of an O-RAN node (e.g., O-RU, O-DU, O-CU). Base stations may be categorized based on the amount of coverage they provide (or, stated differently, their transmit power level) and so, depending on the provided amount of coverage, may be referred to as femto base stations, pico base stations, micro base stations, or macro base stations. A base station may be a relay node or a relay donor node controlling a relay. A network node may also include one or more (or all) parts of a distributed radio base station such as centralized digital units, distributed units (e.g., in an O-RAN access node) and / or remote radio units (RRUs), sometimes referred to as Remote Radio Heads (RRHs). Such remote radio units may or may not be integrated with an antenna as an antenna integrated radio. Parts of a distributed radio base station may also be referred to as nodes in a distributed antenna system (DAS).
[0241] Other examples of network nodes include multiple transmission point (multi-TRP) 5G access nodes, multi-standard radio (MSR) equipment such as MSR BSs, network controllers such as radio network controllers (RNCs) or base station controllers (BSCs), base transceiver stations (BTSs), transmission points, transmission nodes, multi- cell / multicast coordination entities (MCEs), Operation and Maintenance (O&M) nodes, Operations Support System (OSS) nodes, Self-Organizing Network (SON) nodes, positioning nodes (e.g., Evolved Serving Mobile Location Centers (E-SMLCs)), and / or Minimization of Drive Tests (MDTs).
[0242] The network node 1800 includes a processing circuitry 1802, a memory 1804, a communication interface 1806, and a power source 1808. The network node 1800 may be composed of multiple physically separate components (e.g., a NodeB component and a RNC component, or a BTS component and a BSC component, etc.), which may each have their own respective components. In certain scenarios in which the network node 1800 comprises multiple separate components (e.g., BTS and BSC components), one or more of the separate components may be shared among several network nodes. For example, a single RNC may control multiple NodeBs. In such a scenario, each unique NodeB and RNC pair, may in some instances be considered a single separate network node. In some embodiments, the network node 1800 may be configured to support multiple radio access technologies (RATs). In such embodiments, some components may be duplicated (e.g., separate memory 1804 for different RATs) and some components may be reused (e.g., a same antenna 1810 may be shared by different RATs). The network node 1800 may also include multiple sets of the various illustrated components for different wireless technologies integrated into network node 1800, for example GSM, WCDMA, LTE, NR, WiFi, Zigbee, Z-wave, LoRaWAN, Radio Frequency Identification (RFID) or Bluetooth wireless technologies. These wireless technologies may be integrated into the same or different chip or set of chips and other components within network node 1800.
[0243] The processing circuitry 1802 may comprise a combination of one or more of a microprocessor, controller, microcontroller, central processing unit, digital signal processor, application-specific integrated circuit, field programmable gate array, or any other suitable computing device, resource, or combination of hardware, software and / or encoded logic operable to provide, either alone or in conjunction with other network node 1800 components, such as the memory 1804, to provide network node 1800 functionality.
[0244] In some embodiments, the processing circuitry 1802 includes a system on a chip (SOC). In some embodiments, the processing circuitry 1802 includes one or more of radio frequency (RF) transceiver circuitry 1812 and baseband processing circuitry 1814. In some embodiments, the radio frequency (RF) transceiver circuitry 1812 and the baseband processing circuitry 1814 may be on separate chips (or sets of chips), boards, or units, such as radio units and digital units. In alternative embodiments, part or all of RF transceiver circuitry 1812 and baseband processing circuitry 1814 may be on the same chip or set of chips, boards, or units.
[0245] The memory 1804 may comprise any form of volatile or non-volatile computer-readable memory including, without limitation, persistent storage, solid-state memory, remotely mounted memory, magnetic media, optical media, random access memory (RAM), readonly memory (ROM), mass storage media (for example, a hard disk), removable storage media (for example, a flash drive, a Compact Disk (CD) or a Digital Video Disk (DVD)), and / or any other volatile or non-volatile, non-transitory device-readable and / or computerexecutable memory devices that store information, data, and / or instructions that may be used by the processing circuitry 1802. The memory 1804 may store any suitable instructions, data, or information, including a computer program, software, an application including one or more of logic, rules, code, tables, and / or other instructions capable of being executed by the processing circuitry 1802 and utilized by the network node 1800. The memory 1804 may be used to store any calculations made by the processing circuitry 1802 and / or any data received via the communication interface 1806. In some embodiments, the processing circuitry 1802 and memory 1804 is integrated.
[0246] The communication interface 1806 is used in wired or wireless communication of signaling and / or data between a network node, access network, and / or UE. As illustrated, the communication interface 1806 comprises port(s) / terminal(s) 1816 to send and receive data, for example to and from a network over a wired connection. The communication interface 1806 also includes radio front-end circuitry 1818 that may be coupled to, or in certain embodiments a part of, the antenna 1810. Radio front-end circuitry 1818 comprises filters 1820 and amplifiers 1822. The radio front-end circuitry 1818 may be connected to an antenna 1810 and processing circuitry 1802. The radio front-end circuitry may be configured to condition signals communicated between antenna 1810 and processing circuitry 1802. The radio front-end circuitry 1818 may receive digital data that is to be sent out to other network nodes or UEs via a wireless connection. The radio front-end circuitry 1818 may convert the digital data into a radio signal having the appropriate channel and bandwidth parameters using a combination of filters 1820 and / or amplifiers 1822. The radio signal may then be transmitted via the antenna 1810. Similarly, when receiving data, the antenna 1810 may collect radio signals which are then converted into digital data by the radio front-end circuitry 1818. The digital data may be passed to the processing circuitry 1802. In other embodiments, the communication interface may comprise different components and / or different combinations of components.
[0247] In certain alternative embodiments, the network node 1800 does not include separate radio front-end circuitry 1818, instead, the processing circuitry 1802 includes radio frontend circuitry and is connected to the antenna 1810. Similarly, in some embodiments, all or some of the RF transceiver circuitry 1812 is part of the communication interface 1806. In still other embodiments, the communication interface 1806 includes one or more ports or terminals 16816, the radio front-end circuitry 1818, and the RF transceiver circuitry 1812, as part of a radio unit (not shown), and the communication interface 1806 communicates with the baseband processing circuitry 1814, which is part of a digital unit (not shown).
[0248] The antenna 1810 may include one or more antennas, or antenna arrays, configured to send and / or receive wireless signals. The antenna 1810 may be coupled to the radio front-end circuitry 1818 and may be any type of antenna capable of transmitting and receiving data and / or signals wirelessly. In certain embodiments, the antenna 1810 is separate from the network node 1800 and connectable to the network node 1800 through an interface or port.
[0249] The antenna 1810, communication interface 1806, and / or the processing circuitry 1802 may be configured to perform any receiving operations and / or certain obtaining operations described herein as being performed by the network node. Any information, data and / or signals may be received from a UE, another network node and / or any other network equipment. Similarly, the antenna 1810, the communication interface 1806, and / or the processing circuitry 1802 may be configured to perform any transmitting operations described herein as being performed by the network node. Any information, data and / or signals may be transmitted to a UE, another network node and / or any other network equipment.
[0250] The power source 1808 provides power to the various components of network node 1800 in a form suitable for the respective components (e.g., at a voltage and current level needed for each respective component). The power source 1808 may further comprise, or be coupled to, power management circuitry to supply the components of the network node 1800 with power for performing the functionality described herein. For example, the network node 1800 may be connectable to an external power source (e.g., the power grid, an electricity outlet) via an input circuitry or interface such as an electrical cable, whereby the external power source supplies power to power circuitry of the power source 1808. As a further example, the power source 1808 may comprise a source of power in the form of a battery or battery pack which is connected to, or integrated in, power circuitry. The battery may provide backup power should the external power source fail. Embodiments of the network node 1800 may include additional components beyond those shown in fig. 18 for providing certain aspects of the network node’s functionality, including any of the functionality described herein and / or any functionality necessary to support the subject matter described herein. For example, the network node 1800 may include user interface equipment to allow input of information into the network node 1800 and to allow output of information from the network node 1800. This may allow a user to perform diagnostic, maintenance, repair, and other administrative functions for the network node 1800.
[0251] Generally, all terms used herein are to be interpreted according to their ordinary meaning in the relevant technical field, unless a different meaning is clearly given and / or is implied from the context in which it is used. All references to a / an / the element, apparatus, component, means, step, etc. are to be interpreted openly as referring to at least one instance of the element, apparatus, component, means, step, etc., unless explicitly stated otherwise. The steps of any methods disclosed herein do not have to be performed in the exact order disclosed, unless a step is explicitly described as following or preceding another step and / or where it is implicit that a step must follow or precede another step.
[0252] In general, the usage of “first”, “second”, “third”, “fourth”, and / or “fifth” herein may be understood to be an arbitrary way to denote different elements or entities and may be understood to not confer a cumulative or chronological character to the nouns they modify, unless otherwise noted, based on context.
[0253] The present disclosure is not limited to the above. Various alternatives, modifications and equivalents may be used. Therefore, disclosure herein should not be taken as limiting the scope. A feature may be combined with one or more other features.
[0254] The term “at least one of A and B” should be understood to mean “only A, only B, or both A and B.”, where A and B are any parameter, number, indication used herein etc.
[0255] It should be emphasized that the term “comprises / comprising” when used in this specification is taken to specify the presence of stated features, integers, steps or components, but does not preclude the presence or addition of one or more other features, integers, steps, components or groups thereof. It should also be noted that the words “a” or “an” preceding an element do not exclude the presence of a plurality of such elements.
[0256] The term “configured to” used herein may also be referred to as “arranged to”, “adapted to”, “capable of” or “operative to”.
[0257] The steps of the methods may be performed in another order than the order in which they appear herein.
Claims
CLAIMS1. A method performed by a network node (101) for cancelling Passive Intermodulation, PIM, interference in a communications system (100), the method comprising: transmitting (1401) a transmit signal (213); determining (402, 501, 502, 503, 1402) a Machine Learning, ML, model by determining (402a, 501 , 1402a) a neural network comprising layers, wherein the layers comprise an input layer, a hidden layer and an output layer, wherein the hidden layer is a fully connected layer or a binary layer, and wherein each layer comprises one or more neurons; determining (403, 1403) a PIM signal based on the transmit signal (213) before the ML model has been determined, and based on the ML model with the transmit signal as input signal to the ML model after the ML model has been determined; receiving (404, 1404) a receive signal (214) which is affected by the PIM interference; and cancelling (405, 1405) the PIM interference from the receive signal (214) by subtracting the PIM signal from the receive signal (214).
2. The method according to claim 1, wherein the ML model is determined by: weight pruning (402b, 502, 1402b) weights of the hidden layer and the output layer, wherein a result of the weight pruning is a weight-pruned neural network.
3. The method according to any of the preceding claims, wherein the ML model is determined by: neuron pruning (402c, 503, 1402c) by removing one or more neurons in any of the layers of the neural network and / or the weight-pruned neural network.
4. The method according to any of the preceding claims, wherein the neural network comprises multiple hidden layers, where the multiple hidden layers comprise n number of fully connected layers and m number of binary layers, where n is zero or a positive integer and m is zero or a positive integer.
5. The method according to any of claims 2-4, wherein the weight pruning (402b, 502, 1402b) comprises one or more of:- a magnitude-based weight pruning; and / or- a weight gradient-based weight pruning; and / or- a sensitivity analysis-based weight pruning; and / or- a weight and activation-based pruning.
6. The method according to claim 5, wherein the weight magnitude-based pruning comprises: determining a sparsity level for a weight of each neuron in the hidden layer and the output layer; ranking an absolute value of the sparsity level of each neuron; and setting the lowest X% of the ranked sparsity levels to zero, where X is a positive integer.
7. The method according to any of the preceding claims, wherein the determining (402a, 501 , 1402a) the neural network comprises. determining a number of hidden layers in the neural network.
8. The method according to any of the preceding claims, wherein the determining (402a, 501 , 1402a) the neural network comprises. determining a number of neurons for each hidden layer.
9. The method according to any of the preceding claims, wherein the determining (402a, 501 , 1402a) the neural network comprises: determining a binary-to-fully connected ratio of the hidden layers.
10. The method according to any of the preceding claims, wherein the neuron pruning (402c, 503, 1402c) comprises:- removing one or more neurons with no incoming connection from a previous layer of the neural network; and / or removing one or more neurons with no outgoing connection to a subsequent layer of the neural network.
11. The method of any of the preceding claims, wherein the ML model is trained (402) using a training dataset associated with one or more different PIM sources (215).
12. The method of any of the preceding claims, wherein the PIM interference is caused by a PIM source (215) that is external or internal to the network node (101).
13. The method of any of the preceding claims, wherein the method is an automated method.
14. A network node (101) for cancelling Passive Intermodulation, PIM, interference in a communications system (100), the network node (101) comprising a processing circuitry (1540) configured to: transmit a transmit signal (213); determine a Machine Learning, ML, model by determining neural network comprising layers, wherein the layers comprise an input layer, a hidden layer and an output layer, wherein the hidden layer is a fully connected layer or a binary layer, and wherein each layer comprises one or more neurons; determine a PIM signal based on the transmit signal (213) before the ML model has been determined, and based on the ML model with the transmit signal as input signal to the ML model after the ML model has been determined; receive a receive signal (214) which is affected by the PIM interference; and to cancel the PIM interference from the receive signal (214) by subtracting the PIM signal from the receive signal (214).
15. The network node (101) according to claim 14, wherein the processing circuitry (1540) is configured to determine the ML model by weight pruning weights of the hidden layer and the output layer, wherein a result of the weight pruning is a weight-pruned neural network.
16. The network node (101) according to any of claims 14-15, wherein the processing circuitry (1540) is configured to determine the ML model by neuron pruning by removingone or more neurons in any of the layers of the neural network and / or the weight-pruned neural network.
17. The network node (101) according to any of claims 14-16, wherein the neural network comprises multiple hidden layers, wherein the multiple hidden layers comprise n number of fully connected layers and m number of binary layers, wherein n is zero or a positive integer and m is zero or a positive integer.
18. The network node (101) according to any of claims 15-17, wherein the weight pruning comprises one or more of:- a magnitude-based weight pruning; and / or- a weight gradient-based weight pruning; and / or- a sensitivity analysis-based weight pruning; and / or- a weight and activation-based pruning.
19. The network node (101) according to claim 18, wherein the processing circuitry (1540) is configured to perform weight magnitude-based pruning by: determining a sparsity level for a weight of each neuron in the hidden layer and the output layer; ranking an absolute value of the sparsity level of each neuron; and by setting the lowest X% of the ranked sparsity levels to zero, where X is a positive integer.
20. The network node (101) according to any of claims 14-19, wherein the processing circuitry (1540) is configured to determine the neural network by determining a number of hidden layers in the neural network.
21. The network node (101) according to any of claims 14-20, wherein the processing circuitry (1540) is configured to determine the neural network by determining a number of neurons for each hidden layer.
22. The network node (101) according to any of claims 14-21 , wherein the processing circuitry is configured to determine the neural network by determining a binary-to-fully connected ratio of the hidden layers.
23. The network node (101) according to any of claims 14-22, wherein the processing circuitry (1540) is configured to perform the neuron pruning by:- removing one or more neurons with no incoming connection from a previous layer of the neural network; and / or removing one or more neurons with no outgoing connection to a subsequent layer of the neural network.
24. The network node (101) of any of claims 14-23, wherein the ML model is trained (402) using a training dataset associated with one or more different PIM sources (215).
25. The network node (101) of any of claims 14-24, wherein the PIM interference is caused by a PIM source (215) that is external or internal to the network node (101).
26. A computer program product comprising program code for performing, when executed by a processing circuitry (1540) , the method of any of claims 1-13.
27. A non-transitory computer-readable storage medium comprising instructions, which when executed by a processing circuitry (1540), cause the processing circuitry (1540) to perform the method of any of claims 1-13.
Citation Information
Patent Citations
Method and device for eliminating passive mutual modulation interference
CN113676425A
Method and apparatus for the detection of distortion or corruption of cellular communication signals
US10693556B2
Eigenvalue-based passive intermodulation detection
WO2020208400A1
Passive inter-modulation detection machine learning for radio networks
WO2022167844A1