Commit graph

464 commits

Author SHA1 Message Date
Michael Reneer
47b439e376 Remove TensorFlow Privacy dependency on six.
Python 2 is not supported, please use Python 3.

PiperOrigin-RevId: 424435761
2022-01-26 13:56:30 -08:00
Michael Reneer
1424cb2418 Rename TensorFlow Privacy Python tests to have the name foo_test.
* Renamed Python test.
* Fixed usage of deprecated `assertRaisesRegexp`.

Python tooling pattern matches on file name, so it is important for tests to end with the suffix "_test" in order to interact with such tooling well.

In this case, these test are getting lint errors they should not and not getting lint errors they should.

PiperOrigin-RevId: 424433864
2022-01-26 13:48:31 -08:00
Michael Reneer
28dbbbb9e5 Remove TensorFlow Privacy Python lint as directive.
This is now the default behavior.

PiperOrigin-RevId: 424403961
2022-01-26 11:47:14 -08:00
Michael Reneer
b309916927 Fix TensorFlow Privacy g-importing-member lint error.
PiperOrigin-RevId: 424356142
2022-01-26 08:40:57 -08:00
Michael Reneer
4b76e882bc Fix lint errors in dp_optimizer_test.
PiperOrigin-RevId: 424183036
2022-01-25 14:36:57 -08:00
Shuang Song
3a4c4400a6 For MIA in seq2seq model, add support for graph mode, add data information and fix small typo in seq2seq_membership_inference_codelab.ipynb.
PiperOrigin-RevId: 422909904
2022-01-19 14:50:48 -08:00
David Marn
f47200f60d Updates the path for seq2seq codelab colab button.
PiperOrigin-RevId: 421607919
2022-01-13 10:53:33 -08:00
Shuang Song
f301595ba5 Fix a bug in keras_evaluation and its example.
PiperOrigin-RevId: 420787967
2022-01-10 09:58:39 -08:00
Galen Andrew
867f3d4c55 Minor bug in tree aggregation accountant test.
PiperOrigin-RevId: 420145652
2022-01-06 14:32:52 -08:00
Galen Andrew
dd1e6f2d0c Automated rollback of commit 668afa892e
PiperOrigin-RevId: 419910568
2022-01-05 14:13:54 -08:00
Galen Andrew
668afa892e Migrate references to dp_event to Google DP libraries.
PiperOrigin-RevId: 419663382
2022-01-04 13:11:10 -08:00
Shuang Song
8d147bc9d7 For MIA plotting, allow customized plotting function and set equal x and y aspects.
PiperOrigin-RevId: 417852309
2021-12-22 11:08:54 -08:00
Steve Chien
c6576f60c4 Ensure that apply_gradients in dp_optimizer.py is using intended arguments for calls to superclass.
PiperOrigin-RevId: 417654563
2021-12-21 11:06:10 -08:00
Steve Chien
347b99d412 Apply fix to apply_gradients method in vectorized DP Keras optimizer that affected gradient aggregation in multi-replica training.
PiperOrigin-RevId: 417506496
2021-12-20 17:10:39 -08:00
A. Unique TensorFlower
31f110698d Fix of the apply_gradients in Keras DP optimizer.
PiperOrigin-RevId: 417503887
2021-12-20 16:52:50 -08:00
David Marn
03014d0e99 Adds an init file to secret sharer.
PiperOrigin-RevId: 416819054
2021-12-16 08:38:46 -08:00
Zheng Xu
38eface1fd zCDP for tree aggregation.
PiperOrigin-RevId: 416338656
2021-12-14 10:33:04 -08:00
Zheng Xu
8850c23f67 Move tree_aggregation accountant to their own module.
PiperOrigin-RevId: 414770173
2021-12-07 10:48:55 -08:00
Zheng Xu
245fd069ca RDP accounting for tree aggregation without restart. This implements the dynamic programming algorithm detailed in the updated version of "Practical and Private (Deep) Learning without Sampling or Shuffling"
https://arxiv.org/abs/2103.00039.

