The disclosure generally relates to neural networks and more specifically to preventing adversarial attacks on neural networks.
With the progress in modern learning theories and advancement of general-purpose computing on graphics processing units (GPGPU), machine learning models are becoming more powerful. Machine learning models, especially deep neural networks, achieve excellent performance in tasks such as image classification, object detection and natural language processing. Nonetheless, most machine learning models are vulnerable towards attacks using adversarial samples. Adversarial samples are data samples that are received by the machine learning model and that have a small perturbation, such as a change of a pixel value, from clean data samples. However, the small perturbation in the adversarial samples causes the machine learning model to generate a wrong result.
Embodiments of the disclosure and their advantages are best understood by referring to the detailed description that follows. It should be appreciated that like reference numerals are used to identify like elements illustrated in one or more of the figures, wherein showings therein are for purposes of illustrating embodiments of the disclosure and not for purposes of limiting the same.
The detailed description set forth below, in connection with the appended drawings, is intended as a description of various configurations and is not intended to represent the only configurations in which the concepts described herein may be practiced. The detailed description includes specific details for the purpose of providing a thorough understanding of the various concepts. However, it will be apparent to those skilled in the art that these concepts may be practiced without these specific details. In some instances, well-known structures and components are shown in block diagram form in order to avoid obscuring such concepts.
The embodiments disclose a neural network, e.g. a honeypot classifier, that is trained to identify adversarial data during an adversarial attack. The neural network is trained using clean data or samples in a dataset and watermarks in a watermark dataset. While the attacker may obtain the data in a clean dataset, the watermarks in the watermark dataset are unknown. Accordingly, when the clean data is modified in an adversarial attack into adversarial samples and is passed through the neural network, the classification label determined by the neural network is tainted or infected with the watermarks.
The embodiments disclose a watermark neural network, e.g. a watermark classifier that identifies a watermark classification label or simply watermark label from a clean or adversarial sample. The watermark label and the classification label may be used to determine whether the sample received by the honeypot classifier is a clean sample or an adversarial sample.
The embodiments disclose a watermark generator neural network for generating watermarks for a watermark data set from latent vectors. The latent vectors may be derived from an unlimited number of non-overlapping gaussian distributions and assigning watermark labels to the watermarks. Because there is an unlimited number of non-overlapping gaussian distributions there can be an unlimited number of possible watermarks.
The embodiments disclose neural network structures for the honeypot classifier neural network, the watermark neural network, and the watermark generator neural network.
Computing device 102 includes a processor 104 and a memory 106. Processor 104 and memory 106 are discussed in further detail in
Adversarial attacks make use of this property of neural network 108 to generate fraudulent results. In neural network 108 that is included in a payment processing application, an example fraudulent result may be an authorization to pay for a purchase that is associated with a stolen credit card or to issue an authorization for a refund because a purchased item was deemed returned. One way to generate a fraudulent result is to generate an adversarial sample that perturbs a clean sample. When clean data is an image, the adversarial sample may be created by perturbing a large number of pixels in the image by a small amount or perturbing a small number of pixels in the image by a large amount. Both perturbations may produce adversarial samples that are outside the training distribution.
In some embodiments, a watermark as honeypot (WAH) module 110 is used to detect out-of-distribution input generated using adversarial attacks. WAH module may be stored in memory 106. WAH module 110 may include a honeypot classifier H 112, a watermark classifier Q 114. In some embodiments, WAH module 110 may also include a separate classifier S 116, and an ensemble module 118. Notably, although shown as being included in a single WAH module 110, these components may also be individually included in different WAH modules 110.
WAH module 110 may prevent or minimize an adversarial attack by adding detectable watermarks to the adversarial samples of data while generating a correct classification result for clean or non-adversarial data. In other words, WAH module 110 may mark adversarial samples with a watermark classifier and then use the watermark classifier to identify the adversarial samples.
As discussed above, WAH module 110 includes a honeypot classifier H 112. Honeypot classifier H 112 may be neural network 108 that is trained with a dataset that includes clean data and a watermark dataset. For example, suppose a training set D has N classes with class labels d1 . . . , dN and a watermark dataset W has a different distribution from dataset D which does not overlap with dataset D. The N classes for watermark dataset W may be w1 . . . , wN. WAH module 110 may generate a combined dataset C that combines datasets D and W, or C=D∪W. In this case, each class label ci contains all the samples from di and wi. The combined dataset C with class labels c may be shown as:
∀x:∀i∈{1, . . . ,N}:{x∈diVx∈wi↔x∈ci}
In some embodiments, the ratio of samples from dataset D and samples from watermark dataset Win class C may be such that dataset D is not diluted by watermark dataset W.
In some embodiments, prior to detecting adversarial samples, honeypot classifier H 112 may be trained using data in dataset C 202. Data in dataset C 202 may include clean or non-adversarial data from dataset D 204 and watermarks in watermark dataset W 206. The class labels for dataset C 202 are known. Training honeypot classifier H 112 constitutes passing data in dataset C 202 through honeypot classifier H 112 while modifying the internal weights of honeypot classifier H 112 and generating class labels c 208. The training continues until honeypot classifier H 112 classifies data in dataset C 202 into class labels c 208 with an error as compared to the known class labels that is below a configurable threshold.
Once honeypot classifier H 112 is trained, honeypot classifier H 112 may misclassify adversarial data in an event of an attack. When neural network 108 trained as honeypot classifier H 112 is installed on computing device 102, an attacker may attack neural network 108 using data that is a perturbed version of data in dataset D 204. This is because data in dataset D 204 is typically known and accessible, but the watermarks in watermark dataset W 206 are stored securely and are not available to the attacker.
For example, supposed dataset D 204 includes an image x. The attacker may choose to perturb or modify image x to image x′ such that the score that is an output of honeypot classifier H 112 for the correct classifier class for image x is decreased or the score for a target class is increased. The attacker may also choose an optimal direction of perturbation to minimize the difference between image x and image x′. However, when honeypot classifier H 112 receives and classifies image x′, the increase or decrease in the score of certain class ci is unavoidably associated with the corresponding class of the watermark wi. Accordingly, the class of the watermark wi may indicate that the sample, e.g. image x′ is an adversarial sample, which indicates an adversarial attack.
Going back to
As illustrated in
Once trained, watermark classifier Q 114 may receive data, which may be data samples in datasets D 204, W 206, or C 202 as input and identify one of watermark labels w 304 that is associated with the input. When watermark classifier Q 114 receives perturbed adversarial samples, e.g. images x′ generated by the attacker, the adversarial samples make a significant change to the soft label (one of watermark labels w 304) of watermark classifier Q 114 as compared to the class label c 208 of the honeypot classifier H 112. The discrepancy in the class labels c 208 and watermark labels w 304 may be used to identify the adversarial data samples.
For example, suppose a conventional Fast Gradient Sign Method (FGSM) attack occurs on neural network 108. The FGSM attack may apply to data samples that are images. In the FGSM attack a small perturbation in the one or more pixels in the image causes a large change in the output of neural network. Suppose an input image used in the FGSM attack may be an image x from a (Modified National Institute of Standards and Technology) MNIST dataset which includes images of numbers in various formats. The FGSM attack may perturb image x into image x′. Suppose when the clean input image x passes through honeypot classifier H 112 and is classified with a class label=3 shown as class label c3. However, when the image x is perturbed using the FGSM attack into image x′ and image x′ passes through the honeypot classifier H 112, the image x′ is classifier with a class label=1, shown as class label c1. When both images x and x′ are fed into the watermark classifier Q 114, the watermark label w has a sharp decrease in the score of class label=3 (c3) and a strong increase in the score of class label=1 (c1).
In an embodiment, the class labels c 208 generated by the honeypot classifier H 112 should not correlate to the watermark labels w 304 generated by watermark classifier Q 114. This is because the watermark classifier Q 114 should only apply to watermarks in watermark dataset W 206 and not to data in dataset D 204. Accordingly, when the class labels c 208 for honeypot classifier H 112 and watermark labels w 304 generated by watermark classifier Q 114 are correlated, the correlation may indicate that an input sample, e.g. image x′ is an adversarial sample.
Going back to
In some embodiments, separate classifier S 116 may be trained using watermark labels w 304 generated from one or more datasets. Example datasets may include a dataset with images made of random noise, a CIFAR-10 dataset, a MNIST dataset and data from the MNIST dataset that was perturbed into adversarial samples. A trained separate classifier S 116 may identify that watermark labels w 304 generated using data from the random noise, CIFAR-10, and MNIST datasets are generated from clean samples because they are classified with a class label 402. The trained separate classifier S 116 may also identify that watermark labels w 304 generated using the adversarial samples that are based on the MNIST dataset are adversarial samples because they are classified with a class label 404.
Going back to
In some embodiments, the WAH module 110 may defend against gradient and non-gradient based attacks. In the gradient-based attacks, adversarial samples (e.g. images x′ are generated using the gradient of a loss function with respect to the input sample (e.g. image x). However, since the honeypot classifier H 112 is trained using the dataset D 204 and watermark dataset W 206, the classifier class ci shares the same loss function and the same gradient as the respective watermark class wi. Thus, when the attacker uses gradient information to increase or decrease a score of a certain class ci, the respective score for the watermark class wi will also change in same direction.
For example, suppose in an untargeted attacked version of the FGSM, the adversarial sample x′ is created using the sign of the gradient function:
x′=x+ϵ·sign(∇xJ(x,ytrue))
where ytrue is both the true label of sample x and the label associated of the associated watermark class. While the attack adds a noise scaled by ϵ to decrease the score of ytrue, the attack also perturbs sample x in the opposite direction of the watermark class of ytrue. When feeding the adversarial sample x′ into the watermark classifier Q 114, the score of class ytrue would also be lower. Thus, the adversarial sample x′ may be identified as adversarial as discussed above.
In another example, suppose in a targeted attack version of the FGSM, the adversarial sample x′ is created using J (x,ytarget) where ytarget is the class ci that the attack wants the adversarial sample x′ to pretend to be. In this case, the adversarial sample x′ may be represented as follows:
x′=x−ϵ·sign(∇xJ(x,ytarget))
The ytarget is also the label of the associated watermark class wi of the target class. While this attack adds a noise scaled by E to increase the score of ytarget, the attack also perturbs sample x in the same direction of the watermark class wi of ytarget. When feeding the adversarial sample x′ into the watermark classifier Q 114, the score of class ytarget would also be higher. Thus, the adversarial sample x′ may be identified as an adversarial sample as discussed above.
In a non-gradient based attack, the generated adversarial sample x′ may successfully increase the score of a target class ci either because the sample possesses features of the data class di or features of the watermark class wi. However, the fitness function may not be able to distinguish between these two scenarios and the selection function may not be able to remove the samples with traits of watermarks. Accordingly, the adversarial samples may be detected by the watermark classifier Q 114.
In some embodiments, the computing device 102 may include a watermark generator 120. Watermark generator 120 may be included on the same or different computing device 102 as WAH module 110. Watermark generator 120 may be stored in a secure memory of computing device 120.
In some embodiments, watermark generator 120 may generate watermarks in watermark dataset W 206. Further, watermark generator 120 may generate watermark datasets Wj from a dataset distribution based on a secret. The secret may be stored separately and securely from WAH module 110. In some embodiments, the secret may be defined as mean vectors of N non-overlapping standard multi-variable gaussian distributions in a space, where N is a positive integer. For each standard multivariate gaussian distribution, there may be a unique class ID from [1, . . . , N].
In some embodiments, watermark generator 120 may randomly draw the vectors from these non-overlapping distributions to generate a watermark dataset W and use the class ID that corresponds to each distribution as the class ID of the corresponding generated watermark dataset W.
During training, watermark generator 120 learns the mapping from the latent vectors z 506 to their class IDs and thus their corresponding soft labels 510. The generator G 502 learns to generate watermarks {circumflex over (x)} 508 that contain enough information to be classified by the classifier F 504 into soft labels 510.
In some embodiments, classifier F 504 may have the same structure as honeypot classifier H 112. This ensures that the watermarks {circumflex over (x)} 508 generated using generator G 502 can be classified by honeypot classifier H 112. Further, because classifier F 504 and honeypot classifier H 112 have the same structure, honeypot classifier H 112 may be initialized using the trained classifier F 504.
Once generator G 502 and honeypot classifier H 112 are trained using the approach in
In some embodiments, layer 702 may receive image 716, which may be sample x or adversarial sample x′. Honeypot classifier H 112 may pass image 716 through convolutional layers 702-710 and fully connected layers 712-714 to generate an output tensor 718. Output tensor 718 may be one of class labels c 208.
As illustrated in
In some embodiments one or more convolution layers 702-710 may use a rectifier linear unit (ReLU) as an activation function. The ReLU may output the input if the input is a positive input and a zero if an input is not a positive input. In a further embodiment the ReLU may be a Leaky ReLU that outputs a small positive gradient (instead of a zero) when the input is not positive.
In some embodiments, batch normalization layers (not shown) may also be inserted between each one of layers 702-710. The batch normalization layers may reduce the covariance coverage shift in the output of each layer 702-710.
In some embodiments, after convolutional layers 702-710 convert image 716 into a feature map, the feature map may be passed through fully connected layers 712-714, which determine output tensor 718. In some embodiments, one or both fully connected layers 712-714 may use a ReLU (or a Leaky ReLU) as an activation function and a Dropout technique. In a Dropout technique, during training honeypot classifier H 112 may ignore the weight of one or more neurons at each fully connected layer 712 or 714.
As discussed above, output tensor 718 corresponds to class labels c 208. In some embodiments, output tensor 718 may correspond to the number of classes in the dataset D 204 and watermark dataset W 206.
Input 802 may be randomly selected from one of non-overlapping standard multivariate gaussian distributions. In some embodiments there may be ten non-overlapping standard multivariate gaussian distributions in this three-dimensional space from which input 802 may be selected. Each of the distributions may correspond to a class of watermarks 304.
In some embodiment, generator G 502 may be a deconvolutional neural network or a decoder that includes five deconvolutional layers 804-812. The output of the deconvolutional layer 812 is an output tensor 814 and is an output of an image that is a watermark. In some embodiments, the image of a watermark may have a resolution that is 64×64×1 for a greyscale watermark and that is 64×64×3 for a color watermark.
In some embodiments, deconvolutional layer 804 may have dimensions that are 1×1×3 (width×height×depth), deconvolutional layer 806 may have dimensions that are 4×4×1024, deconvolutional layer 808 may have dimensions that are 5×5×512, deconvolutional layer 810 may have dimensions that are 16×16×246, and deconvolutional layer 812 may have dimensions that are 32×32×128. Notably, the dimensions of deconvolutional layers 804-812 are exemplary and are used to illustrate the deconvolutional structure of generator G 502. Generator G 502 may also include deconvolutional layers 804-812 with other dimensions.
In some instances, as with honeypot classifier H 112, generator G 502 may use a ReLU layer as an activation function for one or more deconvolutional layers 804-812. Also, similar to honeypot classifier H 112, batch normalization layers may be inserted between one or more deconvolutional layers 804-812 to reduce the covariate shift.
Layer 902 may receive image 916, which may be a watermark in watermark dataset W 206 or a clean data sample in dataset D 204. Watermark classifier Q 114 may pass image 916 through convolutional layers 902-910 and fully connected layers 912-914 to generate an output tensor 918. Output tensor 918 may be one of watermark labels w 304 for watermarks and may have dimension that is 10×1×1. Notably, the dimensions of fully connected layers 912-914 are exemplary. Watermark classifier Q 114 may also include fully connected layers 912-914 with other dimensions.
As illustrated in
In some embodiments one or more convolution layers 902-910 may use a ReLU or a Leaky ReLU. Also, in some embodiments, batch normalization layers (not shown) may be inserted between each one of layers 902-910. The batch normalization layers may reduce the covariance coverage shift in the output of each layer 902-910.
In some embodiments, after convolutional layers 902-910 convert image 916 into a feature map, the feature map may be passed through fully connected layers 912-914, which determine output tensor 918. In some embodiments, one or both fully connected layers 912-914 may use a ReLU (or a Leaky ReLU) as an activation function and a Dropout technique. As discussed above, output tensor 918 corresponds to watermarks labels w 304.
Layer 1002 may receive input 1006 which may be one of watermark labels w 304. Input 1006 may have a resolution that is 10×1×1. Separate classifier S 116 may pass input 1006 through fully connected layers 1002 and 1004 to generate a binary output 1008. The binary output 1008 may have values that are zero and one, which corresponds to whether the watermark label that separate classifier S 116 classified is a clean data sample (e.g. image x) or an adversarial data sample (e.g. image x′).
Going back to
With reference to
In some embodiments, the accuracy with which WAH module 110 may detect an attack may be improved when honeypot classifier H 112 is linked to multiple class labels c 208 and watermark labels w 304. In this way, multiple watermark labels w 304 may show signs of perturbation caused by the adversarial samples. This may be achieved by binding a watermark class label wi in watermark labels w 304 to a data class label ci in class label c 208. In some embodiments, the binding may be such that watermark class label wi is negatively correlated to data class label ci, but positively correlated to some or all other data class labels in c 208 other than ci. This may be achieved using a loss function that trains honeypot classifier H 112, such that identifying watermark class label wi that is the same class as class label ci adds to the cost, while identifying watermark class label wi as any class other than class label ci reduces the cost.
When honeypot classifier H 112 is trained using the loss function discussed above, an untargeted attack may cause honeypot classifier H 112 to produce a burst of the score in the victim class labelled with class label ci and a decrease of score of some or all other classes that are not labeled ci. During a targeted attack, honeypot classifier H 112 may generate increased scores of every class other than the target class with the class label ci, with a sharp decrease in the score of the target class with class label ci. In this way, the scores in all or most classes may be used to identify a targeted attack instead of only the scores in the targeted class.
Another technique that may increase accuracy when identifying an attack is multiple watermarking.
In some embodiments, watermarks in watermark dataset W 206 may be allocated to a subset of data classes using an error correction code (ECC). The ECC may maximize the difference in signals between different target and victim classes. In this way, the property of the attack, e.g. whether an attack is a targeted or a non-targeted attack, may be detected and a full recovery of the correct class may also be achieved.
Going back to
At operation 1302 a data sample is received. For example, WAH module 110 receives a data sample that may either be a clean sample x from dataset D 204 or an adversarial sample x′. As discussed above, WAH module 110 may include neural network 108 that is trained as honeypot classifier H 112 using data from dataset D 204 and watermarks from watermark dataset W 206.
At operation 1304, a class label is determined. For example, neural network 108 trained as honeypot classifier H 112 may determine class label ci of class labels c 208 of the data sample by passing the data sample received at operation 1302 through honeypot classifier H 112.
At operation 1306, a watermark label is determined. For example, watermark classifier Q 114 may determine watermark label wi of watermark labels w 304 of the data sample by passing the data sample received at operation 1302 through watermark classifier Q 114.
At operation 1308, the data sample received at operation 1302 is determined as an adversarial data sample or a clean data sample based on the class label ci and/or watermark label wi. For example, WAH module 110 may determine that the data sample is an adversarial data sample based on a coupling between the lass label ci and watermark label wi. In another example, the watermark label wi. may be passed through separator classifier S 116 that may identify the data sample associated with the watermark label wi as an adversarial data sample. In yet another example, if honeypot classifier H 112 and watermark classifier Q 114 are part of ensemble module 118 that includes m honeypot classifier H 112 and watermark classifier Q 114 pairs, ensemble module 118 may determine that the data sample is an adversarial data sample by determining an unusually high or low score of the watermark labels wi. that are consistent across multiple watermark classifiers Q 114 as compared to the class labels ci.
At operation 1402, a latent vector is identified. For example, generator G 502 may receive a latent vector z from a non-overlapping distribution gaussian distribution. In some embodiments there may be a preconfigured number of non-overlapping distribution gaussian distributions from which a latent vector z may be generated.
At operation 1404, a watermark a generated. For example, generator G 502 may generate a watermark {circumflex over (x)} from the latent vector z.
At operation 1406, a class identifier is assigned to the watermark {circumflex over (x)}. For example, classifier F 504 may assign a class ID that corresponds to watermark label wi to watermark {circumflex over (x)}. The class ID may correspond to a classification, which may be one of soft labels 510.
At operation 1502, the watermarks are generated. For example, generator G 502 generates a watermark {circumflex over (x)} in watermarks {circumflex over (x)} 508 for watermark dataset W 206. As discussed in
At operation 1504, a honeypot classifier is trained using watermark {circumflex over (x)}. For example, honeypot classifier H 112 receives watermark {circumflex over (x)} and determines a class ID which is class label ci in class labels c 208 for the watermark {circumflex over (x)}.
At operation 1506, a honeypot classifier is trained using a data sample. For example, honeypot classifier H 112 receives a data sample from dataset D 204 and generates a class ID which is class label ci in class labels c 208 for the data sample.
At operation 1508, weights for generator G 502 and honeypot classifier H 112 are adjusted. For example, weights in one or more deconvolution layers 804-812 in generator G 502 and weights in one or more convolution layers 702-710 and/or fully connected layers 712-714 in honeypot classifier H 112 are adjusted. The weights may be adjusted based on the class label ci that was generated for the watermark {circumflex over (x)} in operation 1304 and on the class label ci that was generated for the data sample from dataset D 204 in operation 1306.
Various components that are accessible to network 1602 may be computing device(s) 1604, service provider server(s) 1606, and payment provider server(s) 1608. Computing devices 1604 may be portable and non-portable electronic devices under the control of a user and configured to transmit, receive, and manipulate data from service provider server(s) 1606 and payment provider server(s) 1608 over network 1602. Example computing devices 1604 include desktop computers, laptop computers, tablets, smartphones, wearable computing devices, eyeglasses that incorporate computing devices, implantable computing devices, etc.
Computing devices 1604 may include one or more applications 1610. Applications 1610 may be pre-installed on the computing devices 1604, installed on the computing devices 1604 using portable memory storage devices, such as compact disks or thumb-drives, or be downloaded to the computing devices 1604 from service provider server(s) 1606 and/or payment provider server(s) 1608. Applications 1610 may execute on computing devices 1604 and receive instructions and data from a user, from service provider server(s) 1606, and payment provider server(s) 1608.
Example applications 1610 may be payment transaction applications. Payment transaction applications may be configured to transfer money world-wide, receive payments for goods and services, manage money spending, etc. Further, applications 1610 may be under an ownership or control of a payment service provider, such as PAYPAL®, Inc. of San Jose, Calif., USA, a telephonic service provider, a social networking service provider, and/or other service providers. Applications 1610 may also be analytics applications. Analytics applications perform business logic, provide services, and measure and improve performance of services and functions of other applications that execute on computing devices 1604 based on current and historical data. Applications 1610 may also be security applications for implementing client-side security features, programmatic client applications for interfacing with appropriate application programming interfaces (APIs) over network 1602, communication applications, such as email, texting, voice, and instant messaging applications that allow a user to send and receive emails, calls, texts, and other notifications through network 1602, and the like. Applications 1610 may be location detection applications, such as a mapping, compass, and/or global positioning system (GPS) applications, social networking applications and/or merchant applications. Additionally, applications 1610 may be service applications that permit a user of computing device 1604 to receive, request and/or view information for products and/or services, and also permit the user to purchase the selected products and/or services.
In an embodiment, applications 1610 may utilize numerous components included in computing device 1604 to receive input, store and display data, and communicate with network 1602. Example components are discussed in detail in
As discussed above, one or more service provider servers 1606 may be connected to network 1602. Service provider server 1606 may also be maintained by a service provider, such as PAYPAL®, a telephonic service provider, social networking service, and/or other service providers. Service provider server 1606 may be software that executes on a computing device configured for large scale processing and that provides functionality to other computer programs, such as applications 1610 and applications 1612 discussed below.
In an embodiment, service provider server 1606 may initiate and direct execution of applications 1612. Applications 1612 may be counterparts to applications 1610 executing on computing devices 1604 and may process transactions at the requests of applications 1610. For example, applications 1612 may be financial services applications configured to transfer money world-wide, receive payments for goods and services, manage money spending, etc., that receive message from the financial services applications executing on computing device 1604. Applications 1612 may be security applications configured to implement client-side security features or programmatic client applications for interfacing with appropriate application programming interfaces (APIs) over network 1602. Applications 1612 may be communication applications that perform email, texting, voice, and instant messaging functions that allow a user to send and receive emails, calls, texts, and other notifications over network 1602. In yet another embodiment, applications 1612 may be location detection applications, such as a mapping, compass, and/or GPS applications. In yet another embodiment, applications 1612 may also be incorporated into social networking applications and/or merchant applications.
In an embodiment, applications 1610 and applications 1612 may process transactions on behalf of a user. In some embodiments, to process transactions, applications 1610, 1612 may request payments for processing the transactions via payment provider server(s) 1608. For instance, payment provider server 1608 may be a software application that is configured to receive requests from applications 1610, 1612 that cause the payment provider server 1608 to transfer funds of a user using application 1610 to service provider associated with application 1612. Thus, applications 1610 and 1612 may receive user data, including user authentication data, for processing any number of electronic transactions, such as through payment provider server 1608.
In an embodiment, payment provider servers 1608 may be maintained by a payment provider, such as PAYPAL®. Other payment provider servers 1608 may be maintained by or include a merchant, financial services provider, credit card provider, bank, and/or other payment provider, which may provide user account services and/or payment services to a user. Although payment provider servers 1608 are described as separate from service provider server 1606, it is understood that one or more of payment provider servers 1608 may include services offered by service provider server 1606 and vice versa.
Each payment provider server 1608 may include a transaction processing system 1614. Transaction processing system 1614 may correspond to processes, procedures, and/or applications executable by a hardware processor. In an embodiment, transaction processing system 1614 may be configured to receive information from one or more applications 1610 executing on computing devices 1404 and/or applications 1612 executing on service provider server 1606 for processing and completion of financial transactions. Financial transactions may include financial information corresponding to user debit/credit card information, checking account information, a user account (e.g., payment account with a payment provider server 1608), or other payment information. Transaction processing system 1614 may complete the financial transaction for the purchase request by providing payment to application 1612 executing on service provider server 1606.
Payment provider server 1608 may also include user accounts 1416. Each user account 1616 may be established by one or more users using applications 1410 with payment provider server 1608 to facilitate payment for goods and/or services offered by applications 1612. User accounts 1616 may include user information, such as name, address, birthdate, payment/funding information, travel information, additional user financial information, and/or other desired user data. In a further embodiment, user accounts 1616 may be stored in a database or another memory storage described in detail in
In some embodiments, WAH module 110 discussed in
Referring now to
In accordance with various embodiments of the disclosure, computer system 1700, such as a computer and/or a server, includes a bus 1702 or other communication mechanism for communicating information, which interconnects subsystems and components, such as a processing component 1704 (e.g., processor, micro-controller, digital signal processor (DSP), graphics processing unit (GPU), etc.), a system memory component 1706 (e.g., RAM), a static storage component 1708 (e.g., ROM), a disk drive component 1710 (e.g., magnetic or optical), a network interface component 1712 (e.g., modem or Ethernet card), a display component 1714 (e.g., CRT or LCD), an input component 1718 (e.g., keyboard, keypad, or virtual keyboard), a cursor control component 1720 (e.g., mouse, pointer, or trackball), a location determination component 1722 (e.g., a Global Positioning System (GPS) device as illustrated, a cell tower triangulation device, and/or a variety of other location determination devices known in the art), and/or a camera component 1723. In one implementation, the disk drive component 1710 may comprise a database having one or more disk drive components.
In accordance with embodiments of the disclosure, the computer system 1700 performs specific operations by the processor 1704 executing one or more sequences of instructions contained in the memory component 1706, such as described herein with respect to the mobile communications devices, mobile devices, and/or servers. Such instructions may be read into the system memory component 1706 from another computer readable medium, such as the static storage component 1708 or the disk drive component 1710. In other embodiments, hard-wired circuitry may be used in place of or in combination with software instructions to implement the disclosure.
Logic may be encoded in a computer readable medium, which may refer to any medium that participates in providing instructions to the processor 1704 for execution. Such a medium may take many forms, including but not limited to, non-volatile media, volatile media, and transmission media. In one embodiment, the computer readable medium is non-transitory. In various implementations, non-volatile media includes optical or magnetic disks, such as the disk drive component 1710, volatile media includes dynamic memory, such as the system memory component 1706, and transmission media includes coaxial cables, copper wire, and fiber optics, including wires that comprise the bus 1702. In one example, transmission media may take the form of acoustic or light waves, such as those generated during radio wave and infrared data communications.
Some common forms of computer readable media includes, for example, floppy disk, flexible disk, hard disk, magnetic tape, any other magnetic medium, CD-ROM, any other optical medium, punch cards, paper tape, any other physical medium with patterns of holes, RAM, PROM, EPROM, FLASH-EPROM, any other memory chip or cartridge, carrier wave, or any other medium from which a computer is adapted to read. In one embodiment, the computer readable media is non-transitory.
In various embodiments of the disclosure, execution of instruction sequences to practice the disclosure may be performed by the computer system 1700. In various other embodiments of the disclosure, a plurality of the computer systems 1700 coupled by a communication link 1724 to the network 1402 (e.g., such as a LAN, WLAN, PTSN, and/or various other wired or wireless networks, including telecommunications, mobile, and cellular phone networks) may perform instruction sequences to practice the disclosure in coordination with one another.
The computer system 1700 may transmit and receive messages, data, information and instructions, including one or more programs (i.e., application code) through the communication link 1724 and the network interface component 1712. The network interface component 1712 may include an antenna, either separate or integrated, to enable transmission and reception via the communication link 1724. Received program code may be executed by processor 1704 as received and/or stored in disk drive component 1710 or some other non-volatile storage component for execution.
Where applicable, various embodiments provided by the disclosure may be implemented using hardware, software, or combinations of hardware and software. Also, where applicable, the various hardware components and/or software components set forth herein may be combined into composite components comprising software, hardware, and/or both without departing from the scope of the disclosure. Where applicable, the various hardware components and/or software components set forth herein may be separated into sub-components comprising software, hardware, or both without departing from the scope of the disclosure. In addition, where applicable, it is contemplated that software components may be implemented as hardware components and vice-versa.
Software, in accordance with the disclosure, such as program code and/or data, may be stored on one or more computer readable mediums. It is also contemplated that software identified herein may be implemented using one or more general purpose or specific purpose computers and/or computer systems, networked and/or otherwise. Where applicable, the ordering of various steps described herein may be changed, combined into composite steps, and/or separated into sub-steps to provide features described herein.
The foregoing disclosure is not intended to limit the disclosure to the precise forms or particular fields of use disclosed. As such, it is contemplated that various alternate embodiments and/or modifications to the disclosure, whether explicitly described or implied herein, are possible in light of the disclosure. Having thus described embodiments of the disclosure, persons of ordinary skill in the art will recognize that changes may be made in form and detail without departing from the scope of the disclosure. Thus, the disclosure is limited only by the claims.
Number | Name | Date | Kind |
---|---|---|---|
20030095683 | Najarian | May 2003 | A1 |
20140142958 | Sharma | May 2014 | A1 |
20150039543 | Athmanathan et al. | Feb 2015 | A1 |
20150102216 | Röder et al. | Apr 2015 | A1 |
20150254555 | Williams, Jr. et al. | Sep 2015 | A1 |
20160036837 | Jain et al. | Feb 2016 | A1 |
20190370440 | Gu | Dec 2019 | A1 |
20200012851 | Stanley | Jan 2020 | A1 |
20200019857 | Wang | Jan 2020 | A1 |
20200134461 | Chai | Apr 2020 | A1 |
20200250304 | Kruus | Aug 2020 | A1 |
20210150312 | Lwowski | May 2021 | A1 |
20210256978 | Jin | Aug 2021 | A1 |
Entry |
---|
Yang, Ziqi, Hung Dang, and Ee-Chien Chang. “Effectiveness of distillation attack and countermeasure on neural network watermarking.” arXiv preprint arXiv:1906.06046 (2019). |
Xingjun Ma et al., “Characterizing adversarial subspaces using local intrinsic dimensionality,” CoRR, abs/1801.02613, dated Mar. 14, 2018, pp. 1-15. |
Weilin Xu et al., “Feature squeezing: Detecting adversarial examples in deep neural networks,” CoRR, abs/1704.01155, dated Dec. 5, 2017, pp. 1-15. |
Dongyu Meng et al., “MagNet: a two-pronged defense against adversarial examples,” CoRR, abs/1705.09064, dated Sep. 11, 2017, pp. 1-13. |
International Search Report and Written Opinion from related Application No. PCT/US2021/033106, dated Sep. 9, 2021, 9 pages. |
Guo et al. “Watermarking deep neural networks for embedded systems.” 2018 IEEE/ACM International Conference on Computer-Aided Design (ICCAD). IEEE, 2018. Nov. 8, 2018, retrieved on Jul. 20, 2021 from <https://ieeexplore.ieee.org/abstract/document/8587745> entire document. |
Number | Date | Country | |
---|---|---|---|
20210374501 A1 | Dec 2021 | US |