Patent Description:
Machine learning is a field of computer science that gives computers the ability to learn without being explicitly programmed. The system learns from experience E with respect to some class of tasks T and performance measure P if its performance at tasks in T, as measured by P, improves with experience E. The system can often learn from prior training data to make predictions on future data. Machine learning includes wholly or partially supervised learning and wholly or partially unsupervised learning. It may enable discreet outputs (for example classification, clustering) and continuous outputs (for example regression). Machine learning may for example be implemented using different approaches such as cost function minimization, neural networks, support vector machines and Bayesian networks for example.

An artificial neural network, for example with one or more hidden layers, models a complex relationship between input vectors and output vectors.

An artificial neural network comprises a number of highly interconnected processing elements (artificial neurons) that process information by their dynamic state response to external inputs. An artificial neural network is arranged as a directed graph whose nodes are artificial neurons and whose vertices are connections between artificial neurons.

Each neuron can be configured to determine whether or not a weighted sum of its inputs causes an activation function to produce an output. In a layered ANN, an input layer is the first layer and receives at least some of its inputs from outside the ANN and an output layer is the final layer and provides at least some of its outputs outside the ANN. The layers between the first and final layer are hidden layers. For artificial neurons in the hidden layer(s) and the final layer, the inputs are outputs from the artificial neurons in the preceding layer.

<CIT> discloses a method structure for the compression of data. Encoders, each comprising a neural network and matched decoders, each comprising a neural network are used. The appropriate encoder and matched decoder is selected according to the data to be compressed.

Further aspects of the invention are outlined in the dependent claims.

An "apparatus" is a physical entity. It may be a component or a combination of components.

"Means" references that part of a physical entity that perform a function. The part may be dedicated to that function or may perform other functions. The functionality can, for example, be included in hardware within circuits or included in software within instructions.

"Mode of operation" refers to a state of a state machine.

"Transmitter device" is a physical entity or part of a physical entity that transmits data.

"Receiver device" is a physical entity or part of a physical entity that receives data.

"Artificial neural network" is a machine learning network comprising a number of highly interconnected processing elements (artificial neurons) that process information by their dynamic state response to inputs including inputs dependent upon the dynamic state response of interconnected artificial neurons. It can be, for example, a shallow neural network, deep neural network (DNN), a recurrent neural network (RNN), Convolutional neural network (CNN), a Generative adversarial network (GAN), a Capsule Neural Network (CapsNet), etc..

"Partition" means the physical division of an entity that operates as a whole into two physically separated entities.

"Communication channel" refers to the link used for communication and includes both physical links and wireless links.

"Communication pipeline" refers to the end to end communication of information.

<FIG> illustrates an example embodiment of a system <NUM> operating in a first mode of operation and <FIG> illustrates an example embodiment of the system <NUM> operating in a second mode of operation.

In the first mode of operation, the system <NUM> enables performance of a first predetermined task by transferring data <NUM> from a transmitter device <NUM> to a receiver device <NUM> using a first artificial neural network <NUM>.

The first artificial neural network <NUM> is partitioned to the transmitter device <NUM> and the receiver device <NUM> across a first communication channel <NUM> between the transmitter device <NUM> and the receiver device <NUM>. The first artificial neural network <NUM> comprises a first part <NUM> of the first artificial neural network <NUM> that is in the transmitter device <NUM> and a second part <NUM> of the first artificial neural network <NUM> that is in the receiver device <NUM>.

The first artificial neural network <NUM> is therefore physically divided into two different parts <NUM>, <NUM> that are in communication via the communication channel <NUM>. The first part <NUM> and the second part <NUM> of the first artificial neural network <NUM> operate together substantially simultaneously to provide the functionality of the first artificial neural network <NUM>. The combination of the first artificial neural network <NUM> and the interconnecting first communication channel <NUM> provide a first communication pipeline from the transmitter device <NUM> to the receiver device <NUM>.

<FIG> therefore illustrates an example of an apparatus comprising means for operating a transmitter device <NUM> in a first mode of operation that enables performance of a first predetermined task by using, at the transmitter device <NUM>, a first part <NUM> of a first partitioned artificial neural network <NUM> to transmit data <NUM> from the transmitter device <NUM> to a receiver device <NUM> using the first partitioned artificial neural network <NUM>.

The first partitioned artificial neural network <NUM> is partitioned to the transmitter device <NUM> and the receiver device <NUM> across the first communication channel <NUM> and comprises the first part <NUM> of the first artificial neural network <NUM> in the transmitter device <NUM> and a second part <NUM> of the first artificial neural network <NUM> in the receiver device <NUM>.

The figure also illustrates an apparatus comprising means for operating a receiver device <NUM> in a first mode of operation that enables performance of the first predetermined task by using, at the receiver device <NUM>, the second part <NUM> of the first partitioned artificial neural network <NUM> to receive data <NUM> transmitted to the receiver device <NUM> from the first part <NUM> of the first partitioned artificial neural network <NUM> at the transmitter device <NUM>.

In some examples, the first predetermined task may be a task performed by only the receiver device <NUM>, in other examples it may be a task performed by only the transmitter device <NUM> and in other examples it may be a task performed by both the transmitter device <NUM> and the receiver device <NUM> or caused to be performed by one or more of those devices.

