Optimising values of discrete input parameters

Stochastic gradient optimization techniques efficiently optimize discrete input parameters of neural networks by clipping and approximating values, addressing scalability and complexity issues in existing methods, ensuring high performance and efficiency.

WO2025264160A1PCT designated stage Publication Date: 2025-12-26TELEFONAKTIEBOLAGET LM ERICSSON (PUBL)
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
PCT/SE2025/050166
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-06-19
Filing Date
2025-02-24
Publication Date
2025-12-26

AI Technical Summary

Technical Problem

Existing methods for optimizing discrete input parameters of neural networks face challenges such as the inability to use gradients in discrete spaces, high time complexity, and scalability issues with iterative and Bayesian optimization techniques, particularly when the number of inputs is large.

Method used

A method using stochastic gradient optimization processes to determine optimized values of discrete input parameters, involving defining a loss function, clipping values within permissible ranges, and approximating to nearest discrete values after iterations, leveraging scalable algorithms like Adam and RMSprop.

Benefits of technology

This approach allows efficient optimization of discrete inputs, considering inter-input relations, scaling well with large datasets, and achieving high performance by utilizing gradients effectively, even with numerous inputs.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure SE2025050166_26122025_PF_FP_ABST
    Figure SE2025050166_26122025_PF_FP_ABST
Patent Text Reader

Abstract