PiperOrigin-RevId: 414583453
2021-12-06 17:38:48 -08:00
A. Unique TensorFlower
49db04e356 Overwrite the get_config method for dp_optimizer to reflect the actual parameters required(noise_multiplier, l2_norm_clip)
PiperOrigin-RevId: 413520270
2021-12-01 15:06:31 -08:00
Wennan Zhu
290ecf7797 Create a hierarchical histogram IterativeProcess that is compatible with tff.backends.mapreduce.MapReduceForm.
PiperOrigin-RevId: 411845363
2021-11-23 10:38:16 -08:00
David Marn
7c4f5bab09 Allows one to run a test on probabilities alone.
PiperOrigin-RevId: 409095932
2021-11-11 02:17:00 -08:00
Zheng Xu
9757e1bc87 Update the tree aggregation RDP accounting for restarts. This prevents the potential inaccurate usage of the previous implementation for no-restarts.
PiperOrigin-RevId: 406878834
2021-11-01 11:39:49 -07:00
A. Unique TensorFlower
c5cb687507 Allow using gradient tape for gradient calculation in graph mode.
PiperOrigin-RevId: 406217961
2021-10-28 14:26:33 -07:00
Steve Chien
c530356ae9 Add tests for varying number of microbatches in dp_optimizer_test.py.
PiperOrigin-RevId: 404072714
2021-10-18 15:09:07 -07:00
Galen Andrew
977647a3bf Add support for subsampled multi-Gaussian queries (composition of several Gaussian queries that may have different noise multipliers). This is used, for example, by QuantileAdaptiveClipSumQuery.
PiperOrigin-RevId: 402693872
2021-10-12 17:13:25 -07:00
Zheng Xu
98df2fed61 Fix a typo in test comment.
PiperOrigin-RevId: 402327052
2021-10-11 10:04:00 -07:00
Zheng Xu
27bb6e48d9 Time based indicator for restart query.
PiperOrigin-RevId: 401871582
2021-10-08 15:40:57 -07:00
Zheng Xu
7426a4ec30 Update tree aggregation rdp accountant to allow different number of max_participation.
PiperOrigin-RevId: 399510813
2021-09-28 13:04:21 -07:00
Zheng Xu
99c82a49d8 Function to reset tree for tree aggregation based quantile estimation.
PiperOrigin-RevId: 399508765
2021-09-28 12:55:52 -07:00
Galen Andrew
b8b4c4b264 Much more detailed documentation for DpEvent.
The as yet unused `TreeAggregationDpEvent` is removed. It will be added as a custom `DpEvent` alongside the DpQueries in tree_aggregation_query.py in the near future.

PiperOrigin-RevId: 398808647
2021-09-24 13:59:42 -07:00
Galen Andrew
39c75f62af DpEventBuilder tracks the order of events, instead of just maintaining a multiset.
Existing approaches to accounting are generally agnostic to the order of composition, even when the composition is adaptive. But in principle it is possible for an accountant to require such information, so we had better not throw it away.

Note that `ComposedDpEvent` is now treated like any other `DpEvent`, not taken apart and the components added separately as it was. The reason for this is that a common pattern may be to compose a series of `ComposedDpEvent`s that have identical substructure. We want the `DpEventBuilder` to represent this as a single `SelfComposedDpEvent`, not a linearly-growing `ComposedDpEvent`.

PiperOrigin-RevId: 398359519
2021-09-22 16:37:46 -07:00
Galen Andrew
67a7096d52 ComposedDpEvent can be a list of any DpEvent, not only SelfComposedDpEvent. For example there is no reason we shouldn't be able to compose a single GaussianDpEvent and a single LaplaceDpEvent without having to wrap them in SelfComposedDpEvent with count == 1.
PiperOrigin-RevId: 398288473
2021-09-22 11:31:01 -07:00
Zheng Xu
c39d628e16 Change PeriodicRoundRestartIndicator to return the first True at a given number of calls. Also update the code style to be more compatible with graph mode and TFF.
PiperOrigin-RevId: 397918733
2021-09-20 22:38:48 -07:00
Galen Andrew
388f46ffa0 Adds RdpAccountant: implementation of PrivacyAccountant for RDP. Also adds UnsupportedEventError for handling unsupported events by PrivacyAccountant.
PiperOrigin-RevId: 397878895
2021-09-20 17:19:51 -07:00
Zheng Xu
b572707cfc Update reset and pre-process functions for tree aggregation queries. Minor comments update for adaptive clip query tests.
PiperOrigin-RevId: 396483111
2021-09-13 17:48:11 -07:00
A. Unique TensorFlower
7f22cbeb89 Add support of large batch emulation to Tensorflow Privacy Keras optimizer.
PiperOrigin-RevId: 395802081
2021-09-09 15:37:54 -07:00
Zheng Xu
a9764e3e7d TFF: cleanup the TFP query usage in tff.analytics; remove dependency on internal TFP structure.
TFP: remove duplicate TreeRangeSumQuery in `tree_aggregation_query`

