Table of Contents

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

T

The 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

parameterCount int
randomSeed int?

Properties

MinimumUploaderCount

public int MinimumUploaderCount { get; }

Property Value

int

ReconstructionThreshold

public int ReconstructionThreshold { get; }

Property Value

int

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

maskedUpdates Dictionary<int, Dictionary<string, T[]>>
clientWeights Dictionary<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

maskedUpdates Dictionary<int, Dictionary<string, T[]>>
clientWeights Dictionary<int, double>
unmaskingClientIds IReadOnlyCollection<int>

Returns

Dictionary<string, T[]>

AggregateSumSecurely(Dictionary<int, Dictionary<string, T[]>>)

public Dictionary<string, T[]> AggregateSumSecurely(Dictionary<int, Dictionary<string, T[]>> maskedUpdates)

Parameters

maskedUpdates Dictionary<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

maskedUpdates Dictionary<int, Dictionary<string, T[]>>
unmaskingClientIds IReadOnlyCollection<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

clientIds List<int>
minimumUploaderCount int
reconstructionThreshold int
maxDropoutFraction double

MaskUpdate(int, Dictionary<string, T[]>)

public Dictionary<string, T[]> MaskUpdate(int clientId, Dictionary<string, T[]> clientUpdate)

Parameters

clientId int
clientUpdate Dictionary<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

clientId int
clientUpdate Dictionary<string, T[]>
clientWeight double

Returns

Dictionary<string, T[]>