A computer-implemented method for determining optimised values of one or more discrete input parameters for a trained neural network. The neural network is trained to generate values of one or more output parameters based on values of a set of input parameters. The method comprises performing (401) an initial iteration of an input parameter optimisation process using (4011) a stochastic gradient optimisation process, clipping (4012) a first value such that the clipped first value is within a defined range for the discrete input parameter, performing (403) at least one further iteration of the input parameter optimisation process using the output of the preceding iteration of the input parameter optimisation process as initial values, and determining (405) the optimised values by setting the first values in the output of the last iteration of the input parameter optimisation process to a respective neighboring value in the respective defined range of discrete values.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Optimising values of discrete input parameters Technical Field This disclosure relates to neural networks, and in particular to techniques for optimising values of input parameters for the neural network that have a discrete number of possible values. Background In the Machine Learning (ML) and Artificial Intelligence (AI) fields, there are often cases where the aim is to optimise some inputs with respect to some output. If the output is unknown, a common solution is to construct a model that simulates the output, and try to optimise the parameters of the model. This disclosure relates to a model in the form of a neural network, and the inputs are discrete. That is, a discrete input parameter is an input parameter for which the value is one of a discrete number of possible values in a defined range. The term “discrete value” is used to refer to a value of a discrete input parameter. A discrete input parameter can be contrasted with a continuous input parameter, which is an input parameter that can take any value within a (narrow or broad) range. The term “continuous value” is used to refer to a value of a continuous input parameter. The terms “discrete input parameter” and “discrete input” are used interchangeably herein, and while these terms primarily refer to the parameter itself (e.g. a transmission power parameter), it is also used herein to refer to a value of that parameter (e.g. value 4). Methods for discrete input optimisation are known in the art, for example in “Discrete optimization via gradient-based adaptive stochastic search methods” by Xi Chen, Enlu Zhou & Jiaqiao Hu, IISE Transactions (2018), 50:9, 789-805. However, the problem of optimising discrete inputs of a neural network has not been extensively studied. Most of the literature available relating to discrete optimisation focuses on the optimisation of the neural network itself and not its inputs, for example “Continuous vs. discrete optimization of deep neural networks” by Elkabetz, O., & Cohen, N., Advances in Neural Information Processing Systems, (2021), 34, 4947-4960. Some published solutions include an iterative search of the possible discrete inputs (for example as described in WO 2024 / 096775 titled “Methods and apparatuses for training and using a graph neural network”), a genetic algorithm to find the best configurations (“Optimization of Neural Network Input Through Genetic Algorithm” by A. Bataineh and A. Mubaslat, 2021, 8thInternational Conference on Electrical and Electronics Engineering (ICEEE), Antalya, Turkey, 2021, pp.248-253) or Bayesian optimisation (“Bayesian Optimization with Discrete Variables” by Luong, P., Gupta, S., Nguyen, D., Rana, S., Venkatesh, S. (2019) in: Liu, J., Bailey, J. (eds) AI 2019: Advances in Artificial Intelligence. AI 2019. Lecture Notes in Computer Science(), vol 11919). Summary There are several problems with the techniques in the existing literature. Regarding the use of gradients, as mentioned in WO 2024 / 096775, it has not been applied to discrete inputs of a neural network, since the gradients can only be used in a continuous space. It is difficult to use a generative AI technique to optimise discrete inputs of a neural network as the generative AI cannot be trained. In particular, labels are not available that would indicate an optimal configuration (i.e. the optimal discrete input parameters that the technique would be aiming to find). For an iterative search such as that described in WO 2024 / 096775, the main problem can be the time complexity. With an iterative search, the search for the optimal configuration comprises trying each possible configuration. That means that if the number of configurations is high, the time will increase significantly. There is another problem with the iterative search that can occur when an input can affect another input. For example, if a Graph Neural Network (GNN) is used for node classification, the change of the input of one node can affect its neighbour, and an iterative search approach may not capture this behaviour. Secondly, Bayesian optimisation as described in “Bayesian Optimization with Discrete Variables” will have a problem in computation time if the number of inputs that need to be optimised is high, since it still has to try each proposal made by the Bayesian algorithm. Moreover, genetic algorithms, such as described in “Optimization of Neural Network Input Through Genetic Algorithm”, have the problem of not scaling well when the number of inputs increases significantly. Certain aspects of the disclosure and their embodiments may provide solutions to these or other challenges. In particular, this disclosure provides a method for stochastic gradient optimisation of discrete inputs of a neural network; that is, a method for using stochastic gradient optimisation processes to determine optimised values of one or more discrete input parameters of a neural network. Embodiments of the solution can comprise one or more of the following steps: 1. Define a loss function that will be minimised. 2. Optimise the discrete input(s) of the neural network using a stochastic gradient optimisation algorithm / process with the objective of minimising the loss function. 3. Clip the new values of the discrete input(s) to be within the range of possible values of the discrete input(s). 4. Repeat steps 2 and 3 for n iterations, using the clipped values from 3 as the starting point for the stochastic gradient optimisation algorithm / process. 5. Calculate the distance between each optimal value (i.e. the clipped value(s) of the discrete input(s) after the n iterations) and valid values for the respective discrete input(s). 6. Approximate the optimal values by the nearest valid value of the discrete inputs. It can be appreciated that the above method not only allows the use of the gradients, but also complex stochastic gradient optimisation algorithms such as Adam (as described in “Adam: A method for stochastic optimization” by Kingma, Diederik P., and Jimmy Ba, arXiv preprint arXiv:1412.6980 (2014)), or RMSprop (as described in “An overview of gradient descent optimization algorithms” by Sebastian Ruder (2016), arXiv preprint arXiv:1609.04747), that provide good results in the optimisation of the weights of neural networks. The disclosed method uses the gradients, which do not have issues in scaling well when the number of inputs increases significantly, and so the method does not suffer from the problem of escalating computational complexity described above. In addition, due to the use of the gradients, the disclosed solution also considers if an input is impacting another. A reason for this is that the gradients come from the outputs of the neural network, and the outputs will contain the relations’ impact between the different inputs (as in the case of a GNN). It should be noted that although the techniques proposed herein can resemble model inversion, the objective and setup are different for the proposed techniques since in both the proposed techniques and model inversion the inputs are modified with the model itself being frozen / fixed. Model inversion aims to reconstruct an original dataset, while the proposed techniques aim to find the value(s) of the input parameter(s) that optimise the output of the model. Moreover, for model inversion supervised learning techniques are used (i.e. learning from another dataset which input should generate based on a model), but there is no ground truth for the problem solved by the proposed techniques (i.e. it is not known what input value(s) optimise the model), and the proposed techniques require unsupervised learning. Thus, the disclosed techniques provide a method that allows for the optimisation of the discrete inputs of a neural network with a stochastic gradient algorithm / process, and which allow a scalable and high performing algorithm to find the optimal values for the discrete input parameters. Three aspects of the techniques are highlighted below: - Clipping the values in each iteration of the stochastic gradient optimisation process / algorithm makes the optimisation possible. Otherwise, the gradient optimisation process could optimise the values of the inputs to outside the possible range, and at the end, when they are approximated to the nearest discrete values, the difference between those values could be too large, making the optimisation ineffective. - Application of not only the gradients, but also the stochastic optimisation algorithms. The gradients could offer a good optimisation, but the use of complex stochastic algorithms brings an improved performance to the optimisation, as they are being used to optimise inputs instead of neural network weights. - Only approximating those values to one of the possible discrete values at the end of the process, instead of doing it in each iteration, allows for those values to fluctuate and a better result to be achieved, particularly where the number of possible discrete values is low. Certain embodiments may provide one or more of the following technical advantage(s). For example the techniques allow the use of high performing algorithms (stochastic gradient optimisation) that tend to give better results than other techniques. The techniques consider every relation between inputs, since the gradients contain all this information. The techniques are scalable in time, since stochastic optimisation algorithms are fast and scale well with large datasets and higher numbers of inputs. According to a first aspect, there is provided a computer-implemented method for determining optimised values of one or more discrete input parameters for a trained neural network. The neural network is trained to generate values of one or more output parameters based on values of a set of input parameters. The method comprises performing an initial iteration of an input parameter optimisation process. The input parameter optimisation process comprises using a stochastic gradient optimisation process to determine respective first values for one or more discrete input parameters that minimise a loss function associated with the trained neural network, wherein the one or more discrete input parameters are comprised in the set of input parameters, and wherein each discrete input parameter has a respective discrete number of possible values in a respective defined range; and, for any determined first value that is outside the respective defined range for the respective discrete input parameter, clipping said determined first value such that the clipped first value is within the respective defined range for the respective discrete input parameter. The output of the input parameter optimisation process is a set of first values comprising any first values that were clipped and any first values that were not clipped. The method further comprises performing at least one further iteration of the input parameter optimisation process using the output of the preceding iteration of the input parameter optimisation process as initial values for the one or more discrete input parameters in the stochastic gradient optimisation process; and determining the optimised values by setting the first values in the output of the last iteration of the input parameter optimisation process to a respective neighbouring value in the respective defined range of discrete values. According to a second aspect, there is provided a computer program product comprising a computer readable medium having computer readable code embodied therein, the computer readable code being configured such that, on execution by a suitable computer or processor, the computer or processor is caused to perform the method according to the first aspect or any embodiments thereof. According to a third aspect, there is provided an apparatus configured to perform the method according to the first aspect or any embodiments thereof. According to a fourth aspect, there is provided an apparatus comprising a processor and a memory, said memory containing instructions executable by said processor whereby said apparatus is operative to perform the method according to the first aspect or any embodiments thereof. Brief Description of the Drawings Some of the embodiments contemplated herein will now be described more fully with reference to the accompanying drawings, in which: Fig.1 is a block diagram illustrating inputs and outputs of a neural network; Fig.2 is a flow chart illustrating exemplary embodiments of the techniques described herein; Fig.3 is a plot illustrating an evolution of the loss with increasing iterations of the stochastic gradient optimisation process; Fig.4 is a flow chart illustrating a computer-implemented method in accordance with some embodiments; Fig. 5 is a block diagram of an apparatus that can implemented the methods described herein; and Fig. 6 is a block diagram illustrating a virtualization environment in which functions implemented by some embodiments may be virtualized. Detailed Description Some of the embodiments contemplated herein will now be described more fully with reference to the accompanying drawings. Embodiments are provided by way of example to convey the scope of the subject matter to those skilled in the art. This disclosure addresses the problem of the optimisation of discrete inputs of a neural network. In particular, this disclosure provides a method for stochastic gradient optimisation of discrete inputs of a neural network; that is, a method for using stochastic gradient optimisation processes to determine optimised values of one or more discrete input parameters of a neural network. The neural network may model performance or operations of a process, an apparatus, a system, a network, or parts of a system or network, etc. The discrete input parameters may represent operational parameters for the process, apparatus, system, network, etc., and the values of these parameters can affect how the process, apparatus, system, network, etc. performs. The output of the neural network will be values for one or more output parameters that represent different aspects of the performance of the modelled process, apparatus, system, network, etc. In one particular example, a neural network can model one or more aspects of the performance of a cell in a cellular communication network according to different values of one or more input parameters. The ‘optimisation’ technique described and used herein seeks to determine values of discrete input parameters for a neural network that provide at least a desired level of performance of the process, apparatus, system, network, etc., or that provide an improved level of performance from an initial set of values of the discrete input parameters. In this respect, words like ‘optimisation’, ‘optimised’ and ‘optimal’ that are used herein do not necessarily mean that the techniques set out to find the ‘most optimal’ values or absolute best values of the discrete input parameters, or the values of the discrete input parameters that provide the ‘most optimal’ values of the output parameter(s). As noted above, a “discrete input” or “discrete input parameter” is an input parameter for which the value is one of a discrete number of possible values in a defined range. A “discrete value” is a value of a discrete input parameter. A discrete input parameter can be contrasted with a continuous input parameter, which is an input parameter that can take any value within a (narrow or broad) range. A “continuous value” is a value of a continuous input parameter. The range of possible values for a particular discrete input parameter can be an inherent characteristic of the parameter itself. For example, a particular discrete input parameter may represent a control value for the apparatus or network modelled by the neural network, and that control value may only have a finite number of possible values (e.g. “0” or “1”, integers in the range from “1” to “10”, the values “-5”, “-2”, “2”, “5”, “10”, etc.). An example of the application of the disclosed techniques can be a neural network that models the amount of energy produced by a wind turbine. The inputs to this neural network can be several environmental factors (e.g. wind speed) and some operational parameters for the turbine. Some of these operational parameters may be user or operator-controllable (e.g. blade tilt / angle), whereas others may be fixed for a particular turbine (e.g. blade length may be defined at installation). The user or operator-controllable parameters are the input parameters that are to be optimised using the techniques described herein. Some or all of these input parameters are discrete input parameters. For example, the wind speed input parameter may be a discrete input parameter (e.g. the measured wind speed could be represented by the nearest integer value). Another discrete input parameter could be the blade tilt / angle (which can be controlled by an operator to the nearest degree). Therefore, the techniques described herein can be used to identify the configuration (i.e. set of values of the discrete input parameters) that obtains the maximum amount of energy from the turbines. Fig.1 is a block diagram illustrating inputs and outputs of a trained neural network 102. The neural network 102 receives values of input parameters and has been trained to determine values of one or more output parameters. The values of the input parameters comprise discrete values 104 (i.e. values of one or more discrete input parameters) that are to be optimised, and “other inputs” 106, which can include values of one or more continuous input parameters and / or values of one or more other discrete input parameters that are not to be optimised at this time. The neural network 102 generates outputs 108, which are values of one or more output parameters. During the training of the neural network 102, the outputs 108 are assessed by a loss function 110. The loss function can be a Mean Squared Error (MSE) loss function for regression tasks, or a cross-entropy loss function for classification tasks. Fig.2 is a flow chart illustrating exemplary embodiments of the techniques that are applied to a trained neural network. Since stochastic gradient descent minimises the objective, a quantity to be minimised is needed. Thus, in step 201, a loss function is defined that will be minimised by the stochastic gradient optimisation process. The loss function relates to the trained neural network. If the objective of the overall optimisation process is to maximise a quantity, as in the example of the turbines, the negative of the quantity can be used. In step 203, the discrete input(s) of the trained neural network are optimised using a stochastic gradient optimisation algorithm / process with the objective of minimising the loss function. In particular, as the discrete input parameters are to be optimised, the discrete inputs will be used instead of the weights of the trained neural network (the weights of the neural network are typically used when the neural network itself is optimised). As noted above with respect to Fig.1, there can be other inputs 106, whether discrete or continuous, in addition to the ones being optimised in step 203. If any of the new values of the discrete input(s) from step 203 are outside the respective range of possible values of those discrete input(s), then in step 205 the new values from step 203 that are outside the respective range are ‘clipped’ (i.e. adjusted or changed) to be within the respective range of possible values. That is, if a value of a discrete input from step 203 is outside the permissible range for that input parameter, step 205 clips that value so that it is within the range, and in particular clips that value to the nearest extremum of the permissible range (i.e. the range minimum if the value is lower than the lowest value in the permissible range, and the range maximum if the value is higher than the highest value in the permissible range). For example, the permissible values / range for a particular discrete input parameter could be the integers in the range 1-10, and if the new value determined in step 203 is 11.5, then step 205 will ‘clip’ this value to 10 as that is the nearest permissible value for the input parameter. This clipping step is useful as otherwise the values of the input parameters can start having values further and further outside the permissible range with each iteration, and when the optimal values are approximated to the nearest discrete values at the end of the optimisation process in step 209, the difference between the input values and the nearest discrete values could be really large, meaning that approximating the input value in step 209 can change the value significantly, rendering the overall optimisation process useless. The permissible range for a particular discrete input parameter may be predetermined, or set by a user (e.g. based on a user preference). If none of the new values of the discrete input(s) from step 203 are outside the respective range of possible values, then on this iteration step 205 does not result in any of the new values being changed. Steps 203 and 205 are repeated for n iterations, using the clipped values from step 205 as the starting point for the stochastic gradient optimisation algorithm / process in step 203. Repeating for n iterations is similar to when training the neural network. The specific number n of iterations to use can be set to a desired amount based on a trade-off between a desired accuracy in the optimal values provided by the stochastic gradient optimisation process and computational effort and / or time taken to determine the optimal values. As the optimal values for the input parameters obtained following the n iterations are continuous values (i.e. the optimal values do not correspond to one of the possible discrete values for the respective input parameters), they need to be approximated (set / adjusted) to the possible discrete values. This is performed by steps 207 and 209. Each “possible discrete value” for a discrete input parameter is also referred to herein as a “valid value” for the discrete input parameter. In step 207, after the n iterations, a distance between each optimal value (i.e. the clipped value(s) of the discrete input(s) after the n iterations) and valid values for the respective discrete input(s) is calculated. That is, for a particular optimal value for a first discrete input parameter, respective distances can be determined between the optimal value and the valid values for the first discrete input parameter. The distance can be a difference between the optimal value and a valid value. In some embodiments, the distance (difference) can be determined between the optimal value and each of the neighbouring valid values for the discrete input parameter. The neighbouring valid values for an optimal value can be the nearest / closest valid value that is higher than the optimal value, and the nearest / closest valid value that is lower than the optimal value. Then, in step 209, the optimal values are approximated to a valid value of the discrete input parameters based on the distance measure. In particular, the optimal values can be approximated to the nearest / closest valid value of the respective discrete input parameter (i.e. the valid value that has the smallest / shortest distance to the optimal value). In some embodiments of steps 207 and 209, in step 207 a distance for each input value can be calculated individually. Then, in step 209, each input value is approximated (set) to the respective nearest discrete value. In some cases, a particular input value can be approximated (set) to the respective nearest discrete value that is below the input value (i.e. the input value is rounded down to the nearest discrete value), or that is above the input value (i.e. the input value is rounded up to the nearest discrete value), as appropriate for the particular input parameter. In alternative embodiments of steps 207 and 209, in step 207 the input values for all the discrete input parameters to be optimised are treated as a vector, and respective distance measures are calculated that represent the distance between that vector and a plurality of vectors representing different combinations of valid values of the discrete input parameters. In some embodiments there may be vectors representing every different combination of valid values of the discrete input parameters, whereas in other embodiments the vectors represent only some of the possible combinations of valid values of the discrete input parameters. For example, some discrete input parameters may be related in the sense that the value for one input parameter can affect or restrict the value for another input parameter. In that case, the vectors may only represent valid combinations of valid values of the discrete input parameters. While this embodiment of steps 207 and 209 is more computationally expensive than the individual calculation embodiment above if there are many possible combinations, this embodiment can provide a more accurate approximation of values than the individual calculation embodiment. The following section presents a real-world example and shows how the techniques described herein can be applied to the neural network described in WO 2024 / 096775. The aim of the neural network in WO 2024 / 096775 is to provide recommendations for performance parameters to solve an uplink interference problem in 4thGeneration (4G) networks. For that purpose, the following architecture is followed: - A model based on Graph Neural Networks (GNNs) is built to predict the Signal to Interference plus Noise Ratio (SINR) (which is closely related to the uplink interference problem). The input parameters for this model will be some Key Performance Indicators (KPIs) and two parameters, pZeroNominalPusch (also known as p0NominalPusch) and alpha. The data is aggregated daily. - Some cells in the communication network are selected that seem to have had uplink interference problems in the historic data (with data collected for a few past days being used to execute the optimisation). - The pZeroNominalPusch and alpha inputs of the problematic cells are optimised with the objective of improving the SINR of these cells, without degrading the SINR of its neighbour cells too much, based on the historic data. - The GNN provides recommendations for parameter values in the form of the parameters achieved with the optimisation of the historical data. Since pZeroNominalPusch and alpha have discrete values, the techniques described herein can be applied directly to this problem. Possible configurations, i.e. combinations of possible discrete values, are shown in Table 1 below: Configuration pZeroNominalPusch alpha Nº 0 -106 0.9 1 -106 1 2 -103 1 3 -102 1 4 -101 1 5 -100 1 6 -96 1 7 -95 0.9 8 -92 0.9 9 -92 1 10 -89 0.9 11 -88 0.9 12 -80 0.8 13 -80 0.9 14 -80 1 Table 1 The cost function used for this problem is the following: ^^^^^^^^ ൌ ^^^ ∗ ‖^^^ா^^ ∗ ^^‖ி ^ ^^ఈ ∗ ‖^^^ா^^ ∗ ^^‖ி ^ ^^ௌூேோ ∗ ‖^^^ா^^ ∗ ^^^^^^^^^^‖ி where, P is the list of pZeroNominalPusch values of all the cells, α is the list of alpha values of all the cells, and ΔSINR is the list of the differences between the predicted SINR and the target SINR of all the cells. The terms WP, Wαand WSINRindicate the weights assigned to each target in the cost function (i.e. pZeroNominalPusch, alpha and SINR, respectively) whereas WCELLis the list of cell type weights of all the cells (e.g. the same weight for all the cells for having a uniform distribution, a different weight for required cells and neighbours, etc.). Fig. 3 is a plot illustrating an evolution of the above cost / loss function with increasing iterations of the stochastic gradient optimisation process as described herein. It can be seen in Fig.3 that the loss function decreases with each iteration. The output of the optimisation process described herein is shown below, where it can be seen that it contributes almost 5dB gain.