PiperOrigin-RevId: 395618363
2021-09-08 21:05:53 -07:00
Zheng Xu
c5f35b3ca1 Try to fix flakiness by reducing the number of query construction.
PiperOrigin-RevId: 395552656
2021-09-08 13:59:15 -07:00
Galen Andrew
06eef51369 New version 0.7.3
PiperOrigin-RevId: 395263672
2021-09-07 09:24:02 -07:00
Zheng Xu
a20cbf9578 RDP for tree aggregation. See "Practical and Private (Deep) Learning without Sampling or Shuffling" https://arxiv.org/abs/2103.00039 for more details. See tests for example usage for calculating epsilon.
PiperOrigin-RevId: 394770205
2021-09-03 15:42:46 -07:00
Zheng Xu
e99fb7ea9b Try to fix flaky tree_aggregation_query_test.test_noisy_cumsum_and_state_update.
PiperOrigin-RevId: 394248815
2021-09-01 09:30:01 -07:00
Galen Andrew
7e7736ea91 Add DpEvent to return value of get_noised_result. For most DPQueries, the default UnsupportedDpEvent is returned, pending further development.
PiperOrigin-RevId: 394137614
2021-08-31 19:28:13 -07:00
Zheng Xu
6ac4bc8d01 Define RestartQuery for easy composition to restart tree in tree aggregation queries.
PiperOrigin-RevId: 394106175
2021-08-31 16:07:26 -07:00
Galen Andrew
789a05df63 Add DpEvent to TFP public symbols.
PiperOrigin-RevId: 394010603
2021-08-31 08:41:56 -07:00
Steve Chien
3059fbae67 Fix heterogeneous spellings of "heterogeneous".
PiperOrigin-RevId: 393881235
2021-08-30 16:46:05 -07:00
Mark Daoust
54f1887b10 Use from tensorflow_privacy import v1 so v1 is visible to the api-generator.
PiperOrigin-RevId: 393866702
2021-08-30 15:28:15 -07:00
Zheng Xu
5edea5863c Add STDDEV to the state of random noise generator, which will be used to enable adaptive clipping norm in tree aggregation queries.
PiperOrigin-RevId: 393851743
2021-08-30 14:17:28 -07:00
Galen Andrew
07c248d868 Adds NeighboringRelation to Accountant and clarifies FixedBatchSample events to be with or without replacement.
PiperOrigin-RevId: 393459878
2021-08-27 17:33:40 -07:00
Galen Andrew
48e4836a36 Remove deleted compute_rdp_from_ledger from public symbols.
PiperOrigin-RevId: 393161824
2021-08-26 10:58:52 -07:00
Galen Andrew
d9236d5619 Remove PrivacyLedger which will soon be replaced by DpEvent and PrivacyAccountant.
PiperOrigin-RevId: 393147667
2021-08-26 10:00:15 -07:00
Galen Andrew
0e04e1baeb Adding NonPrivateDpEvent and UnsupportedDpEvent.
PiperOrigin-RevId: 393028308
2021-08-25 19:07:18 -07:00
Galen Andrew
9b48c81b6a Minor cleanup.
PiperOrigin-RevId: 392982022
2021-08-25 14:35:39 -07:00
Galen Andrew
433b66b316 New DpEvent/PrivacyAccountant libraries.
PiperOrigin-RevId: 392977699
2021-08-25 14:16:41 -07:00
Zheng Xu
853b18929d Move TreeRangeSumQuery to its own module. This is the first step, will remove the function in the old module after a TFP release.
PiperOrigin-RevId: 392776774
2021-08-24 16:51:55 -07:00
Galen Andrew
477b5b2899 Remove declaration of dependency on tensorflow.
PiperOrigin-RevId: 392683668
2021-08-24 09:39:25 -07:00
Wennan Zhu
b9e4cf1a20 Automated rollback of commit 0600fa26a2
PiperOrigin-RevId: 392126244
2021-08-20 21:35:49 -07:00
Zheng Xu
ef83391ce6 Use tree aggregation noise for quantile estimation.
PiperOrigin-RevId: 391928297
2021-08-19 23:56:41 -07:00
Michael Reneer
0600fa26a2 Automated rollback of commit d9a7596815
PiperOrigin-RevId: 391885401
2021-08-19 17:57:10 -07:00
A. Unique TensorFlower
d9a7596815 Remove deprecated CentralTreeSumQuery and DistributedTreeSumQuery. They are replaced by TreeRangeSumQuery
PiperOrigin-RevId: 390449215
2021-08-12 13:39:00 -07:00
Zheng Xu
50673fec40 Minor fix for the nondeterministic seed of tree_aggregation.GaussianNoiseGenerator. The previous log results won't change much, while one seed is probably good enough.
PiperOrigin-RevId: 390412713
2021-08-12 11:03:14 -07:00
Zheng Xu
b8c1ba72cd Change default restarter state in tree_aggregation_query to empty tuple as None type is not compatible with TFF.
PiperOrigin-RevId: 390278173
2021-08-11 20:20:49 -07:00
Zheng Xu
b4c04093cf Restart the tree state in tree related DPQuery for streaming data: a general abstract class and an instance of restarting every a few rounds.
PiperOrigin-RevId: 390244330
2021-08-11 16:29:18 -07:00
Galen Andrew
f44dcb8760 Add tensorflow and tensorflow-datasets to setup/requirements.
PiperOrigin-RevId: 390171562
2021-08-11 10:54:46 -07:00
Galen Andrew
c447a1a3c2 Bump version number.
PiperOrigin-RevId: 389959093
2021-08-10 13:08:24 -07:00
Ken Liu
f3af24b00e Adds central discrete Gaussian DPQuery.
PiperOrigin-RevId: 389467360
2021-08-08 03:43:23 -07:00
A. Unique TensorFlower
aa3f841893 In TreeRangeSumQuery.preprocess_record, move the reshaping operation before applying inner_query.preprocess_record. The change is due to the newly checked-in DistributedDiscreteGaussianSumQuery whose preprocess_record requires explicit shape information during tracing.
PiperOrigin-RevId: 389392878
2021-08-07 11:21:32 -07:00
A. Unique TensorFlower
11900acf9b Fixed the previous bug that get_noised_result does not map inner_query's get_noised_result to the input record and updates global_state.
PiperOrigin-RevId: 388153296
2021-08-01 23:13:20 -07:00
A. Unique TensorFlower
2672559471 (1) Merge CentralTreeSumQuery and DistributedTreeSumQuery into one DPQuery to modularize things. The new query takes in an inner_query argument. Depending on the behavior of inner query, the query will follow central DP or distributed DP.
(2) Remove the hard-coded L1 clipping and replace with norm bound checking in the inner query. This design allows us to use whatever clipping factory we want outside the DPQuery.