<FIG> therefore illustrates an example of an apparatus comprising means for operating a transmitter device <NUM> in a second mode of operation that enables performance of a second predetermined task by using, at the transmitter device <NUM>, a first part <NUM> of a second partitioned artificial neural network <NUM> to transmit data <NUM> from the transmitter device <NUM> to a receiver device <NUM> using the second partitioned artificial neural network <NUM>.

The second partitioned artificial neural network <NUM> is partitioned to the transmitter device <NUM> and the receiver device <NUM> across a second communication channel <NUM> and comprises a first part <NUM> of the second artificial neural network <NUM> in the transmitter device <NUM> and a second part <NUM> of the second artificial neural network <NUM> in the receiver device <NUM>.

The figure also illustrates an apparatus comprising means for operating the receiver device <NUM> in the second mode of operation that enables performance of the second predetermined task by using, at the receiver device <NUM>, the second part <NUM> of the second partitioned artificial neural network <NUM> to receive data <NUM> transmitted to the receiver device <NUM> from the first part <NUM> of the second partitioned artificial neural network <NUM> at the transmitter device <NUM>.

In some examples, the second predetermined task may be a task performed by only the receiver device <NUM>, in other examples it may be a task performed by only the transmitter device <NUM> and in other examples it may be a task performed by both the transmitter device <NUM> and the receiver device <NUM> or caused to be performed by one or more of those devices.

<FIG> illustrates an example embodiment of a method <NUM>. In this example, the first mode of operation <NUM> is illustrated as a first state of a state machine and the second mode of operation <NUM> is illustrated as a second state of the state machine. The transition <NUM> from the first state to the second state causes a change in the mode of operation from the first mode <NUM> to the second mode <NUM>. The transition <NUM> from the second state to the first state causes a change in the mode of operation from the second mode <NUM> to the first mode <NUM>. The first and second modes are therefore mutually exclusive in this example.

It will be appreciated that in this example the state machine comprises only two states each of which corresponds to a particular mode. However, in other examples there may be multiple different states each with an associated mode of operation that uses a different partitioned artificial neural network. Each partitioned artificial neural network may enable performance of a different predetermined task by transferring data <NUM> from a first part in the transmitter device <NUM> to a second part in the receiver device <NUM> across a communication channel.

The method <NUM> comprises determining whether to operate in a particular state of the state machine. For example, determining whether to operate in the first mode of operation <NUM> or the second mode of operation <NUM>.

The decision of whether to operate in the first mode <NUM> or the second mode <NUM> may be taken in the receiver device <NUM> or in the transmitter device <NUM> or in both devices contemporaneously.

The method <NUM> therefore comprises: determining to operate in the first mode <NUM> or the second mode <NUM>;.

An artificial neural network can be defined in hardware using a hardware component for each neuron and physically interconnected the hardware components to form the artificial neural network. For example, each artificial neuron may be a different controller or other circuitry configured to perform the neuron's function.

An artificial neural network can be defined in software for example using Python, Matlab or Octave. For example, each artificial neuron may be simulated using programmed instructions that are executed by a controller.

<FIG> illustrates an example embodiment of a controller <NUM>. Implementation of a controller <NUM> may be as controller circuitry. The controller <NUM> may be implemented in hardware alone, have certain aspects in software including firmware alone or can be a combination of hardware and software (including firmware).

The memory <NUM> stores a computer program <NUM> comprising computer program instructions (computer program code) that controls the operation of the apparatus <NUM>, <NUM> when loaded into the processor <NUM>. The computer program instructions, of the computer program <NUM>, provide the logic and routines that enables the apparatus to perform the methods illustrated in <FIG>. The processor <NUM> by reading the memory <NUM> is able to load and execute the computer program <NUM>.

The apparatus <NUM>, <NUM> therefore comprises:.

For transmitting, the at least one memory <NUM> and the computer program code configured to, with the at least one processor <NUM>, cause an apparatus comprising a transmitter device at least to perform:.

For receiving, the at least one memory <NUM> and the computer program code configured to, with the at least one processor <NUM>, cause an apparatus comprising a receiver device at least to perform:.

As illustrated in <FIG>, the computer program <NUM> may arrive at the apparatus <NUM>, <NUM> via any suitable delivery mechanism <NUM>. The delivery mechanism <NUM> may be, for example, a machine readable medium, a computer-readable medium, a non-transitory computer-readable storage medium, a computer program product, a memory device, a record medium such as a Compact Disc Read-Only Memory (CD-ROM) or a Digital Versatile Disc (DVD) or a solid state memory, an article of manufacture that comprises or tangibly embodies the computer program <NUM>. The delivery mechanism may be a signal configured to reliably transfer the computer program <NUM>. The apparatus <NUM>, <NUM> may propagate or transmit the computer program <NUM> comprising computer program instructions (computer program code) as a computer data signal.

The computer program instructions are for causing an apparatus to perform at least the following:.

References to 'computer-readable storage medium', 'computer program product', 'tangibly embodied computer program' etc. or a 'controller', 'computer', 'processor' etc. should be understood to encompass not only computers having different architectures such as single /multi- processor architectures and sequential (Von Neumann)/parallel architectures but also one or more specialized circuits such as field-programmable gate arrays (FPGA), application specific circuits (ASIC), GPUs (Graphics Processing Unit), NPUs (Neural Network Processing Unit), AI (Artificial Intelligence) accelerators, signal processing devices, other processing circuitry , or any combinations thereof.