[0002] It should be noted that the techniques described herein can use known or unknown values to the approximation. There could be cases, such as the use case of the neural network in WO 2024 / 096775, that the values are approximated to only a specific set of discrete values. In particular, in this example the values are only approximated to a set of known pZeroNominalPusch and alpha configurations. However, the techniques described herein can also be used to generalise to unknown discrete values. In the example of the neural network in WO 2024 / 096775, that would mean also predicting the discrete values between the known set of values, and not only the ones found in the training data for the model. Thus, the techniques described herein allow the use of a complex algorithm that provides good results, taking into account all the neighbour cells and complexities of the scenario, and that achieves a high-performance optimisation for a cellular network in a few seconds. Furthermore, this duration will not increase much even when the size of the network increases significantly, since stochastic gradient optimisation algorithms are scalable and don’t have time complexity issues. The proposed optimisation techniques can be directly applied or implemented in a cloud environment since it can take full advantage of a distributed architecture. Specifically, since in a communication network deployment it is intended to optimise a certain number of cells, the list of the optimised cells can be split and distributed among the different cloud nodes, which run the technique independently and in a scalable manner. In particular, firstly the number of cells to be optimised is split into equal (or substantially equal) sub-lists, so each sub-list can be optimised in a node of the cloud architecture. Then, to avoid having to deal with the complete graph in each node of the cloud, the graph in each cloud node is trimmed, leaving only the cells to be optimised and the k-hop neighbours, where the value of k is the number of GNNs used (since k GNNs will consider for the prediction k-hop neighbours) The flow chart in Fig. 4 illustrates a computer-implemented method according to various embodiments. An apparatus may perform the method in response to executing suitably formulated computer readable code. The computer readable code may be embodied or stored on a computer readable medium, such as a memory chip, optical disc, or other storage medium. The computer readable medium may be part of a computer program product. The method in Fig. 4 is for determining optimised values of one or more discrete input parameters for a trained neural network. The neural network can be a Graph Neural Network (GNN). The neural network has been trained to generate values of one or more output parameters based on values of a set of input parameters. In some implementations, the neural network can model operation and / or performance of one or more cells in a communication network. In this case, the one or more output parameters can relate to operation and / or performance of the one or more cells, and the one or more discrete input parameters can be, or include, configurable operational parameters for the cell. In step 401, an initial iteration of an input parameter optimisation process is performed. The input parameter optimisation process comprises sub-steps 4011 and 4012. In sub-step 4011, a stochastic gradient optimisation process is used to determine respective first values for one or more discrete input parameters that minimise a loss function associated with the trained neural network. The one or more discrete input parameters are comprised in the set of input parameters, and each discrete input parameter has a respective discrete number of possible values in a respective defined range. The stochastic gradient optimisation process may be an Adam algorithm, or a Root Mean Square Propagation (RMSprop) process. In sub-step 4012, for any of the first values determined in sub-step 4011 that is outside the respective defined range for the respective discrete input parameter, the first value is clipped such that the clipped first value is within the respective defined range for the respective discrete input parameter. Any first value determined in sub-step 4011 that is already inside the defined range for the respective discrete input parameter is unchanged by sub-step 4012. The output of the input parameter optimisation process in step 401 is a set of first values for the one or more discrete input parameters, with the set being formed from any first values that were clipped in sub-step 4012 and the first values determined in sub-step 4011 that were not clipped in sub-step 4012. In step 403, at least one further iteration of the input parameter optimisation process in step 401 is performed. Each further iteration of the input parameter optimisation process uses the output of the preceding iteration of the input parameter optimisation process as initial values for the one or more discrete input parameters in the stochastic gradient optimisation process of sub- step 4011. After one or more further iterations of step 401, the optimised values are determined in step 405 by setting the first values in the output of the last iteration of the input parameter optimisation process to a respective neighbouring value in the respective defined range of discrete values. In some embodiments, step 405 can comprise determining a distance measure between the possible values in the respective defined range and each first value in the output of the last iteration of the input parameter optimisation process. These distance measures are used to determine the respective neighbouring value that the first values are set to in step 405. In particular, in step 405, the first values output by the last iteration of the input parameter optimisation process can be set to the respective neighbouring value in the respective defined range having the smallest distance measure. In alternative embodiments of step 405, which can be applied where the set of input parameters comprises a plurality of discrete input parameters, a vector can be formed from each of the first values output by the last iteration of the input parameter optimisation process. Then, respective distance measures can be determined between that vector and vectors formed from different combinations of possible values of each discrete input parameter. The first values output by the last iteration of the input parameter optimisation process are then set to the values in the vector formed from possible values that has the smallest distance measure. In another alternative embodiment of step 405, step 405 can comprise setting the first values output by the last iteration of the input parameter optimisation process to a respective nearest value in the respective defined range of discrete values. In another alternative embodiment of step 405, for one or more of the discrete input parameters, step 405 can comprise setting the respective first value of that / those discrete input parameters to a respective nearest value in the respective defined range of discrete values that is higher than the first value. Alternatively, or for other ones of the one or more discrete input parameters, step 405 can comprise setting the respective first value of that / those discrete input parameters to a respective nearest value in the respective defined range of discrete values that is lower than the first value. In some embodiments, the method can also include, prior to step 401, defining the loss function for the trained neural network. The loss function can be a function of values of the one or more output parameters output by the trained neural network and one or more target values of the one or more output parameters. In some embodiments, the set of input parameters comprises one discrete input parameter. In other embodiments, the set of input parameters comprises a plurality of discrete input parameters. In addition to the one or more discrete input parameters, the set of input parameters can also comprise one or more continuous input parameters whose values take any value in a respective defined range. In these embodiments, the values for the one or more continuous input parameters can be fixed (i.e. not changed) during the stochastic gradient optimisation process. Fig.5 is a simplified block diagram of an apparatus 500 that can be used to implement, or implement part of, the techniques described herein. In particular, the apparatus 500 may be, or be a part of, a computer, a server, or a node in a communication network (particularly where the techniques are used to optimise values of input parameters for one or more cells in a communication network). In this latter case, the node in the communication network can be any of a Radio Access Network (RAN) node, a base station, a eNB, a gNB, a 6thGeneration (6G) RAN node, a centralised unit (CU) in an Open-Radio Access Network (O-RAN) deployment, a distributed unit (DU) in an O-RAN deployment, a core network node, or a Network Function (NF) in the core network of the communication network. In particular embodiments, the apparatus 500 can be configured or adapted to perform the method in Fig.4. The apparatus 500 comprises processing circuitry (or logic) 501. It will be appreciated that the apparatus 500 may comprise one or more virtual machines running different software and / or processes. The apparatus 500 may therefore comprise, or be implemented in or as one or more servers, switches and / or storage devices and / or may comprise cloud computing infrastructure that runs the software and / or processes. The processing circuitry 501 controls the operation of the apparatus 500 to implement any of the methods described herein. The processing circuitry 501 can comprise one or more processors, processing units, multi-core processors or modules that are configured or programmed to control the apparatus 500 in the manner described herein. In particular implementations, the processing circuitry 501 can comprise a plurality of software and / or hardware modules that are each configured to perform, or are for performing, individual or multiple steps of the method described herein in relation to the apparatus 500. The apparatus 500 also comprises a communications interface 502. The communications interface 502 is for use in enabling communications with other apparatus, nodes, computers, servers, etc. For example, the communications interface 502 can be configured to transmit to and / or receive from other nodes, requests, acknowledgements, information, data, signals, or similar. The communications interface 502 can use any suitable communication technology. The processing circuitry 501 may be configured to control the communications interface 502 to transmit to and / or receive from other nodes, etc. requests, acknowledgements, information, data, signals, or similar, according to the methods described herein. The apparatus 500 may comprise a memory 503. In some embodiments, the memory 503 can be configured to store program code that can be executed by the processing circuitry 501 to perform the methods described herein in relation to the apparatus 500. Alternatively or in addition, the memory 503 can be configured to store any requests, acknowledgements, information, data, signals, or similar that are described herein. The processing circuitry 501 may be configured to control the memory 503 to store such information therein. Fig. 6 is a block diagram illustrating a virtualization environment 600 in which functions implemented by some embodiments may be virtualized. In the present context, virtualizing means creating virtual versions of apparatuses or devices which may include virtualizing hardware platforms, storage devices and networking resources. As used herein, virtualization can be applied to any device described herein, or components thereof, and relates to an implementation in which at least a portion of the functionality is implemented as one or more virtual components. Some or all of the functions described herein may be implemented as virtual components executed by one or more virtual machines (VMs) implemented in one or more virtual environments 600 hosted by one or more of hardware nodes, such as a hardware computing device that operates as a network node, access network node, RAN node, UE, core network node, or host. Further, in embodiments in which the virtual node does not require radio connectivity (e.g. a core network node or host), then the node may be entirely virtualized. In some embodiments, the virtualization environment 600 includes components defined by the O-RAN Alliance, such as an O-Cloud environment orchestrated by a Service Management and Orchestration Framework via an O-2 interface. Virtualization may facilitate distributed implementations of an access network node, network node, RAN node, UE, core network node, or host. Applications 602 (which may alternatively be called software instances, virtual appliances, network functions, virtual nodes, virtual network functions, etc.) are run in the virtualization environment 600 to implement some of the features, functions, and / or benefits of some of the embodiments disclosed herein. Hardware 604 includes processing circuitry, memory that stores software and / or instructions executable by hardware processing circuitry, and / or other hardware devices as described herein, such as a network interface, input / output interface, and so forth. Software may be executed by the processing circuitry to instantiate one or more virtualization layers 606 (also referred to as hypervisors or virtual machine monitors (VMMs)), provide VMs 608a and 608b (one or more of which may be generally referred to as VMs 608), and / or perform any of the functions, features and / or benefits described in relation with some embodiments described herein. The virtualization layer 606 may present a virtual operating platform that appears like networking hardware to the VMs 608. The VMs 608 comprise virtual processing, virtual memory, virtual networking or interface and virtual storage, and may be run by a corresponding virtualization layer 606. Different embodiments of the instance of a virtual appliance 602 may be implemented on one or more of VMs 608, and the implementations may be made in different ways. Virtualization of the hardware is in some contexts referred to as network function virtualization (NFV). NFV may be used to consolidate many network equipment types onto industry standard high volume server hardware, physical switches, and physical storage, which can be located in data centers, and customer premise equipment. In the context of NFV, a VM 608 may be a software implementation of a physical machine that runs programs as if they were executing on a physical, non-virtualized machine. Each of the VMs 608, and that part of hardware 604 that executes that VM, be it hardware dedicated to that VM and / or hardware shared by that VM with others of the VMs, forms separate virtual network elements. Still in the context of NFV, a virtual network function is responsible for handling specific network functions that run in one or more VMs 608 on top of the hardware 604 and corresponds to the application 602. Hardware 604 may be implemented in a standalone network node with generic or specific components. Hardware 604 may implement some functions via virtualization. Alternatively, hardware 604 may be part of a larger cluster of hardware (e.g. such as in a data center or CPE) where many hardware nodes work together and are managed via management and orchestration 610, which, among others, oversees lifecycle management of applications 602. In some embodiments, hardware 604 is coupled to one or more radio units that each include one or more transmitters and one or more receivers that may be coupled to one or more antennas. Radio units may communicate directly with other hardware nodes via one or more appropriate network interfaces and may be used in combination with the virtual components to provide a virtual node with radio capabilities, such as a radio access node or a base station. In some embodiments, some signalling can be provided with the use of a control system 612 which may alternatively be used for communication between hardware nodes and radio units. Although the computing devices described herein (e.g., UEs, network nodes) may include the illustrated combination of hardware components, other embodiments may comprise computing devices with different combinations of components. It is to be understood that these computing devices may comprise any suitable combination of hardware and / or software needed to perform the tasks, features, functions and methods disclosed herein. Determining, calculating, obtaining or similar operations described herein may be performed by processing circuitry, which may process information by, for example, converting the obtained information into other information, comparing the obtained information or converted information to information stored in the network node, and / or performing one or more operations based on the obtained information or converted information, and as a result of said processing making a determination. Moreover, while components are depicted as single boxes located within a larger box, or nested within multiple boxes, in practice, computing devices may comprise multiple different physical components that make up a single illustrated component, and functionality may be partitioned between separate components. For example, a communication interface may be configured to include any of the components described herein, and / or the functionality of the components may be partitioned between the processing circuitry and the communication interface. In another example, non-computationally intensive functions of any of such components may be implemented in software or firmware and computationally intensive functions may be implemented in hardware. In certain embodiments, some or all of the functionality described herein may be provided by processing circuitry executing instructions stored on in memory, which in certain embodiments may be a computer program product in the form of a non-transitory computer-readable storage medium. In alternative embodiments, some or all of the functionality may be provided by the processing circuitry without executing instructions stored on a separate or discrete device- readable storage medium, such as in a hard-wired manner. In any of those particular embodiments, whether executing instructions stored on a non-transitory computer-readable storage medium or not, the processing circuitry can be configured to perform the described functionality. The benefits provided by such functionality are not limited to the processing circuitry alone or to other components of the computing device, but are enjoyed by the computing device as a whole, and / or by end users and a wireless network generally. The foregoing merely illustrates the principles of the disclosure. Various modifications and alterations to the described embodiments will be apparent to those skilled in the art in view of the teachings herein. It will thus be appreciated that those skilled in the art will be able to devise numerous systems, arrangements, and procedures that, although not explicitly shown or described herein, embody the principles of the disclosure and can be thus within the scope of the disclosure. Various exemplary embodiments can be used together with one another, as well as interchangeably therewith, as should be understood by those having ordinary skill in the art.

