Federated learning for function control and monitoring in vehicle environment

By exchanging and aggregating the parameters of the machine learning model among multiple vehicles, a federated learning system across vehicles is realized, solving the problems of vehicle on-board controller processing capabilities and storage space limitations, and achieving accurate control of vehicle functions and continuous update of models.

CN119849655APending Publication Date: 2025-04-18CUMMINS LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202411323263.6
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2024-09-05
Filing Date
2024-09-20
Publication Date
2025-04-18

AI Technical Summary

Technical Problem

Due to the processing capability and storage space limitations of vehicle on-board controllers, it is difficult to independently establish and train machine learning models, resulting in inaccurate vehicle functional control.

Method used

Using a federated learning system across vehicles, machine learning models on vehicles are updated and trained by exchanging and aggregating parameters of machine learning models among multiple vehicles.

Benefits of technology

It solves the problems of vehicle controller processing capability and storage space limitations, and realizes accurate control of vehicle functions and continuous update of models.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119849655A_ABST
    Figure CN119849655A_ABST
Patent Text Reader

Abstract

A system and method for performing federated learning across vehicles may maintain, on a memory, a first machine learning (ML) model including a first set of parameters for determining values identifying characteristics of a vehicle function of at least one of a plurality of vehicles by a computing device including one or more processors coupled to the memory. The computing device may receive a second set of parameters generated by a second ML model used by each respective vehicle. The computing device may update a first set of parameters of the first ML model according to a second set of parameters received from each respective vehicle of the plurality of vehicles. The computing device may transmit the updated first set of parameters to the vehicle to update a second set of parameters of a second ML model on the vehicle.
Need to check novelty before this filing date? Find Prior Art

Description

CROSS-REFERENCE TO RELATED APPLICATIONS

[0001] This application claims the benefit and priority of U.S. Patent Application No. 18 / 825,975 filed on September 5, 2024, which claims the benefit and priority of U.S. Provisional Patent Application No. 63 / 540,866 filed on September 27, 2023, entitled “Federated Learning for Functional Control and Monitoring in a Vehicular Environment,” the entire contents of which are incorporated herein by reference. Technical Field

[0002] The present disclosure relates to inter-vehicle communication. More specifically, the present disclosure relates to a federated learning system and method for functional control and monitoring in a vehicle environment. Background Art

[0003] A vehicle may include a controller for managing various vehicle functions. The controller on the vehicle may use sensor data when processing and executing functions. Summary of the invention

[0004] At least one aspect of the present disclosure relates to a system for performing federated learning across vehicles. A first computing device including one or more processors coupled to a memory may maintain a first machine learning (ML) model in the memory, the model including a first parameter set (including multiple parameters) for determining a value of a characteristic of a vehicle function of at least one vehicle among a plurality of vehicles. The first computing device may receive a second parameter set (including multiple parameters) generated by a second ML model from each respective vehicle among the plurality of vehicles, the second ML model being generated by a second computing device on each respective vehicle using (i) data related to the vehicle function acquired through at least one sensor and (ii) a value identifying a characteristic of the vehicle function on the respective vehicle. The first computing device may update a first parameter set of the first ML model based on the second parameter set received from each respective vehicle of the plurality of vehicles. The first computing device may transmit the updated first parameter set to at least one vehicle of the plurality of vehicles to update a second parameter set of the second ML model on the at least one vehicle.

[0005] In some embodiments, the first computing device may, in response to establishing a connection with at least one of the plurality of vehicles, obtain a second parameter set for a second ML model on the at least one vehicle. The second parameter set may be generated on the at least one vehicle when no connection is established with the first computing device. In some embodiments, the first computing device may initialize the first ML model using a third parameter set generated by a third ML model maintained on at least one server. In some embodiments, the first computing device may identify the first ML model from the plurality of ML models based on a vehicle function. In some embodiments, the first computing device may transmit an identifier corresponding to a vehicle function and a first parameter set updated from the first ML model to at least one of the plurality of vehicles to update the second ML model on the at least one vehicle.

[0006] In some embodiments, the first computing device may generate an output using the first ML model, the output identifying a vehicle function operation. The first computing device may cause one or more components related to the vehicle function operation to perform the vehicle function operation based on the output. In some embodiments, the vehicle function may include at least one of the following: a battery management function for controlling the output of the battery; a dosing control function of the aftertreatment system for controlling the injection of the reductant in the aftertreatment system; an engine control function; a hybrid control function for controlling the switching between the electric motor and the fuel engine; an advanced driver assistance system function for controlling the vehicle motion operation; a vehicle diagnostic function; for detecting vehicle faults; or a vehicle prediction function for predicting vehicle faults.

[0007] Another aspect of the present disclosure relates to a vehicle system. The vehicle system may include a component that performs a vehicle system function. The vehicle system may include at least one processing circuit, the processing circuit including one or more processors coupled to a memory. The at least one processing circuit may maintain a first machine learning (ML) model, the first machine learning (ML) model including a first parameter set (comprising a plurality of parameters) for determining a value associated with a vehicle system function. The at least one processing circuit may identify data associated with a vehicle system function and a first numerical value identifying a characteristic of the vehicle system function. The at least one processing circuit may generate a second numerical value identifying a characteristic of the vehicle system function using the first ML model. The at least one processing circuit may update a first parameter set of the first ML model based on a comparison between the first numerical value and the second numerical value. The at least one processing circuit may transmit the first parameter set of the ML model to at least one computing device remote from the at least one processing circuit to update a second ML model.

[0008] In some embodiments, the at least one processing circuit may receive a second parameter set (comprising a plurality of parameters) for a second ML model from the at least one computing device. The second parameter set may be generated by the at least one computing device using the first parameter set and a third parameter set (comprising a plurality of parameters) received from each corresponding vehicle system of the plurality of vehicle systems. In some embodiments, the at least one processing circuit may identify the first ML model from the plurality of ML models based on the vehicle system function. In some embodiments, the at least one processing circuit may update the first parameter set of the first ML model using the third parameter set.

[0009] In some embodiments, the at least one processing circuit may transmit compressed data about the first parameter set to the at least one computing device in response to establishing a connection with the at least one computing device. In some embodiments, the at least one processing circuit may initialize the first ML model using a second parameter set received from a second ML model on the at least one computing device remote from the at least one processing circuit. In some embodiments, the at least one computing device may be at least one server. The at least one processing circuit may transmit the first parameter set to the at least one server to update a third ML model on the at least one server using the first parameter set and a second parameter set from each corresponding vehicle system of the plurality of vehicle systems.

[0010] In some embodiments, the at least one computing device may be an onboard vehicle computing device. The at least one processing circuit may transmit the first parameter set to the onboard vehicle computing device to update the second ML model using the first parameter set. In some embodiments, the at least one processing circuit may generate an output using the first ML model, the output identifying a vehicle function operation. The at least one processing circuit may cause one or more components associated with the vehicle function operation to perform the vehicle function operation based on the output.

[0011] At least one aspect of the present disclosure relates to a method for performing federated learning across vehicles. The method may include: maintaining a first machine learning (ML) model by a first computing system, the first machine learning model including a first parameter set (including multiple parameters) for determining a value related to a vehicle function of at least one of a plurality of vehicles; receiving by the first computing system from each corresponding vehicle of the plurality of vehicles a second parameter set (including multiple parameters) generated by a second computing system on each corresponding vehicle using a second ML model; updating by the first computing system the first parameter set of the first ML model according to the second parameter set received from each corresponding vehicle of the plurality of vehicles; and transmitting by the first computing system the updated first parameter set to at least one of the plurality of vehicles so that the second computing system on the at least one vehicle updates the second parameter set of the second ML model on the at least one vehicle.

[0012] In some embodiments, the method may include: receiving the second parameter set further includes, in response to establishing a connection with at least one of the plurality of vehicles, obtaining, by the first computing system, a second parameter set for a second ML model on the at least one vehicle. The second parameter set may be generated on the at least one vehicle when no connection is established with the first computing system. In some embodiments, the method may include initializing, by the first computing system, the first ML model using a third parameter set (comprising a plurality of parameters) generated by a third ML model maintained on at least one server.

[0013] In some embodiments, the method may include identifying, by the first computing system, a first ML model from a plurality of ML models based on a vehicle function. In some embodiments, the method may include transmitting, by the first computing system, an identifier corresponding to the vehicle function and a first parameter set updated by the first ML model to at least one vehicle. In some embodiments, the method may include generating, by the first computing system, an output using the first ML model, the output identifying a vehicle function operation; and causing, by the first computing system, one or more components associated with the vehicle function operation to perform the vehicle function operation based on the output.