The blocks illustrated in the <FIG> may represent steps in a method and/or sections of code in the computer program <NUM>. The illustration of a particular order to the blocks does not necessarily imply that there is a required or preferred order for the blocks and the order and arrangement of the block may be varied. Furthermore, it may be possible for some blocks to be omitted.

<FIG> illustrates an example embodiment of a system <NUM>, as previously described with relation to <FIG>. A transmitter device <NUM> has a first mode of operation <NUM> that enables performance of a first predetermined task by using, at the transmitter device <NUM>, a first part <NUM> of a first partitioned artificial neural network <NUM> to transmit data <NUM> from the transmitter device <NUM> to a receiver device <NUM> using the first partitioned artificial neural network.

The first partitioned artificial neural network <NUM> is partitioned to the transmitter device <NUM> and the receiver device <NUM> across a first communication channel <NUM> between the transmitter device <NUM> and the receiver device <NUM> and comprises the first part <NUM> of the first artificial neural network <NUM> in the transmitter device <NUM> and the second part of the first artificial neural network <NUM> in the receiver device <NUM>.

The receiver device <NUM>, in a first mode of operation <NUM>, enables the performance of the first predetermined task by using, at the receiver <NUM>, a second part <NUM> of the first partitioned artificial neural network <NUM> to receive data <NUM> transmitted to the receiver device <NUM> from the first part <NUM> of the first partitioned artificial neural network <NUM> at the transmitter device <NUM>.

The transmitter device <NUM>, in a second mode of operation <NUM>, enables performance of a second predetermined task by using, at the transmitter device <NUM>, a first part <NUM> of a second partitioned artificial neural network <NUM> to transmit data <NUM> from the transmitter device <NUM> to the receiver device <NUM> using the second partitioned artificial neural network <NUM>.

The second partitioned artificial neural network <NUM> is partitioned to the transmitter device <NUM> and the receiver device <NUM> across a second communication channel <NUM> between the transmitter device <NUM> and the receiver device <NUM>, and comprises the first part <NUM> of the second artificial neural network <NUM> in the transmitter device <NUM> and a second part <NUM> of the second artificial neural network <NUM> in the receiver device <NUM>.

The receiver device <NUM>, in the second mode of operation <NUM>, enables performance of the second predetermined task by using, at the receiver device <NUM>, a second part <NUM> of the second partitioned artificial neural network <NUM> to receive data <NUM> transmitted to the receiver device <NUM> from the first part <NUM> of the second partitioned artificial neural network <NUM> at the transmitter device <NUM>.

In some but not necessarily all examples, the system <NUM> comprises one or more additional artificial neural networks for performing specific tasks that have a first part n10 partitioned to the transmitter device <NUM> and a second part n20 partitioned to the receiver device <NUM> and configured to receive data from the first part n10 transmitted in a communication channel n30.

The system <NUM> may operate in, at least, the first mode <NUM> or the second mode <NUM>.

In this example, the transmitter device <NUM> comprises or is coupled to one or more sensors <NUM>. The one or more sensors <NUM> produce output data <NUM> that is input, as input data <NUM>, to the first part of the partitioned artificial neural network that has been selected according to the current mode of operation. In the first mode of operation <NUM>, the data <NUM> from the one or more sensors <NUM> is provided to the first part <NUM> of the first partitioned artificial neural network <NUM>. In the second mode of operation <NUM>, the input data <NUM> is provided to the first part <NUM> of the partitioned artificial neural network <NUM>.

The one or more sensors <NUM> that are used to provide the input data <NUM> in the first mode <NUM> may be the same or different to the one or more sensors <NUM> that are used to provide the input data <NUM> in the second mode of operation <NUM>.

In some, but not necessarily all, examples, the input data <NUM> is audio data that is captured at one or more microphones <NUM>. In this or other examples, respective input data <NUM> may be from the one or more of the sensors 420such as: a still/video camera unit, an inertial measurement unit (IMU), a geolocation device such as a GPS (Global Positioning System) receiver, a proximity sensor, a barometer, a thermometer, a speed sensor, a radar, a LIDAR (Light Detection And Ranging), a user input device, a diagnostic or medical sensor, such as a PPG (Photoplethysmogram), an electromyographic (EMG) sensor, a pulse oximeter, or any combination thereof. Additionally, the input data <NUM> may be one or more of Electrocardiography data (ECG) and EEG data (electroencephalography) from one or more respective sensors <NUM>.

In the example illustrated, but not necessarily all examples, the input data <NUM> is preprocessed at pre-processing circuitry <NUM> before it is input to the partitioned artificial neural network. In some examples, there may be no pre-processing. In other examples there may be different pre-processing applied before the first partitioned artificial neural network <NUM> and/or before the second partitioned artificial neural network <NUM>. In some examples there may be pre-processing applied to one but not the other of the first and second partitioned artificial neural networks <NUM>, <NUM>. Many different types of pre-processing may be performed. One example of pre-processing is quantization or other signal shaping. Quantization may, for example, be performed by passing only the most significant bits of the input data <NUM>.

