Collaborative activation for deep learning field

Methods and apparatus, including computer program products, are provided for machine learning including deep convolutional neural networks. In some example embodiments, there may be provided a method that includes receiving, at a trained machine learning model, a portion of a test image; activating, at the machine learning model, a convolutional result formed based on the portion of the test image, the activation based on neighboring regions in the test image; and providing, by the machine learning model, an activated output. Related systems, methods, and articles of manufacture are also described.

RELATED APPLICATION

This application was originally filed as PCT Application No. PCT/CN2017/074576 filed Feb. 23, 2017.

The subject matter described herein relates to machine learning.

BACKGROUND

Machine learning refers to systems that allow processors such as a computer the ability to learn. Machine learning includes technologies such as pattern recognition, neural networks, and/or other technologies. For example, a neural network can be trained to detect words in speech, detect license plates, and perform other tasks. In machine learning, the learning can be supervised or unsupervised. In supervised learning, the machine learning model is provided a training set that includes reference information, such as labels. For example, in supervised learning, the training set of images may include labels to identify the license plate and the characters of the license plate. In unsupervised learning, the machine learning model learns the data structure or patterns in the data on its own.

SUMMARY

Methods and apparatus, including computer program products, are provided machine learning.

In some example embodiments, there may be provided a method that includes receiving, at a machine learning model, a portion of a training image; and activating, at the machine learning model, a convolutional result formed based on the portion of the training image, the activation based on at least one neighboring region in the training image.

In some variations, one or more of the features disclosed herein including the following features can optionally be included in any feasible combination. The machine learning model may include a neural network. The machine learning model may include a convolutional neural network and/or a deep convolutional neural network. The activation may be a non-linear function and based on a combination of the convolutional result and another convolutional result of the at least one neighboring region. The combination may represent a normalized difference squared between the convolutional result and the another convolutional result. The convolution result may represent an inner product between the portion of the test image and a weight vector, and wherein the other convolutional represents an inner product between another portion of the test image and another weight vector. The machine learning model may provide an activated output. The machine learning model may be trained using back propagation.

In some example embodiments, there may be provided a method that includes receiving, at a trained machine learning model, a portion of a test image; activating, at the machine learning model, a convolutional result formed based on the portion of the test image, the activation based on neighboring regions in the test image; and providing, by the machine learning model, an activated output.

In some variations, one or more of the features disclosed herein including the following features can optionally be included in any feasible combination. The machine learning model may include a neural network. The machine learning model may include a convolutional neural network and/or a deep convolutional neural network. The activation may be a non-linear function and based on a combination of the convolutional result and another convolutional result of the at least one neighboring region. The combination may represent a normalized difference squared between the convolutional result and the another convolutional result. The convolution result may represent an inner product between the portion of the test image and a weight vector, and wherein the other convolutional represents an inner product between another portion of the test image and another weight vector. An activated output may be provided to another layer in a convolutional layer. The activated output may be provided to a pooling layer.

DETAILED DESCRIPTION

Image recognition including detection and classification may be used in image processing and machine vision. For example, systems including advanced driver assistance systems (ADAS), self-driving cars, video surveillance, intelligent robotics, virtual reality, and/or the like may include image recognition technology. Neural network circuitry may, for example, be configured to provide deep learning to enable enhanced image detection and/or classification. For example, the recognition accuracy of deep learning can be better than, or comparable to, a human when performing some image recognition tasks.

In deep learning, an input vector may be transformed into a scalar by computing the inner product (also referred to as a dot product) of the input vector and a weight vector (also referred to as a filter, a kernel, a convolutional filter, or a convolutional kernel). In other words, the scalar output is a result of the convolution of the convolutional filter and the input vector. This scalar output may also be referred to as a convolutional result. An activation function may then be applied to the scalar/convolutional result.

Although some of the examples refer to a deep learning convolutional neural network (CNN), the activation scheme disclosed herein may be used with other types of artificial intelligence techniques, machine learning models, neural networks, and other types of CNNs.

FIG.1Adepicts an example of a CNN based system100, in accordance with some example embodiments. The CNN may include at least one convolutional layer105. The input to the convolutional layer105may be an input vector103A, which in the example ofFIG.1Arepresents at least a portion102A of image199. For example, each pixel in the image patch102A may be used to form a vector, such as vector x which may include x0through xNelements (which may corresponds to the pixels at102A). The other patches102B,102N may also form corresponding vectors and elements as well.

