Algorithm 2.
Active learning for predicting decision boundary.
Input: DiffusionModel, two d-dimensional points p1,p2
Output: evaluatedPoints, boundary Points
1: | procedure LearnDecisionBoundary |
2: | Pick the minimum and maximum from the range of p1 and p2 |
3: | start = [p1Min,p2Min] |
4: | end = [p1Max,p2Max] |
5: | [bPt, bMean, bStdev] = BinarySearch(start, end) |
6: | EvaluateNearbyPoints(bPt) Add these points to evaluatedPoints |
7: | r=1 |
8: | while r <= K do ▷ K is the budget on total number of active learning runs |
9: | nPt = GetNextPointViaUncertaintySampling |
10: | [nPt, nMean, nStdev] =RunDiffusionModel(nPt) |
11: | if nStdev >= θsd then >= θsd is the standard deviation threshold |
12: | Add nPt to boundaryPoints |
13: | else |
14: | Add [nPt, nMean, nLabel] to evaluatedPoints |
15: | end if |
16: | oppPt = A point with label opposite to nLabel and farthest (L2 norm) from nPt |
17: | [bPt, bMean, bStdev] = BinarySearch(nPt, oppPt) |
18: | EvaluateNearbyPoints(bPt) Add these points to evaluatedPoints |
19: | r + + |
20: | end while |
21: | return evaluatedPoints, boundaryPoints |
22: | end procedure |