The input data <NUM> is transferred from the transmitter device <NUM> to the receiver device <NUM> via a communication pipeline determined by the current mode of operation. If the current mode of operation is the first mode of operation <NUM>, then the input data <NUM> is transferred via a first communication pipeline that comprises the first artificial neural network <NUM> partitioned by the first communication channel <NUM>. If the current mode of operation is the second mode of operation <NUM>, then the input data <NUM> is transferred via a second communication pipeline that comprises the second artificial neural network <NUM> partitioned by the second communication channel <NUM>.

It will therefore be appreciated that the input data <NUM> is available at the transmitter device <NUM> and also at the receiver device <NUM>. In some examples, the decision to select to operate in the first mode of operation <NUM> or the second mode of operation <NUM> is based upon the input data <NUM>. As previously described, this decision may be taken at the transmitter device <NUM>, the receiver device <NUM> or at both the transmitter device <NUM> and the receiver device <NUM>.

The determination to operate in the first mode or the second mode occurs contemporaneously at the transmitter device <NUM> and the receiver device <NUM> so that the modes are coordinated. This ensures that the first and second parts of the artificial neural networks that are in communication relate to the same artificial neural network.

In some, but not necessarily all, examples, the decision to select to operate in the first mode <NUM> or the second mode <NUM> is made at the receiver device <NUM> and communicated to the transmitter device <NUM>. In some, but not necessarily all, examples, this communication may be via a feedback channel, for example a separate low bandwidth wireless channel.

In some, but not necessarily all, examples, the data output from the first part of the partitioned artificial neural network may be encoded before it is transmitted on to the respective communication channel. This encoding may, for example, make the transmission of the data more robust to interference or noise. In one example, the data <NUM> transferred from the first part of the partitioned artificial neural network across the communication channel to the second part of that partitioned artificial neural network is encoded before transfer by the first part and decoded by the second part after transfer. In one example, the encoding may be performed by conjugate permutation, however, other types of encoding may be used, for example interleaving.

The encoding may be performed by the first part of the partitioned artificial neural network and decoded by the second part of the partitioned artificial neural network. In other examples, pre-processing may be used to encode data before it is provided to the first part of the partitioned artificial neural network.

The first partitioned artificial neural network <NUM> and/or the second partitioned artificial neural network <NUM> may use the same encoding/decoding or may use different encoding/decoding or may not use encoding/decoding.

The transmission and processing of input data <NUM> can be done on a single chip set at the transmitter device <NUM>.

The reception and processing of data <NUM> can be done on a single chip set at the receiver device <NUM>.

<FIG> illustrates an example embodiment of a wireless transmitter device <NUM>, such as a headset device <NUM>, e.g. a headphone device, earbuds, earphones, a virtual reality (VR) headset, or an augmented reality (AR) headset that is configured to communicate wirelessly <NUM> with a host device <NUM> which is configured to communicate wirelessly with the wireless headphone device <NUM>. Alternatively or additionally, the wireless device <NUM> may be a wireless game controller, a sleeve control device or a wrist control device. Alternatively or additionally, the transmitter device <NUM> may be an loT device embedded with, or connected to, one or more sensor devices <NUM>.

In this example, the wireless headphone device <NUM> may be or may comprise the transmitter device <NUM> and the host device <NUM> may be or may comprise the receiver device <NUM>. The combination of the wireless headphone device <NUM> and the host device <NUM> therefore provides a system <NUM> as previously described. In some other examples, the loT device <NUM> may be connected to the host device <NUM>, for example, an intermediary device <NUM> (such as a mobile communication device, a mobile phone, a gateway, a router, an access point, a personal computer, a game console, a television, a vehicle, an infotainment system, an in-vehicle electronic control unit (ECU), a set-top box, or any combination thereof) or a cloud device <NUM> (such as a server) that executes the second partitioned artificial neural network.

The wireless channel <NUM> used for communicating between the wireless headphone device <NUM> and the host device <NUM> provides the first and/or second communication channel <NUM>, <NUM>.

The headphones may be any suitable type of headphones. They may for example be on-ear, in-ear or over-the-ear headphones.

The host device <NUM> may be any suitable apparatus. It may for example be a smartphone, a server or any device with a processing unit for example.

In this example the headphone device <NUM> comprises one or more loudspeakers <NUM> one or more microphones <NUM>, and/or other sensors <NUM>, that capture input data <NUM> that is transmitted as data <NUM> through the partitioned artificial neural network associated with the current mode of operation. The artificial neural network is partitioned by the wireless communication channel <NUM>. In the first mode of operation, the first partitioned artificial neural network <NUM> is used for transmitting the audio data, whereas in the second mode of operation the second partitioned artificial neural network <NUM> is used to transmit the audio data.

<FIG> are an illustrative example of the different effect of using the first mode <NUM> and the second mode <NUM> on compression. <FIG> illustrate mode-dependent compression of a bandwidth <NUM>. The bandwidth illustrates data transfer per second e.g. bits/s.