PiperOrigin-RevId: 387398741
2021-07-28 11:40:15 -07:00
Keith Rush
eef5810d94 Automated rollback of commit 4d335d1b69
PiperOrigin-RevId: 387254617
2021-07-27 20:04:28 -07:00
A. Unique TensorFlower
4d335d1b69 (1) Merge CentralTreeSumQuery and DistributedTreeSumQuery into one DPQuery to modularize things. The new query takes in an inner_query argument. Depending on the behavior of inner query, the query will follow central DP or distributed DP.
(2) Remove the hard-coded L1 clipping and replace with norm bound checking in the inner query. This design allows us to use whatever clipping factory we want outside the DPQuery.

PiperOrigin-RevId: 387236482
2021-07-27 17:42:37 -07:00
Ken Liu
e7e11d14d9 Adds discrete Gaussian (sampler and distributed DPQuery) to public TF Privacy.
PiperOrigin-RevId: 387232449
2021-07-27 17:18:16 -07:00
Steve Chien
2f862eba9b Move TensorFlow v1 imports to their own __init__.py file in a new subdirectory.
PiperOrigin-RevId: 387156295
2021-07-27 11:28:42 -07:00
A. Unique TensorFlower
2cafe28d8d The previous version uses tf.nest.map_structure to apply add_noise to a tf.RaggedTensor. This causes a bug when used in tensorflow federated because tf.nest.map_structure will also map add_noise to the tensor for shape information in tf.RaggedTensor. This causes failure when tff conducts automatic type conversion.
Also use fixed random seed to avoid flaky timeouts and testing failures.

PiperOrigin-RevId: 384573740
2021-07-13 16:14:15 -07:00
Galen Andrew
7f44b02456 Increment version number.
PiperOrigin-RevId: 384507585
2021-07-13 11:14:18 -07:00
A. Unique TensorFlower
caf6f36b80 (1) add CentralTreeSumQuery and DistributedTreeSumQuery to tree_aggregation_query.py. (2) move build_tree_from_leaf to tree_aggregation_query.py together with CentralTreeSumQuery.
PiperOrigin-RevId: 383511025
2021-07-07 15:55:22 -07:00
Kuangyuan Chen
d6aa796684 Automated rollback of commit 4326014a0e
PiperOrigin-RevId: 383505647
2021-07-07 15:26:23 -07:00
Steve Chien
4326014a0e Move TensorFlow v1 imports to their own __init__.py file in a new subdirectory.
PiperOrigin-RevId: 383485268
2021-07-07 13:45:38 -07:00
Steve Chien
beed219d20 Update docstring for DPModel class.
PiperOrigin-RevId: 382855055
2021-07-02 20:04:25 -07:00
Steve Chien
45c935832a Update docstrings for all DP optimizer classes.
PiperOrigin-RevId: 382811363
2021-07-02 14:18:44 -07:00
Zheng Xu
c192a4166b Add a TODO comment for replacing noise saving with seed saving for tree aggregation.
PiperOrigin-RevId: 382338346
2021-06-30 10:46:13 -07:00
Shuang Song
3055f4ad52 Add header and some minor comments to secret sharer colab.
PiperOrigin-RevId: 382225535
2021-06-29 21:26:29 -07:00
A. Unique TensorFlower
2396098b94 Add build_tree function which takes in a histogram and builds a tree on top of it. The function will be used in CentralTreeSumQuery and DistributedTreeSumQuery in a following CL.
For more details about `CentralTreeSumQuery` and `DistributedTreeSumQuery`, please refer to the implementation design section in the following design doc: https://docs.google.com/document/d/14LL94yZx3MdorCEOE0QZNhyIx7P_3voyrl4Nlt2HF7k/edit?resourcekey=0-X3xeTk6w-fkYFezl5fxmCQ#