[0014] These and other features, together with their structure and mode of operation, will become apparent by reference to the following detailed description in conjunction with the accompanying drawings. A large number of specific details are provided so that the embodiments of the disclosed subject matter can be more fully understood. The features of the disclosed subject matter can be combined in any suitable manner in one or more embodiments and / or implementations. In this regard, one or more features of one aspect of the present invention can be combined with one or more features of different aspects of the present invention. In addition, additional features may be embodied in certain embodiments and / or implementations, which may not be present in all embodiments or implementations. BRIEF DESCRIPTION OF THE DRAWINGS

[0015] The present disclosure will be more fully understood by referring to the following detailed description and accompanying drawings, wherein like reference numerals refer to like elements unless otherwise specified, as follows:

[0016] Figure 1 A block diagram of a system for performing federated learning across vehicles according to an embodiment of the present disclosure is shown.

[0017] Figure 2 A block diagram of a process of initializing a local model in a system for performing federated learning across vehicles according to an embodiment of the present disclosure is shown.

[0018] Figure 3 A block diagram of a process for training a local model in a system for performing federated learning across vehicles according to an embodiment of the present disclosure is shown.

[0019] Figure 4A block diagram of a process of aggregating local models in a system for performing centralized federated learning across vehicles according to an embodiment of the present disclosure is shown.

[0020] Figure 5 A block diagram of a process for training a local model in a system for performing decentralized federated learning across vehicles according to an embodiment of the present disclosure is shown.

[0021] Figure 6 A block diagram is shown of a process of controlling vehicle functions using a local model in a system for performing federated learning across vehicles according to an embodiment of the present disclosure.

[0022] Figure 7 A flowchart of a method for performing centralized federated learning across vehicles according to an embodiment of the present disclosure is shown.

[0023] Figure 8 A flowchart of a method for performing decentralized federated learning across vehicles according to an embodiment of the present disclosure is shown. DETAILED DESCRIPTION

[0024] The following is a more detailed description of various concepts and implementations related to methods, devices, apparatuses, and systems for performing federated learning across vehicles. The various concepts introduced above and discussed in more detail below can be implemented in a variety of ways, as the concepts described are not limited to any particular implementation. Examples of specific implementations and applications are provided primarily for illustrative purposes.

[0025] A controller in a vehicle (e.g., an electronic control module (ECM)) can use measurement data acquired through sensors on the vehicle to generate command signals for controlling various vehicle functions, such as battery control, engine control, emission control, autonomous vehicle functions, vehicle diagnostics and predictions, etc. To facilitate the generation of command signals from the measurement data, the controller can use a machine learning (ML) model when processing the measured sensor data. However, the processing power and storage space of the on-board controller may be limited. Due to this limitation, the on-board controller may not be able to independently handle the establishment, training, and updating of the ML model. In addition, even for controllers equipped with more powerful processing power and larger storage space, it may be difficult for the controller to fully update the weights of the ML model because the data accumulated by the vehicle sensors may be insufficient. This problem is particularly serious for input-sensitive ML models, because small changes in the input data values ​​may cause large fluctuations in the output values. Therefore, once the ML model is deployed on the vehicle, it may be difficult for the controller to adjust or correct the ML model based on the newly received sensor data on the vehicle. Relying on such an ML model may generate incorrect or inaccurate outputs, thereby affecting the control of vehicle components and reducing the performance of vehicle functions.

[0026] To address these and other technical challenges, federated learning can be used to facilitate the aggregation and distribution of model parameters in ML models trained across multiple vehicles. Federated learning can be centralized or decentralized. In centralized federated learning, a server with more processing power and storage space than the on-board controller can maintain a global instance of the ML model. The server can send the model parameters of the global ML model to the vehicle controllers to initialize and establish local instances of the ML model on each individual vehicle. After establishment, the controller on each individual vehicle can use the data received from the on-board sensors to generate command signals to control various functions and update the parameters of the ML model. The centralized server can aggregate model parameters and measurement data from multiple vehicle controllers for updating the global instance of the ML model. As the global instance is updated, the server can send the model parameters of the global instance to the vehicle to update the local instance of the ML model.

[0027] In decentralized federated learning, controllers on vehicles can exchange model parameters and measurement data with each other to update ML models without the involvement of a centralized server. On each vehicle, the controller can configure a local ML model instance (e.g., from the configuration at installation time). The controller can use the data received from the on-board sensors to generate command signals to control various functions and update the parameters of the ML model. For updating, a controller on a vehicle can communicate with a controller on another vehicle to exchange model parameters of the local ML model instance. The controller can aggregate model parameters from other vehicles and can update the local ML model instance (e.g., using lightweight methods such as averaging).

[0028] In this way, federated learning can facilitate the aggregation and distribution of parameters learned from training ML model instances (e.g., global or local instances). By leveraging the processor and storage capacity of multiple vehicle controllers or servers, the use of federated learning can address the processor and storage limitations of a single vehicle's onboard controller. In addition, the model parameters exchanged between the vehicle and the server may embed features extracted from sensor measurement data, thereby addressing the problem that a single controller cannot accumulate enough data to correctly train and update local ML model instances. By using federated learning (centralized or decentralized), the controller on each vehicle can correctly train and update local ML model instances. The fully trained and updated ML model is available to the vehicle controller to generate appropriate outputs to control vehicle components and functions. These and other features and benefits will be described more fully below.

[0029] Reference now Figure 1, a block diagram of an environment or system 100 for performing federated learning across vehicles is shown. The system 100 may include at least one data processing system 105 and one or more vehicles 110. The data processing system 105 (sometimes referred to herein as a computing device) and the vehicle 110 may be communicatively connected via at least one network 115. The data processing system 105 may include at least one model trainer 125, at least one parameter aggregator 130, at least one distribution manager 135, and at least one aggregated model 140, etc. The vehicle 110 may have at least one controller 145 (sometimes also referred to herein as a computing device), one or more components 150A-N (hereinafter collectively referred to as components 150), and one or more sensors 155A-N (hereinafter collectively referred to as sensors 155), etc. The controller 145 (sometimes referred to herein as an electronic control unit (ECU), an electronic control module (ECM), or an edge device) may include at least one data acquirer 160, at least one model applicator 165, at least one model trainer 170, at least one synchronization processor 175, and at least one local model 180, etc. In some embodiments, the system 100 may include a data processing system 105 to perform centralized federated learning. In some embodiments, the system 100 may lack a data processing system 105 to perform distributed learning, and the functions attributed to the data processing system 105 may be performed by the controller 145 on each vehicle 110.

[0030] The vehicle 110 may be any type of vehicle, such as an automobile (a car, truck, bus, or van as shown), a motorcycle, an airplane, a helicopter, a locomotive, or a water vehicle, etc. In some embodiments, the vehicle 110 may be an internal combustion engine vehicle, with a fuel source such as gasoline, hydrogen (e.g., a hydrogen internal combustion engine), diesel, natural gas (e.g., liquefied natural gas (LNG)), ethanol, or biodiesel, etc., or any combination thereof. Thus, the engine may be a spark ignition internal combustion engine or a compression ignition engine. The vehicle 110 may be an electric vehicle (EV) driven by an internal electrical energy source (e.g., a battery pack), or a hybrid vehicle driven by both an internal combustion engine and an internal electrical energy source, etc. The vehicle 110 may be, for example, a plug-in electric vehicle (EV, electric vehicle, etc.), a battery electric vehicle (BEV), a fuel cell electric vehicle (FCEV), a hybrid electric vehicle (HEV), a plug-in hybrid electric vehicle (PHEV), an extended-range electric vehicle (REEV), an extended-range electric vehicle (E-REV), an extended-range battery electric vehicle (BEVx), or other vehicle driven or otherwise operated by at least one of a battery, a generator (e.g., a generator, a power plant, a power outlet, an onboard rechargeable power storage system, etc.), an engine, and a motor.

[0031] The vehicle 110 may contain, house or otherwise include one or more components 150. The components 150 may control, process or provide various functions of the vehicle 110. The vehicle functions may be related to, for example: battery management functions for controlling the output of the battery; dosing control functions for controlling the injection of reductant in the aftertreatment system; engine control functions for controlling the vehicle motor on the engine system; hybrid control functions for controlling the switching between the electric motor and the fuel engine; advanced driver assistance system functions for controlling vehicle motion operations; vehicle diagnostic functions; for detecting vehicle faults; or vehicle prediction functions for predicting vehicle faults. For example, for engine electronics, the components 150 may include a motor generator coupled to or mounted in the powertrain, drive shaft, axle housing or wheel of the vehicle 110. The components 150 may include mechanical components or accessories of the vehicle engine, such as a radiator fan, air compressor, fuel pump, water pump, power steering pump, and air conditioning system. The components 150 may be electrically connected or communicatively connected to each other and to other parts of the vehicle 110.

