Class ThresholdSecureAggregation<T>
- Namespace
- AiDotNet.FederatedLearning.Privacy
- Assembly
- AiDotNet.dll
Implements dropout-resilient secure aggregation for structured (layered) model updates.
public sealed class ThresholdSecureAggregation<T> : FederatedLearningComponentBase<T>, IDisposable
Type Parameters
TThe numeric type for model parameters (e.g., double, float).
- Inheritance
-
ThresholdSecureAggregation<T>
- Implements
- Inherited Members
Remarks
For Beginners: Some models expose parameters as a dictionary of named arrays (for example, one array per layer). This wrapper adapts that representation to the vector-based secure aggregation core.
Constructors
ThresholdSecureAggregation(int, int?)
public ThresholdSecureAggregation(int parameterCount, int? randomSeed = null)
Parameters
Properties
MinimumUploaderCount
public int MinimumUploaderCount { get; }
Property Value
ReconstructionThreshold
public int ReconstructionThreshold { get; }
Property Value
Methods
AggregateSecurely(Dictionary<int, Dictionary<string, T[]>>, Dictionary<int, double>)
public Dictionary<string, T[]> AggregateSecurely(Dictionary<int, Dictionary<string, T[]>> maskedUpdates, Dictionary<int, double> clientWeights)
Parameters
maskedUpdatesDictionary<int, Dictionary<string, T[]>>clientWeightsDictionary<int, double>
Returns
- Dictionary<string, T[]>
AggregateSecurely(Dictionary<int, Dictionary<string, T[]>>, Dictionary<int, double>, IReadOnlyCollection<int>?)
public Dictionary<string, T[]> AggregateSecurely(Dictionary<int, Dictionary<string, T[]>> maskedUpdates, Dictionary<int, double> clientWeights, IReadOnlyCollection<int>? unmaskingClientIds)
Parameters
maskedUpdatesDictionary<int, Dictionary<string, T[]>>clientWeightsDictionary<int, double>unmaskingClientIdsIReadOnlyCollection<int>
Returns
- Dictionary<string, T[]>
AggregateSumSecurely(Dictionary<int, Dictionary<string, T[]>>)
public Dictionary<string, T[]> AggregateSumSecurely(Dictionary<int, Dictionary<string, T[]>> maskedUpdates)
Parameters
maskedUpdatesDictionary<int, Dictionary<string, T[]>>
Returns
- Dictionary<string, T[]>
AggregateSumSecurely(Dictionary<int, Dictionary<string, T[]>>, IReadOnlyCollection<int>?)
public Dictionary<string, T[]> AggregateSumSecurely(Dictionary<int, Dictionary<string, T[]>> maskedUpdates, IReadOnlyCollection<int>? unmaskingClientIds)
Parameters
maskedUpdatesDictionary<int, Dictionary<string, T[]>>unmaskingClientIdsIReadOnlyCollection<int>
Returns
- Dictionary<string, T[]>
ClearSecrets()
public void ClearSecrets()
Dispose()
Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
public void Dispose()
InitializeRound(List<int>, int, int, double)
public void InitializeRound(List<int> clientIds, int minimumUploaderCount = 0, int reconstructionThreshold = 0, double maxDropoutFraction = 0.2)
Parameters
MaskUpdate(int, Dictionary<string, T[]>)
public Dictionary<string, T[]> MaskUpdate(int clientId, Dictionary<string, T[]> clientUpdate)
Parameters
clientIdintclientUpdateDictionary<string, T[]>
Returns
- Dictionary<string, T[]>
MaskUpdate(int, Dictionary<string, T[]>, double)
public Dictionary<string, T[]> MaskUpdate(int clientId, Dictionary<string, T[]> clientUpdate, double clientWeight)
Parameters
clientIdintclientUpdateDictionary<string, T[]>clientWeightdouble
Returns
- Dictionary<string, T[]>