PiperOrigin-RevId: 382199971
2021-06-29 17:31:21 -07:00
Steve Chien
34249f464b Update version to 0.6.1 to prepare for new release.
PiperOrigin-RevId: 382196622
2021-06-29 17:08:44 -07:00
Shuang Song
b92aeaedee Add init file for privacy_tests.
PiperOrigin-RevId: 382195968
2021-06-29 17:04:54 -07:00
Shuang Song
0caa10f674 Internal change.
PiperOrigin-RevId: 382171367
2021-06-29 14:54:27 -07:00
A. Unique TensorFlower
392c506c62 Implementation of Differentially Private Logistic Regression.
PiperOrigin-RevId: 381904153
2021-06-28 11:08:44 -07:00
Galen Andrew
af87581387 Remove test where nested record and query mismatch on type because a change to tree made it fail.
PiperOrigin-RevId: 380883991
2021-06-22 13:46:03 -07:00
Galen Andrew
5f07198b66 Improving docstrings for DPQueries.
PiperOrigin-RevId: 378956777
2021-06-11 15:00:03 -07:00
A. Unique TensorFlower
4b09172c31 Merge pull request #167 from luckyos-code:fix_max_auc_summary
PiperOrigin-RevId: 378632912
2021-06-10 05:59:37 -07:00
Lucas Lange
042a33a008
fix max_auc for summary without slices
Before: shows the AUC of the result with the max attacker advantage
Expected and fixed: shows the AUC of the result with max AUC
2021-06-10 11:09:53 +02:00
Vadym Doroshenko
c12a7acd9d Moving membership_inference_attack to privacy_tests/membership_inference_attack
PiperOrigin-RevId: 377860420
2021-06-07 01:11:54 -07:00
Steve Chien
eaf9fbf969 Changes for API docstrings for TF.org:
(1) Hide documentation for superclass methods in DPModel.
(2) Make compute_dp_sgd_privacy visible.

PiperOrigin-RevId: 377553548
2021-06-04 11:31:21 -07:00
A. Unique TensorFlower
385fefc85e Merge pull request #158 from jeremy43:improved_gaussian_subsample
PiperOrigin-RevId: 377344012
2021-06-03 12:13:28 -07:00
Galen Andrew
6b19862529 Bump version number.
PiperOrigin-RevId: 377136883
2021-06-02 13:52:00 -07:00
Zheng Xu
944dcd0e17 Implement the tree aggregation query in TFP.
The core `tree_aggregation` algorithm is from https://github.com/google-research/federated/tree/master/dp_ftrl.

The tree_aggregation_query is partially developed by Monica Ribero Diaz when she was a student researcher at Google.

PiperOrigin-RevId: 376953302
2021-06-01 17:27:02 -07:00
A. Unique TensorFlower
a03374be6c Fix Keras DP optimizer when num_microbatches == None.
Optimizer should not save TF tensors into class members, otherwise code may not work in some cases with tf.function.

PiperOrigin-RevId: 374976737
2021-05-20 16:46:57 -07:00
Galen Andrew
e5848656ed Remove GaussianAverageQuery. Users can simply wrap GaussianSumQuery with a NormalizedQuery.
PiperOrigin-RevId: 374784618
2021-05-19 20:20:00 -07:00
Galen Andrew
1de7e4dde4 Remove QuantileAdaptiveClipAverageQuery. Users can simply wrap QuantileAdaptiveClipSumQuery with a NormalizedQuery.
PiperOrigin-RevId: 374770867
2021-05-19 18:10:51 -07:00
Yuqing
9d13376707 resolve space issues 2021-05-11 00:19:52 -07:00
Yuqing
09270afed6 Resolve comments and add more tests 2021-05-07 00:16:59 -07:00
David Marn
eb5c99d484 Internal change.
PiperOrigin-RevId: 372339098
2021-05-06 07:30:29 -07:00
Mark Daoust
bd69c70965 Add a skeleton g3doc directory.
Move notebook files to g3doc.
  - Some style and code fixes for notebooks.