<FIG> illustrates that, in this example, the bandwidth <NUM> is significantly decreased for transmission across the first communication channel <NUM> by the first part <NUM> of the first artificial neural network <NUM>. <FIG> illustrates that the bandwidth <NUM> is also significantly decreased by the first part <NUM> of the second artificial neural network <NUM> before transmission via the second communication channel <NUM>. It can be appreciated from the differences between <FIG> that the compression of data applied in the first mode <NUM> (<FIG>) and in the second mode <NUM> (<FIG>) is different.

The first artificial neural network <NUM> is configured to perform a first compression on the data <NUM> in the first mode <NUM> and the second artificial neural network is configured to perform a second compression on the data <NUM> in the second mode <NUM>, different to the first compression.

In some but not necessarily all examples, the first compression is a compression for a first communications protocol. Additionally or alternatively, the first compression may also be optimized for the first predetermined task performed at the receiver device <NUM>.

In some but not necessarily all examples, the second compression is a compression for a second communications protocol. Alternatively or additionally, the compression may also be for a second predetermined task performed at the receiver device <NUM>.

For example, the first compression and/or the second compression may be used to create a stream of the data <NUM>. In some examples, this stream may be a serial bit stream.

In some examples, the first mode may be associated with a particular communications protocol such as a Bluetooth (BT) or Bluetooth Low Energy (BLE) serial protocol and the second mode of operation may be associated with a different wireless communications protocol.

The first compression and/or the second compression may be configured to enable a particular quality of audio. For example, the quality of audio retained by the first compression may be better than the quality of audio retained by the second compression.

Other aspects of the protocol may be determined in addition to the bandwidth. For example the bit stream length or the modulation used may be defined by the communications protocol.

<FIG> schematically illustrates an example of how the partitioned artificial neural network <NUM> used changes when the mode of operation changes. <FIG> illustrates a first partitioned artificial neural network <NUM> and <FIG> illustrates a second partitioned artificial neural network <NUM>.

The artificial neural networks (ANN) <NUM>, <NUM> comprise a number of highly interconnected processing elements (artificial neurons <NUM>) that process information by their dynamic state response to inputs. The artificial neural network is arranged as a directed graph whose nodes are artificial neurons <NUM> and whose vertices are connections between artificial neurons.

Each artificial neuron <NUM> can be configured to determine whether or not a weighted sum of its inputs causes an activation function to produce an output. This is a layered ANN. An input layer is the first (leftmost) layer and receives at least some of its inputs from outside the ANN and an output layer is the final (rightmost) layer and provides at least some of its outputs outside the ANN. The layers between the first and final layer are hidden layers <NUM>. For artificial neurons <NUM> in the hidden layer(s) <NUM> and the final layer, the inputs are outputs from the artificial neurons in the preceding layer. Thus each of these artificial neurons <NUM> determines whether or not a weighted sum of its inputs causes an activation function to produce an output.

Referring to <FIG>, the first part <NUM> of the artificial neural network <NUM> is separated from the second part <NUM> of the artificial neural network <NUM> by a first communication channel <NUM>.

A hidden part <NUM>, which in this example is a final hidden layer <NUM>, of the first part <NUM> of the first artificial neural network <NUM> is dependent upon a bandwidth of the first communication channel <NUM> and/or is dependent upon a communications protocol used for communicating via the first communication channel <NUM>.

In the example illustrated the first part <NUM> of the first artificial neural network <NUM> has a first hidden part <NUM> (which may be a layer or layers <NUM>) that, in use, provides data <NUM> to the first communication channel <NUM>. The second part <NUM> of the first artificial neural network <NUM> has a second hidden part <NUM> (in a layer or layers <NUM>) that, in use, receives data <NUM> from the first communication channel <NUM>.

The number of artificial neurons <NUM> in the first part <NUM>, in this example, is dependent upon a bandwidth of the first communication channel <NUM>. In particular, in the example illustrated, the number of neurons in the final hidden layer <NUM> of the first part <NUM> of the first artificial neural network <NUM> is dependent upon a bandwidth of the first communication channel <NUM>.

Referring to <FIG>, the first part <NUM> of the artificial neural network <NUM> is separated from the second part <NUM> of the artificial neural network <NUM> by a second communication channel <NUM>.

A hidden part <NUM>, which in this example is a final hidden layer <NUM>, of the first part <NUM> of the second artificial neural network <NUM> is dependent upon a bandwidth of the second communication channel <NUM> and/or is dependent upon a communications protocol used for communicating via the second communication channel <NUM>.

The number of artificial neurons <NUM> in the first part <NUM>, in this example, is dependent upon a bandwidth of the second communication channel <NUM>. In particular, in the example illustrated, the number of neurons in the final hidden layer <NUM> of the first part <NUM> of the second artificial neural network <NUM> is dependent upon a bandwidth of the second communication channel <NUM>.

It will be understood by those skilled in the art that by placing a constraint on the number of neurons <NUM> present at the final hidden layer <NUM> of the first part <NUM> of the partitioned artificial neural network, the quantity of data provided via the communication channel <NUM> is controlled. As previously described, the number of neurons <NUM> in the final hidden layer <NUM> may be determined by the particular communications protocol used for the first communication channel <NUM>. Similarly, the precisions used in the representation of the output of the final hidden layer <NUM> can be adjusted by the skilled practitioner to the bandwidth and accuracy requirements.

