The present disclosure relates to the field of building automation, and more precisely to smart thermostats. More specifically, the present disclosure presents a thermostat and method using a neural network to adjust temperature measurements.
Systems for controlling environmental conditions, for example in buildings, are becoming increasingly sophisticated. An environment control system may at once control heating and cooling, monitor air quality, detect hazardous conditions such as fire, carbon monoxide release, intrusion, and the like. Such environment control systems generally include at least one environment controller, which receives measured environmental values (generally from external sensors), and in turn determines set-points or command parameters to be sent to controlled appliances.
Legacy equipment used in the context of the environmental control of room(s) of a building have evolved to support new functionalities. For instance, legacy thermostats only provided the functionality to allow a user to adjust the temperature in an area (e.g. in a room). Smart thermostats now also have the capability to read the temperature in the area and display it on a display of the smart thermostat. Furthermore, smart thermostats may have enhanced communication capabilities provided by a communication interface of the following type: Wi-Fi, Bluetooth®, Bluetooth® Low Energy (BLE), etc.
A smart thermostat with the capability to measure the temperature in the area where it is deployed includes a temperature sensing module for performing the temperature measurement. The smart thermostat also includes a processor for controlling the operations of the smart thermostat. The smart thermostat further includes the display for displaying the temperature measured by the temperature sensing module. Operations of the processor and the display dissipate heat, which affect the temperature measured by the temperature sensing module. Thus, the temperature measured by the temperature sensing module of the smart thermostat may be inaccurate, for example when the processor is or has been operating recently (due to the heat dissipated by the processor which increases the temperature measured by the temperature sensing module).
Therefore, there is a need for a thermostat and method using a neural network to adjust temperature measurements.
According to a first aspect, the present disclosure relates to a thermostat. The thermostat comprises a temperature sensing module, a display, memory for storing a predictive model comprising weights of a neural network, and a processing unit comprising one or more processor. The processing unit receives a plurality of consecutive temperature measurements from the temperature sensing module. The processing unit determines a plurality of consecutive utilization metrics of the one or more processor of the processing unit. The processing unit determines a plurality of consecutive utilization metrics of the display. The processing unit executes a neural network inference engine using the predictive model for inferring one or more output based on inputs. The inputs comprise the plurality of consecutive temperature measurements, the plurality of consecutive utilization metrics of the one or more processor, and the plurality of consecutive utilization metrics of the display. The one or more output comprises an inferred temperature.
According to a second aspect, the present disclosure relates to a method using a neural network to adjust temperature measurements. The method comprises storing a predictive model comprising weights of the neural network in a memory of a computing device. The method comprises receiving, by a processing unit of the computing device, a plurality of consecutive temperature measurements from a temperature sensing module of the computing device. The processing unit comprises one or more processor. The method comprises determining, by the processing unit of the computing device, a plurality of consecutive utilization metrics of the one or more processor of the processing unit. The method comprises determining, by the processing unit of the computing device, a plurality of consecutive utilization metrics of a display of the computing device. The method comprises executing, by the processing unit of the computing device, a neural network inference engine using the predictive model for inferring one or more output based on inputs. The inputs comprise the plurality of consecutive temperature measurements, the plurality of consecutive utilization metrics of the one or more processor and the plurality of consecutive utilization metrics of the display. The one or more output comprises an inferred temperature.
According to a third aspect, the present disclosure relates to a method for training a neural network to adjust temperature measurements. The method comprises initializing, by a processing unit of a training server, a predictive model comprising weights of the neural network. The method comprises receiving, by the processing unit of the training server via a communication interface of the training server, a plurality of consecutive temperature measurements from a computing device. The plurality of consecutive temperature measurements is performed by a temperature sensing module of the computing device. The method comprises receiving, by the processing unit of the training server via the communication interface of the training server, a plurality of consecutive utilization metrics of one or more processor of the computing device. The method comprises receiving, by the processing unit of the training server via the communication interface of the training server, a plurality of consecutive utilization metrics of a display of the computing device. The method comprises receiving, by the processing unit of the training server via the communication interface of the training server, a sensor temperature measurement from a temperature sensor. The method comprises executing, by the processing unit of the training server, a neural network training engine to adjust the weights of the neural network based on inputs and one or more output. The inputs comprise the plurality of consecutive temperature measurements, the plurality of consecutive utilization metrics of the one or more processor and the plurality of consecutive utilization metrics of the display. The one or more output comprises the sensor temperature measurement.
Embodiments of the disclosure will be described by way of example only with reference to the accompanying drawings, in which:
The foregoing and other features will become more apparent upon reading of the following non-restrictive description of illustrative embodiments thereof, given by way of example only with reference to the accompanying drawings.
Various aspects of the present disclosure generally address one or more of the problems related to environment control systems for buildings. More particularly, the present disclosure aims at providing solutions for compensating an error in the measurement of a temperature in an area of a building performed by a temperature sensing module integrated to a smart thermostat. The error is due to heat generated by other electronic components of the smart thermostat, such as a processor and a Liquid Crystal Display (LCD). The measured temperature is higher than the “real” temperature in the area due to the generated heat.
The following terminology is used throughout the present specification:
Reference is now made concurrently to
The area under the control of the smart thermostat 100 is not represented in the Figures for simplification purposes. As mentioned previously, the area may consist of a room, a floor, an aisle, etc. However, any type of area located inside any type of building is considered within the scope of the present disclosure.
Details of the smart thermostat 100, environment controller 300 and control appliance 350 will now be provided.
The smart thermostat 100 comprises a processing unit 110, memory 120, a communication interface 130, a user interface 140, a display 150, and a temperature sensing module 160. The smart thermostat 100 may comprise additional components not represented in
The processing unit 110 comprises one or more processor (represented in
The memory 120 stores instructions of computer program(s) executed by the processing unit 110, data generated by the execution of the computer program(s), data received via the communication interface 130, etc. Only a single memory 120 is represented in
The communication interface 130 allows the smart thermostat 100 to exchange data with remote devices (e.g. the environment controller 300, the controlled appliance 350, a training server 200, etc.) over a communication network (not represented in
The user interface 140 may take various forms. In a first exemplary implementation, the user interface 140 is an electromechanical user interface comprising a button for raising the temperature in the area and a button for decreasing the temperature in the area. A pressure on one of the two buttons is transformed into an electrical signal transmitted to the processing unit 110. In a second exemplary implementation, the user interface 140 is a tactile user interface integrated to the display 150.
The display 150 is a small size display integrated to the thermostat, such as a Liquid Crystal Display (LCD).
The temperature sensing module 160 is a component well known in the art of environmental control. It is capable of measuring a temperature and transmitting the measured temperature to the processing unit 110. The temperature measured by the temperature sensing module 160 is considered as being representative of the temperature in the area (e.g. in the room) where the smart thermostat 100 is deployed.
As mentioned previously,
As mentioned previously,
The temperature measured by the temperature sensing module 160 is also displayed on the display 150, so that a user can be informed of the current temperature (the measured temperature) in the area.
A detailed representation of the components of the environment controller 300 is not provided in
A detailed representation of the components of the controlled appliance 350 is not provided in
An example of a controlled appliance 350 consists of a VAV appliance. Examples of commands transmitted to the VAV appliance include commands directed to one of the following: an actuation module controlling the speed of a fan, an actuation module controlling the pressure generated by a compressor, an actuation module controlling a valve defining the rate of an airflow, etc. This example is for illustration purposes only. Other types of controlled appliances 350 could be used in the context of interactions with the environment controller 300 or with the smart thermostat 100.
A detailed representation of the components of the training server 200 is not provided in
Reference is now made concurrently to
The term processor shall be interpreted broadly as including any electronic component capable of executing instructions of a software program stored in the memory 120.
Reference is now made concurrently to
A similar curve may be represented, illustrating the influence of the utilization of the display 150 on the temperature measured by the temperature sensing module 160. An increase in the utilization of the display 150 generates more heat, which increases the deviation of the measured temperature from the real temperature.
Reference is now made concurrently to
A dedicated computer program has instructions for implementing at least some of the steps of the method 400. The instructions are comprised in a non-transitory computer program product (e.g. the memory 120) of the smart thermostat 100. The instructions provide for using a neural network to adjust temperature measurements, when executed by the processing unit 110 of the smart thermostat 100. The instructions are deliverable to the smart thermostat 100 via an electronically-readable media such as a storage media (e.g. USB key, etc.), or via communication links (e.g. via a communication network through the communication interface 130).
The instructions of the dedicated computer program executed by the processing unit 110 implement the neural network inference engine 112 and the control module 114. The neural network inference engine 112 provides functionalities of a neural network, allowing to infer output(s) based on inputs using the predictive model stored in the memory 120, as is well known in the art. The control module 114 provides functionalities for controlling the components of the smart thermostat 100 and for allowing the smart thermostat 100 to interact with and/or control other devices (e.g. the environment controller 300 or the controlled appliance 350).
The method 400 comprises the step 405 of executing the neural network training engine 211 to generate the predictive model. Step 405 is performed by the processing unit of the training server 200. This step will be further detailed later in the description.
The method 400 comprises the step 410 of transmitting the predictive model generated at step 405 to the smart thermostat 100, via the communication interface of the training server 200. Step 410 is performed by the processing unit of the training server 200.
The method 400 comprises the step 415 of receiving the predictive model from the training server 200, via the communication interface 130 of the smart thermostat 100. Step 415 is performed by the processing unit 110 of the smart thermostat 100.
The method 400 comprises the step 420 of storing the predictive model in the memory 120 of the smart thermostat 100. Step 420 is performed by the processing unit 110 of the smart thermostat 100.
The method 400 comprises the step 425 of receiving a plurality of consecutive temperature measurements from the temperature sensing module 160. Step 425 is performed by the control module 114 executed by the processing unit 110. As mentioned previously, the measurement of a temperature by a temperature sensing module (e.g. 160) is well known in the art.
The method 400 comprises the step 430 of determining a plurality of consecutive utilization metrics of the one or more processor (e.g. only processor 110A as illustrated in
As mentioned previously, a commonly used utilization metric of a processor is the CPU utilization of the processor, which can be represented as a percentage varying from 0 to 100%. In the case of a single processor 110A, the utilization metric for the processing unit 110 is the CPU utilization of the processor 110A. In the case of several processors (e.g. 110A and 110B), the utilization metric for the processing unit 110 is calculated based on the CPU utilizations of each one of the several processors. Following is a first exemplary implementation in the case of the two processors 110A and 110B. The utilization metric for the processing unit 110 is the average of the CPU utilization of the processor 110A and the CPU utilization of the processor 110B. For example, the CPU utilization of the processor 110A is 20% and the CPU utilization of the processor 110B is 80%, and the utilization metric for the processing unit 110 is (20%+80%)/2=50%. Following is a second exemplary implementation in the case of the two processors 110A and 110B. The utilization metric for the processing unit 110 is a weighted average of the CPU utilization of the processor 110A and the CPU utilization of the processor 110B. For example, the CPU utilization of the processor 110A is 20% with a weight of 1 and the CPU utilization of the processor 1106 is 80% with a weight of 2, and the utilization metric for the processing unit 110 is (20%*1+80%*2)/3=60%. The utilization of a weighted average allows to take into account the specific individual contributions of the processors to the heating of the smart thermostat 100 (a more powerful processor contributes more than a less powerful processor to the heating for the same value of the CPU utilization).
A person skilled in the art would readily understand that the utilization metric of processor(s) of the processing unit 110 may be calculated in a different way, as long as the utilization metric is representative of the contribution of the processor(s) of the processing unit 110 to the heating of the smart thermostat 100.
The method 400 comprises the step 435 of determining a plurality of consecutive utilization metrics of the display 150. Step 435 is performed by the control module 114 executed by the processing unit 110.
An exemplary utilization metric of the display 150 is a percentage of utilization of the display varying from 0 to 100%, and representative of a dimming level or light intensity output of the display 150. For example, the percentage of utilization is based on a pulse-width-modulation (PWM) voltage used for controlling the dimming level or light intensity output of the display 150. If the current PWM voltage is V and the maximum PWM voltage is Vmax then the utilization metric of the display 150 is V/Vmax*100%.
Another exemplary utilization metric of the display 150 is a measurement of the illumination in the area expressed in lux. In this case, the smart thermostat 100 includes an illumination sensor (not represented in the Figures for simplification purposes) capable of measuring the illumination in the area. The illumination sensor is used to adjust the backlight of the display 150. The backlight is decreased (producing less heat) if the measured illumination decreases and the backlight is increased (producing more heat) if the measured illumination increases (above a certain level of measured illumination, the backlight is always set to 100%).
A person skilled in the art would readily understand that the utilization metric of the display 150 may be calculated in a different way, as long as the utilization metric is representative of the contribution of the display 150 to the heating of the smart thermostat 100.
The method 400 comprises the step 440 of executing the neural network inference engine 112 using the predictive model (stored at step 420) for inferring one or more output based on inputs. The inputs comprise the plurality of consecutive temperature measurements (received at step 425), the plurality of consecutive utilization metrics of the one or more processor of the processing unit (determined at step 430) and the plurality of consecutive utilization metrics of the display 150 (determined at step 435). The one or more output comprises an inferred temperature Step 440 is performed by the neural network inference engine 112 executed by the processing unit 110.
The method 400 aims at generating an inferred temperature that is a more accurate evaluation of the “real” temperature in the area than a non-adjusted temperature measurement performed by the temperature sensing module 160.
The inputs used by the neural network inference engine 112 may include other parameter(s). Similarly, the one or more output generated by the neural network inference engine 112 may include other inferred data.
For instance, the method 400 comprises the additional step (similar to steps 430 and 435, and not represented in
For example, the at least one other component of the smart thermostat 100 is the communication interface 130. The utilization metric may be calculated based on the transmission rate and/or reception rate of the communication interface 130 (e.g. percentage of utilization of the communication interface 130 for transmitting and/or receiving data expressed as a percentage of the maximum available capacity).
Alternatively, the method 400 may be applied to a device having no display, or having a display with a marginal contribution to the heating of the device. In this case, step 430 of the method 400 is not performed and the plurality of consecutive utilization metrics of a display of the device is not used as inputs of the neural network inference engine 112 at step 440
The following steps 445 to 465 are for illustration purposes only, and illustrate the usage of the temperature inferred at step 440. In particular, steps 450 to 465 illustrate the use case represented in
The method 400 comprises the step 445 of displaying the temperature inferred at step 440 on the display 150. Step 445 is performed by the control module 114 executed by the processing unit 110.
The method 400 comprises the step 450 of generating a command for controlling the controlled appliance 350. The command is based at least on the temperature inferred at step 440. Step 450 is performed by the control module 114 executed by the processing unit 110. For example, the command uses the inferred temperature and a target temperature (received from a user via the user interface 140) to generate a command for controlling an electrical heater or a VAV appliance.
The method 400 comprises the step 455 of transmitting the command (generated at step 450) to the controlled appliance 350 via the communication interface 130. Step 455 is performed by the control module 114 executed by the processing unit 110.
The method 400 comprises the step 460 of receiving the command at the controlled appliance 350, via the communication interface of the controlled appliance 350. Step 460 is performed by the processing unit of the controlled appliance 350.
The method 400 comprises the step 465 of applying the command at the controlled appliance 350. Step 465 is performed by the processing unit of the controlled appliance 350. Applying the command consists in controlling one or more actuation module of the controlled appliance 350 based on the received command.
In a particular implementation, the temperature sensing module 160 is also capable of measuring a humidity level in the area (where the smart thermostat 100 is deployed), and transmitting the measured humidity level to the processing unit 110. The measured humidity level is also influenced by heat generated by components (e.g. processing unit 110, display 150, etc.) of the smart thermostat 100. Thus, after step 440, the measured humidity level is adjusted by the processing unit 110 based on the inferred temperature determined at step 430. This optional step is not represented in
Reference is now made concurrently to
For illustration purposes, we consider a set of M consecutive temperature measurements T1, T2 . . . TM. We consider a set of N consecutive utilization metrics of the processor(s) UP1, UP2 . . . UPN. We consider a set of O consecutive utilization metrics of the display UD1, UD2 . . . UDO. As mentioned previously, M, N and O are integers of the same or different values.
In a first implementation illustrated in
A layer L being fully connected means that each neuron of layer L receives inputs from every neurons of layer L−1, and applies respective weights to the received inputs. By default, the output layer is fully connected the last hidden layer.
The generation of the outputs based on the inputs using weights allocated to the neurons of the neural network is well known in the art for a neural network using only fully connected hidden layers. The architecture of the neural network, where each neuron of a layer (except for the first layer) is connected to all the neurons of the previous layer is also well known in the art.
In a second implementation represented in
The input layer comprises at least 3 neurons. The first neuron of the input layer receives a first one-dimension matrix of consecutive temperature measurements Ti, with i varying from 1 to M. The second neuron of the input layer receives a second one-dimension matrix of consecutive utilization metrics of the processor(s) UPj, with j varying from 1 to N. The third neuron of the input layer receives a third one-dimension matrix of consecutive utilization metrics of the display UDk, with k varying from 1 to 0. The M, N and O integers may have the same or different values.
The first layer following the input layer is the 1D convolutional layer applying three respective 1D convolutions to the three matrixes. The first 1D convolution uses a one dimension filter of size lower than M. The second 1D convolution uses a one dimension filter of size lower than N. The third 1D convolution uses a one dimension filter of size lower than 0.
The output of the 1D convolutional layer consists in three respective resulting matrixes [A1, A2, . . . AM], [B1, B2, . . . BN] and [C1, C2, . . . CO]. As mentioned previously, the 1D convolutional layer may be followed by a pooling layer for reducing the size of the three resulting matrixes into respective reduced matrixes [D1, D2, . . . Dm], [E1, E2, . . . En] and [F1, F2, . . . Fo], where m is lower than M, n is lower than N and o is lower than O. Various algorithms (e.g. maximum value, minimum value, average value, etc.) can be used for implementing the pooling layer, as is well known in the art (a one dimension filter of given size is also used by the pooling layer).
The neural network may include several consecutive 1D convolutional layers, optionally respectively followed by pooling layers. The three input matrixes [T1, T2, . . . TM], [UP1, UP2, . . . UPN] and [UD1, UD2, . . . UDO] are processed independently from one another along the chain of 1D convolutional layer(s) and optional pooling layer(s).
The chain of 1D convolutional layer(s) and optional pooling layer(s) is followed by the one or more fully connected hidden layer, which operates with weights associated to neurons, as is well known in the art.
In a third implementation represented in
Optionally, each 2D convolutional layer is followed by a pooling layer. The number of consecutive values N for the measured temperatures, the utilization metrics of the processor(s) and the utilization metrics of the display is the same.
The input layer comprises at least one neuron receiving a two-dimensions (N×3) matrix with the consecutive values of the measured temperatures, the utilization metrics of the processor(s) and the utilization metrics of the display. Following is a representation of the input matrix:
[T1, T2, . . . TN,
UP1, IP2, . . . UPN,
UD1, UD2, . . . UDN]
The first layer following the input layer is the 2D convolutional layer applying a 2D convolution to the N×3 input matrix. The 2D convolution uses a two-dimensions filter of size S×T, where S is lower than N and T is lower than 3. The output of the 2D convolutional layer consists in a resulting matrix:
[A1,1, A2,1, . . . AN,1,
A1,2, A2,2, . . . AN,2,
A1,3, A2,3, . . . AN,3]
As mentioned previously, the 2D convolutional layer may be followed by a pooling layer for reducing the size of the resulting matrix into a reduced matrix:
[B1,1, B2,1, . . . Bn,1,
B1,2, B2,2, . . . Bn,2,
B1,3, B2,3, . . . Bn,3]
where n is lower than N. Various algorithms can be used for implementing the pooling layer, as is well known in the art (a two-dimensions filter of given size is also used by the pooling layer).
The neural network may include several consecutive 2D convolutional layers, optionally respectively followed by pooling layers.
The chain of 2D convolutional layer(s) and optional pooling layer(s) is followed by the one or more fully connected hidden layer, which operate with weights associated to neurons, as is well known in the art.
The usage of one or more 1D convolutional layer (second implementation) allows to detect patterns between the values of the measured temperatures, independently of patterns between the values of the utilization metrics of the processor(s), and independently of patterns between the values of the utilization metrics of the display.
The usage of one or more 2D convolutional layer (third implementation) allows to detect patterns between the values of the measured temperatures, the values of the utilization metrics of the processor(s) and the values of the utilization metrics of the display in combination.
The usage of additional inputs at step 440 (e.g. the plurality of consecutive utilization metrics of the communication interface 130) may improve the accuracy and resiliency of the inferences performed by the neural network inference engine 112 (at the cost of complexifying the predictive models used by the neural network inference engine 112). The relevance of using particular additional inputs is generally evaluated during the training phase, when the predictive model is generated (and tested) with a set of training (and testing) inputs and outputs dedicated to the training (and testing) phase.
When using a 2D convolutional layer, the inputs of the neural network usually need to be normalized before processing by the convolutional layer. Normalization consists in adapting the input data (temperature, utilization metric of the processor, utilization metric of the display, etc.), so that all input data have the same reference. The input data can then be compared one to the others. Normalization may be implemented in different ways, such as: bringing all input data between 0 and 1, bringing all input data around the mean of each feature (for each input data, subtract the mean and divide by the standard deviation on each feature individually), etc. The effect of normalization is smoothing the image for the 2D convolution and preventing to always take the same feature at the pooling step.
Referring back to
Various techniques well known in the art of neural networks are used for performing (and improving) the generation of the predictive model, such as forward and backward propagation, usage of bias in addition to the weights (bias and weights are generally collectively referred to as weights in the neural network terminology), reinforcement training, etc.
In the case where a convolutional layer is used, parameters of the convolutional layer are also defined and optionally adapted during the training phase. For example, the size of the filter used for the convolution is determined during the training period. The parameters of the convolutional layer are included in the predictive model.
Similarly, in the case where a pooling layer is used, parameters of the pooling layer are also defined and optionally adapted during the training phase. For example, the algorithm and the size of the filter used for the pooling operation are determined during the training period. The parameters of the polling layer are included in the predictive model.
Reference is now made concurrently to
A plurality of smart thermostats 100 implementing the method 400 are deployed at different locations. Only two smart thermostats 100 are represented in
Each smart thermostat 100 represented in
Furthermore, at least some of the smart thermostats 100 are adapted to transmitting training data to the training server 200. These training data are used in combination with sensor temperature measurements transmitted by temperature sensor(s) 500 for generating the predictive model during the training phase of the neural network. For each smart thermostat 100 transmitting training data, a corresponding temperature sensor 500 is deployed in the same area as the smart thermostat 100 for measuring the “real” temperature in the area (by contrast to the temperature measured by the temperature sensing module 160 of the smart thermostat 100 which is not accurate as previously described).
Details of the components of the training server 200 are also represented in
The characteristics of the processing unit 210 of the training server 200 are similar to the previously described characteristics of the processing unit 110 of the smart thermostat 100. The processing unit 210 executes the neural network training engine 211 and a control module 214.
The characteristics of the memory 220 of the training server 200 are similar to the previously described characteristics of the memory 120 of the smart thermostat 100.
The characteristics of the communication interface 230 of the training server 200 are similar to the previously described characteristics of the communication interface 130 of the smart thermostat 100.
Reference is now made concurrently to
A dedicated computer program has instructions for implementing at least some of the steps of the method 600. The instructions are comprised in a non-transitory computer program product (e.g. the memory 220) of the training server 200. The instructions provide for training a neural network to adjust temperature measurements, when executed by the processing unit 210 of the training server 200. The instructions are deliverable to the training server 200 via an electronically-readable media such as a storage media (e.g. CD-ROM, USB key, etc.), or via communication links (e.g. via a communication network through the communication interface 230).
The instructions of the dedicated computer program executed by the processing unit 210 implement the neural network training engine 211 and the control module 214. The neural network training engine 211 provides functionalities for training a neural network, allowing to generate a predictive model (more specifically to optimize weights of the neural network), as is well known in the art. The control module 214 provides functionalities allowing the training server 200 to gather data used for the training of the neural network.
An initial predictive model is generated by the processing unit 210 of the training server 200. Alternatively, the initial predictive model is generated by and received from another computing device (not represented in the Figures for simplification purposes) via the communication interface 230 of the training server 200.
The generation of the initial predictive model is out of the scope of the present disclosure. Generating the initial predictive model comprises defining a number of layers of the neural network, a number of neurons per layer, the initial value for the weights of the neural network, etc.
The definition of the number of layers and the number of neurons per layer is performed by a person highly skilled in the art of neural networks. Different algorithms (well documented in the art) can be used for allocating an initial value to the weights of the neural network. For example, each weight is allocated a random value within a given interval (e.g. a real number between −0.5 and +0.5), which can be adjusted if the random value is too close to a minimum value (e.g. −0.5) or too close to a maximum value (e.g. +0.5).
The execution of the method 600 by the training server 200 provides for generating an operational predictive model (by adjusting the weights of the predictive model). At the end of the training phase, the operational predictive model is ready to be used by the neural network inference engines 112 of the smart thermostats 100. Optionally, the operational predictive model can be used as a new initial predictive model, which can be further improved by implementing the aforementioned procedure again.
The method 600 comprises the step 605 of initializing the predictive model. Step 605 is performed by the control module 214 executed by the processing unit 210. The initial predictive model comprises initial values of the weights of the neural network implemented by the neural network training engine 211. As mentioned previously, the initialization of the predictive model is either entirely (or at least partially) performed by the control module 214, or simply consists in receiving an initial predictive model (via the communication interface 230) generated by another computing device.
The method 600 comprises the step 610 of receiving training data from a given smart thermostat 100 via the communication interface 230. Step 610 is performed by the control module 214 executed by the processing unit 210.
The training data include a plurality of consecutive temperature measurements performed by the temperature sensing module 160 of the given smart thermostat 100. The training data also include a plurality of consecutive utilization metrics of the one or more processor (e.g. 110A only in
The method 600 comprises the step 615 of receiving a sensor temperature measurement from the temperature sensor 500 via the communication interface 230. Step 615 is performed by the control module 214 executed by the processing unit 210.
A detailed representation of the components of the temperature sensor 500 is not provided in
The temperature sensor 500 and the given smart thermostat 100 mentioned in step 610 are located in the same area. Thus, the respective temperature sensing modules of the temperature sensor 500 and the given smart thermostat 100 both measure the temperature in the same area.
The method 600 comprises the step 620 of executing the neural network training engine 211 to adjust the weights of the neural network based on inputs and one or more output. The inputs comprise the thermostat training data received at step 610. The one or more output comprises the sensor temperature measurement received at step 615. Step 620 is performed by the processing unit 210. Step 620 corresponds to step 405 of the method 400.
The neural network training engine 211 implements the neural network using the weights of the predictive model initialized at step 605. The neural network implemented by the neural network training engine 211 corresponds to the neural network implemented by the neural network inference engine 112 (same number of layers, same number of neurons per layer, etc.). As mentioned previously,
The adjusted weights are stored in the memory 220 of the training server 200, and steps 610-615-620 are repeated a plurality of times. At each iteration of steps 610-615-620, the weights adjusted by the previous iteration are used by the neural network training engine 211 at step 620 to be further adjusted.
The execution of steps 610-615-620 is implementation dependent. In a first exemplary implementation, as soon as the training server 200 receives the training data at step 610 and the sensor temperature measurement at step 615, step 620 is immediately performed. In a second exemplary implementation, the training server 200 waits for the reception of a substantial amount of training data (step 610) and corresponding sensor temperature measurements (step 615), before performing step 620. In this second implementation, the received training data and corresponding sensor temperature measurements are stored in the memory 220 before being used. Furthermore, some of the received data may be discarded by the training server 200 (e.g. a set of data is redundant with another already received set of data, at least some of the received data are considered erroneous or non-usable, etc.).
At the end of the training phase implemented by the repetition of steps 610-615-620, the neural network is considered to be properly trained. An operational predictive model comprising an operational version of the weights is transmitted to the given smart thermostat 100, which was used for the training phase. The operational predictive model may also be transmitted to one or more additional smart thermostat 100, which was not involved in the training phase (as illustrated in
The method 600 comprises the step 625 of transmitting the predictive model comprising the adjusted weights to one or more smart thermostat 100 via the communication interface 230. Step 625 is performed by the control module 214 executed by the processing unit 210. Step 625 corresponds to step 410 of the method 400. From this point on, the one or more smart thermostat 100 (which receive the predictive model) enter an operational mode, where the predictive model is used at step 440 of the method 400.
Additionally, during the training phase, the number of intermediate hidden layers of the neural network and the number of neurons per intermediate hidden layer can be adjusted to improve the accuracy of the predictive model. At the end of the training phase, the predictive model generated by the neural network training engine 211 includes the number of layers, the number of neurons per layer, and the weights.
As mentioned previously, in the case where a convolutional layer is used, parameters of the convolutional layer are also defined and optionally adapted during the training phase, and further included in the predictive model transmitted at step 625. Similarly, in the case where a pooling layer is used, parameters of the pooling layer are also defined and optionally adapted during the training phase, and further included in the predictive model transmitted at step 625.
In order to improve the efficiency and/or accuracy of the training, the training data received at step 610 may be received from several smart thermostats 100 involved in the training. In the case where these smart thermostats 100 are deployed in several areas, a temperature sensor 500 also need to be deployed in each of the several areas. For each set of training data transmitted by a smart thermostat 100 located in a given area, a corresponding sensor temperature measurement is transmitted by the temperature sensor 500 located in the given area (as per step 615).
Optionally, the inputs include additional parameters used at step 620 of the method 600. For example (as mentioned previously in reference to the method 400), the smart thermostat 100 further comprises at least one additional component generating heat. At step 610, the training data further comprise a plurality of consecutive utilization metrics of the at least one additional component of the smart thermostat 100. At step 620, the inputs further comprise the plurality of consecutive utilization metrics of the at least one additional component. For instance, the additional component is the communication interface 130 of the smart thermostat 100.
Optionally, the output also include additional parameter(s) used at step 620 of the method 600.
Although the present disclosure has been described hereinabove by way of non-restrictive, illustrative embodiments thereof, these embodiments may be modified at will within the scope of the appended claims without departing from the spirit and nature of the present disclosure.