Claims

Claims 1. A computer-implemented method for determining optimised values of one or more discrete input parameters for a trained neural network, wherein the neural network is trained to generate values of one or more output parameters based on values of a set of input parameters, the method comprising: performing (401) an initial iteration of an input parameter optimisation process, the input parameter optimisation process comprising: - using (4011) a stochastic gradient optimisation process to determine respective first values for one or more discrete input parameters that minimise a loss function associated with the trained neural network, wherein the one or more discrete input parameters are comprised in the set of input parameters, and wherein each discrete input parameter has a respective discrete number of possible values in a respective defined range; and - for any determined first value that is outside the respective defined range for the respective discrete input parameter, clipping (4012) said determined first value such that the clipped first value is within the respective defined range for the respective discrete input parameter; - wherein the output of the input parameter optimisation process is a set of first values comprising any first values that were clipped and any first values that were not clipped; performing (403) at least one further iteration of the input parameter optimisation process using the output of the preceding iteration of the input parameter optimisation process as initial values for the one or more discrete input parameters in the stochastic gradient optimisation process; and determining (405) the optimised values by setting the first values in the output of the last iteration of the input parameter optimisation process to a respective neighbouring value in the respective defined range of discrete values.

2. The method as claimed in claim 1, wherein the method further comprises: determining a distance measure between the possible values in the respective defined range and each first value in the output of the last iteration of the input parameter optimisation process; and wherein the first values output by the last iteration of the input parameter optimisation process are set to the respective neighbouring value based on the respective distance measure.

