Patent Publication Number: US-2022237512-A1

Title: Storage medium, information processing method, and information processing apparatus

Description:
CROSS-REFERENCE TO RELATED APPLICATION 
     This application is based upon and claims the benefit of priority of the prior Japanese Patent Application No. 2021-12143, filed on Jan. 28, 2021, the entire contents of which are incorporated herein by reference. 
     FIELD 
     The embodiment discussed herein is related to a storage medium, an information processing method, and an information processing apparatus. 
     BACKGROUND 
     In recent years, development and use of systems using machine learning have rapidly progressed. Meanwhile, various security problems unique to the systems using the machine learning have been found. For example, a training data estimation attack that estimates and steals the training data used for the machine learning is known. 
     In the training data estimation attack, for example, a machine learning model is extracted by analyzing a face authentication edge device used for a face authentication system. A face image used as the training data is estimated by performing the training data estimation attack on the machine learning model. 
     The training data estimation attack is an attack performed on a trained model (machine learning model) having undergone a training phase. The training data estimation attack is classified into a black box attack and a white box attack. 
     The black box attack estimates the training data from input data and output data in an inference phase. 
     As a defensive technique against the black box attack, for example, there is a known technique in which output information is simply decreased by, for example, adding noise to the output of a trained model or deleting the degree of certainty. There also is a known technique in which, against the attack, a fake gradient is provided and the attack is guided to a decoy data set prepared in advance. 
     The white box attack estimates from the trained machine learning model itself the training data. As a defensive technique against the white box attack, there is a known technique in which a trained machine learning model resistant to the training data estimation is generated by adding appropriate noise to parameters of the machine learning model when the parameters are updated. Examples of such a defensive technique against the white box attack include, for example, differential private-stochastic gradient descent (DP-SG D). 
     Japanese Laid-open Patent Publication Nos. 2020-115312 and 2020-119044 are disclosed as related art. 
     SUMMARY 
     According to an aspect of the embodiments, a non-transitory computer-readable storage medium storing an information processing program that causes at least one computer to execute a process, the process includes, generating additional data by inputting meaningless data to a first machine learning model which has been trained with first training data; acquiring second training data by combining the first training data and the additional data; and training a machine learning model by using the second training data. 
     The object and advantages of the invention will be realized and attained by means of the elements and combinations particularly pointed out in the claims. 
     It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory and are not restrictive of the invention. 
    
    
     
       BRIEF DESCRIPTION OF DRAWINGS 
         FIG. 1  illustrates an example of a hardware configuration of an information processing apparatus as an example of an embodiment; 
         FIG. 2  illustrates an example of a functional configuration of the information processing apparatus as the example of the embodiment; 
         FIG. 3  explains processes of a mini-batch creation unit in the information processing apparatus as the example of the embodiment; 
         FIG. 4  illustrates an outline of a technique for training a machine learning model in the information processing apparatus as the example of the embodiment; 
         FIG. 5  is a flowchart explaining the technique for training the machine learning model in the information processing apparatus as the example of the embodiment; and 
         FIG. 6  explains results of a white box attack that estimates training data performed on the machine learning model generated by the information processing apparatus as the example of the embodiment. 
     
    
    
     DESCRIPTION OF EMBODIMENTS 
     In many cases, there is usually a risk that an attacker obtains a machine learning model itself. Thus, only a defense against a black box attack is insufficient. 
     Meanwhile, in the related-art defensive technique against the white box attack, since noise is added to the parameters of the machine learning model, estimation accuracy decreases. Thus, the accuracy is traded off for the strength of the resistance against the attack. Accordingly, there is a problem in that this technique is not able to be introduced into a system in which the accuracy of the machine learning model is demanded. 
     In one aspect, an object of the present disclosure is to enable generation of a machine learning model resistant to a white box attack that estimates training data. 
     According to an embodiment, the machine learning model resistant to the white box attack that estimates training data may be generated. 
     Hereinafter, an embodiment related to an information processing program, a method of processing information, and an information processing apparatus will be described with reference to the drawings. However, the following embodiment is merely an example and does not intend to exclude application of various modification examples or techniques that are not explicitly described in the embodiment. For example, the present embodiment may be modified in a various manner and carried out without departing from the spirit of the embodiment. Each drawing does not indicate that only components illustrated in the drawing are provided. The drawings indicate that other functions and the like may be included. 
     (A) Configuration 
       FIG. 1  illustrates an example of a hardware configuration of an information processing apparatus  1  as an example of the embodiment. 
     As illustrated in  FIG. 1 , the information processing apparatus  1  includes, for example, a processor  11 , a memory  12 , a storage device  13 , a graphic processing device  14 , an input interface  15 , an optical drive device  16 , a device coupling interface  17 , and a network interface  18  as the components. These components  11  to  18  are configured so as to be mutually communicable via a bus  19 . 
     The processor (control unit)  11  controls the entirety of this information processing apparatus  1 . The processor  11  may be a multiprocessor. For example, the processor  11  may be any one of a central processing unit (CPU), a microprocessor unit (MPU), a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a programmable logic device (PLD), and a field-programmable gate array (FPGA). The processor  11  may be a combination of two or more types of elements of the CPU, the MPU, the DSP, the ASIC, the PLD, and the FPGA. 
     The processor  11  executes a control program (information processing program: not illustrated), thereby realizing the functions as a training processing unit  100  (a first training execution unit  101 , an additional training data creation unit  102 , and a second training execution unit  105 ) exemplified in  FIG. 2 . 
     The information processing apparatus  1  realizes the function as the training processing unit  100  by executing, for example, programs (the information processing program and an operating system (OS) program) recorded in a computer-readable non-transitory recording medium. 
     Programs in which content of processing to be executed by the information processing apparatus  1  is described may be recorded in various recording media. For example, the programs to be executed by the information processing apparatus  1  may be stored in the storage device  13 . The processor  11  loads at least a subset of the programs in the storage device  13  into the memory  12  and executes the loaded programs. 
     The programs to be executed by the information processing apparatus  1  (processor  11 ) may be recorded in a non-transitory portable recording medium such as an optical disc  16   a,  a memory device  17   a,  and a memory card  17   c.  For example, the programs stored in the portable recording medium become executable after being installed in the storage device  13  by control from the processor  11 . The processor  11  may read the programs directly from the portable recording medium and execute the programs. 
     The memory  12  is a storage memory including a read-only memory (ROM) and a random-access memory (RAM). The RAM of the memory  12  is used as a main storage device of the information processing apparatus  1 . The OS program and the control program to be executed by the processor  11  are at least partially stored in the RAM temporarily. Various types of data desired for processing by the processor  11  are stored in the memory  12 . 
     The storage device  13  is a storage device such as a hard disk drive (HDD), a solid-state drive (SSD), or a storage class memory (SCM) and stores various types of data. The storage device  13  is used as an auxiliary storage device of this information processing apparatus  1 . The OS program, the control program, and the various types of data are stored in the storage device  13 . The control program includes an information processing program. 
     As the auxiliary storage device, a semiconductor storage device such as an SCM or a flash memory may be used. A plurality of storage devices  13  may be used to configure redundant arrays of inexpensive disks (RAID). 
     The storage device  13  may store various types of data generated when the first training execution unit  101 , the additional training data creation unit  102  (an additional data creation unit  103  and a mini-batch creation unit  104 ), and the second training execution unit  105 , which will be described later, execute processes. 
     A monitor  14   a  is coupled to the graphic processing device  14 . The graphic processing device  14  displays an image on a screen of the monitor  14   a  in accordance with an instruction from the processor  11 . Examples of the monitor  14   a  include a display device with a cathode ray tube (CRT), a liquid crystal display device, and the like. 
     A keyboard  15   a  and a mouse  15   b  are coupled to the input interface  15 . The input interface  15  transmits signals transmitted from the keyboard  15   a  and the mouse  15   b  to the processor  11 . The mouse  15   b  is an example of a pointing device, and a different pointing device may be used. Examples of the different pointing device include a touch panel, a tablet, a touch pad, a track ball, and the like. 
     The optical drive device  16  reads data recorded in the optical disc  16   a  by using laser light or the like. The optical disc  16   a  is a portable non-transitory recording medium in which data is recorded so that the data is readable using light reflection. Examples of the optical disc  16   a  include a Digital Versatile Disc (DVD), a DVD-RAM, a compact disc read-only memory (CD-ROM), a CD-recordable (R)/CD-rewritable (RW), and the like. 
     The device coupling interface  17  is a communication interface for coupling peripheral devices to the information processing apparatus  1 . For example, the memory device  17   a  or a memory reader-writer  17   b  may be coupled to the device coupling interface  17 . The memory device  17   a  is a non-transitory recording medium such as a Universal Serial Bus (USB) memory which has the function of communication with the device coupling interface  17 . The memory reader-writer  17   b  writes data to the memory card  17   c  or reads data from the memory card  17   c.  The memory card  17   c  is a card-type non-transitory recording medium. 
     The network interface  18  is coupled to a network (not illustrated). The network interface  18  may be coupled to another information processing apparatus, a communication device, or the like via the network. For example, an input image or an input text may be input via the network. 
       FIG. 2  illustrates an example of a functional configuration of the information processing apparatus  1  as the example of the embodiment. As illustrated in  FIG. 2 , the information processing apparatus  1  has the function of the training processing unit  100 . 
     In the information processing apparatus  1 , the processor  11  executes the control program (information processing program), thereby realizing the function as the training processing unit  100 . 
     The training processing unit  100  realizes a learning process (training process) in machine learning by using training data. For example, the information processing apparatus  1  functions as a training device that trains a machine learning model by using the training processing unit  100 . 
     The training processing unit  100  realizes the learning process (training process) in machine learning by using, for example, training data (teacher data) to which a correct answer label is assigned. The training processing unit  100  trains the machine learning model by using the training data and generates a trained machine learning model resistant to training data estimation. 
     The machine learning model may be, for example, a deep learning model (deep neural network). A neural network may be a hardware circuit or a virtual network by software that couples layers virtually built in a computer program by the processor  11  or the like. 
     As illustrated in  FIG. 2 , the training processing unit  100  includes the first training execution unit  101 , the additional data creation unit  103 , and the second training execution unit  105 . 
     The first training execution unit  101  trains the machine learning model by using the training data and generates the trained machine learning model. 
     The training data is configured as, for example, a combination of input data x and correct answer output data y. 
     The training of the machine learning model performed by the first training execution unit  101  by using the training data may be referred to as first training. The machine learning model before the training by using the first training execution unit  101  is performed may be referred to as a first machine learning model. Since the first machine learning model is a machine learning model before the training is performed, the first machine learning model may be referred to as an empty machine learning model. Also, the machine learning model may be simply referred to as a model. 
     Hereinafter, the training data used for the first training by the first training execution unit  101  may be referred to as first training data or training data A. 
     The trained machine learning model generated by the first training execution unit  101  may be referred to as a second machine learning model or a machine learning model A. Model parameters of the machine learning model A are set by the first training performed by the first training execution unit  101 . 
     The first training execution unit  101  is able to generate the second machine learning model (machine learning model A) by training the first machine learning model with the training data A by using a known technique. Specific description of the generation of the second machine learning model is omitted. 
     The additional training data creation unit  102  creates training data used when the second training execution unit  105 , which will be described later, performs additional training on the second machine learning model (machine learning model A) generated by the first training execution unit  101 . Hereinafter, the training data used when the additional training is performed on the second machine learning model may be referred to as second training data or training data B. The training data B may be referred to as additional training data. 
     The additional training data creation unit  102  includes the additional data creation unit  103  and the mini-batch creation unit  104 . 
     The additional data creation unit  103  creates a plurality of pieces of additional data. The additional data is data that is not input to the machine learning model A in a usual machine learning model operation, and the additional data is artificial data that is classified into a specific label by a classifier. 
     The additional data creation unit  103  creates the additional data by, for example, a gradient descent method in which the gradient of the machine learning model A is obtained and in which input is updated in a direction in which the degree of certainty increases. 
     Hereinafter, an example of a technique (stages 1 to 4) for generating the additional data by using a simple gradient descent method is described below. 
     (Stage 1) The additional data creation unit  103  first sets an objective function.
     Input of machine learning model A: X   Output of machine learning model A: f(X)=(f 1 (X), . . . , f n (X))   

     When the target label is set to t, the objective function may be represented by, for example, the following expression (1). 
         L ( X )=(1− f   t ( X )) 2    (1)
 
     When the value of L(X) described above is minimized, X is classified into a label t with the degree of certainty of 1. Since X depends on the label t as described above, the processing of stage 1 is desired to be performed on all labels. 
     (Stage 2) As an initial value, input of meaningless data (for example, noise or a certain value) with respect to the machine learning model A is prepared (hereinafter, referred to as initial value X 0 ). 
     The initial value X 0  may be prepared and set in advance by an operator or the like or generated by the additional data creation unit  103 . 
     (Stage 3) The additional data creation unit  103  obtains a derivative value L′(X 0 ) of L(X) around X 0 . 
     (Stage 4) The additional data creation unit  103  sets X 0 −λL′(X 0 ) as the additional data. λ Is a hyperparameter. 
     The method of creating additional data is not limited to the above-described method and may be appropriately changed and performed. For example, another objective function may be used. The stage 4 may be repeated a predetermined number of times. The expression of stage 4 may be changed. 
     The additional data creation unit  103  creates the additional data by mechanically generating meaningless data (X 0 ) as the initial value by using machine learning model A (first machine learning model) trained with the training data A (first training data). 
     To generate the additional data, an optimization technique other than the gradient descent method such as an evolutionary algorithm may be used. The optimization technique other than the gradient descent method may be change and performed in various manners. 
     When the input data is an image data, for example, a fooling image may be used as the additional data. The fooling image may be generated by a known method, and description thereof is omitted. 
     The mini-batch creation unit  104  creates the second training data (training data B, additional training data) by adding to the training data A the additional data created by the additional data creation unit  103 . 
     The mini-batch creation unit  104  performs up-sampling of the training data A or down-sampling of the additional data so that the number of samples of the additional data is sufficiently smaller than the number of samples of the training data A. 
     For example, the mini-batch creation unit  104  adjusts the number of pieces of the training data A and the number of pieces of the additional data so that the ratio of the pieces of the additional data to the pieces of the training data A is a predetermined value (α). 
     For example, when the ratio of the pieces of the additional data to the pieces of the training data A is smaller than the predetermined ratio α, the mini-batch creation unit  104  performs at least one of down-sampling of the training data A and up-sampling of the additional data, thereby setting the ratio of the pieces of the additional data to the pieces of the training data A to be α. In contrast, when the ratio of the pieces of the additional data to the pieces of the training data A is greater than or equal to the predetermined ratio α, the mini-batch creation unit  104  performs at least one of up-sampling of the training data A and down-sampling of the additional data, thereby setting the ratio of the pieces of the additional data to the pieces of the training data A to be α. A technique such as noise addition may be used for up-sampling. 
     Increasing the ratio of the pieces of the additional data to the pieces of the training data A may improve the machine learning model (machine learning model B) generated by the second training execution unit  105 , which will be described later, by using the second training data (training data B) in terms of resistance to a white box attack. Meanwhile, increasing the ratio of the pieces of the additional data to the pieces of the training data A may decrease the accuracy of the machine learning model (machine learning model B). Accordingly, it is desirable that the threshold (α) representing the ratio of the pieces of the additional data to the pieces of the training data A be set to be a value as large as possible within a range in which the accuracy of the machine learning model (machine learning model B) is maintained. 
     The mini-batch creation unit  104  creates a plurality of mini-batches by using the training data A and the additional data. 
       FIG. 3  explains processes of the mini-batch creation unit  104  in the information processing apparatus  1  as the example of the embodiment. 
     For stabilizing training (machine learning) by the second training execution unit  105 , which will be described later, the mini-batch creation unit  104  performs shuffling so that each of the mini-batches includes a certain ratio of the additional data. 
     For example, the mini-batch creation unit  104  separately randomly rearranges (shuffles) the training data A and the additional data and equally divides the rearranged training data A and the rearranged additional data into N parts (N is a natural number of two or more) separately. Hereinafter, 1/N of the training data A generated by equally dividing the training data by N may be referred to as divided training data A. Also, 1/N of the additional data generated by equally dividing the additional data into N parts may be referred to as divided additional data A. 
     The mini-batch creation unit  104  creates a single mini-batch by combining a single part of the divided training data A extracted from the training data A divided into N parts (N-part divided) and the divided additional data extracted from the N-part divided additional data. The mini-batch is used for training for the machine learning model by the second training execution unit  105 , which will be described later. 
     For example, the mini-batch creation unit  104  extracts a certain number of pieces of data from the shuffled training data A and the shuffled additional data separately and combines the extracted pieces of data into a single mini-batch. A set of the plurality of mini-batches may be referred to as training data B. 
     The mini-batch creation unit  104  corresponds to a second training data creation unit that creates the training data B (second training data) by combining the training data A (first training data) and the additional data. The mini-batch creation unit  104  performs up-sampling or down-sampling of at least one of the training data A and the additional data so that the ratio of the pieces of the additional data to the pieces of the training data A (first training data) is the predetermined value (α) in the training data B. 
     The size of the mini-batches may be appropriately set based on machine learning know-how. The mini-batch creation unit  104  shuffles the training data A and the additional data separately. This may suppress the occurrences of gradient bias in parameters set by the training. 
     The second training execution unit  105  trains the machine learning model by using the training data B created by the additional training data creation unit  102 , thereby creating the machine learning model resistant to a training data estimation attack. 
     In the present information processing apparatus  1 , the second training execution unit  105  trains (additionally trains), by using the training data B, the machine learning model A trained by the first training execution unit  101 . 
     Hereinafter, the training of the machine learning model performed by the second training execution unit  105  by using the training data B may be referred to as second training. 
     The trained machine learning model generated by the second training execution unit  105  may be referred to as a machine learning model B. The machine learning model B may be referred to as a third machine learning model. 
     The second training execution unit  105  is able to generate the third machine learning model (machine learning model B) by training the second machine learning model with the training data B by using a known technique. Specific description of the generation of the third machine learning model is omitted. 
     The second training execution unit  105  generates the additionally trained machine learning model B by further training (additionally training) the trained machine learning model A by using the mini-batches generated by dividing into N parts the training data B created by the additional training data creation unit  102 . The model parameters of the machine learning model B are set by the second training (additional training) by the second training execution unit  105 . 
     The second training execution unit  105  trains the machine learning model by using the training data B (second training data) and retrains the machine learning model A (first machine learning model) by using the training data B (second training data). 
     The machine learning model B generated by the second training (additional training) by the second training execution unit  105  is resistant to the white box attack that estimates the training data A. 
     Further training (additionally training) the trained machine learning model A may decrease the time taken to train the machine learning model. 
     (B) Operation 
     The technique for training the machine learning model in the information processing apparatus  1  as the example of the embodiment configured as described above is described in accordance with a flowchart (steps S 1  to S 10 ) illustrated in  FIG. 5  with reference to  FIG. 4 .  FIG. 4  illustrates an outline of the technique for training the machine learning model in the information processing apparatus  1 . 
     In step S 1 , the operator prepares the empty machine learning model (first machine learning model) and the training data A. Information included in the empty machine learning model and the training data A is stored in a predetermined storage region of, for example, the storage device  13 . 
     In step S 2 , the first training execution unit  101  trains the empty machine learning model (first machine learning model) by using the training data A (first training) to generate the trained machine learning model A (see reference sign A 1  illustrated in  FIG. 4 ). 
     In step S 3 , the additional data creation unit  103  generates the additional data by using an optimization technique for the machine learning model A (see reference sign A 2  illustrated in  FIG. 4 ). 
     In step S 4 , the mini-batch creation unit  104  compares the number of pieces of the additional data with the number of pieces of the training data A and checks whether the ratio of the pieces of the additional data to the pieces of the training data A is smaller than the predetermined ratio α. 
     When the ratio of the pieces of the additional data to the pieces of the training data A is smaller than the predetermined ratio α as a result of the check (see a YES route in step S 4 ), processing moves to step S 6 . In step S 6 , the mini-batch creation unit  104  performs at least one of down-sampling of the training data A and up-sampling of the additional data, thereby adjusting the ratio of the pieces of the additional data to the pieces of the training data A to be α. 
     In contrast, when the ratio of the pieces of the additional data to the pieces of the training data A is greater than or equal to the predetermined ratio α as a result of the check (see a NO route in step S 4 ), the processing moves to step S 5 . In step S 5 , the mini-batch creation unit  104  performs at least one of up-sampling of the training data A and down-sampling of the additional data, thereby adjusting the ratio of the pieces of the additional data to the pieces of the training data A to be α. 
     Then, in step S 7 , the mini-batch creation unit  104  separately randomly rearranges the training data A and the additional data. The mini-batch creation unit  104  equally divides the training data A and the additional data into N parts separately. 
     In step S 8 , the mini-batch creation unit  104  creates the training data B divided into N parts (N-part divided) by combining the N-part divided training data A and the N-part divided additional data (see reference sign A 3  illustrated in  FIG. 4 ). 
     In step S 9 , the second training execution unit  105  generates the additionally trained machine learning model B by further training (additionally training) the trained machine learning model A by using each of the mini-batches of the N-part divided training data B created by the additional training data creation unit  102  (see reference sign A 4  illustrated in  FIG. 4 ). 
     In step S 10 , the second training execution unit  105  outputs the generated machine learning model B. Information included in the machine learning model B is stored in a predetermined storage region of, for example, the storage device  13 . 
     (C) Effects 
     As described above, with the information processing apparatus  1  as the example of the embodiment, the additional training data creation unit  102  creates the training data B including the additional data, and the second training execution unit  105  generates the additionally trained machine learning model B by further training (additionally training) the trained machine learning model A by using this training data B. 
     The additional data is data that is not input in a usual machine learning model operation and is mechanically generated with, as the initial value, the meaningless data (X 0 ) with respect to the machine learning model A. Accordingly, even when the white box attack that estimates the training data is performed on the additionally trained machine learning model B, estimation of the training data A may be suppressed due to the influence of the additional data. When the white box attack that estimates the training data is performed on the machine learning model B, the additional data functions as a decoy, and the estimation of the training data A may be blocked. 
       FIG. 6  explains results of the white box attack that estimates the training data performed on the machine learning model generated by the information processing apparatus  1  as the example of the embodiment. 
       FIG. 6  illustrates an example in which the training data estimation attack is performed with respect to the machine learning model that estimates (classifies), based on input numeric character images, numeric characters represented by the numeric character images.  FIG. 6  illustrates results of the training data estimation attack performed based on the machine learning model trained by the related-art technique that adds noise to the parameters of the machine learning model and results of the training data estimation attack performed based on the trained machine learning model created by the present information processing apparatus  1 . 
     In  FIG. 6 , “MODEL PERFORMANCE (ACCURACY)” indicates the performance (accuracy) of the machine learning model trained by the related-art technique and the performance (accuracy) of the machine learning model trained by the present information processing apparatus  1 . It is understood that the performance (0.9863) of the machine learning model trained by the present information processing apparatus  1  is equivalent to the performance (0.9888) of the machine learning model trained by the related-art technique. 
     The “resistance to training data estimation (attack result)” is indicated by arranging images (numeric character images) generated by performing the training data estimation attack on each of the machine learning models and numeric values as original correct answer data of the numeric character images. 
     In the result of the training data estimation attack performed based on the machine learning model trained by the related-art technique, the numeric character images of the training data are reproduced by the white box attack. In contrast, in the result of the training data estimation attack performed based on the machine learning model trained by the present information processing apparatus  1 , the numeric character images of the training data are not reproduced except for a subset of the numeric character images, and it is understood that the reproduction rate of the numeric character images of the training data by the white box attack is low. For example, this indicates that the machine learning model trained by the present information processing apparatus  1  is resistant to the training data estimation attack. 
     The related-art defending technique against the white box attack in which noise is added to the parameters of the machine learning model, the noise significantly affects the inference ability of the model, thereby significantly degrading the accuracy. In contrast, in the machine learning model trained by the present information processing apparatus  1 , the additional data is unlikely to affect the inference ability of normal input. Thus, the degradation of the accuracy may be relatively suppressed. 
     (D) Others 
     The disclosed technique is not limited to the embodiment described above and may be carried out with various modifications without departing from the gist of the present embodiment. 
     For example, the configurations and the processes of the present embodiment may be selected as desired or may be combined as appropriate. 
     Although the second training execution unit  105  further trains (additionally trains) the machine learning model A trained by the first training execution unit  101  according to the above-described embodiment, it is not limiting. The second training execution unit  105  may train the empty machine learning model by using the second training data. 
     The above-described disclosure enables a person skilled in the art to carry out and manufacture the present embodiment. 
     All examples and conditional language provided herein are intended for the pedagogical purposes of aiding the reader in understanding the invention and the concepts contributed by the inventor to further the art, and are not to be construed as limitations to such specifically recited examples and conditions, nor does the organization of such examples in the specification relate to a showing of the superiority and inferiority of the invention. Although one or more embodiments of the present invention have been described in detail, it should be understood that the various changes, substitutions, and alterations could be made hereto without departing from the spirit and scope of the invention.