At the convolutional layer(s)105, an input vector may be transformed into a scalar output by at least computing the dot product of the input vector and a set of weights. Next, an activation function is applied to the scalar output. In the case of a CNN, at least one pooling layer110may be used to down sample activated outputs. Although the example ofFIG.1Adepicts non-overlapping portions or patches at102A,102B, and so forth, the patches/portions may overlap as well. Moreover, the portion may comprise the whole image199as well.

FIG.1Bdepicts an example of a single node150of a neural network, in accordance with some example embodiments. For example, the at least one convolutional layer105may include at least one node such as node150, although there may be a plurality nodes150in the at least one convolutional layer150as well.

The node150may receive an input such as an input vector103A representing a portion102A of image199. For the input vector, the inner product of the input vector x0-xnand the weight vector w0-wngenerates a scalar (see, e.g.,169where the scalar is the sum of the xi*wias i goes from 0 to n). Next, an activation function, g, may be applied at169as well to form an activation output, such as a node output168. The activation function, g, may be a function, such as a non-linear function examples of which include a sigmoid, a ReLu function, and/or other types of functions. Moreover, the node150(or other nodes150) may process patches102B though102N in a similar way.

The sigmoid noted above may have the following form:

sigmoid⁢⁢(x)=11+e-x,(1).
And, the ReLu function noted above may have the following form:

To illustrate by way of the example atFIG.1A, the CNN105may be trained to detect and/or classify an object in the image199or a portion/patch of that image. Once trained, the output112may provide an indication of whether the object (or the type of object) is present in the image or whether the image is just a so-called “background” image without an object of interest. For example, the input vectors103A-N may sample different portions of the image199, and when an object is detected, the output112may indicate that the object is present.

Some neural networks may independently apply an activation function, g, to the convolutional result, without considering the relationship between neighboring convolutional results. In other words, the activation function, g, can be statically applied to the input vector103A for example without considering neighboring convolutional results for neighboring regions or portions of the image. Referring to Equations 1 and 2 above, if a scalar element x is to be activated by the activation function, information regarding the neighbors, are not (prior to the subject matter disclosed herein) taken into account.

In some example embodiments, neighbor-based activation for machine learning may be provided. In some example embodiments, a collaborative activation of spatially neighboring convolutional results may be provided. In some example embodiments, the relationship of neighboring convolutional results, such as the convolutional result of a local or adjacent region (e.g., an adjacent patch or portion) may be utilized in the activation function (which may generate an activation function result that better represents the input). As used herein, a neighbor-based activation refers to an activation function of a neural network, wherein the activation function may take into account at least one neighboring convolution result.

Referring toFIG.1A, suppose a convolutional result xcfor the input vector xi(e.g., vector103A for portion/patch102A) and suppose the local region Ω (xc) comprises the neighboring elements (e.g., vector103B for portion/patch102B or some other neighboring portion of image199) of vector xi. Moreover, suppose g is the activation function, such as a sigmoid function, a ReLU function, and/or another type of activation function.

In some example embodiments, the neighbor-based activation function, g, is a function of both the convolution result xcfor input vector xi103A and the convolutional result for the neighboring region Ω (xc), which may take the form of f (xco, Ω (xc)). Thus, the activation function output/result may thus also depend on neighbors.

In some example embodiments, the neighbor-based activation function, g, takes into account the current convolutional result such as xcand the convolutional result(s) of at least neighboring, local region Ω (xc). In some example embodiments, the activation function is of the following form:

x is an element of the neighboring convolutional result Ω(xc),

N(Ω(xc)) is the number of elements of Ω(xc) (e.g., the quantity of neighbors of xc), and

α is a parameter which can be preconfigured or learned when training the CNN.

The term

α⁢⁢∑x∈Ω⁡(xc)⁢(xc-x)2
may provide an indication or measure regarding the variation in the neighbors. When Equation (3) provides a relatively larger activation result, this may indicate a larger importance of xcand its neighbors Ω(xc).