Add api-reference generation script.

PiperOrigin-RevId: 372233296
2021-05-05 16:41:40 -07:00
Steve Chien
755ed26671 Update keras optimizers (both traditional and vectorized) to handle case of num_microbatches=None.
PiperOrigin-RevId: 369497296
2021-04-20 12:35:23 -07:00
Steve Chien
41530f4426 More docstring updates in preparation for api docs generation.
PiperOrigin-RevId: 368667796
2021-04-15 10:31:04 -07:00
David Marn
ca347b8995 Trained attackers no longer fail when labels are missing.
PiperOrigin-RevId: 368598111
2021-04-15 02:18:55 -07:00
Steve Chien
edd9c44269 Add __init__.py files for estimators.
PiperOrigin-RevId: 368148645
2021-04-12 22:17:08 -07:00
Steve Chien
685ef25e00 Expand __init__.py and update version to 0.5.2 in preparation for new pip release.
PiperOrigin-RevId: 367727715
2021-04-09 16:49:12 -07:00
Steve Chien
53ddbf81a0 Add explicit package names to class __doc__ strings in optimizers directory.
PiperOrigin-RevId: 367516282
2021-04-08 15:11:38 -07:00
Steve Chien
3c64cce796 Update per-class descriptions for DP Keras Model classes.
PiperOrigin-RevId: 367515250
2021-04-08 15:06:39 -07:00
Steve Chien
121982deb1 Add explicit package names to class __doc__ strings for DNNClassifier classes.
PiperOrigin-RevId: 367512322
2021-04-08 14:52:20 -07:00
Steve Chien
c53a96184b Internal change.
PiperOrigin-RevId: 367484243
2021-04-08 12:32:21 -07:00
Steve Chien
c8b1c97b47 Small updates in preparation for auto-generating documentation.
PiperOrigin-RevId: 367073829
2021-04-06 13:29:41 -07:00
Yilei Yang
693dd666c3 Remove no-op pylint disable comments.
PiperOrigin-RevId: 364330068
2021-03-22 09:04:33 -07:00
Yuqing
736520b0eb remove unnecessary files 2021-03-12 14:00:53 -08:00
Yuqing
c0d3431eb2 add rdp for subsample without replacement 2021-03-12 13:56:52 -08:00
A. Unique TensorFlower
5524409cbd Merge pull request #143 from jagielski:master
PiperOrigin-RevId: 358924580
2021-02-22 16:01:24 -08:00
David Marn
85bdb9f819 Adds instructions on installing the latest version and links to blog posts.
PiperOrigin-RevId: 356221955
2021-02-08 02:39:41 -08:00
Steve Chien
1860ee1c27 Tests for dp_keras_model.py.
PiperOrigin-RevId: 353698907
2021-01-25 12:02:04 -08:00
Matthew Jagielski
e468af41dd address schien comments 2021-01-19 13:16:55 -05:00
A. Unique TensorFlower
aed49d0087 Merge pull request #147 from TheSalon:master
PiperOrigin-RevId: 351680116
2021-01-13 15:42:04 -08:00
pranav subramani
78ec3fa58a update dp keras model 2021-01-08 00:24:52 -07:00
pranav subramani
13b3a04a3e update keras model 2021-01-08 00:23:32 -07:00
pranav subramani
6982e027b5 update dp keras model 2021-01-08 00:22:44 -07:00
David Marn
3011855967 Moves advanced usage to the main README.
PiperOrigin-RevId: 350544144
2021-01-07 06:02:37 -08:00
Nicholas Vadivelu
7dad2d18e8 Update privacy/keras_models. 2021-01-05 17:42:10 -05:00
pranav subramani
7a00a1cfef adding keras vectorized model initial commit 2021-01-05 13:13:00 -07:00
pranav subramani
574718706d creating keras models directory 2021-01-04 19:32:53 -07:00
A. Unique TensorFlower
be8175bfac Improved conversion from Renyi DP to approx DP
PiperOrigin-RevId: 349557544
2020-12-30 07:43:07 -08:00
Shuang Song
8d53d8cc59 Write to Tensorboard in Keras under TF2.
PiperOrigin-RevId: 349446504
2020-12-29 11:18:09 -08:00
Shuang Song
c8a26ce7be Add number of examples in the attack result.
PiperOrigin-RevId: 348812773
2020-12-23 10:14:36 -08:00
Steve Chien
6460c3feb8 Vectorized version of DP Keras optimizers.
PiperOrigin-RevId: 348551659
2020-12-21 17:06:51 -08:00
Galen Andrew
e4f9794542 Fix numerical instability in computing A(alpha) for very large integer alpha.
Tested that new implementation agrees with existing implementation on all small integers but also scales to 10^6.