It will be appreciated by those who are skilled in the art that it is necessary to train an artificial neural network so that it operates as expected. Typically weights for the combination of inputs need to be assigned at each artificial neuron <NUM>. One option for performing this optimization is by using gradient descent. It is for example possible to forward-propagate training data <NUM> through the artificial neural network and then back-propagate an error signal produced by supervised learning to produce weight updates. However, the back-propagation algorithm requires the determination of a localized cost function and a gradient of that cost function. It is therefore desirable to use a cost function that is differentiable. However, any non-differentiable cost function in a continuous landscape, can be made differentiable by approximation. For example, the function sign(x) can be replaced by either tanh(cx) for c><NUM> or a piecewise linear function.

The first part <NUM> of the first artificial neural network <NUM> and the second part <NUM> of the first artificial neural network are jointly trained as a single artificial neural network. This may, for example, be achieved by using back-propagation and a static or differentiable model of the communications channel <NUM>. A differentiable model of the channel should be understood to be inclusive -any model can be made differentiable by simply inventing gradients. For example, modelling the channel as the identity function, produces as a gradient the identity.

Learning a model for the channel could be part of the implementation of the system. If so, those gradients could be learned as well, since the learning process can involve fitting a differentiable function (from a family F) to the channel. Differentiable can be understood in the following way: The output of the channel is a random variable Y depending on an "input" X. dY/dX, in direction t may be the expected value of Y(X + t) - Y(X), which a large enough function family F will eventually capture during training.

Supervised learning may be used to train the weight of the first artificial neural network <NUM> by using training data that defines an expected performance, for example, an expected performance in relation to the first predetermined task. In this way the first artificial neural network can learn when the first predetermined task should or should not be performed in response to input data <NUM>.

The first part <NUM> of the second artificial neural network <NUM> and the second part <NUM> of the second artificial neural network <NUM> are jointly trained as a single artificial neural network. This may, for example, be achieved by using back-propagation and a static or differentiable model of the communications channel <NUM>.

Supervised learning may be used to train the weight of the second artificial neural network <NUM> by using training data that defines an expected performance, for example, an expected performance in relation to the second predetermined task. In this way the second artificial neural network can learn when the second predetermined task should or should not be performed in response to input data <NUM>.

In some, but not necessarily all, examples, the first part <NUM> of the first artificial neural network <NUM> and the second part <NUM> of the first artificial neural network <NUM> are jointly trained as a single artificial neural network to compensate for errors arising in the first communication channel <NUM>. Besides the weights, the routing of information throughout the pipeline has a large impact on errors which are correlated, such as packet loss. Interleaving can be used at the transmission part of the pipeline, and can be thought of as part of the design of the architecture. Thus a single pipeline can provide both compression and built-in error correction that corrects for bit errors and dropped packets during transmission.

Information reordering could also be learned from data; either by brute force by doing black box optimisation (or a random search) across a set of possible architectures, or by describing a set of changes that the system is allowed to perform to the architecture based on.

The latter can be implemented by using a Markov decision process that consists of: Set S of states s Set A of actions a for every state s in S.

Reward function R that depends on a triplet of state s, action taken a and the following state (if the state transition is not deterministic given a).

In some examples this optimisation can be done at run-time to create an adaptive communications channel.

The transmission noise can be modelled during training by adding a noise distribution during the training process to model transmission errors. The noise can either be ignored during the back-propagation or a synthetic gradient can be used.

An advantage to this approach is that because the trained task output is robust to transmission noise, separate error correction can be omitted.

An alternative approach is to model the first communication channel <NUM> using an intermediate artificial neural network <NUM> during the joint training of the first part <NUM> and the second part <NUM> of the first joint network. This is schematically illustrated in <FIG>. In this example, the first part <NUM> of the first artificial neural network <NUM>, the second part <NUM> of the first artificial neural network <NUM> and a first intermediate artificial neural network <NUM> positioned between the first part <NUM> of the first artificial neural network <NUM> and the second part <NUM> of the first artificial neural network <NUM> are simultaneously and jointly trained. The first intermediate artificial neural network <NUM> simulates errors arising from the first communication channel <NUM>. The first part <NUM>, second part <NUM> and the first intermediate artificial neural network <NUM> are jointly trained as a single artificial neural network to compensate for errors arising in the first communication channel <NUM> as illustrated in <FIG>. In implementation, the first part <NUM> of the first artificial neural network <NUM> and the second part <NUM> of the first artificial neural network <NUM>, but not the first intermediate artificial neural network <NUM>, are used as the first artificial neural network <NUM> as illustrated in <FIG>.

The second communication channel <NUM> can be modelled using an intermediate artificial neural network <NUM> during the joint training of the first part <NUM> and the second part <NUM> of the second network <NUM>. This is schematically illustrated in <FIG>. In this example, the first part <NUM> of the second artificial neural network <NUM>, the second part <NUM> of the second artificial neural network <NUM> and a second intermediate artificial neural network <NUM> positioned between the first part <NUM> and the second part <NUM> are simultaneously and jointly trained. The second intermediate artificial neural network <NUM> simulates errors arising from the second communication channel <NUM>. The first part <NUM>, second part <NUM> and the second intermediate artificial neural network <NUM> are jointly trained as a single artificial neural network to compensate for errors arising in the second communication channel <NUM> as illustrated in <FIG>. In implementation, the first part <NUM> and the second part <NUM>, but not the second intermediate artificial neural network <NUM>, are used as the first artificial neural network <NUM> as illustrated in <FIG>.