In some example embodiments, the neighbor-based activation function takes into account neighbors as noted, and the activation function may be used to detect and/or classify images including videos. Moreover, the detection and/or classification may be used in an advanced driver assistance system, autonomous vehicle system, and/or other systems including machine vision to classify and/or detect images. To that end, a CNN may be configured so that at least one node (if not all nodes) of the CNN may include an activation function, such as f (xc, Ω(xc)) noted above with respect to Equation 3, that takes into account neighbors. Next, the CNN may be trained (e.g., using a back-propagation algorithm and/or other training scheme) to perform detection and/or classification. The trained CNN may then be used to detect and/or classify images (or objects in the image).

FIG.2depicts an example system200including a sensor205and a CNN210, in accordance with some example embodiments. The system200may also include a radio frequency transceiver215. Moreover, the system200may be mounted in a vehicle290, such as a car or truck, although the system may be used without the vehicles290as well.

The sensor205may comprise at least one image sensor configured to provide image data, such as image frames, video, pictures, and/or the like. In the case of advanced driver assistance systems/autonomous vehicles for example, the sensor205may comprise a camera, a Lidar (light detection and ranging) sensor, a millimeter wave radar, an infrared camera, and/or other types of sensors.

In some example embodiments, the system200may be trained to detect objects, such as people, animals, other vehicles, traffic signs, road hazards, and/or the like. In the advanced driver assistance system (ADAS), when an object is detected, such as a vehicle/person, an output such as a warning sound, haptic feedback, indication of recognized object, or other indication may be generated to for example warn or notify a driver. In the case of an autonomous vehicle including system200, the detected objects may signal control circuitry to take additional action in the vehicle (e.g., initiate breaking, acceleration/deceleration, steering and/or some other action). Moreover, the indication may be transmitted to other vehicles, IoT devices or cloud, mobile edge computing (MEC) platform and/or the like via radio transceiver215.

The system200may also include at least one CNN circuitry210, in accordance with some example embodiments. The CNN circuitry210may represent dedicated CNN circuitry configured with a neighbor-based activation function, g, taking into account neighbors as described for example with respect to Equation 3. The dedicated CNN circuitry may provide a deep CNN. Alternatively or additionally, the CNN circuitry may be implemented in other ways such as, using at least one memory including program code which when executed by at least one processor provides the CNN210.

In some example embodiments, the system200may have a training phase. The training phase may configure the CNN210to learn to detect and/or classify one or more objects of interest. Referring to the previous example, the CNN circuitry210may be trained with images including objects such as people, other vehicles, road hazards, and/or the like. Once trained, when an image includes the object(s), the trained CNN210may detect the object(s) and provide an indication of the detection/classification of the object(s). In the training phase, the CNN210may learn its configuration (e.g., parameters, weights, and/or the like). Once trained, the configured CNN can be used in a test or operational phase to detect and/or classify patches or portions of an unknown, input image and thus determine whether that input image includes an object of interest or just background (i.e., not having an object of interest).

FIG.3depicts an example of a process300for training a CNN configured to take into account neighbors, in accordance with some example embodiments.

At305, a set of training images may be prepared, in accordance with some example embodiments. For example, a set of training (or reference) images may be processed and labeled. The labels may be used during training to indicate whether a given image is for example a background image or whether the image contains an object of interest (e.g., an object that the CNN needs to detect/classify).

At310, the CNN may be configured, in accordance with some example embodiments. The CNN100may be configured to have a certain number of convolutional layer, s and a quantity of feature maps (which is an output of a CNN layer, x·w, before application of the neighbor-based activation function) in a layer i may be Ni, and the quantity of feature maps in layer i−1 may be Ni−1.

At315, a convolution filter may be applied to the training images, in accordance with some example embodiments. The convolutional filter wi(e.g., w1, w2, . . . wn) of size (witimes hi×Ni) may be configured in order to obtain the convolutional result of layer i. The convolutional result may, as noted, be obtained by convolving the input of the layer i with the filters w1, w2, . . . , wn. The configuration may include the convolution stride (or step size), the filter sizes, and the number of filters.

At320, the neighbor-based activation, g, may be applied to each input image vector corresponding to a portion of patch of the test image, in accordance with some example embodiments. For example, suppose xcis a convolutional result at location c of the convolutional layer i. Given Ω (xc) is a local region and the elements of Ω (xc) are the neighbors of xc, and given activation function, g, such as the activation function depicted at Equation 3, the activation result may be defined as f (xcc, Ω (xc)), which depends on not only xcbut also its neighbors Ω (xc). The term