[0032] The vehicle 110 may house, contain, or otherwise include at least one controller 145. The controller 145 may be communicatively coupled to various components in the vehicle 110, such as an internal combustion engine, an electric motor, an exhaust aftertreatment system, a powertrain, a transmission control unit, etc. Communication between components may occur over any number of wired or wireless connections. For example, a wired connection may include a serial cable, a fiber optic cable, a CAT5 cable, or any other form of wired connection. In contrast, a wireless connection may include the Internet, Wi-Fi, a cellular network, radio, etc. In one embodiment, a CAN bus provides for the exchange of signals, information, and / or data. The CAN bus includes any number of wired and wireless connections.

[0033] The vehicle 110 may house, contain, or otherwise include one or more sensors 155. The sensors 155 may detect, measure, or otherwise acquire any type of data on the vehicle 110 or one or more of its components 150. For example, the sensors 155 may include: a speed sensor for measuring vehicle speed; an oxygen sensor for measuring the amount of oxygen in the vehicle; an emission sensor for measuring the amount of exhaust gas from the vehicle engine (e.g., nitrogen oxides (NOx), carbon dioxide (C02), hydrocarbons, and particulate matter (PM)); a throttle position sensor; a crankshaft position sensor; a camshaft sensor; a fuel pressure sensor; a power sensor; a mass air flow sensor; a fuel temperature sensor; and a manifold absolute pressure sensor, etc. After acquiring and generating data, the sensors 155 may communicate, transmit, or otherwise provide the acquired data to the controller 145 and the components 150 for further processing.

[0034] Components of the system 100, such as the data processing system 105 and the vehicle 110 (e.g., the controller 145, the component 150, and the sensor 155) can be implemented by circuits, such as one or more processors coupled to a memory. The circuit may include logic or machine-readable instructions (e.g., the model trainer 125, the parameter aggregator 130, the distribution manager 135, and the aggregated model 140 embodied on the data processing system 105, or the data acquirer 160, the model applier 165, the model trainer 170, and the synchronization processor 175 of the controller 145 in the memory) to define the behavior, function, and operation of the circuit. The functions defined by the machine-readable instructions can be attributed to the entire circuit. The circuit can be implemented by a computer-readable medium, which can include code written in any programming language, including but not limited to Java, JavaScript, Python, or similar languages, and any conventional procedural programming language, such as C or similar programming languages. The machine-readable instructions can be stored in the memory and maintained. The circuit can include one or more processors to execute the machine-readable instructions. One or more processors can be coupled to the memory to execute the machine-readable instructions therein.

[0035] The processor may be implemented as a single-chip or multi-chip processor, a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a field programmable gate array (FPGA) or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or any combination thereof, for performing the functions described herein. The processor may be a microprocessor, or any conventional processor, or a state machine. The processor may also be implemented as a combination of computing devices, such as a combination of a digital signal processor (DSP) and a microprocessor, a plurality of microprocessors, one or more microprocessors with a DSP core, or any other such configuration. In some embodiments, one or more processors may be shared by a plurality of circuits, or a plurality of circuits may share the same processor, and in some embodiments, the processor may execute instructions stored in different storage areas, or instructions accessed by other means. Alternatively, one or more processors may be designed to perform certain operations independently of one or more coprocessors. In other embodiments, two or more processors may be coupled via a bus to implement independent, parallel, pipelined or multithreaded instruction execution.

[0036] The memory (e.g., memory, storage unit, storage device) may include one or more devices (e.g., RAM, ROM, flash memory, hard disk storage) for storing data and / or computer code to execute or support the various processes, layers, and modules described in this disclosure. The memory may be communicatively connected to the processor to provide computer code or instructions to the processor to execute at least a portion of the processes described herein. In addition, the memory may be or include tangible non-transitory volatile memory and non-volatile memory. Therefore, the memory may include a database component, an object code component, a script component, or any other type of information structure to support the various activities and information structures described herein.

[0037] The network 115 may be a local area network that supports communication between the data processing system 105 and one or more vehicles 110. The network 115 may also be a wide area network (WAN), such as the Internet, to support data communication functions between the data processing system 105 and one or more vehicles 110. Technologies that may be used include wired technologies (e.g., Ethernet, IEEE 802.3 standards) and / or wireless technologies (e.g., Wi-Fi, IEEE 802.11 standards). The network 115 may be established between the data processing system 105 and one or more vehicles 110 based on a vehicle-to-vehicle (V2X) communication protocol.

[0038] The data processing system 105 can be any computing device, including one or more processors coupled with memory and software, capable of performing the various processes and tasks described herein. The data processing system 105 can communicate with the vehicle 110 when a connection is established through the network 115. The data processing system 105 can be deployed, installed, or otherwise associated with at least one server group. The server group can correspond to a data center, a branch office, or a site where one or more servers associated with the data processing system 105 are deployed.

[0039] On the data processing system 105, the model trainer 125 can use the training data and other data (e.g., parameters from the instance of the local model 180 on each vehicle 110) to initialize, build, and train the aggregate model 140. The parameter aggregator 130 can obtain parameters from the instance of the local model 180 on each vehicle 110. The distribution manager 135 can provide parameters from the aggregate model 140 to update the parameters in the instance of the local model 180 on each vehicle 110. The aggregate model 140 (sometimes referred to as the global model in this article) can be a machine learning (ML) model or an artificial intelligence (AI) algorithm, such as a clustering algorithm (e.g., k-nearest neighbor algorithm, hierarchical clustering, distribution-based clustering), a regression model (e.g., linear regression or logistic regression), a support vector machine (SVM), a Bayesian model, or an artificial neural network (e.g., a convolutional neural network (CNN), a generative adversarial network (GAN), a recurrent neural network (RNN), or a transformer), etc.

[0040] In general, the aggregate model 140 can have a set of inputs and a set of outputs, which are related to each other through one or more (particularly a set of) parameters (sometimes referred to herein as weights). In other words, a "parameter" is one or more values ​​applied to the input to enable the generation, determination, specification of output values, etc. The aggregate model 140 can be applied to the input data to generate output values ​​related to various vehicle functions. In some embodiments, the aggregate model 140 and the extended local model 180 can be related to a specific vehicle function. For example, the data processing system 105 can maintain multiple aggregate models 140, one of which is used to process emission system data and another model is used to process engine performance data. Similarly, the controller 145 on the vehicle 110 can maintain multiple local models 180, one of which is used to process emission system data and another model is used to process engine performance data. Each aggregate model 140 on the data processing system 105 can be associated with an instance of a corresponding local model 180 on the vehicle 110.

[0041] The controller 145 can be any computing device on the vehicle 110, including one or more processors coupled with memory and software, and capable of performing the various processes and tasks described herein. The controller 145 can communicate with other vehicles 110 and the data processing system 105 when a connection is established through the network 115. On the controller 145, the data acquirer 160 can acquire data from the sensors 155 related to the vehicle function. The model applier 165 can apply the acquired data to the local model 180 to generate one or more output values ​​related to the vehicle function. The model trainer 170 can initialize, establish and train the local model 180 using data acquired from the sensors 155 or parameters acquired from the data processing system 105 according to the federated learning technology. The synchronization processor 175 can send the parameters of the local model 180 to the data processing system 105 and receive the parameters of the aggregate model 140 on the data processing system 105.

[0042] The local model 180 may be a machine learning (ML) model or an artificial intelligence (AI) algorithm, such as a clustering algorithm (e.g., k-nearest neighbor algorithm, hierarchical clustering, distribution-based clustering), a regression model (e.g., linear regression or logistic regression), a support vector machine (SVM), a Bayesian model, or an artificial neural network (e.g., a convolutional neural network (CNN), a generative adversarial network (GAN), a recurrent neural network (RNN), or a transformer), etc. In general, the local model 180 may relate inputs and outputs to each other through a set of parameters. The local model 180 may be the same type of ML model or AI algorithm as the aggregate model 140, and may be an instance of the aggregate model 140 on a controller 145 in the vehicle 110. The local model 180 may be applied to input data to generate output values ​​associated with various vehicle functions.

[0043] Reference now Figure 2 , Figure 2A block diagram of a process 200 for initializing a local model in a system 100 for performing federated learning across vehicles is shown. The process 200 may include or correspond to operations performed in the system 100 to initialize a model instance on a data processing system 105 or a vehicle 110. In the process 200, a model trainer 125 on the data processing system 105 may initialize, establish, and maintain an aggregate model 140 using various data (such as at least one training data set 205). The aggregate model 140 may include a set of parameters 210A-N (hereinafter collectively referred to as parameters 210) for associating at least one input and at least one output. During the initialization process, the model trainer 125 may configure, assign, or otherwise set initial values ​​(e.g., random values ​​or defined values) for the parameters 210 in the aggregate model 140. The aggregate model 140 may be applied to an input data set (e.g., sensor data) related to a vehicle function to generate at least one output value identifying a characteristic of the vehicle function.