The intermediate artificial neural network <NUM>, <NUM> models the channel as an artificial neural network comprising a set of layers with probabilistic and deterministic behavior. The whole combination of the first part <NUM>,<NUM> intermediate artificial neural network <NUM>, <NUM> and second part <NUM>, <NUM> is trained, for example, using stochastic gradient descent and back-propagation. After discarding the first intermediate artificial neural network <NUM>,<NUM> the artificial neural network <NUM>, <NUM> may be additionally trained. During this training certain layers may have fixed weightings while other layers may be allowed to vary within certain limits. This can be used to fine-tune the response.

In the preceding examples, it is necessary to achieve synchronization between the transmitter device <NUM> and the receiver device <NUM>. This can be achieved in a number of different ways. One way in which this can be achieved is by labelling or partitioning the input data <NUM> using pre-processing.

In the examples illustrated previously, the first part of the partitioned artificial neural network <NUM>, <NUM> may be a recurrent artificial neural network and/or the second part of the partitioned artificial neural network <NUM>, <NUM> may be a recurrent artificial neural network. The feedback present in a recurrent artificial neural network may for example be present within the first part, within the second part or be from the second part to the first part via the communication channel <NUM>, <NUM>.

In some, but not necessarily all, examples, the configuration of a partitioned artificial neural network <NUM>, <NUM> may be dependent upon and adapted to computation limitations of the transmitter device <NUM> and/or the receiver device <NUM>. For example, the size or configuration of the first part of the partitioned artificial neural network may be determined by processing or memory limitations in the transmitter device <NUM>. The size or configuration of the second part of the partitioned artificial neural network <NUM>, <NUM> may be constrained by the processing and/or memory available at the receiver device <NUM>.

In the preceding text, reference is made to the performance of various different tasks. In some, but not necessarily all, examples, the predetermined task may be a task that is trained during training of the artificial neural network. In some but not necessarily all examples, it may relate to event detection. An event may, for example, be detection of a keyword, speech recognition or high quality encoding.

In some examples, the event detection may be used as a trigger to switch modes.

In a keyword detection mode, all sound input from the microphone(s) is compressed to a low bandwidth, sufficient for the task of recognition of a single phrase to activate the speech recognition mode but insufficient to enable speech recognition.

In the speech recognition mode, voice input from the microphone(s) <NUM> is compressed to a medium bandwidth so that speech to text is possible. This mode remains active until no more speech is detected.

In a high quality mode, the sound input at the microphone(s) <NUM> is encoded to a high quality (high bandwidth) so that the receiver device <NUM> is able to enable reproduction of the original audio with high fidelity.

Any one of these different modes may be for example the first mode of operation <NUM> previously described and any of the other modes may be for example the second mode of operation <NUM> previously described. It will therefore be appreciated that these different modes can be effected by using partitioned artificial neural networks <NUM>, <NUM> as described. Furthermore, the transitions between the different modes may be enabled using the partitioned artificial neural networks. Furthermore, a system <NUM>, <NUM> may have more than two nodes and related artificial neural network or machine learning algorithms.

Other examples of tasks that may be performed include detection in video of motion detected data <NUM>, speech recognition or speaker identification from audio data <NUM> or providing video for streaming for playback, providing video or image streaming for object recognition, IMU and/or GPS sensor data for movement detection and/or analysis, providing LIDAR data for 3D model creation and/or object detection, PPG Other examples of tasks may, for example, comprise lowering a volume of output audio, opening an acoustic valve, turning off active noise cancellation when aware of the headphones <NUM> is being spoken to, switching on high quality streaming from the microphone.

In one example embodiment, as illustrated in <FIG>, the first part <NUM> of the first artificial neural network <NUM> receives as data <NUM> a signal x<NUM>. It transmits onto the first communication channel <NUM> data <NUM> represented by z<NUM>= h<NUM>(x<NUM>). The second part <NUM> of the first artificial neural network receives the transmitted data <NUM>, z'<NUM>, and maps the transmitted signal z'<NUM> to an output y<NUM>, where y<NUM>=h'<NUM>(z'<NUM>). In case of a RNN (Recurrent Neural Network), the n-steps zn= hn(xn) and yn=h'n(z'n), wherein hn+<NUM> and h'n+<NUM> are updated neural networks <NUM> and <NUM>), are repeated as long as the neural network <NUM> receives the data <NUM>. This output <NUM> is a task prediction. In some examples the value of z is quantized. Thus a context y is determined based on z from the first part <NUM> and also optionally from other input at the receiver device <NUM>. In this example, the receiver device <NUM> makes the decision to change the context and causes the state transition from the first mode <NUM> to the second mode <NUM> based on this input. In some, but not necessarily all, examples, the receiver device <NUM> transmits this decision back to the transmitter device <NUM> as a special context changing code. This may, for example, be transmitted via a separate bandwidth wireless channel. In one example embodiment, the h<NUM> and h'<NUM> can be a first part and a second part of a partitioned neural networks. In another example embodiment, the h<NUM> and h'<NUM> can be different neural networks based on the capabilities of the respective devices <NUM> and <NUM>. For example, the transmitter device <NUM> (or alternatively the receiver device <NUM>) may have limited CPU, memory and/or power resources, and therefore runs shallow and/or smaller neural network with less hidden layers and/or neurons. Yet in another example embodiment, h<NUM> and h'<NUM> can be either artificial neural networks (ANN) or any other type of machine learning (ML) algorithms. such as a support vector machine, or a Bayesian network.