α⁢⁢∑x∈Ω⁡(xc)⁢(xc-x)2
may provide as noted a measure of the variation in the neighbors.

At330, the pooling layer may provide down sampling, in accordance with some example embodiments. For example, the activation outputs may be down sampled using max-pooling at pooling layer110.

At340, an optimization may be performed to train the CNN, in accordance with some example embodiments. The parameters of the convolutional filters and the parameters of the activation function, g, may be obtained by minimizing the mean squared error of the training set. A back-propagation algorithm may be used for solving the minimization problem. In back-propagation, the gradients of the mean squared error with respect to the parameters of the filters and parameters of the activation function, g, may be computed and back-propagated. The back-propagation may be conducted in several epochs until convergence, which indicates the CNN may be trained.

FIG.4depicts an example of a process400for using the trained CNN configured with neighbor-based activation functions, in accordance with some example embodiments. With architecture and the parameters obtained in the training stage, the trained deep CNN can be used for classifying an image or a patch of an image.

At410, at least one test image (or portion thereof) is received (e.g., from the sensor205) by the CNN210, and at420the test image is processed by at least one convolutional layer105to determine a convolutional result, and then compute the activation result by using at least the neighbor-based activation function f (xco, Ω (xc)). If the CNN210includes a pooling layer, then the pooling layer may be applied to down sample (e.g., using max-pooling) the activation results. At430, the output of the CNN210may then be used as a detection result indicative of whether the test image of410includes an object of interest or just background (i.e., not having an object of interest). The detection result may then be provided as a warning indicator, control signal, and/or transmitted to other devices via transceiver215.

FIG.5illustrates a block diagram of an apparatus10, in accordance with some example embodiments. The apparatus10(or portions thereof) may be configured to provide at least the radio transceiver215ofFIG.2for example, although the apparatus10may also provide the CNN210and/or the sensor205as well. For example, the image sensor205and CNN210may be mounted in a vehicle, and the apparatus10may provide communications to other devices.

The apparatus10may include at least one antenna12in communication with a transmitter14and a receiver16. Alternatively transmit and receive antennas may be separate. The apparatus10may also include a processor20configured to provide signals to and receive signals from the transmitter and receiver, respectively, and to control the functioning of the apparatus. Processor20may be configured to control the functioning of the transmitter and receiver by effecting control signaling via electrical leads to the transmitter and receiver. Likewise, processor20may be configured to control other elements of apparatus10by effecting control signaling via electrical leads connecting processor20to the other elements, such as a display or a memory. The processor20may, for example, be embodied in a variety of ways including circuitry, at least one processing core, one or more microprocessors with accompanying digital signal processor(s), one or more processor(s) without an accompanying digital signal processor, one or more coprocessors, one or more multi-core processors, one or more controllers, processing circuitry, one or more computers, various other processing elements including integrated circuits (for example, an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), and/or the like), or some combination thereof. Accordingly, although illustrated inFIG.5as a single processor, in some example embodiments the processor20may comprise a plurality of processors or processing cores.

Signals sent and received by the processor20may include signaling information in accordance with an air interface standard of an applicable cellular system, and/or any number of different wireline or wireless networking techniques, comprising but not limited to Wi-Fi, wireless local access network (WLAN) techniques, such as Institute of Electrical and Electronics Engineers (IEEE) 802.11, 802.16, 802.3, ADSL, DOCSIS, and/or the like. In addition, these signals may include speech data, user generated data, user requested data, and/or the like.