[0044] To train the aggregate model 140, the model trainer 125 may acquire, receive, or otherwise identify a training data set 205. The training data set 205 may identify or include a set of examples associated with a particular vehicle function. Each example may identify or include a sample input data set (e.g., sensor measurement data) and a measured output value, which identifies a characteristic associated with the vehicle function. For example, for the vehicle function of the battery, the sample input data set may include various detections about the battery, such as the state of charge, internal resistance, and temperature, and the output value may be the detected remaining service life or battery life. For the vehicle function of the emission system, the sample input data set may include engine speed, engine load, and fuel quality, and the output value may be the detected gas emissions (e.g., in the form of nitrogen oxides (NOx)). For the vehicle function of the diesel oxidation catalyst (DOC) system, the sample input data set may include a temperature curve, a pressure curve, and the concentration of various gases of the DOC, and the output value may represent the efficiency rating of the DOC system. For a vehicle function of engine performance (e.g., duty cycle), a sample input data set may include vehicle speed, terrain type (e.g., highway, local road, or off-road), engine temperature, and altitude, etc., and an output value may represent a duty cycle (e.g., the number of times a vehicle control signal is repeated within a certain time or distance), etc. In some embodiments, the sample input values ​​may include various tests of the vehicle function, and the sample outputs may include output values ​​that identify command signals to be provided to components related to the vehicle function.

[0045] For the post-treatment system, the sample input data set may include particulate emission levels, temperature, pressure difference, and regeneration frequency, etc., and the output value may identify the degree of aging of the post-treatment system. For the advanced driver assistance system (ADAS), the sample input data set may include vehicle speed, vehicle acceleration, laser radar (LiDAR) data, and steering angle, etc., and the output value may include a command signal to be sent to the ADAS system for setting or adjusting the operation. In the example of the training data set 205 for training the aggregate model 140, any number of inputs and outputs may be used.

[0046] After identifying the training data set 205, the model trainer 125 may transmit or apply the vehicle function input data set in each example to the aggregate model 140. In some embodiments, the model trainer 125 may identify or select an aggregate model 140 related to the vehicle function from the set of aggregate models 140 based on the data contained in the training data set 205. For example, when the training data set 205 is for a vehicle function of a battery, the model trainer 125 may select an aggregate model 140 corresponding to the battery vehicle function. When applied, the model trainer 125 may process the input data set related to the vehicle function according to the parameters 210 of the aggregate model 140. Through processing, the model trainer 125 may output, generate, or otherwise produce at least one expected output value of the vehicle function. For example, when the input data set includes sensor data for emissions, the expected output generated by the aggregate model 140 may include an estimated value of particulate matter emissions. After output, the model trainer 125 may compare the expected output value generated by the aggregate model 140 with the measured output value identified from the example in the training data set 205.

[0047] Based on the comparison, the model trainer 125 may calculate, generate or otherwise determine at least one error indicator. The error indicator may be calculated according to any loss function, such as root mean square error, relative root mean square error, and weighted cross entropy. Using the error indicator, the model trainer 125 may modify, set or otherwise update one or more parameters 210 of the aggregate model 140. The update may be performed according to an optimization function (e.g., a set learning rate, momentum, weight decay, and momentum) of the aggregate model 140. The optimization function may include, for example, stochastic gradient descent (SGD) or an adaptive learning rate method, etc. The model trainer 125 may iteratively update the parameters 210 of the aggregate model 140 until a convergence condition is met. The model trainer 125 may store and maintain the parameter set 210 on the data processing system 105 (e.g., in a memory or data storage). Although the present invention is mainly described as being based on supervised learning techniques, weakly supervised or unsupervised learning techniques may also be used when training the aggregate model 140.

[0048] The distribution manager 135 on the data processing system 105 may provide, transmit, or otherwise send the set of parameters 210 to the controller 145 on each vehicle 110. The distribution manager 135 may send the parameter set 210 along with an identification of the vehicle function for which the parameters 210 were generated. In some embodiments, the distribution manager 135 may broadcast the parameter set 210 to the vehicles 110. For example, the distribution manager 135 may broadcast the parameter set 210 on a schedule, such as hourly or weekly intervals. In some embodiments, the distribution manager 135 may monitor the establishment of a connection between the controller 145 and the data processing system 105 via the network 115. Upon detecting that the connection is established, the distribution manager 135 may transmit the parameter set 210 to the vehicle 110. For example, the distribution manager 135 may detect the connection with the controller 145 on the vehicle 110 via a communication interface on the data processing system 105. In some embodiments, the parameter set 210 may be transmitted when a connection is established between the vehicles 110 (e.g., using a vehicle-to-vehicle (V2X) communication protocol). In some embodiments, the distribution manager 135 may send, provide, or transmit compressed data (eg, quantized, thinned, lossless compressed, or lossy compressed) regarding the parameter set 210 to the vehicle 110 after the connection is established.

[0049] The synchronization processor 175 of the controller 145 on the vehicle 110 can obtain, identify, or otherwise receive the parameter set 210 from the data processing system 105. In some embodiments, the synchronization processor 175 can monitor the establishment of a connection with the data processing system 105. The synchronization processor 175 can attempt to establish a connection with the data processing system 105 through the network 115 according to a schedule (e.g., hourly, daily, or weekly intervals). After detecting that the connection is established, the synchronization processor 175 can extract or obtain the parameter set 210 from the data processing system 105. The synchronization processor 175 can also obtain, identify, or otherwise receive an identification of the vehicle function corresponding to the generated parameters 210. The distribution and reception of the parameter set 210 can be performed according to a federated learning technique.

[0050] The model trainer 170 of the controller 145 on the vehicle 110 may initialize, establish, or otherwise configure the local model 180. The local model 180 may correspond to a localized instance of the aggregate model 140 for determining values ​​for the same vehicle function. Upon receipt from the data processing system 105, the model trainer 170 may set parameter values ​​on the local model 180 to values ​​determined by the parameter set 210 of the aggregate model 140. In some embodiments, the model trainer 170 may identify the local model 180 associated with the particular vehicle function for which the parameter set 210 was generated. For example, when the parameter set 210 is for a vehicle function of an emissions system, the model trainer 170 may select the local model 180 corresponding to the emissions system from a set of local models 180 maintained on the controller 145. Upon identification, the model trainer 170 may set or assign the values ​​of the local model 180 using the values ​​defined by the parameter set 210 received from the data processing system 105.

[0051] Reference now Figure 3 , a block diagram of a process 300 for training a local model in a system for performing federated learning across vehicles is shown. The process 300 may include or correspond to an operation in the system 100 for updating a local model. In the process 300, the data acquirer 160 of the controller 145 on the vehicle 110 may acquire, receive, or otherwise identify at least one data set 305 (sometimes collectively referred to herein as data) from one or more sensors 155. The data set 305 may include measurements of a vehicle function for which the local model 180 will generate outputs. For example, when the vehicle function is an emission system, the data set 305 may identify the engine speed, engine load, and fuel quality acquired or generated by the sensor 155. In addition, the data acquirer 160 may acquire, receive, or otherwise identify at least one measurement 310 of the vehicle function. The measurement 310 may define or identify a characteristic of the vehicle function. The characteristic may define an output measurement of a component 150 associated with the vehicle function. In some embodiments, the data acquirer 160 may identify the measurement 310 from the component 150 associated with the vehicle function. Continuing with the above example, measurements 310 corresponding to component 150 of the emission system may include an amount of nitrogen oxide (NOx) gas emitted by vehicle 110 as measured by associated sensor 155. Data set 305 and measurements 310 may be used to train and optimize local model 180.

[0052] The model applicator 165 of the controller 145 on the vehicle 110 may input or apply the data set 305 received from the sensor 155 to the local model 180. In some embodiments, the model applicator 165 may identify the local model 180 associated with the vehicle function to which the data set 305 is to be input. In some embodiments, the model applicator 165 (and the model trainer 170) may wait or delay applying the data set 305 until the processor on the controller 145 is idle or not performing other operations of the vehicle 110. When applied, the model applicator 165 may process the data set 305 according to the parameters of the local model 180. Through processing, the model applicator 165 may generate, output, or otherwise produce an estimate 310' (sometimes referred to herein as an expected value or predicted value) of at least one vehicle function. The estimate 310' may be of the same type as the measurement 310 of the vehicle function. For example, when the vehicle function is an ADAS system, the measurement 310 and the estimate 310' may include adjustments to the vehicle propulsion system that are made based on the measurement identified in the data set 305 obtained from the sensor 155.