In other examples, the context may not be determined in this way but may be determined by user input or programmatically, possibly by inferring a context based on inputs from the transmitter device <NUM> and the receiver device <NUM>.

In one example embodiment, the first part <NUM> of the first artificial neural network <NUM> receives as data <NUM> that is a pulse code modulated (PCM) encoded sound signal which is mapped to a bit string <NUM> whose length is determined by the Bluetooth Low Energy protocol used for transmission in the first communication channel <NUM>. The second part <NUM> of the first artificial neural network receives the transmitted data <NUM>. It is a recurrent artificial neural network configured for keyword recognition. The first part <NUM> and the second part <NUM> of the first artificial neural network <NUM> are trained simultaneously with stochastic gradient descent. The task prediction is trained to an output <NUM> if the data <NUM> represents an audio signal that is part of the keyword and <NUM> otherwise
and maps the transmitted signal z'<NUM> to an output y<NUM>, where y<NUM>=h'<NUM>(z'<NUM>).

In some but not necessarily all examples, the apparatus <NUM>, <NUM> is configured to communicate data from the apparatus <NUM>, <NUM> with or without local storage of the data in a memory <NUM> at the apparatus <NUM>, <NUM> and with or without local processing of the data by circuitry or processors at the apparatus <NUM>, <NUM>.

The data may, for example, be measurement data from or data produced by the processing of measurement data.

The data may be stored in processed or unprocessed format remotely at one or more devices. The data may be stored in the Cloud.

The data may be processed remotely at one or more devices. The data may be partially processed locally and partially processed remotely at one or more devices.

The data may be communicated to the remote devices wirelessly via short range radio communications such as Wi-Fi or Bluetooth, for example, or over long range cellular radio links. The apparatus may comprise a communications interface such as, for example, a radio transceiver for communication of data.

The apparatus <NUM>, <NUM> may be part of the Internet of Things (IoT) forming part of a larger, distributed network.

The processing of the data, whether local or remote, may be for the purpose of health monitoring, data aggregation, patient monitoring, vital signs monitoring or other purposes.

The above described examples find application as enabling components of:
automotive systems; telecommunication systems; electronic systems including consumer electronic products; distributed computing systems; media systems for generating or rendering media content including audio, visual and audio visual content and mixed, mediated, virtual and/or augmented reality; personal systems including personal health systems or personal fitness systems; navigation systems; user interfaces also known as human machine interfaces; networks including cellular, non-cellular, and optical networks; ad-hoc networks; the internet; the internet of things; virtualized networks; and related software and services.

Although embodiments have been described in the preceding paragraphs with reference to various examples, it should be appreciated that modifications to the examples given can be made without departing from the scope of the claims.

The term 'a' or `the' is used in this document with an inclusive not an exclusive meaning. That is any reference to X comprising a/the Y indicates that X may comprise only one Y or may comprise more than one Y unless the context clearly indicates the contrary. If it is intended to use 'a' or `the' with an exclusive meaning then it will be made clear in the context. In some circumstances the use of 'at least one' or `one or more' may be used to emphasis an inclusive meaning but the absence of these terms should not be taken to infer and exclusive meaning.

Claim 1:
An apparatus comprising means for
operating in a first mode of operation (<NUM>) that enables performance of a first predetermined task by transferring data (<NUM>) from a transmitter device (<NUM>) to a receiver device (<NUM>) using a first artificial neural network (<NUM>) partitioned to the transmitter device (<NUM>) and the receiver device (<NUM>) across a first communication channel (<NUM>) between the transmitter device (<NUM>) and the receiver device (<NUM>), the partitioned first artificial neural network (<NUM>) comprising a first part (<NUM>) in the transmitter device (<NUM>) and a second part (<NUM>) in the receiver device (<NUM>), the first and second parts (<NUM>, <NUM>) having been jointly trained as a single artificial neural network to compensate for errors arising in the first communication channel (<NUM>);
operating in a second mode of operation (<NUM>) that enables performance of a second predetermined task by transferring data (<NUM>) from the transmitter device (<NUM>) to the receiver device (<NUM>) using a second artificial neural network (<NUM>) partitioned to the transmitter device (<NUM>) and the receiver device (<NUM>) across a second communication channel (<NUM>) between the transmitter device (<NUM>) and the receiver device (<NUM>), the partitioned second artificial neural network (<NUM>) comprising a first part (<NUM>) in the transmitter device (<NUM>) and a second part (<NUM>) in the receiver device (<NUM>); and
determining to operate in the first mode (<NUM>) or the second mode (<NUM>), wherein a decision to select to operate in the first mode (<NUM>) or the second mode (<NUM>) is made at the receiver device (<NUM>) and communicated to the transmitter device (<NUM>).