The apparatus10may be capable of operating with one or more air interface standards, communication protocols, modulation types, access types, and/or the like. For example, the apparatus10and/or a cellular modem therein may be capable of operating in accordance with various first generation (1G) communication protocols, second generation (2G or 2.5G) communication protocols, third-generation (3G) communication protocols, fourth-generation (4G) communication protocols, Internet Protocol Multimedia Subsystem (IMS) communication protocols (for example, session initiation protocol (SIP) and/or the like. For example, the apparatus10may be capable of operating in accordance with 2G wireless communication protocols IS-136, Time Division Multiple Access TDMA, Global System for Mobile communications, GSM, IS-95, Code Division Multiple Access, CDMA, and/or the like. In addition, for example, the apparatus10may be capable of operating in accordance with 2.5G wireless communication protocols General Packet Radio Service (GPRS), Enhanced Data GSM Environment (EDGE), and/or the like. Further, for example, the apparatus10may be capable of operating in accordance with 3G wireless communication protocols, such as Universal Mobile Telecommunications System (UMTS), Code Division Multiple Access 2000 (CDMA2000), Wideband Code Division Multiple Access (WCDMA), Time Division-Synchronous Code Division Multiple Access (TD-SCDMA), and/or the like. The apparatus10may be additionally capable of operating in accordance with 3.9G wireless communication protocols, such as Long Term Evolution (LTE), Evolved Universal Terrestrial Radio Access Network (E-UTRAN), and/or the like. Additionally, for example, the apparatus10may be capable of operating in accordance with 4G wireless communication protocols, such as LTE Advanced, 5G, and/or the like as well as similar wireless communication protocols that may be subsequently developed.

It is understood that the processor20may include circuitry for implementing audio/video and logic functions of apparatus10. For example, the processor20may comprise a digital signal processor device, a microprocessor device, an analog-to-digital converter, a digital-to-analog converter, and/or the like. Control and signal processing functions of the apparatus10may be allocated between these devices according to their respective capabilities. The processor20may additionally comprise an internal voice coder (VC)20a, an internal data modem (DM)20b, and/or the like. Further, the processor20may include functionality to operate one or more software programs, which may be stored in memory. In general, processor20and stored software instructions may be configured to cause apparatus10to perform actions. For example, processor20may be capable of operating a connectivity program, such as a web browser. The connectivity program may allow the apparatus10to transmit and receive web content, such as location-based content, according to a protocol, such as wireless application protocol, WAP, hypertext transfer protocol, HTTP, and/or the like.

Apparatus10may also comprise a user interface including, for example, an earphone or speaker24, a ringer22, a microphone26, a display28, a user input interface, and/or the like, which may be operationally coupled to the processor20. The display28may, as noted above, include a touch sensitive display, where a user may touch and/or gesture to make selections, enter values, and/or the like. The processor20may also include user interface circuitry configured to control at least some functions of one or more elements of the user interface, such as the speaker24, the ringer22, the microphone26, the display28, and/or the like. The processor20and/or user interface circuitry comprising the processor20may be configured to control one or more functions of one or more elements of the user interface through computer program instructions, for example, software and/or firmware, stored on a memory accessible to the processor20, for example, volatile memory40, non-volatile memory42, and/or the like. The apparatus10may include a battery for powering various circuits related to the mobile terminal, for example, a circuit to provide mechanical vibration as a detectable output. The user input interface may comprise devices allowing the apparatus20to receive data, such as a keypad30(which can be a virtual keyboard presented on display28or an externally coupled keyboard) and/or other input devices.

As shown inFIG.5, apparatus10may also include one or more mechanisms for sharing and/or obtaining data. For example, the apparatus10may include a short-range radio frequency (RF) transceiver and/or interrogator64, so data may be shared with and/or obtained from electronic devices in accordance with RF techniques. The apparatus10may include other short-range transceivers, such as an infrared (IR) transceiver66, a Bluetooth™ (BT) transceiver68operating using Bluetooth™ wireless technology, a wireless universal serial bus (USB) transceiver70, a Bluetooth™ Low Energy transceiver, a ZigBee transceiver, an ANT transceiver, a cellular device-to-device transceiver, a wireless local area link transceiver, and/or any other short-range radio technology. Apparatus10and, in particular, the short-range transceiver may be capable of transmitting data to and/or receiving data from electronic devices within the proximity of the apparatus, such as within 10 meters, for example. The apparatus10including the Wi-Fi or wireless local area networking modem may also be capable of transmitting and/or receiving data from electronic devices according to various wireless networking techniques, including 6LoWpan, Wi-Fi, Wi-Fi low power, WLAN techniques such as IEEE 802.11 techniques, IEEE 802.15 techniques, IEEE 802.16 techniques, and/or the like.

The apparatus10may comprise memory, such as a subscriber identity module (SIM)38, a removable user identity module (R-UIM), an eUICC, an UICC, and/or the like, which may store information elements related to a mobile subscriber. In addition to the SIM, the apparatus10may include other removable and/or fixed memory. The apparatus10may include volatile memory40and/or non-volatile memory42. For example, volatile memory40may include Random Access Memory (RAM) including dynamic and/or static RAM, on-chip or off-chip cache memory, and/or the like. Non-volatile memory42, which may be embedded and/or removable, may include, for example, read-only memory, flash memory, magnetic storage devices, for example, hard disks, floppy disk drives, magnetic tape, optical disc drives and/or media, non-volatile random access memory (NVRAM), and/or the like. Like volatile memory40, non-volatile memory42may include a cache area for temporary storage of data. At least part of the volatile and/or non-volatile memory may be embedded in processor20. The memories may store one or more software programs, instructions, pieces of information, data, and/or the like which may be used by the apparatus for performing operations disclosed herein. The memories may comprise an identifier, such as an international mobile equipment identification (IMEI) code, capable of uniquely identifying apparatus10. The memories may comprise an identifier, such as an international mobile equipment identification (IMEI) code, capable of uniquely identifying apparatus10. In the example embodiment, the processor20may be configured using computer code stored at memory40and/or42to control and/or provide one or more aspects disclosed herein (see, for example, processes300and400.

Some of the embodiments disclosed herein may be implemented in software, hardware, application logic, or a combination of software, hardware, and application logic. The software, application logic, and/or hardware may reside on memory40, the control apparatus20, or electronic components, for example. In some example embodiment, the application logic, software or an instruction set is maintained on any one of various conventional computer-readable media. In the context of this document, a “computer-readable medium” may be any non-transitory media that can contain, store, communicate, propagate or transport the instructions for use by or in connection with an instruction execution system, apparatus, or device, such as a computer or data processor circuitry, with examples depicted atFIG.5, computer-readable medium may comprise a non-transitory computer-readable storage medium that may be any media that can contain or store the instructions for use by or in connection with an instruction execution system, apparatus, or device, such as a computer.

Without in any way limiting the scope, interpretation, or application of the claims appearing below, a technical effect of one or more of the example embodiments disclosed herein is enhanced and more accurate image detection in computer-vision based systems.

The subject matter described herein may be embodied in systems, apparatus, methods, and/or articles depending on the desired configuration. For example, the base stations and user equipment (or one or more components therein) and/or the processes described herein can be implemented using one or more of the following: a processor executing program code, an application-specific integrated circuit (ASIC), a digital signal processor (DSP), an embedded processor, a field programmable gate array (FPGA), and/or combinations thereof. These various implementations may include implementation in one or more computer programs that are executable and/or interpretable on a programmable system including at least one programmable processor, which may be special or general purpose, coupled to receive data and instructions from, and to transmit data and instructions to, a storage system, at least one input device, and at least one output device. These computer programs (also known as programs, software, software applications, applications, components, program code, or code) include machine instructions for a programmable processor, and may be implemented in a high-level procedural and/or object-oriented programming language, and/or in assembly/machine language. As used herein, the term “computer-readable medium” refers to any computer program product, machine-readable medium, computer-readable storage medium, apparatus and/or device (for example, magnetic discs, optical disks, memory, Programmable Logic Devices (PLDs)) used to provide machine instructions and/or data to a programmable processor, including a machine-readable medium that receives machine instructions. Similarly, systems are also described herein that may include a processor and a memory coupled to the processor. The memory may include one or more programs that cause the processor to perform one or more of the operations described herein.

Although a few variations have been described in detail above, other modifications or additions are possible. In particular, further features and/or variations may be provided in addition to those set forth herein. Moreover, the implementations described above may be directed to various combinations and subcombinations of the disclosed features and/or combinations and subcombinations of several further features disclosed above. Other embodiments may be within the scope of the following claims.

If desired, the different functions discussed herein may be performed in a different order and/or concurrently with each other. Furthermore, if desired, one or more of the above-described functions may be optional or may be combined. Although various aspects of some of the embodiments are set out in the independent claims, other aspects of some of the embodiments comprise other combinations of features from the described embodiments and/or the dependent claims with the features of the independent claims, and not solely the combinations explicitly set out in the claims. It is also noted herein that while the above describes example embodiments, these descriptions should not be viewed in a limiting sense. Rather, there are several variations and modifications that may be made without departing from the scope of some of the embodiments as defined in the appended claims. Other embodiments may be within the scope of the following claims. The term “based on” includes “based on at least.” The use of the phase “such as” means “such as for example” unless otherwise indicated.