[0053] The model trainer 170 of the controller 145 on the vehicle 110 can maintain the local model 180. Through the output, the model trainer 170 can compare the expected value 310' generated by the local model 180 with the measured output value identified by the example in the training data set 205. Based on the comparison, the model trainer 170 can calculate, generate or otherwise determine at least one error indicator. The error indicator can be calculated according to any loss function, such as root mean square error, relative root mean square error, and weighted cross entropy. Using the error indicator, the model trainer 170 can modify, set or otherwise update one or more parameters of the local model 180. The update can be performed according to the optimization function of the local model 180 (e.g., a set learning rate, momentum, weight decay, and momentum). The optimization function may include, for example, stochastic gradient descent (SGD) or an adaptive learning rate method, etc. The model trainer 170 can iteratively update the parameters of the local model 180 until the convergence condition is met. The model trainer 170 can store and maintain the parameters on the controller 145 (e.g., in a memory). Although this article mainly describes supervised learning techniques, weakly supervised or unsupervised learning techniques can also be used when training the local model 180.

[0054] Reference now Figure 4, a block diagram of a process 400 for aggregating local model parameters in a system for performing centralized federated learning across vehicles is shown. The process 400 may include or correspond to the operation of aggregating local model parameters and distributing global model parameters to vehicles in the system 100. In the process 400, the synchronization processor 175 of the controller 145 on each corresponding vehicle 110 may provide, send or otherwise transmit a parameter set 210'AN (hereinafter collectively referred to as the parameter set 210') from the local model 180. The parameter set 210 may have been set or generated by training the local model 180 as discussed above. In some embodiments, the synchronization processor 175 may monitor the establishment of a connection between the controller 145 and the data processing system 105 (e.g., through the network 115). The synchronization processor 175 may attempt to establish a connection with the data processing system 105 through the network 115 according to a schedule (e.g., hourly, daily, or weekly intervals). After detecting that the connection is established, the synchronization processor 175 may send the parameter set 210' to the data processing system 105. In some embodiments, the synchronization processor 175 may send, provide or transmit compressed data (e.g., quantized, thinned, losslessly compressed or lossily compressed) about the parameter set 210' to the data processing system 105 after the connection is established. The synchronization processor 175 may provide or send an identification of the vehicle function that generated the parameter set 210'.

[0055] The parameter aggregator 130 executing on the data processing system 105 may obtain, identify, or receive the parameter set 210' from each respective vehicle 110. In some embodiments, the parameter aggregator 130 may monitor for a connection establishment between the controller 145 on each vehicle 110 and the data processing system 105 (e.g., via the network 115). Upon detecting that a connection is established, the synchronization processor 175 may obtain or retrieve the parameter set 210' from the local model 180 on the controller 145 of the respective vehicle 110. The parameter aggregator 130 may receive multiple parameter sets 210' from multiple vehicles 110 that have established a connection with the data processing system 105. Upon receipt, the parameter aggregator 130 may identify vehicle functions associated with generating the parameter set 210'. Upon receiving a threshold number of parameter sets 210', the parameter aggregator 130 may call the model trainer 125 to update the aggregated model 140.

[0056] The model trainer 125 executed on the data processing system 105 may modify, set, or otherwise update parameters on the aggregate model 140. In some embodiments, the model trainer 125 may identify or select an aggregate model 140 related to a vehicle function from a collection of aggregate models 140 based on data contained in the parameter set 210'. For example, when the parameter set 210' is for a vehicle function of a battery, the model trainer 125 may select an aggregate model 140 corresponding to the battery vehicle function. The update of the aggregate model 140 may be performed in accordance with federated learning. For updating, the model trainer 125 may combine parameter sets 210' related to the same vehicle function from the vehicle 110. By combining the parameter sets 210', the model trainer 125 may generate, determine, or otherwise produce a parameter set 210"AN (hereinafter collectively referred to as parameter sets 210") to configure the aggregate model 140. The combination may be performed according to a function (e.g., a weighted sum or average) of the values ​​of each parameter 210' in the aggregate model 140 or the local model 180. In some embodiments, the combination may also include parameter values ​​for the aggregate model 140. By generation, the model trainer 125 may assign or set the parameter values ​​in the aggregate model 140 as parameters 210” generated from the combination. The distribution of parameter set 210” may be similar to the distribution of parameter set 210 discussed above.

[0057] A distribution manager 135 executing on the data processing system 105 may provide, transmit, or otherwise send a parameter set 210″ to a controller 145 on each vehicle 110. The distribution manager 135 may send the parameter set 210″ while sending an identification of the vehicle function that generated the parameter 210″. In some embodiments, the distribution manager 135 may broadcast the parameter set 210″ to the vehicles 110. For example, the distribution manager 135 may broadcast the parameter set 210″ on a schedule, such as at hourly or weekly intervals. In some embodiments, the distribution manager 135 may monitor the establishment of a connection between the controller 145 and the data processing system 105 via the network 115. Upon detecting that the connection has been established, the distribution manager 135 may transmit the parameter set 210″ to the vehicle 110. For example, the distribution manager 135 may detect the connection with the controller 145 on the vehicle 110 via a communication interface on the data processing system 105. In some embodiments, parameter set 210" may be transmitted between vehicles 110 when a connection is established (e.g., using a vehicle-to-vehicle (V2X) communication protocol). In some embodiments, distribution manager 135 may send, provide, or transmit compressed data (e.g., quantized, sparsified, lossless compressed, or lossy compressed) regarding parameter set 210" to vehicle 110 when a connection is established.

[0058] The synchronization processor 175 of the controller 145 on the vehicle 110 can obtain, identify or otherwise receive the parameter set 210". From the data processing system 105, in some embodiments, the synchronization processor 175 can monitor the establishment of a connection with the data processing system 105. The synchronization processor 175 can attempt to establish a connection with the data processing system 105 through the network 115 according to a schedule (e.g., hourly, daily, or weekly intervals). After detecting that the connection is established, the synchronization processor 175 can extract or obtain the parameter set 210". From the data processing system 105, the synchronization processor 175 can also obtain, identify or otherwise receive an identification of the vehicle function that generates the parameter 210". The distribution and reception of the parameter set 210" can be performed according to federated learning techniques.

[0059] The model trainer 170 of the controller 145 on the vehicle 110 can reconfigure or otherwise update the local model 180 using the parameter set 210" from the data processing system 105. Upon receipt from the data processing system 105, the model trainer 170 can set the parameter values ​​on the local model 180 to the values ​​identified by the parameter set 210" of the aggregate model 140. In some embodiments, the model trainer 170 can identify the local model 180 associated with the specific vehicle function for which the parameter set 210" was generated. Upon identification, the model trainer 170 can set or assign the values ​​of the local model 180 using the values ​​defined by the parameter set 210" received from the data processing system 105.

[0060] Figure 5 A block diagram of a process 500 for training a local model in a system for performing decentralized federated learning across vehicles is shown. The process 500 may include or correspond to an operation of exchanging local model parameters between vehicles 110A and 110B in the system 100. In the process 500, the synchronization processor 175 of the controller 145 on each vehicle 110A and 110B may monitor the establishment of a connection between the controller 145 on each vehicle 110A and 110B. The synchronization processor 175 in one vehicle 110A may attempt to establish a connection based on the distance with the synchronization processor 175 in another vehicle 110B. For example, when the distance between the vehicle 110A and the vehicle 110B is within 200 meters, the synchronization processor 175 on the vehicle 110A may attempt to establish a connection with the synchronization processor 175 on the vehicle 110B according to the V2V communication protocol even during driving. In some embodiments, the synchronization processor 175 on the vehicle 110A may establish a connection with another vehicle 110B through one or more other vehicles (e.g., vehicle 110C) to exchange data.

[0061] As the connection is established, the synchronization processor 175 on the controller 145 of the vehicle 110A may provide, send, or otherwise transmit parameter sets 505A-N (hereinafter collectively referred to as parameter sets 505) from the local model 180. The parameter set 505 may be the parameters 210' discussed above, which are obtained by training the local model 180 on the vehicle 110A using sensor data. In some embodiments, the synchronization processor 175 on the vehicle 110A may send, provide, or transmit compressed data (e.g., quantized, sparse, lossless compression, or lossy compression) about the parameter set 505' to the vehicle 110B after the connection is established. Conversely, the synchronization processor 175 on the controller 145 of the vehicle 110B may provide, send, or otherwise transmit parameter sets 505'AN (hereinafter collectively referred to as parameter sets 505) from the local model 180. In some embodiments, the synchronization processor 175 may send, provide, or transmit compressed data (e.g., quantized, sparse, lossless compression, or lossy compression) about the parameter set 505' to the vehicle 110A after the connection is established. The parameter set 505 ′ may be the parameters 210 ′ discussed above, which are obtained by training the local model 180 on the vehicle 110B using the sensor data.