PiperOrigin-RevId: 348492489
2020-12-21 10:52:12 -08:00
David Marn
276d2d74d5 Moves the example, along with the relevant part of the README file, to the codelabs subdir.
PiperOrigin-RevId: 348477215
2020-12-21 09:15:01 -08:00
A. Unique TensorFlower
a3b64fd8f5 Merge pull request #146 from lwsong:master
PiperOrigin-RevId: 348448249
2020-12-21 04:36:33 -08:00
Yurii Sushko
2c810440d9 Introduce concept of "membership scores".
PiperOrigin-RevId: 348443155
2020-12-21 03:42:55 -08:00
Liwei Song
29c66c5220 update codelab file 2020-12-17 16:17:20 -05:00
Liwei Song
abd8912e6c change risk score to membership probability 2020-12-17 15:55:46 -05:00
Liwei Song
b1993344cf update risk score analysis 2020-12-17 15:18:02 -05:00
Liwei Song
fd0ae811a6 update privacy risk score codelab 2020-12-16 16:56:01 -05:00
Liwei Song
b7f7fe07e7 update privacy risk score codelab 2020-12-16 16:50:45 -05:00
Liwei Song
59bccb3a82 update privacy risk score code 2020-12-16 16:01:29 -05:00
Liwei Song
a4d108f270 update code 2020-12-16 15:47:15 -05:00
Liwei Song
bcee3f7a09 update code 2020-12-14 15:08:04 -05:00
Liwei Song
2312192573 update test code 2020-12-14 15:02:56 -05:00
Liwei Song
d99a880422
Merge branch 'master' into master 2020-12-14 14:54:22 -05:00
Liwei Song
3f40b8c465 update attack code 2020-12-14 14:49:30 -05:00
Liwei Song
b5b18de284 Merge branch 'master' of https://github.com/lwsong/privacy 2020-12-10 18:45:42 -05:00
Liwei Song
d6d70f6211 update data_structures_test 2020-12-10 18:44:52 -05:00
Liwei Song
60f63408e9
Update privacy_risk_score_codelab.ipynb 2020-12-10 18:33:35 -05:00
Liwei Song
d0d2108ad8 update codelab file for privacy risk score 2020-12-10 18:30:19 -05:00
Liwei Song
13d1676a00 edit the summary string for privacy risk scores 2020-12-10 18:20:32 -05:00
Liwei Song
097a98dcd4 edit the summary string for privacy risk scores 2020-12-10 18:14:39 -05:00
Liwei Song
b5dd6bee71 edit the summary string for privacy risk scores 2020-12-10 18:06:08 -05:00
Liwei Song
e72ff861a1 create a summary string for privacy risk scores 2020-12-10 17:54:50 -05:00
Liwei Song
d1dcf56c44 add comments to privacy risk scores 2020-12-10 10:37:52 -05:00
A. Unique TensorFlower
b208d9deec Merge pull request #144 from amad-person:refactor-seq2seq
PiperOrigin-RevId: 346307900
2020-12-08 06:12:00 -08:00
David Marn
fcac288849 Bugfix for the case where epoch_num is 0 with an accompanying test.
PiperOrigin-RevId: 346072261
2020-12-07 05:36:42 -08:00
Liwei Song
bf65f55382 add test cases for privacy risk score 2020-12-02 21:00:44 -05:00
Liwei Song
d80df35e85 codelab for privacy risk score 2020-12-02 19:23:05 -05:00
Liwei Song
21a891c569 add privacy risk score 2020-12-02 18:57:35 -05:00
Shuang Song
e7c21abb09 Add a figure in README for membership inference attack.
PiperOrigin-RevId: 345249792
2020-12-02 09:37:43 -08:00
amad-person
31c747cdd8 Use hard-coded attack input for the metadata calculation test 2020-12-02 21:17:45 +08:00
amad-person
6c7d607e65 Move initialization for privacy_report_metadata to args 2020-11-27 18:03:18 +08:00
amad-person
981d5a95f5 Return loss, accuracy instead of updating args 2020-11-27 11:59:06 +08:00
amad-person
eb215072bc Compute and populate PrivacyReportMetadata fields 2020-11-25 16:06:37 +08:00
Vadym Doroshenko
15515cb0f4 Fix for threshold attacks when logits are not provided.
Don't try to compute number of classes when it's not needed.