3. The method as claimed in claim 2, wherein the first values output by the last iteration of the input parameter optimisation process are set to the respective neighbouring value in the respective defined range having the smallest distance measure.

4. The method as claimed in claim 1, wherein the set of input parameters comprises a plurality of discrete input parameters, and the method further comprises: forming a vector from each of the first values output by the last iteration of the input parameter optimisation process; determining respective distance measures between the vector and vectors formed from possible values of each discrete input parameter; and wherein the first values output by the last iteration of the input parameter optimisation process are set to the values in the vector formed from possible values that has the smallest distance measure.

5. The method as claimed in claim 1, wherein setting the first values output by the last iteration of the input parameter optimisation process to a respective neighbouring value in the respective defined range of discrete values comprises setting a first value to a respective nearest value in the respective defined range of discrete values.

6. The method as claimed in claim 1, wherein setting the first values output by the last iteration of the input parameter optimisation process to a respective neighbouring value in the respective defined range of discrete values comprises setting a first value to a respective nearest value in the respective defined range of discrete values that is higher or lower than the first value.

7. The method as claimed in any of claims 1-6, wherein the method further comprises: defining the loss function for the trained neural network.

8. The method as claimed in any of claims 1-7, wherein the stochastic gradient optimisation process is an Adam algorithm or a Root Mean Square Propagation, RMSprop, process.