[0062] The synchronization processor 175 on the vehicle 110A may acquire, identify, or otherwise receive the parameter set 505' from the vehicle 110B. The synchronization processor 175 on the vehicle 110B may acquire, identify, or otherwise receive the parameter set 505 from the vehicle 110A. In some embodiments, the synchronization processor 175 on the vehicle 110A may transmit the parameter set 505 or receive the parameter set 505' from the other vehicle 110B through another vehicle (e.g., vehicle 110C). The synchronization processor 175 on the vehicle 110B may transmit the parameter set 505' or receive the parameter set 505 from the other vehicle 110A through another vehicle (e.g., vehicle 110C).

[0063] The model trainer 170 of the controller 145 on each vehicle 110A and 110B may use the parameter sets 505 and 505' to reconfigure or otherwise update the local model 180. The model trainer 170 on the vehicle 110A may update the local model 180 using the parameter set 505' from the vehicle 110B. Conversely, the model trainer 170 on the vehicle 110B may update the local model 180 using the parameter set 505 from the vehicle 110A. Upon receiving the parameters, the model trainer 170 on the vehicle 110A may set the parameter values ​​on the local model 180 to the values ​​identified by the parameter set 505' of the vehicle 110B. Likewise, the model trainer 170 on the vehicle 110B may set the parameter values ​​on the local model 180 to the values ​​identified by the parameter set 505 of the vehicle 110A.

[0064] In some embodiments, a model trainer 170 on at least one vehicle 110 (e.g., vehicle 110A) can initialize, train, and establish an instance of a local model 180. Initialization can be performed by the model trainer 170 using a training data set (e.g., similar to the training data set 205), possibly before or at least partially simultaneously with the establishment of a connection. The training data set may be pre-installed or stored on the controller 145 of the vehicle 110, or may be obtained from another vehicle 110 (e.g., vehicle 110B). In some embodiments, the model trainer 170 on the vehicle 110A can initialize, train, and establish a local model 180 using a parameter set 505' from another vehicle 110B.

[0065] In some embodiments, the model trainer 170 may calculate, generate, or otherwise generate a combined parameter set 505 and 505' associated with the same vehicle function. By combining the parameter sets 505 and 505', the model trainer 170 may generate, determine, or otherwise generate a parameter set to configure an instance of the local model 180. The combination may process the value of each parameter 505 and 505' in the local model 180 according to a function (e.g., a weighted sum or average). In some embodiments, the combination may also include parameter values ​​for the instance of the local model 180. Once generated, the model trainer 170 may assign or set the parameter values ​​in the local model 180 to the parameters generated from the combination.

[0066] In some embodiments, the model trainer 170 on the vehicle 110A may select or identify a local model 180 for a particular vehicle function associated with the parameter set 505' received from the vehicle 110B. Upon identification, the model trainer 170 may set or assign parameter values ​​of the local model 180 to values ​​defined by the parameter set 505'. Additionally, the model trainer 170 on the vehicle 110B may identify a local model 180 for a particular vehicle function associated with the parameter set 505 received from the vehicle 110A. Upon identification, the model trainer 170 may set or assign parameter values ​​of the local model 180 to values ​​defined by the parameter set 505.

[0067] Reference now Figure 6, a block diagram of a process 600 for controlling a vehicle function using a local model in a system 100 for performing federated learning across vehicles is shown. Process 300 may include or correspond to operations in system 100 for controlling various vehicle functions using a local instance of a model. As local model 180 is established and updated (e.g., using process 400 or 500), controller 145 on vehicle 110 may generate outputs using local model 180 to control components 150 in vehicle 110. In process 600, data acquirer 160 of controller 145 on vehicle 110 may acquire, receive, or otherwise identify at least one data set 605 (sometimes collectively referred to herein as data) from one or more sensors 155. Data set 605 may include measurements of a vehicle function for which local model 180 will generate outputs. For example, when the vehicle function involves a propulsion system, data set 605 may identify engine speed, engine torque, and user input (e.g., steering, accelerator, or brake input) acquired by sensor 155. In some embodiments, data acquirer 160 may acquire, receive, or otherwise identify at least one measurement of a vehicle function. A measured value may define or identify a certain characteristic of a vehicle function.

[0068] The model applicator 165 may input or apply the data set 605 received from the sensor 155 to the local model 180. In some embodiments, the model applicator 165 may identify the local model 180 associated with the vehicle function to which the data set 605 is to be input. In some embodiments, the model applicator 165 (and the model trainer 170) may wait or delay applying the data set 605 until the processor on the controller 145 is idle or not performing other operations of the vehicle 110. When applied, the model applicator 165 may process the data set 605 according to the parameters of the local model 180. Through processing, the model applicator 165 may generate, output, or otherwise produce at least one output 610 associated with the vehicle function.

[0069] The output 610 may define or identify a vehicle function operation of the vehicle function. The output 610 may include a command signal for configuring, setting, or adjusting the operation of one or more components 150 associated with the vehicle function. The command signal may define, specify, or otherwise determine one or more vehicle function operations performed by the component 150 associated with the vehicle function. For example, when the vehicle function involves a cruise control system, the output 610 may be a command signal for setting a target speed for the vehicle propulsion system based on the measurement results. When the vehicle function involves an aftertreatment system, the output 610 may specify a command to activate a metering control to inject diesel exhaust fluid into the exhaust flow. When the vehicle system involves a thermal management system, the output 610 may include a control signal for setting the exhaust temperature to a specified temperature. In some embodiments, the output 610 may include data (e.g., in the form of an estimated value) for deriving the command signal.

[0070] After generating the output 610, the controller 145 may transmit, transfer, or otherwise send the output 610 to one or more components 150 associated with the vehicle function. By sending the output 610, the controller 145 may cause one or more components 150 to perform, implement, or otherwise perform vehicle function operations based on the output 610. After receiving the output 610, the component 150 may perform, implement, or otherwise perform vehicle function operations based on the command signal of the output 610. For example, the output 610 may be directed to a component 150 that constitutes a battery management system in the vehicle 110 and may include a command signal to specify the amount of power to be drawn from the battery. After receiving the output 610, the component 150 of the battery management system may adjust the output power drawn from the battery to the specified amount. As new data sets 605 are acquired from the sensor 155, the controller 145 may generate and provide new outputs 610 using the local model 180 to process, manage, or otherwise control the vehicle function.

