Nicholas Carlini
a41549d103
Prettier README
2021-12-14 00:54:29 +00:00
Nicholas Carlini
7e40ad9704
Add code to reproduce Membership Inference Attacks From First Principles
2021-12-14 00:50:49 +00: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
Steve Chien
0d05f2eb18
Fix link to API documentation in guide page.
...
PiperOrigin-RevId: 396006636
2021-09-10 14:22:08 -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
A. Unique TensorFlower
b7249e6ab2
Update narrative content.
...
PiperOrigin-RevId: 394558889
2021-09-02 15:38:13 -07:00
A. Unique TensorFlower
fc7504efca
Slight language adjustments
...
PiperOrigin-RevId: 394363646
2021-09-01 19:00:53 -07:00
Anirudh Sriram
bb5ca9277b
TF Privacy launch cleanup
...
PiperOrigin-RevId: 394262183
2021-09-01 10:29:34 -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
Mark Daoust
ce9e002529
Remove --gen_report flag.
...
This will be the default behavior.
PiperOrigin-RevId: 392643474
2021-08-24 05:57:46 -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