9. The method as claimed in any of claims 1-8, wherein the set of input parameters comprises a plurality of discrete input parameters.

10. The method as claimed in any of claims 1-9, wherein the set of input parameters further comprises one or more continuous input parameters whose values take any value in a respective defined range.

11. The method as claimed in claim 10, wherein the values for the one or more continuous input parameters are fixed during the stochastic gradient optimisation process.

12. The method as claimed in any of claims 1-11, wherein the loss function is a function of values of the one or more output parameters output by the trained neural network and one or more target values of the one or more output parameters.

13. The method as claimed in any of claims 1-12, wherein the neural network is a Graph Neural Network, GNN.

14. The method as claimed in any of claims 1-13, wherein the neural network models operation and / or performance of a cell in a communication network.

15. The method as claimed in claim 14, wherein the one or more output parameters relate to operation and / or performance of the cell, and the one or more discrete input parameters are, or include, configurable operational parameters for the cell.

16. A computer program product comprising a computer readable medium having computer readable code embodied therein, the computer readable code being configured such that, on execution by a suitable computer or processor, the computer or processor is caused to perform the method of any of claims 1-15.

17. An apparatus configured to perform the method of any of claims 1-15.

18. An apparatus, comprising a processor and a memory, said memory containing instructions executable by said processor whereby said apparatus is operative to perform the method of any of claims 1-15.

Citation Information

Patent Citations

  • Generating saliency masks for inputs of models using saliency metric

    US20200372309A1

  • Neural networks with subdomain training

    US20210383235A1

  • Attention neural networks with n-grammer layers

    US20240078379A1

  • Privacy-sensitive neural network training using data augmentation

    WO2023209192A1