[0071] In this way, the system 100 can facilitate the aggregation and distribution of parameters (e.g., parameter sets 210, 210', and 210") through federated learning, which are learned when training machine learning model instances (e.g., aggregate model 140 and local model 180). This can address the problem that the controller 145 on each vehicle 110 is unable to independently build and train such models without the help of other controllers 145 or data processing system 105 due to processing power and memory limitations. By using federated learning (centralized or decentralized), the controller 145 on each vehicle 110 can train a local model 180 to control and determine the characteristics of various vehicle functions, such as battery life, battery health, engine control, emissions control, autonomous vehicle functions, vehicle diagnostics and predictions, etc.

[0072] Reference now Figure 7 , a flow chart of a method 700 for performing centralized federated learning across vehicles is shown. The method 700 can be implemented or executed using any of the components described herein, such as the data processing system 105 and the controller 145 of the vehicle 110. Briefly summarized, under the method 700, the server can initialize the global model (705). The server can send model parameters of the global model to the vehicle (710). The vehicle can receive the model parameters from the server (715). The vehicle can configure the local model using the received model parameters (720). The vehicle can identify sensor data of the vehicle function (725). The vehicle can apply the local model to generate a value (730). The vehicle can update the local model parameters based on the application of the local model (735). The vehicle can send the local model parameters to the server (740). The server can receive and aggregate the local model parameters (745). The server can update the global model using the aggregated parameters (750). The server can distribute the model parameters (755).

[0073] In more detail, a server (e.g., data processing system 105) may initialize, train, or otherwise establish a global model (e.g., aggregate model 140) (705). The server may establish the global model using training data. The training data may include a set of examples of specific vehicle functions. Each example may identify or include a sample input data set (e.g., sensor measurement data) and an expected output value associated with the vehicle function. Vehicle functions may include, for example, batteries, dosing control, aftertreatment systems, nitrogen oxide (NOx) emissions, advanced diesel-electric powertrains, advanced driver assistance systems, vehicle diagnostic systems, vehicle prediction systems, or engine systems. The server may train the global model based on supervised learning techniques, weakly supervised or unsupervised learning techniques, etc. In some embodiments, the server may establish the global model using parameters of a local model (e.g., local model 180) instance.

[0074] The server may provide, transmit, or otherwise send model parameters of the global model (e.g., parameter set 210) to the vehicle (e.g., controller 145 of vehicle 110) (710). The server may iteratively update the model parameters of the global model by training the global model using a training data set (or data from other local model instances). The global model may learn to detect potential features in the training data set that are related to expected outputs. During each update, the server may determine a loss metric between the output of the global model and the expected output in the training data. In some embodiments, the server may send the model parameters after establishing a connection with the vehicle. The vehicle (e.g., controller 145) may obtain, identify, or otherwise receive the model parameters of the global model from the server (715). In some embodiments, the vehicle may obtain the model parameters from the server in response to establishing communication with the server.

[0075] The vehicle may use the model parameters received from the server to update, set, or otherwise configure the local model (720). The vehicle may use these model parameters to initialize, train, and establish the local model. After receiving the model parameters of the global model from the server, the vehicle may set or assign the model parameters of the local model to the values ​​of the model parameters of the global model. In some embodiments, the vehicle may identify or select a local model that is associated with the global model and has the same vehicle function as identified in the model parameters. The vehicle may acquire, extract, or otherwise identify sensor data for the vehicle function (725). The vehicle may identify sensor data (e.g., data set 305) from one or more sensors (e.g., sensor 155) associated with the vehicle function. In some embodiments, the vehicle may acquire, extract, or otherwise identify measurements (e.g., measurements 310) associated with the vehicle function from one or more sensors. Sensor data and measurements from sensors

[0076] The vehicle may input or apply sensor data to a local model to output, produce, or otherwise generate at least one value (e.g., an estimate 310') (730). During the application process, the vehicle may process the sensor data according to local model parameters of the local model. By processing the sensor data, the vehicle may generate values ​​related to vehicle functions. The vehicle may set, configure, or otherwise update local model parameters based on the application of the local model (735). The vehicle may calculate, generate, or otherwise determine a loss indicator by comparing the value generated by the local model with the measurement value of one or more sensors. Using the loss indicator, the vehicle may adjust or modify the local model parameters. The update of the local model parameters may be performed according to an optimization function of the local model (e.g., a set learning rate, momentum, weight decay, and momentum).

[0077] The vehicle may transmit, provide, or otherwise send local model parameters of the local model to the server (740). The vehicle may send the local model parameters after establishing a connection with the server. In some embodiments, the vehicle may send a vehicle function identifier associated with the local model parameters along with the local model parameters. The server may receive, obtain, or otherwise aggregate local model parameters from one or more vehicles (e.g., vehicle 110) (745). The server may obtain the local model parameters after establishing a connection with the vehicle. Each set of local model parameters may be obtained from a corresponding vehicle.

[0078] The server may reconfigure or update the global model using the aggregated parameters (750). After receiving the local model parameters from one or more vehicles, the server may set or assign the model parameters of the global model to the values ​​of the local model parameters. In some embodiments, the server may update the global model after collecting a certain number of local model parameter sets from the vehicles. In some embodiments, the server may combine the local model parameter sets according to a function (e.g., an average or a weighted sum). The server may broadcast, transmit, or otherwise distribute the model parameters of the global model to one or more vehicles (755). As the global model is updated, the server may send the model parameters of the global model to each vehicle. The server may send the model parameters of the global model to the vehicle after establishing communication with the vehicle.

[0079] Reference now Figure 8 , a flow chart of a method 800 for performing decentralized federated learning across vehicles is shown. Method 800 may be implemented or performed using any of the components described herein, such as the controller 145 of the vehicle 110. Briefly summarized, in method 800, the controller in each vehicle A and B may initialize a local model (805A and 805B). The controller in each vehicle may identify sensor data (810A and 810B). The controller in each vehicle may apply the sensor data to the local model (815A and 815B). The controller in each vehicle may update local model parameters (820A and 820B). The controller in each vehicle may exchange local model parameters (825A and 825B). The controller in each vehicle may update local model parameters (830A and 830B).

[0080] In more detail, a controller (e.g., controller 145) in each vehicle A and B (e.g., vehicles 110A and 110B) can train, build, or otherwise initialize a local model (e.g., local model 180) (805A and 805B). The controller can build the local model using training data. The training data can include a set of examples of specific vehicle functions. Each example can identify or include a sample input data set (e.g., sensor measurement data) and an expected output value associated with the vehicle function. Vehicle functions can include, for example, batteries, dosing control, aftertreatment systems, nitrogen oxide (NOx) emissions, advanced diesel-electric powertrains, advanced driver assistance systems, vehicle diagnostic systems, vehicle prediction systems, or engine systems. The controller can train the local model based on supervised learning techniques, weakly supervised or unsupervised learning techniques, etc. In some embodiments, the controller can use parameters of other local model instances (e.g., a model from another vehicle) to build a local model.

[0081] The controller in each vehicle may acquire, extract, or otherwise identify sensor data (810A and 810B). The controller may identify sensor data (e.g., data set 305) from one or more sensors (e.g., sensor 155) associated with a vehicle function. In some embodiments, the controller may acquire, extract, or otherwise identify measurements (e.g., measurements 310) associated with a vehicle function from one or more sensors. Sensor data and measurements from sensors. The controller in each vehicle may input or apply the sensor data to a local model (815A and 815B). During the application process, the vehicle may process the sensor data based on local model parameters of the local model. By processing the sensor data, the vehicle may generate an estimate (e.g., estimate 310') associated with the vehicle function.

[0082] The controller in each vehicle may configure, set, or otherwise update local model parameters (820A and 820B) of the local model. To update, the controller may calculate, generate, or otherwise determine a loss metric by comparing values ​​generated by the local model with measurements from one or more sensors. Using the loss metric, the controller may adjust or modify the local model parameters. The update of the local model parameters may be performed according to an optimization function of the local model (e.g., a set learning rate, momentum, weight decay, and momentum).

[0083] The controllers in each vehicle can communicate with each other or exchange local model parameters (825A and 825B). A controller on one vehicle can monitor the situation of establishing a connection with another vehicle. After establishing communication with another vehicle, the controller can provide, transmit or otherwise send local model parameters from a local model. Conversely, the controller can obtain, extract or otherwise identify local model parameters from a local model instance on another vehicle. The controller in each vehicle can reconfigure, set or otherwise update local model parameters (830A and 830B). By exchanging local model parameters, the controller can set or assign model parameters of the local model to the received local model parameter values. In some embodiments, the server can combine local model parameter sets according to a function (such as an average or a weighted sum). By combining, the controller can set or assign local model parameters to combined values.

[0084] For purposes of this disclosure, the term "coupled" means to connect or link two components together, either directly or indirectly. The connection may be fixed or movable. For example, an engine's drive shaft being "coupled" to a transmission represents a movable coupling. The connection may be achieved directly between the two components or between the two components and any additional intermediate components. For example, circuit A being communicatively "coupled" to circuit B may mean that circuit A communicates directly with circuit B (i.e., without an intermediary) or indirectly with circuit B (e.g., through one or more intermediaries).

[0085] Although various circuits with specific functions are shown in the figures, it should be understood that these components can include any number of circuits to perform the functions described herein. For example, the circuit activities and functions of the charge management system can be combined in multiple circuits, or implemented as a single circuit. Other circuits with additional functions can also be included. In addition, the controller can further control other activities beyond the scope of this disclosure.

[0086] As described above, in one configuration, a "circuit" may be implemented by a machine-readable medium for execution by various types of processors. For example, an identified circuit of an executable code may include one or more physical or logical blocks of computer instructions, which may be organized as an object, a process, or a function. However, the executable file of the identified circuit does not have to be physically located in the same place, but may be discrete instructions stored in different locations, which, when logically combined together, constitute the circuit and achieve its intended purpose. In fact, the circuit of the computer-readable program code may be a single instruction or multiple instructions, and may even be distributed across multiple different code segments, different programs, and multiple storage devices. Similarly, operational data may be identified and displayed in the circuits described herein, which may be represented in any suitable form and organized in any type of data structure. The operational data may be collected as a single data set, or may be distributed in different locations, including on different storage devices, and may exist at least in part only as electronic signals on a system or network.

[0087] Although the term "processor" is briefly defined above, "processor" and "processing circuit" should be interpreted broadly. In this regard, as described above, a "processor" may be implemented as one or more general-purpose processors, application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), digital signal processors (DSPs), or other suitable electronic data processing components that are configured to execute instructions provided by a memory. One or more processors may take the form of a single-core processor, a multi-core processor (e.g., a dual-core processor, a triple-core processor, a quad-core processor, etc.), a microprocessor, etc. In some embodiments, one or more processors may be located outside the device, for example, one or more processors may be remote processors (e.g., cloud-based processors). Alternatively, one or more processors may be internal and / or local to the device. In this regard, a given circuit or component thereof may be located locally (e.g., as part of a local server, a local computing system, etc.) or remotely (e.g., as part of a remote server such as a cloud-based server). To this end, the "circuitry" described herein may include components distributed in one or more locations.

[0088] Although the diagrams herein may show a specific order and composition of method steps, the order of these steps may be different from that depicted. For example, two or more steps may be performed simultaneously or partially simultaneously. In addition, some method steps, although performed in discrete steps, may be combined and performed, the combined steps may also be decomposed into discrete steps, the order of certain processes may be reversed or otherwise changed, and the nature or number of discrete processes may also be changed or changed. The order or sequence of any element or device may be changed or replaced according to alternative embodiments. All of these modifications are intended to be included within the scope of the present disclosure as defined in the appended claims. Such changes will depend on the selected machine-readable medium and hardware system and the designer's choice. All of these changes are within the scope of the present disclosure.

[0089] The above description of the embodiments is for the purpose of illustration and description. It is not meant to be exhaustive or to limit the present disclosure to the precise form disclosed, and modifications and variations are possible in accordance with the above teachings or obtained from the present disclosure. These embodiments are selected to explain the principles of the present disclosure and its practical application, so that those skilled in the art can utilize various embodiments and make various modifications to suit specific intended uses. Other substitutions, modifications, changes and omissions may be made in the design, operating conditions and arrangement of the embodiments without departing from the scope expressed by the appended claims of the present disclosure.

[0090] Therefore, the present disclosure may be embodied in other specific forms without departing from its spirit or essential characteristics. The described embodiments are illustrative in all respects and not restrictive. Therefore, the scope of the present disclosure is indicated by the attached claims rather than by the foregoing description. All changes that fall within the meaning and equivalent range of the claims should be included within their scope.

Claims

1. A system for performing federated learning across vehicles, characterized in that include: A first computing device, comprising one or more processors coupled to a memory, wherein the first computing device is configured to: maintaining a first machine learning model in the memory, the first machine learning model including a first set of parameters for determining a value identifying a characteristic of a vehicle function of at least one vehicle of a plurality of vehicles; receiving, from each respective vehicle of the plurality of vehicles, a second set of parameters generated by a second computing device using a second machine learning model on each respective vehicle, the second set of parameters being generated using (i) data acquired by at least one sensor relating to the vehicle function and (ii) values ​​identifying characteristics of the vehicle function on the respective vehicle; updating the first set of parameters of the first machine learning model based on the second set of parameters received from each respective vehicle of the plurality of vehicles; as well as The updated first parameter set is transmitted to at least one vehicle of the plurality of vehicles to update the second parameter set of the second machine learning model of the at least one vehicle.

2. The system according to claim 1, characterized in that The first computing device is also configured to, in response to establishing a connection with at least one vehicle of the plurality of vehicles, obtain the second parameter set of the second machine learning model on the at least one vehicle, wherein the second parameter set is generated on the at least one vehicle when no connection is established with the first computing device.

3. The system according to claim 1, characterized in that The first computing device is also configured to initialize the first machine learning model using a third parameter set generated by a third machine learning model maintained on at least one server.

4. The system according to claim 1, characterized in that The first computing device is also configured to identify the first machine learning model from a plurality of machine learning models based on the vehicle function.

5. The system according to claim 1, characterized in that The first computing device is also configured to transmit an identifier corresponding to the vehicle function and the first parameter set of the first machine learning model after update to at least one of the multiple vehicles to update the second machine learning model on the at least one vehicle.

6. The system according to claim 1, characterized in that The first computing device is further configured to: generating an output using the first machine learning model, the output identifying a vehicle function operation; and Based on the output, one or more components related to the vehicle function operation are enabled to perform the vehicle function operation.

7. The system according to claim 1, characterized in that The vehicle functions include at least one of the following: a battery management function for controlling the output of the battery; a dosage control function of the after-treatment system for controlling the injection of the reductant in the after-treatment system; an engine control function; a hybrid control function for controlling the switching between the electric motor and the fuel engine; an advanced driver assistance system function for controlling vehicle motion operations; a vehicle diagnostic function; for detecting vehicle faults; or a vehicle prediction function for predicting vehicle faults.

8. A vehicle system, characterized in that: include: a component configured to perform a vehicle system function; as well as At least one processing circuit, comprising one or more processors coupled to a memory, the at least one processing circuit being configured to: maintaining a first machine learning model, the first machine learning model comprising a first set of parameters for determining a value associated with the vehicle system function; identifying data associated with the vehicle system function and a first value for identifying a characteristic of the vehicle system function; generating, using the first machine learning model, a second value identifying a functional characteristic of the vehicle system; Based on a comparison between the first numerical value and the second numerical value, updating the first set of parameters of the first machine learning model; as well as The first set of parameters is transmitted from the machine learning model to at least one computing device remote from the at least one processing circuit to update a second machine learning model.

9. The vehicle system according to claim 8, characterized in that: The at least one processing circuit is further configured to: receiving, from the at least one computing device, a second set of parameters for the second machine learning model, the second set of parameters generated by the at least one computing device using the first set of parameters and a third set of parameters received from each respective vehicle system of a plurality of vehicle systems; Based on the vehicle system function, identifying the first machine learning model from a plurality of machine learning models; as well as The first set of parameters of the first machine learning model is updated using the third set of parameters.

10. The vehicle system according to claim 8, characterized in that The at least one processing circuit is further configured to transmit compressed data regarding the first parameter set to the at least one computing device in response to establishing a connection with the at least one computing device.

11. The vehicle system according to claim 8, characterized in that: The at least one processing circuit is also configured to initialize the first machine learning model using a second set of parameters received from the second machine learning model on the at least one computing device remote from the at least one processing circuit.

12. The vehicle system according to claim 8, characterized in that The at least one computing device is at least one server, and the at least one processing circuit is also configured to transmit the first parameter set to the at least one server to update a third machine learning model on the at least one server using the first parameter set and a second parameter set from each corresponding vehicle system of a plurality of vehicle systems.

13. The vehicle system according to claim 8, characterized in that The at least one computing device is an onboard vehicle computing device, and the at least one processing circuit is further configured to transmit the first parameter set to the onboard vehicle computing device to update the second machine learning model using the first parameter set.

14. The vehicle system according to claim 8, characterized in that The at least one processing circuit is further configured to: generating an output using the first machine learning model, the output identifying a vehicle function operation; and Based on the output, one or more components related to the vehicle function operation are enabled to perform the vehicle function operation.

15. A method for performing federated learning across vehicles, characterized in that include: maintaining, by a first computing system, a first machine learning model including a first set of parameters for determining a value associated with a vehicle function of at least one vehicle of a plurality of vehicles; receiving, by the first computing system, from each respective vehicle of the plurality of vehicles, a second set of parameters generated by a second computing system using a second machine learning model on each respective vehicle; updating, by the first computing system, the first set of parameters of the first machine learning model based on the second set of parameters received from each respective vehicle of the plurality of vehicles; as well as The updated first parameter set is transmitted by the first computing system to at least one vehicle of the plurality of vehicles so that a second computing system on the at least one vehicle updates the second parameter set of the second machine learning model on the at least one vehicle.

16. The method according to claim 15, characterized in that Receiving the second parameter set also includes obtaining, by the first computing system in response to establishing a connection with at least one vehicle of the plurality of vehicles, the second parameter set of the second machine learning model on the at least one vehicle, wherein the second parameter set is generated on the at least one vehicle when no connection is established with the first computing system.

17. The method according to claim 15, characterized in that It also includes initializing the first machine learning model by the first computing system using a third parameter set generated by a third machine learning model maintained on at least one server.

18. The method according to claim 15, characterized in that It also includes identifying the first machine learning model from a plurality of machine learning models by the first computing system based on the vehicle function.

19. The method according to claim 15, characterized in that Transmitting the updated parameter set also includes transmitting, by the first computing system, the updated first parameter set corresponding to the identifier of the vehicle function and the first machine learning model to the at least one vehicle.

20. The method according to claim 15, characterized in that Also includes: generating, by the first computing system, an output using the first machine learning model, the output identifying a vehicle function operation; as well as The first computing system causes one or more components related to the vehicle function operation to perform the vehicle function operation according to the output.