![Page 1: Two Approximate- Programmability Birds, One Statistical- Inference Stoneasampson/media/approx2014... · 2016. 11. 23. · APPROX 2014 sa pa Adrian Sampson Two Approximate-Programmability](https://reader036.vdocuments.site/reader036/viewer/2022081410/609fea2b4ebc3f03d41768b3/html5/thumbnails/1.jpg)
sa paAPPROX 2014
Adrian Sampson
Two Approximate-Programmability Birds, One Statistical-Inference StoneUniversity of Washington
![Page 2: Two Approximate- Programmability Birds, One Statistical- Inference Stoneasampson/media/approx2014... · 2016. 11. 23. · APPROX 2014 sa pa Adrian Sampson Two Approximate-Programmability](https://reader036.vdocuments.site/reader036/viewer/2022081410/609fea2b4ebc3f03d41768b3/html5/thumbnails/2.jpg)
…
![Page 3: Two Approximate- Programmability Birds, One Statistical- Inference Stoneasampson/media/approx2014... · 2016. 11. 23. · APPROX 2014 sa pa Adrian Sampson Two Approximate-Programmability](https://reader036.vdocuments.site/reader036/viewer/2022081410/609fea2b4ebc3f03d41768b3/html5/thumbnails/3.jpg)
Assisted approximate programming
Cheap check generation
Statistical inference
![Page 4: Two Approximate- Programmability Birds, One Statistical- Inference Stoneasampson/media/approx2014... · 2016. 11. 23. · APPROX 2014 sa pa Adrian Sampson Two Approximate-Programmability](https://reader036.vdocuments.site/reader036/viewer/2022081410/609fea2b4ebc3f03d41768b3/html5/thumbnails/4.jpg)
Assisted approximate programming
Cheap check generation
Statistical inference
1
2
3
4 Next steps
![Page 5: Two Approximate- Programmability Birds, One Statistical- Inference Stoneasampson/media/approx2014... · 2016. 11. 23. · APPROX 2014 sa pa Adrian Sampson Two Approximate-Programmability](https://reader036.vdocuments.site/reader036/viewer/2022081410/609fea2b4ebc3f03d41768b3/html5/thumbnails/5.jpg)
Expressing quality
Pr[d(f(x), f 0(x)) b] � p
original programrelaxed version
distance metric
input
bounding parameters
![Page 6: Two Approximate- Programmability Birds, One Statistical- Inference Stoneasampson/media/approx2014... · 2016. 11. 23. · APPROX 2014 sa pa Adrian Sampson Two Approximate-Programmability](https://reader036.vdocuments.site/reader036/viewer/2022081410/609fea2b4ebc3f03d41768b3/html5/thumbnails/6.jpg)
Assisted approximate programming
f f 0
![Page 7: Two Approximate- Programmability Birds, One Statistical- Inference Stoneasampson/media/approx2014... · 2016. 11. 23. · APPROX 2014 sa pa Adrian Sampson Two Approximate-Programmability](https://reader036.vdocuments.site/reader036/viewer/2022081410/609fea2b4ebc3f03d41768b3/html5/thumbnails/7.jpg)
Assisted approximate programming
f f 0
int p = 5;!@Approx int a = 7;!for (int x = 0..) {!
a += func(2);!@Approx int z;!z = p * 2;!p += 4;!
}!a /= 9;!func2(p);!a += func(2);!@Approx int y;!z = p * 22 + z;!p += 10;
int p = 5;!int a = 7;!for (int x = 0..) {!
a += func(2);!int z;!z = p * 2;!p += 4;!
}!a /= 9;!func2(p);!a += func(2);!int y;!z = p * 22 + z;!p += 10;
Manual
![Page 8: Two Approximate- Programmability Birds, One Statistical- Inference Stoneasampson/media/approx2014... · 2016. 11. 23. · APPROX 2014 sa pa Adrian Sampson Two Approximate-Programmability](https://reader036.vdocuments.site/reader036/viewer/2022081410/609fea2b4ebc3f03d41768b3/html5/thumbnails/8.jpg)
Assisted approximate programming
f f 0
+Pr[d(f(x), f 0(x)) b] � p
ExpAX [Esmaeilzadeh+] Syndy [Misailovic and Rinard, WACAS]
Optimization in Rely [Misailovic+] ⋮
![Page 9: Two Approximate- Programmability Birds, One Statistical- Inference Stoneasampson/media/approx2014... · 2016. 11. 23. · APPROX 2014 sa pa Adrian Sampson Two Approximate-Programmability](https://reader036.vdocuments.site/reader036/viewer/2022081410/609fea2b4ebc3f03d41768b3/html5/thumbnails/9.jpg)
Assisted approximate programming
Cheap check generation
Statistical inference
![Page 10: Two Approximate- Programmability Birds, One Statistical- Inference Stoneasampson/media/approx2014... · 2016. 11. 23. · APPROX 2014 sa pa Adrian Sampson Two Approximate-Programmability](https://reader036.vdocuments.site/reader036/viewer/2022081410/609fea2b4ebc3f03d41768b3/html5/thumbnails/10.jpg)
Quality: the fantasy
Corre
ctne
ss P
roba
bility
Inputs
average probability
![Page 11: Two Approximate- Programmability Birds, One Statistical- Inference Stoneasampson/media/approx2014... · 2016. 11. 23. · APPROX 2014 sa pa Adrian Sampson Two Approximate-Programmability](https://reader036.vdocuments.site/reader036/viewer/2022081410/609fea2b4ebc3f03d41768b3/html5/thumbnails/11.jpg)
Quality: the reality
Corre
ctne
ss P
roba
bility
Inputs
average probability
![Page 12: Two Approximate- Programmability Birds, One Statistical- Inference Stoneasampson/media/approx2014... · 2016. 11. 23. · APPROX 2014 sa pa Adrian Sampson Two Approximate-Programmability](https://reader036.vdocuments.site/reader036/viewer/2022081410/609fea2b4ebc3f03d41768b3/html5/thumbnails/12.jpg)
Cheap checks to fall back to precise execution
Corre
ctne
ss P
roba
bility
Inputs
average probability
![Page 13: Two Approximate- Programmability Birds, One Statistical- Inference Stoneasampson/media/approx2014... · 2016. 11. 23. · APPROX 2014 sa pa Adrian Sampson Two Approximate-Programmability](https://reader036.vdocuments.site/reader036/viewer/2022081410/609fea2b4ebc3f03d41768b3/html5/thumbnails/13.jpg)
Cheap checks
f f 0Pr[d(f(x), f 0(x)) b] � p
x
s.t. Pr[d(f(x), f 0(x)) b] � p
![Page 14: Two Approximate- Programmability Birds, One Statistical- Inference Stoneasampson/media/approx2014... · 2016. 11. 23. · APPROX 2014 sa pa Adrian Sampson Two Approximate-Programmability](https://reader036.vdocuments.site/reader036/viewer/2022081410/609fea2b4ebc3f03d41768b3/html5/thumbnails/14.jpg)
Assisted approximate programming
Cheap check generation
Statistical inference
![Page 15: Two Approximate- Programmability Birds, One Statistical- Inference Stoneasampson/media/approx2014... · 2016. 11. 23. · APPROX 2014 sa pa Adrian Sampson Two Approximate-Programmability](https://reader036.vdocuments.site/reader036/viewer/2022081410/609fea2b4ebc3f03d41768b3/html5/thumbnails/15.jpg)
Approximate program
def dist(x1, y1, x2, y2):! return sqrt((x1 − x2) ∗∗ 2 + (y1 − y2) ∗∗ 2)
approximate operations
![Page 16: Two Approximate- Programmability Birds, One Statistical- Inference Stoneasampson/media/approx2014... · 2016. 11. 23. · APPROX 2014 sa pa Adrian Sampson Two Approximate-Programmability](https://reader036.vdocuments.site/reader036/viewer/2022081410/609fea2b4ebc3f03d41768b3/html5/thumbnails/16.jpg)
Approximate program → probabilistic program
def dist(x1, y1, x2, y2):! return sqrt((x1 − x2 + error()) ∗∗ 2! + (y1 − y2 + error()) ∗∗ 2)! + error()
![Page 17: Two Approximate- Programmability Birds, One Statistical- Inference Stoneasampson/media/approx2014... · 2016. 11. 23. · APPROX 2014 sa pa Adrian Sampson Two Approximate-Programmability](https://reader036.vdocuments.site/reader036/viewer/2022081410/609fea2b4ebc3f03d41768b3/html5/thumbnails/17.jpg)
Assisted approximate programming as statistical inference
def dist(x1, y1, x2, y2):! return sqrt((x1 − x2 + error(?)) ∗∗ 2! + (y1 − y2 + error(?)) ∗∗ 2)! + error(?)
s.t. Pr[d(f(x), f 0(x)) b] � p
![Page 18: Two Approximate- Programmability Birds, One Statistical- Inference Stoneasampson/media/approx2014... · 2016. 11. 23. · APPROX 2014 sa pa Adrian Sampson Two Approximate-Programmability](https://reader036.vdocuments.site/reader036/viewer/2022081410/609fea2b4ebc3f03d41768b3/html5/thumbnails/18.jpg)
Cheap check generation as statistical inference
def dist(x1, y1, x2, y2):! return sqrt((x1 − x2 + error()) ∗∗ 2! + (y1 − y2 + error()) ∗∗ 2)! + error()
s.t. Pr[d(f(x), f 0(x)) b] � p
x1 = dist(?)!y1 = dist(?)!x2 = dist(?)!y2 = dist(?)
![Page 19: Two Approximate- Programmability Birds, One Statistical- Inference Stoneasampson/media/approx2014... · 2016. 11. 23. · APPROX 2014 sa pa Adrian Sampson Two Approximate-Programmability](https://reader036.vdocuments.site/reader036/viewer/2022081410/609fea2b4ebc3f03d41768b3/html5/thumbnails/19.jpg)
First steps
![Page 20: Two Approximate- Programmability Birds, One Statistical- Inference Stoneasampson/media/approx2014... · 2016. 11. 23. · APPROX 2014 sa pa Adrian Sampson Two Approximate-Programmability](https://reader036.vdocuments.site/reader036/viewer/2022081410/609fea2b4ebc3f03d41768b3/html5/thumbnails/20.jpg)
First steps: translate to a probability distribution
int p = 5;!int a = 7;!for (int x = 0..) {!
a += func(2);!int z;!z = p * 2;!p += 4;!
}!a /= 9;!func2(p);!a += func(2);!int y;!z = p * 22 + z;!p += 10;
? ? ?
![Page 21: Two Approximate- Programmability Birds, One Statistical- Inference Stoneasampson/media/approx2014... · 2016. 11. 23. · APPROX 2014 sa pa Adrian Sampson Two Approximate-Programmability](https://reader036.vdocuments.site/reader036/viewer/2022081410/609fea2b4ebc3f03d41768b3/html5/thumbnails/21.jpg)
First steps: statistical inference with constraints?
? ? ?
Pr[d(f(x), f 0(x)) b] � p
![Page 22: Two Approximate- Programmability Birds, One Statistical- Inference Stoneasampson/media/approx2014... · 2016. 11. 23. · APPROX 2014 sa pa Adrian Sampson Two Approximate-Programmability](https://reader036.vdocuments.site/reader036/viewer/2022081410/609fea2b4ebc3f03d41768b3/html5/thumbnails/22.jpg)
First steps: statistical inference with constraints and objectives?
? ? ?
Pr[d(f(x), f 0(x)) b] � p
minimize
![Page 23: Two Approximate- Programmability Birds, One Statistical- Inference Stoneasampson/media/approx2014... · 2016. 11. 23. · APPROX 2014 sa pa Adrian Sampson Two Approximate-Programmability](https://reader036.vdocuments.site/reader036/viewer/2022081410/609fea2b4ebc3f03d41768b3/html5/thumbnails/23.jpg)
First steps: statistical inference with constraints and objectives scalably?
? ? ?
Pr[d(f(x), f 0(x)) b] � p
minimize
![Page 24: Two Approximate- Programmability Birds, One Statistical- Inference Stoneasampson/media/approx2014... · 2016. 11. 23. · APPROX 2014 sa pa Adrian Sampson Two Approximate-Programmability](https://reader036.vdocuments.site/reader036/viewer/2022081410/609fea2b4ebc3f03d41768b3/html5/thumbnails/24.jpg)
Assisted approximate programming
Cheap check generation
Statistical inference
![Page 25: Two Approximate- Programmability Birds, One Statistical- Inference Stoneasampson/media/approx2014... · 2016. 11. 23. · APPROX 2014 sa pa Adrian Sampson Two Approximate-Programmability](https://reader036.vdocuments.site/reader036/viewer/2022081410/609fea2b4ebc3f03d41768b3/html5/thumbnails/25.jpg)