PiperOrigin-RevId: 344060285
2020-11-24 08:06:11 -08:00
amad-person
46bee91cda Refactor seq2seq logic and tests into separate files 2020-11-24 14:52:12 +08:00
Matthew Jagielski
3bf78f46fe add helper for computing noise_multiplier from epsilon 2020-11-19 21:22:02 -05:00
A. Unique TensorFlower
35a8096173 Merge pull request #137 from amad-person:add_seq2seq_mia_attacks
PiperOrigin-RevId: 343047622
2020-11-18 03:26:24 -08:00
amad-person
b25808cfbe Remove call to _get_slicing_spec in run_seq2seq_attack 2020-11-14 02:13:11 +08:00
Aadyaa Maddi
641c4dd98c
Add comment to explain support for LR 2020-11-13 12:20:30 +08:00
David Marn
caf71c11bc Bugfix for logits_or_probs with an accompanying test.
PiperOrigin-RevId: 341604420
2020-11-10 06:08:21 -08:00
amad-person
bfc5ef333a Fix type annotation 2020-11-08 22:02:26 +08:00
amad-person
afe3944b1d Fix nits 2020-11-08 21:59:05 +08:00
amad-person
ed2bdcadfa Add codelab for membership inference on seq2seq models 2020-11-06 16:53:29 +08:00
amad-person
16c36e4819 Add tests for membership inference attacks on seq2seq models 2020-11-06 16:49:54 +08:00
amad-person
2355e13f44 Add tests for rank generation 2020-11-06 16:48:44 +08:00
amad-person
4db54d9485 Add tests for Seq2SeqAttackInputData 2020-11-06 16:46:57 +08:00
amad-person
d1c1746cdb Add membership inference attack for seq2seq models 2020-11-06 16:44:52 +08:00
amad-person
cd57910e5c Add rank generation code 2020-11-06 16:43:46 +08:00
amad-person
9f07f2a871 Add Seq2SeqAttackInputData data structure 2020-11-06 16:42:31 +08:00
A. Unique TensorFlower
67f7f35383 Merge pull request #131 from lwsong:master
PiperOrigin-RevId: 339012372
2020-10-26 04:24:55 -07:00
Liwei Song
6e929da966 add test case for entropy attack 2020-10-23 09:30:09 -04:00
Liwei Song
893b615d72 use logical AND 2020-10-23 08:58:49 -04:00
Liwei Song
0fa87d200c update slicing test 2020-10-21 17:07:53 -04:00
Liwei Song
a41d6aace7 add threshold-entropy attack 2020-10-21 16:41:20 -04:00
David Marn
1981ebe2f2 Adds the TF Privacy Report codelab.
PiperOrigin-RevId: 338222024
2020-10-21 01:52:53 -07:00
Vadym Doroshenko
4143957701 Fixed train/test_size calculation.
PiperOrigin-RevId: 337886488
2020-10-19 10:38:11 -07:00
Yurii Sushko
19ae5c9669 Fix broken codelab link
PiperOrigin-RevId: 337095513
2020-10-14 08:28:17 -07:00
David Marn
d1a8a6cfda Multiple small changes to the TF Privacy Report:
- Fix the legend to the bottom right
     - Manually set the size of the plot figure.
     - Fix a typo in the subplot title.

PiperOrigin-RevId: 337064528
2020-10-14 04:41:35 -07:00
David Marn
1281d0c63e Adds an option to balance train and test AttackInputData and stratifies the train-test split.
PiperOrigin-RevId: 336609893
2020-10-12 00:43:16 -07:00
Steve Chien
d703168de2 Add TF1-compatible version of DP canned estimators, and some small cleanup..
PiperOrigin-RevId: 335954269
2020-10-07 14:31:53 -07:00
David Marn
703cd413c6 Introduces an AttackResultsCollection class for the ML Privacy report.
PiperOrigin-RevId: 335858822
2020-10-07 06:59:26 -07:00
Peter Kairouz
e19c53a78c Add a function to compute RDP under heterogeneous applications of the subsampled Gaussian mechanism.
PiperOrigin-RevId: 335706732
2020-10-06 13:20:34 -07:00
David Marn
ab1090717c Internal change.
PiperOrigin-RevId: 335385162
2020-10-05 03:54:20 -07:00
Vadym Doroshenko
9a56402c0d Removing leftovers from the old API.
PiperOrigin-RevId: 334792006
2020-10-01 05:13:33 -07:00
A. Unique TensorFlower
a579cc4afc BUILD cleanups
PiperOrigin-RevId: 334666492
2020-09-30 13:27:37 -07:00
Shuang Song
20d0b884ba Move to new API.
PiperOrigin-RevId: 334434385
2020-09-29 12:16:06 -07:00
Shuang Song
bca2baae8d Remove old API.
PiperOrigin-RevId: 334406920
2020-09-29 10:19:37 -07:00