-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathPlots_Mathematica_Losses.nb
1744 lines (1709 loc) · 81.7 KB
/
Plots_Mathematica_Losses.nb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
(* Content-type: application/vnd.wolfram.mathematica *)
(*** Wolfram Notebook File ***)
(* http://www.wolfram.com/nb *)
(* CreatedBy='Mathematica 10.2' *)
(*CacheID: 234*)
(* Internal cache information:
NotebookFileLineBreakTest
NotebookFileLineBreakTest
NotebookDataPosition[ 158, 7]
NotebookDataLength[ 81696, 1735]
NotebookOptionsPosition[ 80522, 1693]
NotebookOutlinePosition[ 80868, 1708]
CellTagsIndexPosition[ 80825, 1705]
WindowFrame->Normal*)
(* Beginning of Notebook Content *)
Notebook[{
Cell[CellGroupData[{
Cell[BoxData[{
RowBox[{
RowBox[{
RowBox[{"points1Sep", "=",
RowBox[{"Table", "[",
RowBox[{
RowBox[{"{",
RowBox[{
RowBox[{
RowBox[{"0.6", "*", "i"}], "-", "0.2"}], ",", "0"}], "}"}], ",",
RowBox[{"{",
RowBox[{"i", ",", "5"}], "}"}]}], "]"}]}], ";"}], " ",
RowBox[{"(*",
RowBox[{"belongs", " ", "on", " ", "the", " ", "right", " ", "side"}], " ",
"*)"}]}], "\[IndentingNewLine]",
RowBox[{
RowBox[{
RowBox[{"points2Sep", "=",
RowBox[{"Table", "[",
RowBox[{
RowBox[{"{",
RowBox[{
RowBox[{
RowBox[{
RowBox[{"-", "0.6"}], "*", "i"}], "+", "0.2"}], ",", "0"}], "}"}],
",",
RowBox[{"{",
RowBox[{"i", ",", "5"}], "}"}]}], "]"}]}], ";"}], " ",
RowBox[{"(*",
RowBox[{"belongs", " ", "on", " ", "the", " ", "left", " ", "side"}], " ",
"*)"}]}], "\[IndentingNewLine]",
RowBox[{
RowBox[{"points1", "=",
RowBox[{"Table", "[",
RowBox[{
RowBox[{"{",
RowBox[{
RowBox[{
RowBox[{"0.6", "*", "i"}], "-", "0.7"}], ",", "0"}], "}"}], ",",
RowBox[{"{",
RowBox[{"i", ",", "5"}], "}"}]}], "]"}]}], ";"}], "\[IndentingNewLine]",
RowBox[{
RowBox[{
RowBox[{"points2", "=",
RowBox[{"Table", "[",
RowBox[{
RowBox[{"{",
RowBox[{
RowBox[{
RowBox[{
RowBox[{"-", "0.7"}], "*", "i"}], "+", "1.0"}], ",", "0"}], "}"}],
",",
RowBox[{"{",
RowBox[{"i", ",", "5"}], "}"}]}], "]"}]}], ";"}],
" "}], "\[IndentingNewLine]",
RowBox[{"ListPlot", "[",
RowBox[{
RowBox[{"{",
RowBox[{"points1", ",", " ", "points2"}], "}"}], ",",
RowBox[{"PlotStyle", "\[Rule]",
RowBox[{"PointSize", "[", "0.02", "]"}]}]}], "]"}], "\[IndentingNewLine]",
RowBox[{"ListPlot", "[",
RowBox[{
RowBox[{"{",
RowBox[{"points1Sep", ",", " ", "points2Sep"}], "}"}], ",",
RowBox[{"PlotStyle", "\[Rule]",
RowBox[{"PointSize", "[", "0.02", "]"}]}]}], "]"}]}], "Input",
CellChangeTimes->CompressedData["
1:eJwdyFsoQwEAh/GTa4tptBKRKW1DLXk8a2qaKIltbYlSViRxlFtRsngQNm3J
i7AZaUwjRnviZZaJZA8ubW4PW6uzTabQynL+5+HrV1+5bkjVk0YQRCkTrKUU
qYVpWv79S2UuMnKodj58kL0Wwa5znQjyci4r4WRcLYG2LK4cJpLpDbBPammE
ht7tFji1/MdKjr2twY7WCSssHi7bhRXS7n0YDaiVBsaSaLMKDkt+9NAlrpmH
/I08IxzN5y5BbUaBCwrt/axu99k9jKsCj9ARM0dgKrnJyov7PmD4My3J/gHa
aGFUdWpN8HTr3AspyfodVJpXg7AwoXmB9YNNQivj1cxqNXzy6UjYzblgjRD2
Y7g0LXPDnRWTl/1H2X4YM60HoGuEDMLcsjaPk7Ezyr+APOfzJaTrxm+gd84c
gvcBQRiSoVvxAaNIqamCQf/hnkBPy99PPA7oubaJv2ZpuSK/qRL+Aybo/FA=
"]],
Cell[BoxData[
GraphicsBox[{{}, {{},
{RGBColor[0.368417, 0.506779, 0.709798], PointSize[0.02],
AbsoluteThickness[1.6],
PointBox[{{-0.09999999999999998, 0.}, {0.5, 0.}, {1.0999999999999999`,
0.}, {1.7, 0.}, {2.3, 0.}}]},
{RGBColor[0.880722, 0.611041, 0.142051], PointSize[0.02],
AbsoluteThickness[1.6],
PointBox[{{0.30000000000000004`, 0.}, {-0.3999999999999999,
0.}, {-1.0999999999999996`, 0.}, {-1.7999999999999998`, 0.}, {-2.5,
0.}}]}, {}}, {}},
AspectRatio->NCache[GoldenRatio^(-1), 0.6180339887498948],
Axes->{True, True},
AxesLabel->{None, None},
AxesOrigin->{0, 0},
DisplayFunction->Identity,
Frame->{{False, False}, {False, False}},
FrameLabel->{{None, None}, {None, None}},
FrameTicks->{{Automatic, Automatic}, {Automatic, Automatic}},
GridLines->{None, None},
GridLinesStyle->Directive[
GrayLevel[0.5, 0.4]],
Method->{},
PlotRange->{{-2.5, 2.3}, {-1., 1.}},
PlotRangeClipping->True,
PlotRangePadding->{{
Scaled[0.02],
Scaled[0.02]}, {
Scaled[0.05],
Scaled[0.05]}},
Ticks->{Automatic, Automatic}]], "Output",
CellChangeTimes->{{3.690821203207313*^9, 3.6908212280317106`*^9},
3.690821972473513*^9, 3.6910544305252237`*^9, 3.693058379886264*^9}],
Cell[BoxData[
GraphicsBox[{{}, {{},
{RGBColor[0.368417, 0.506779, 0.709798], PointSize[0.02],
AbsoluteThickness[1.6],
PointBox[{{0.39999999999999997`, 0.}, {1., 0.}, {1.5999999999999999`,
0.}, {2.1999999999999997`, 0.}, {2.8, 0.}}]},
{RGBColor[0.880722, 0.611041, 0.142051], PointSize[0.02],
AbsoluteThickness[1.6],
PointBox[{{-0.39999999999999997`, 0.}, {-1., 0.}, {-1.5999999999999999`,
0.}, {-2.1999999999999997`, 0.}, {-2.8, 0.}}]}, {}}, {}},
AspectRatio->NCache[GoldenRatio^(-1), 0.6180339887498948],
Axes->{True, True},
AxesLabel->{None, None},
AxesOrigin->{0, 0},
DisplayFunction->Identity,
Frame->{{False, False}, {False, False}},
FrameLabel->{{None, None}, {None, None}},
FrameTicks->{{Automatic, Automatic}, {Automatic, Automatic}},
GridLines->{None, None},
GridLinesStyle->Directive[
GrayLevel[0.5, 0.4]],
Method->{},
PlotRange->{{-2.8, 2.8}, {-1., 1.}},
PlotRangeClipping->True,
PlotRangePadding->{{
Scaled[0.02],
Scaled[0.02]}, {
Scaled[0.05],
Scaled[0.05]}},
Ticks->{Automatic, Automatic}]], "Output",
CellChangeTimes->{{3.690821203207313*^9, 3.6908212280317106`*^9},
3.690821972473513*^9, 3.6910544305252237`*^9, 3.6930583799327826`*^9}]
}, Open ]],
Cell[CellGroupData[{
Cell[BoxData[{
RowBox[{
RowBox[{"lossName", "=", "\"\<Binary Loss\>\""}],
";"}], "\[IndentingNewLine]",
RowBox[{
RowBox[{
RowBox[{"binLoss", "[",
RowBox[{"x_", ",", "p_", ",", "class_"}], "]"}], ":=",
RowBox[{"If", "[",
RowBox[{
RowBox[{"class", "\[Equal]", "1"}], ",",
RowBox[{"If", "[",
RowBox[{
RowBox[{"p", ">", "x"}], ",", "0", ",", "1"}], "]"}], ",",
RowBox[{"If", "[",
RowBox[{
RowBox[{"p", "<", "x"}], ",", "0", ",", "1"}], "]"}]}], "]"}]}],
";"}], "\[IndentingNewLine]",
RowBox[{
RowBox[{
RowBox[{"applyLossForPlt", "[",
RowBox[{"x_", ",", "points_", ",", "class_", ",", "lossFKT_"}], "]"}], ":=",
RowBox[{"Total", "[",
RowBox[{"Map", "[",
RowBox[{
RowBox[{"Function", "[",
RowBox[{"p", ",",
RowBox[{"lossFKT", "[",
RowBox[{"x", ",",
RowBox[{"p", "[",
RowBox[{"[", "1", "]"}], "]"}], ",", "class"}], "]"}]}], "]"}],
",", "points"}], "]"}], "]"}]}], ";"}], "\[IndentingNewLine]",
RowBox[{"Show", "[",
RowBox[{
RowBox[{"Plot", "[",
RowBox[{
RowBox[{"{",
RowBox[{
RowBox[{
RowBox[{"applyLossForPlt", "[",
RowBox[{"x", ",", "points1", ",", "1", ",", "binLoss"}], "]"}], "+",
RowBox[{"applyLossForPlt", "[",
RowBox[{"x", ",", "points2", ",", "2", ",", "binLoss"}], "]"}]}],
",", "0"}], "}"}], ",",
RowBox[{"{",
RowBox[{"x", ",",
RowBox[{"-", "3"}], ",", "3"}], "}"}], ",",
RowBox[{"PlotStyle", "\[Rule]",
RowBox[{"{",
RowBox[{"Blue", ",", "White"}], "}"}]}], ",", " ",
RowBox[{"Exclusions", "\[Rule]", "None"}], ",", " ",
RowBox[{"PlotLabel", "\[Rule]",
RowBox[{"lossName", "<>", "\"\< example\>\""}]}], ",",
RowBox[{"AxesLabel", "\[Rule]",
RowBox[{"{",
RowBox[{"x", ",", "Loss"}], "}"}]}]}], "]"}], ",",
RowBox[{"ListPlot", "[",
RowBox[{
RowBox[{"{",
RowBox[{"points1", ",", " ", "points2"}], "}"}], ",",
RowBox[{"PlotStyle", "\[Rule]",
RowBox[{"PointSize", "[", "0.02", "]"}]}]}], "]"}]}],
"]"}], "\[IndentingNewLine]",
RowBox[{"Plot", "[",
RowBox[{
RowBox[{"binLoss", "[",
RowBox[{"x", ",", "0", ",", "1"}], "]"}], ",",
RowBox[{"{",
RowBox[{"x", ",",
RowBox[{"-", "2"}], ",", "2"}], "}"}], ",",
RowBox[{"PlotLabel", "\[Rule]", "lossName"}], ",",
RowBox[{"AxesLabel", "\[Rule]",
RowBox[{"{",
RowBox[{"\"\<Distance to Point\>\"", ",", "Loss"}], "}"}]}]}],
"]"}]}], "Input",
CellChangeTimes->{{3.6907489307606096`*^9, 3.6907489944266195`*^9}, {
3.690749045754924*^9, 3.6907490484249945`*^9}, {3.6907493341199703`*^9,
3.690749366942527*^9}, {3.690749480372759*^9, 3.69074949968463*^9}, {
3.6907495357964363`*^9, 3.6907495705174*^9}, {3.690749641213644*^9,
3.6907496709347196`*^9}, {3.6907499027385945`*^9, 3.690749934699002*^9}, {
3.690749990558827*^9, 3.690750021295371*^9}, {3.6907500603568745`*^9,
3.690750066274431*^9}, {3.6907501184542313`*^9, 3.690750149582407*^9}, {
3.6907503566829057`*^9, 3.690750396731433*^9}, {3.690750451831112*^9,
3.6907504554486265`*^9}, {3.6907504928224363`*^9, 3.690750558754436*^9},
3.6907518592373323`*^9, {3.6907519614829416`*^9, 3.690751963231429*^9}, {
3.690790033175798*^9, 3.6907900636758904`*^9}, {3.6907901536131506`*^9,
3.6907902279128113`*^9}, {3.6907902625362697`*^9, 3.690790282745385*^9}, {
3.6907903507278233`*^9, 3.690790397455453*^9}, {3.690790549493122*^9,
3.6907905511244946`*^9}, {3.6907918734701023`*^9, 3.690791907471366*^9}, {
3.6907919391912503`*^9, 3.69079194243943*^9}, {3.690791978066392*^9,
3.6907920441180115`*^9}, 3.6907920967171307`*^9, {3.690792714254243*^9,
3.690792751662723*^9}, {3.690792783037078*^9, 3.690792801350355*^9}, {
3.6907928865106077`*^9, 3.6907928977962823`*^9}, {3.6907929610555344`*^9,
3.69079299641113*^9}, {3.6907930546081085`*^9, 3.6907930623737373`*^9},
3.690821249320202*^9, {3.6908220994166203`*^9, 3.69082210546198*^9}}],
Cell[BoxData[
GraphicsBox[{{{}, {},
{RGBColor[0, 0, 1], AbsoluteThickness[1.6], Opacity[1.],
LineBox[CompressedData["
1:eJxF1ns0FHgUB/DxjG3ziJFV5BmGVq/d0KyZqLxFNg7FKBISI1pJbB6ZTU4x
1JbxjNZrk93kHZPXcpBE8swrImQ8Eo3Htnuae+85v/M7n3N+f3x/9497rtJp
32Nn+AkEQuGX89/t+ih2Zn19A5vwf0lTl8q0n7kz0DH1DcwWMbSi3BDdRlQY
TCfb2mgShcDjs6oWl5MFwS5Zi0ea1NCdQ2uNsUS0xbYNlnZC6PekxofGfGiG
3g0xvVWBr5agqppY+pKW0dV24i+2fkSv+MfHrU2h98dtsR16i1YW1nDwrkWL
BevSPmWgR90czm1yRVdYXQ5UUUY3iE7ELmfzg9tr7XNbddDHA4myezT5wJcu
CLKc1Qng1nyb8p+c16t4zr+USK08vwZu5+anOUyugpdCawgfPdDR7JaCanW0
PH+XS+zYCtjarFvG6w06nNnTbNSJLuzpDZd/jh5T7tf9VMezCNX88UBm7hN0
gdGwhPMDdJDbu/HaSLThtSm2lhvaxNE3oojOBVvpzB0+GPIZzPJy/Pg+dQlc
pRAhx5e4CHak0w5VFS2Ama92JnQUzIOb9FdGJnLnwCWSV+44kNCZ41yTxpxZ
sNSYyiF2Ojp8xJxSfA/NGfTXz4/jmUClvWH98OA6mtw9qRUfhJbrOKAc5onu
bOwVczJFx1UFc3U10SJ55R2ccQ449A73YXY2eseOXFKJ3wzYZrvTsgJzGmwr
cCi8LmwCfEiZKV1RNAoe2nOKeSNxCDx81+6TmPYAWKD5faOwSi+4Ts+r7lZu
D5iRNcGW3YP2cM4x6P/YDTYlelakl6LLOCbcCBaa1Kyh7x7CM4eSmCUSZEJD
b4wYLyYdRN9yfpdPtu4CS+mPPbCivQZvnR2JvxDyCqySPRR2h9UOrhKvYPps
agXrthYqFYzUg0c8784pSteA5UWXolSuV4IvdHrOnEivADdk9NonlJaBFbYs
+d2noP2jpWMK6krx/equPyrNS+H/Cn6W7Oa2EnCjfdTCeH8xOMCgSkPofRF4
e/f95Ytyj8EJ77693XI7H6yo5GjWdcwOHH74rETarocUnn9+F1PDeF4JXiD6
V9HC/wGTtIczk82awC6GNtG9m1vBle6RBiHBL8Dm2oPFMefbwJvFbwYkjKG7
Zg/sTqK9BJNHmOKKSejUjonpjC60tSWxf3QRzV9PbVYntoMLDbzLPffyzKG4
F/+em2eD5vRey5Q49xocRAhIuRjZC74SJjIbz+gHh/InG/0dPQC+aVav8TYX
ncqc2STThC7okZ03nkS7SCpNVQgNQj66g1nbBzX01XT/IsUj6LTd9Vcjo9Ds
Z7Lm4/VovuGnA4+Mh8CG/K4BgQ3o56NG1dPZI2CHRlUJt+uj4NqUM+xA1gSY
qkc5e8BjGvt/0VRC9PAMOKkr5+RkLAfsbnolx2jzLFinzGqRFY8mD20N/ovF
85d5LTKxXp+BPq5TFNmXhz5tFyE69xgdnCkvJV+LTpgr3mbSga6/OaWTsoBe
IikZLUjPgZ1coz3TjqOrWfO3LO6g7+UbqOcw5sH0Z9crhYIWMK8PLfBY5CI4
JyRM65P3EriEfIr+68llcAOX+mSDxWewXx97/0oMWu7pl5HWgvZ5eJXr9QFd
k8wmj4pxwR9uuzgpb0fL3iSE0nTQO6OtxUL38yxBNYxKS0mioO3DOd+XG6O9
Q6lV3UfRlRRqbXUbWpKP2phnuwL+XDj6QvPIKnjY40ZXlu4aeEZrY+lWFQKV
52bHVPp3anzgvmiyuU8yerqsW62GyA92W1e9fepHdI8RXZBgj/b80+Gl1An0
krRRmjoNzQjR9jngipYZI5KPnuVZmrqvePz1L75om9/K/VMC0TGkU3nTDHRD
s/AI+S666Hjys6BudMabvWlFcgJgRdF9J6MS0Ml798naiQmCFykCwVqr6Lfi
c/fNCMJgGUlGA3EOTR7c2PdN0Abw130Z/C84vDq4
"]]},
{GrayLevel[1], AbsoluteThickness[1.6], Opacity[1.],
LineBox[CompressedData["
1:eJxN1F1IU3EYBvCzTadlmaILtTLnspDlB1pkKbnGLC0V5qhMTMtvpOxU1nSm
MFNMFBxDDbZS0QvnRO1LJVlu6rINNYNBKIZ4NJOZQ5lzW25pBfr+e+Hh4Xf1
3L30jHtJ2WQMwxL+5l9n9ohWt7edVNjOqeqOHI+0Ix/G5amPrchfQ9XalTXk
2DeWtmkCObg3LfntCLJ14ORQThVy7ahGPOGK7OdD4Nw9VDAexeMG0hzBt9rN
F8cCHMCKRAGf4U8B69TX5ZMhZPBVPs0rLJAELnrgIE07gYG7iySswbtbyl2z
K1dUzCw7ODHEGHOhdBMszU/ZWG62gpW+T31IEjM4BU/nKPtM4LFz9gW93Agu
a7R1yWRrYO7Rm798xQYwj8Ip/yjUgzn+Yk9F3yKYCLstrpEQYMr4spbKmAEz
ZISwUaoDR0y+o79aGAXXL+1rmGjoBpfH5Lq1hHZF79pEe6hML/8Ezul/Lu/k
6sDFWGHTo4oZMJucWcjXEOAb2mNuWdWLYHVTtoov1YNZZ6NzI/MM4BdTHak/
RWvgYel6XXyjEYwPVQ86FpvAsQXp/KQKM7ijVMi03LGCNTZWr1P8JtidxNJ2
8uzg+byaqfaILfAq0+X9IQbG2vV4SjPuHUACGwamA0ZoZHDbbHhLnw8F/DL8
lNc1VwewOZpSwvyN/P2AsfUyRgUfdK/S0IzIdWcY9xPMyM5pSu/KTWSb3JJv
IjuB5zh5+3UeyB1FcUmi08hRcy7f9hYj91JlFexS5OAgTpBAiEwXPCnTVyNT
PQ1+Ggnyl0ufsysVyHEF+a4fVMjD9dR+k/q/PeK8c9YEsqSkR86eRfZovcIT
zCPXapZsr38gl9H8EuiryJZIxUbyOjKekdwksiAvPzNd1NiQd/4X+A/w8ilf
"]]}}, {{}, {{},
{RGBColor[0.368417, 0.506779, 0.709798], PointSize[0.02],
AbsoluteThickness[1.6],
PointBox[{{-0.09999999999999998, 0.}, {0.5, 0.}, {1.0999999999999999`,
0.}, {1.7, 0.}, {2.3, 0.}}]},
{RGBColor[0.880722, 0.611041, 0.142051], PointSize[0.02],
AbsoluteThickness[1.6],
PointBox[{{0.30000000000000004`, 0.}, {-0.3999999999999999,
0.}, {-1.0999999999999996`, 0.}, {-1.7999999999999998`, 0.}, {-2.5,
0.}}]}, {}}, {}}},
AspectRatio->NCache[GoldenRatio^(-1), 0.6180339887498948],
Axes->{True, True},
AxesLabel->{
FormBox["x", TraditionalForm],
FormBox["Loss", TraditionalForm]},
AxesOrigin->{0, 0},
DisplayFunction->Identity,
Frame->{{False, False}, {False, False}},
FrameLabel->{{None, None}, {None, None}},
FrameTicks->{{Automatic, Automatic}, {Automatic, Automatic}},
GridLines->{None, None},
GridLinesStyle->Directive[
GrayLevel[0.5, 0.4]],
Method->{
"DefaultBoundaryStyle" -> Automatic, "DefaultMeshStyle" ->
AbsolutePointSize[6], "ScalingFunctions" -> None},
PlotLabel->FormBox["\"Binary Loss example\"", TraditionalForm],
PlotRange->{{-3, 3}, {0., 5.}},
PlotRangeClipping->True,
PlotRangePadding->{{
Scaled[0.02],
Scaled[0.02]}, {
Scaled[0.05],
Scaled[0.05]}},
Ticks->{Automatic, Automatic}]], "Output",
CellChangeTimes->{{3.6907495547946815`*^9, 3.6907495712179027`*^9},
3.6907499043124475`*^9, 3.690750022264778*^9, 3.6907500671058598`*^9,
3.6907501561040044`*^9, 3.6907503617642083`*^9, 3.690750398116852*^9,
3.6907504571655645`*^9, {3.690750510180978*^9, 3.690750527244833*^9},
3.6907505594926987`*^9, 3.690750614428006*^9, {3.6907509936687903`*^9,
3.690751003674634*^9}, 3.690751091031486*^9, {3.6907518318524265`*^9,
3.6907519648551493`*^9}, 3.6907528920602875`*^9, {3.6907900056212883`*^9,
3.690790063992404*^9}, {3.690790212235051*^9, 3.6907902286283207`*^9}, {
3.690790263536805*^9, 3.6907902838839636`*^9}, {3.6907903771601253`*^9,
3.690790398440643*^9}, 3.6907904573742123`*^9, {3.6907905440261455`*^9,
3.6907905518398952`*^9}, {3.690790636282919*^9, 3.6907906468191357`*^9}, {
3.690791223996689*^9, 3.690791263530269*^9}, 3.690791384606457*^9,
3.690791908002761*^9, {3.690791943039793*^9, 3.6907919497610493`*^9}, {
3.690791991457588*^9, 3.690792002917714*^9}, 3.6907920470883093`*^9,
3.6907920992030487`*^9, 3.690792355284444*^9, 3.690792646029167*^9,
3.6907926771291637`*^9, 3.6907927520629625`*^9, {3.690792796363101*^9,
3.6907928069396515`*^9}, {3.6907928920291204`*^9, 3.69079289887471*^9}, {
3.690792963919326*^9, 3.690792997411786*^9}, 3.690793064576003*^9,
3.690821250330285*^9, 3.690822009725953*^9, 3.6908221207628174`*^9,
3.6910544336243362`*^9}],
Cell[BoxData[
GraphicsBox[{{}, {},
{RGBColor[0.368417, 0.506779, 0.709798], AbsoluteThickness[1.6], Opacity[
1.], LineBox[CompressedData["
1:eJxF1H0s1AEYB/AT0pv0elTkXaKspYnSbqvLXISFdlwqZykk11VTt8oVWS/s
FrHDYdwp72qpRPp5qbylF+JUyMsSfkuHO+WKq1b7/p7t2bPPf99nz/aYc6P2
HZlDo9EO/um/04FBH9VoNATtf/mFr7s6raYsSHG2mVRRbiADuUMk5cPi7A8v
5ZRvjtu2pJVRVkq3Fzseolw5L/jE0aezcExrJ1kbPAOP5K0y3Gr8C7b75D7f
oEcNy5ZLle8vT8P1nOZEgvEDNs42NhP3T8Eeuzjn2q+pYNOfocL1LCW8sTRT
yP86AfedznHozB+HwyQ3pZJwBcy+GGBZbDEG25LrOX5ZJBzh5XNlYHAYDjzl
vcPJaQhOJoZ9iIeDMGNO134HrX44vKuOlzfZDbumXTKqPCuHj/WMfwwwbIO9
+zaUNFo1w05Ehnw07im8epHOSJYj5Rn2cfW+gWr42YSrSRWDsq9NL/eGugrm
JZqN2fMewwWcPJ1ITjmckK9PN19Amac6s66j4j7sLHLbs4NO+UXdF5H+23uU
ff2cDiSWwi6KoJDeEBl8vFI2Ev1MCmfFkVFLrSlrrzp3njmUA6fF2tr7v82C
a2xSRF8/3IKtqywkZpJk+Lr33XzfoCT4jiI19hQhgl8law8vbLoCi5+s1eJ7
xMLczy6ru1qF8Ghkn9g9Lxq+SNBbVhTyYQuLdHVtUATMej73UODRYCpvTqt+
S/1e2F2qqbltv4XxTwpGXG7ol4rvbHhNqZsBkx8KC3QjO/y38GBfLu1ktZ0A
Tv3Eik9achmOcu0xV89NgGWeFb13Z5PgCwUeAiOVBLaP/bag5owUzmXel5dd
K4fLGsYKYtgEXM1qdt5W1wSThblhXuw2OLPEIUP5QA4/CY5fuelRN7XPirQO
72X98Ms375ht6YPwyZatNiL6EJX/NXNlaOMwnFD8KF/Pk4S1kt+x6nXHYMOC
ogaZuwLuvCO01L06DnOK7OL5AxOwa4be9ufWSnhQ9HjKKk4Fl1vGkObdU3Cf
NHqzjskPuM12t3Dy7DRsmr7brLFaTd2nMGDa5ddPuJ3Y+b7CfwaOqD240EQ8
C3sKKwWLPTXw/38O/wY7ysYX
"]]}},
AspectRatio->NCache[GoldenRatio^(-1), 0.6180339887498948],
Axes->{True, True},
AxesLabel->{
FormBox["\"Distance to Point\"", TraditionalForm],
FormBox["Loss", TraditionalForm]},
AxesOrigin->{0, 0},
DisplayFunction->Identity,
Frame->{{False, False}, {False, False}},
FrameLabel->{{None, None}, {None, None}},
FrameTicks->{{Automatic, Automatic}, {Automatic, Automatic}},
GridLines->{None, None},
GridLinesStyle->Directive[
GrayLevel[0.5, 0.4]],
Method->{
"DefaultBoundaryStyle" -> Automatic, "DefaultMeshStyle" ->
AbsolutePointSize[6], "ScalingFunctions" -> None},
PlotLabel->FormBox["\"Binary Loss\"", TraditionalForm],
PlotRange->{{-2, 2}, {0., 1.}},
PlotRangeClipping->True,
PlotRangePadding->{{
Scaled[0.02],
Scaled[0.02]}, {
Scaled[0.05],
Scaled[0.05]}},
Ticks->{Automatic, Automatic}]], "Output",
CellChangeTimes->{{3.6907495547946815`*^9, 3.6907495712179027`*^9},
3.6907499043124475`*^9, 3.690750022264778*^9, 3.6907500671058598`*^9,
3.6907501561040044`*^9, 3.6907503617642083`*^9, 3.690750398116852*^9,
3.6907504571655645`*^9, {3.690750510180978*^9, 3.690750527244833*^9},
3.6907505594926987`*^9, 3.690750614428006*^9, {3.6907509936687903`*^9,
3.690751003674634*^9}, 3.690751091031486*^9, {3.6907518318524265`*^9,
3.6907519648551493`*^9}, 3.6907528920602875`*^9, {3.6907900056212883`*^9,
3.690790063992404*^9}, {3.690790212235051*^9, 3.6907902286283207`*^9}, {
3.690790263536805*^9, 3.6907902838839636`*^9}, {3.6907903771601253`*^9,
3.690790398440643*^9}, 3.6907904573742123`*^9, {3.6907905440261455`*^9,
3.6907905518398952`*^9}, {3.690790636282919*^9, 3.6907906468191357`*^9}, {
3.690791223996689*^9, 3.690791263530269*^9}, 3.690791384606457*^9,
3.690791908002761*^9, {3.690791943039793*^9, 3.6907919497610493`*^9}, {
3.690791991457588*^9, 3.690792002917714*^9}, 3.6907920470883093`*^9,
3.6907920992030487`*^9, 3.690792355284444*^9, 3.690792646029167*^9,
3.6907926771291637`*^9, 3.6907927520629625`*^9, {3.690792796363101*^9,
3.6907928069396515`*^9}, {3.6907928920291204`*^9, 3.69079289887471*^9}, {
3.690792963919326*^9, 3.690792997411786*^9}, 3.690793064576003*^9,
3.690821250330285*^9, 3.690822009725953*^9, 3.6908221207628174`*^9,
3.691054433664847*^9}]
}, Open ]],
Cell[CellGroupData[{
Cell[BoxData[{
RowBox[{
RowBox[{
RowBox[{"hingeLoss", "[",
RowBox[{"x_", ",", "p_", ",", "class_"}], "]"}], ":=",
RowBox[{"If", "[",
RowBox[{
RowBox[{"class", "\[Equal]", "1"}], ",",
RowBox[{"Max", "[",
RowBox[{"0", ",",
RowBox[{"x", "-", "p"}]}], "]"}], ",",
RowBox[{"Max", "[",
RowBox[{"0", ",",
RowBox[{"p", "-", "x"}]}], "]"}]}], "]"}]}],
";"}], "\[IndentingNewLine]",
RowBox[{
RowBox[{"lossName", "=", "\"\<Hinge Loss\>\""}],
";"}], "\[IndentingNewLine]",
RowBox[{"Show", "[",
RowBox[{
RowBox[{"Plot", "[",
RowBox[{
RowBox[{"{",
RowBox[{
RowBox[{
RowBox[{"applyLossForPlt", "[",
RowBox[{"x", ",", "points1", ",", "1", ",", "hingeLoss"}], "]"}],
"+",
RowBox[{"applyLossForPlt", "[",
RowBox[{"x", ",", "points2", ",", "2", ",", "hingeLoss"}], "]"}]}],
",", "0"}], "}"}], ",",
RowBox[{"{",
RowBox[{"x", ",",
RowBox[{"-", "3"}], ",", "3"}], "}"}], ",",
RowBox[{"PlotStyle", "\[Rule]",
RowBox[{"{",
RowBox[{"Blue", ",", "White"}], "}"}]}], ",", " ",
RowBox[{"Exclusions", "\[Rule]", "None"}], ",", " ",
RowBox[{"PlotLabel", "\[Rule]",
RowBox[{"lossName", "<>", "\"\< example\>\""}]}], ",",
RowBox[{"AxesLabel", "\[Rule]",
RowBox[{"{",
RowBox[{"x", ",", "Loss"}], "}"}]}]}], "]"}], ",",
RowBox[{"ListPlot", "[",
RowBox[{
RowBox[{"{",
RowBox[{"points1", ",", " ", "points2"}], "}"}], ",",
RowBox[{"PlotStyle", "\[Rule]",
RowBox[{"PointSize", "[", "0.02", "]"}]}]}], "]"}]}],
"]"}], "\[IndentingNewLine]",
RowBox[{"Plot", "[",
RowBox[{
RowBox[{"hingeLoss", "[",
RowBox[{"x", ",", "0", ",", "1"}], "]"}], ",",
RowBox[{"{",
RowBox[{"x", ",",
RowBox[{"-", "2"}], ",", "2"}], "}"}], ",",
RowBox[{"PlotLabel", "\[Rule]", "lossName"}], ",",
RowBox[{"AxesLabel", "\[Rule]",
RowBox[{"{",
RowBox[{"\"\<Distance to Point\>\"", ",", "Loss"}], "}"}]}]}],
"]"}]}], "Input",
CellChangeTimes->{{3.6907506203929105`*^9, 3.690750624115899*^9}, {
3.6907508706211247`*^9, 3.6907509553422623`*^9}, 3.6907511202654576`*^9, {
3.6907511697877855`*^9, 3.690751197002852*^9}, {3.6907513126483808`*^9,
3.6907513234071407`*^9}, {3.6907515344767947`*^9,
3.6907515848767633`*^9}, {3.6907516337000103`*^9,
3.6907516350004854`*^9}, {3.6907517166581097`*^9, 3.690751721876223*^9}, {
3.690751780769692*^9, 3.6907517812703457`*^9}, {3.6907519698618145`*^9,
3.690751971859923*^9}, {3.6907521961570187`*^9, 3.6907522478760986`*^9}, {
3.6907522982508855`*^9, 3.6907523925218244`*^9}, {3.69075247761784*^9,
3.690752478170944*^9}, {3.6907904131997814`*^9, 3.6907904188647995`*^9}, {
3.6907905078320503`*^9, 3.6907905084166417`*^9}, {3.690790555595781*^9,
3.6907905567589197`*^9}, {3.690792217307109*^9, 3.690792242106127*^9}, {
3.6907930318132515`*^9, 3.6907930371132708`*^9}, 3.690793073547558*^9,
3.6908212665221767`*^9}],
Cell[BoxData[
GraphicsBox[{{{}, {},
{RGBColor[0, 0, 1], AbsoluteThickness[1.6], Opacity[1.],
LineBox[CompressedData["
1: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
ANn3Cjo=
"]]},
{GrayLevel[1], AbsoluteThickness[1.6], Opacity[1.],
LineBox[CompressedData["
1:eJxN1F1IU3EYBvCzTadlmaILtTLnspDlB1pkKbnGLC0V5qhMTMtvpOxU1nSm
MFNMFBxDDbZS0QvnRO1LJVlu6rINNYNBKIZ4NJOZQ5lzW25pBfr+e+Hh4Xf1
3L30jHtJ2WQMwxL+5l9n9ohWt7edVNjOqeqOHI+0Ix/G5amPrchfQ9XalTXk
2DeWtmkCObg3LfntCLJ14ORQThVy7ahGPOGK7OdD4Nw9VDAexeMG0hzBt9rN
F8cCHMCKRAGf4U8B69TX5ZMhZPBVPs0rLJAELnrgIE07gYG7iySswbtbyl2z
K1dUzCw7ODHEGHOhdBMszU/ZWG62gpW+T31IEjM4BU/nKPtM4LFz9gW93Agu
a7R1yWRrYO7Rm798xQYwj8Ip/yjUgzn+Yk9F3yKYCLstrpEQYMr4spbKmAEz
ZISwUaoDR0y+o79aGAXXL+1rmGjoBpfH5Lq1hHZF79pEe6hML/8Ezul/Lu/k
6sDFWGHTo4oZMJucWcjXEOAb2mNuWdWLYHVTtoov1YNZZ6NzI/MM4BdTHak/
RWvgYel6XXyjEYwPVQ86FpvAsQXp/KQKM7ijVMi03LGCNTZWr1P8JtidxNJ2
8uzg+byaqfaILfAq0+X9IQbG2vV4SjPuHUACGwamA0ZoZHDbbHhLnw8F/DL8
lNc1VwewOZpSwvyN/P2AsfUyRgUfdK/S0IzIdWcY9xPMyM5pSu/KTWSb3JJv
IjuB5zh5+3UeyB1FcUmi08hRcy7f9hYj91JlFexS5OAgTpBAiEwXPCnTVyNT
PQ1+Ggnyl0ufsysVyHEF+a4fVMjD9dR+k/q/PeK8c9YEsqSkR86eRfZovcIT
zCPXapZsr38gl9H8EuiryJZIxUbyOjKekdwksiAvPzNd1NiQd/4X+A/w8ilf
"]]}}, {{}, {{},
{RGBColor[0.368417, 0.506779, 0.709798], PointSize[0.02],
AbsoluteThickness[1.6],
PointBox[{{-0.09999999999999998, 0.}, {0.5, 0.}, {1.0999999999999999`,
0.}, {1.7, 0.}, {2.3, 0.}}]},
{RGBColor[0.880722, 0.611041, 0.142051], PointSize[0.02],
AbsoluteThickness[1.6],
PointBox[{{0.30000000000000004`, 0.}, {-0.3999999999999999,
0.}, {-1.0999999999999996`, 0.}, {-1.7999999999999998`, 0.}, {-2.5,
0.}}]}, {}}, {}}},
AspectRatio->NCache[GoldenRatio^(-1), 0.6180339887498948],
Axes->{True, True},
AxesLabel->{
FormBox["x", TraditionalForm],
FormBox["Loss", TraditionalForm]},
AxesOrigin->{0, 0},
DisplayFunction->Identity,
Frame->{{False, False}, {False, False}},
FrameLabel->{{None, None}, {None, None}},
FrameTicks->{{Automatic, Automatic}, {Automatic, Automatic}},
GridLines->{None, None},
GridLinesStyle->Directive[
GrayLevel[0.5, 0.4]],
Method->{
"DefaultBoundaryStyle" -> Automatic, "DefaultMeshStyle" ->
AbsolutePointSize[6], "ScalingFunctions" -> None},
PlotLabel->FormBox["\"Hinge Loss example\"", TraditionalForm],
PlotRange->{{-3, 3}, {0., 9.499999387755103}},
PlotRangeClipping->True,
PlotRangePadding->{{
Scaled[0.02],
Scaled[0.02]}, {
Scaled[0.05],
Scaled[0.05]}},
Ticks->{Automatic, Automatic}]], "Output",
CellChangeTimes->{
3.6907515418301935`*^9, 3.690751585724371*^9, {3.690751635663901*^9,
3.690751689470607*^9}, 3.690751722508381*^9, 3.6907517826713133`*^9,
3.69075197239196*^9, 3.690752393869375*^9, 3.69075272010596*^9,
3.6907528946732664`*^9, {3.6907904106779947`*^9, 3.6907904201808643`*^9},
3.6907904985807133`*^9, 3.690790557281128*^9, 3.6907906516436677`*^9,
3.6907912799422746`*^9, 3.690791386456688*^9, {3.6907922152596855`*^9,
3.6907922432758446`*^9}, 3.6907924034496574`*^9, 3.6907926864353437`*^9, {
3.6907930296264763`*^9, 3.6907930380823455`*^9}, 3.690793077434612*^9,
3.6908212672235928`*^9, 3.690822032335014*^9, 3.6910544354999228`*^9}],
Cell[BoxData[
GraphicsBox[{{{}, {},
{RGBColor[0.368417, 0.506779, 0.709798], AbsoluteThickness[1.6], Opacity[
1.], LineBox[CompressedData["
1:eJxTTMoPSmViYGBQA2IQrWcv9ur////7GaAgJEu94+cvBL9qqoXa568I/vHX
UUnPXiP4CTPm3zpzHcGf+FHj9Mz1CP6XxdZrjOMR/F0ciXnp+/7B+fVnr70+
mPgXzn+5VFLcXOYPnK9134OT/+4vOH+J8OIvN5t+wvmHo0/17rf/AefLzJdR
mPHwG5zv7RxdebnzK5wv/zutQdPzC5yvu25uQ9HbT3D+g5KFetdWfITzM+dM
XDwn6wOcH1EXqbxG6R2cr/FaMzpk3ms4P9svoPXR4xdwflSxv62Z2TM4f/L+
FwH7tz2G8+2ZboTpMT6E87NuHCpY+vkOnG8zs1FiV8V1OD/j7sfbkeKX4Hz/
BzprT6icgvPN9s++/qplH5xv+SE2+V7yEjg/Z9eSl+VHFsP581pe5wuqIvjM
kpU1Ls8WwvkzmzW0Qy/Og/MPqE3tf3trCoK/8Czv6cO+OPkACje2Sg==
"]], LineBox[CompressedData["
1:eJxFxVtIUwEYAOBVzoV2o5ohIjm1skkW0tQ5Y2FH88RU0qRVsnTVKkJSwy6D
cqWNhNHQYNSGFDvbmk6n5sIlO2iJzC5gbOoSpl0GdhnM0mVq5aqH/v/h4+NI
zxedWs5gMAR//bteL/to/yEW/j/GmruWqJbBcmbFaMnuSniqO41q2FkDF0sZ
VTRXDmveksqmdTdgg8g+2bnUBCfXTUf011BwqWDDyvZ4A6yaTWNqh/HAiWuh
C9tN8CNidXDbhBnOCE+eUBNWWE90ezoabHCHM9BSK+6DafJFRuaz57C/VX+2
QOyCm9tTdMHHHthRrmTv6vHC8o33RgvXv4dfvR4hXFofXPUyfas6ago2DBNs
2dAnWNXWY2aJ/PCyOyPkADMAb2qxOA15X+Gxh4oE5q1v8DELV1n9YQbO0rEE
g1uCsE/9ZC6x/jtsS6j1c7xz8DvqUmpY7DzsSspRzF5egDdrc+KG6EVY03pk
gf/rJ+zuyx63l/yGzz2VRMbeXYKl98c1jmb86NVD8aUUnsc/wNdZ8cQu3uno
Qdz7YNUAewYXKXrla0QheJ+EF249iGdmdTbmH8aT5o1mlRQPq2wci7iC08fP
pLJMuG2PjzZZ8LYYCZnbhWs9xWU3HfjFQuHtFW68YkdvNPUGPxnJM2ZP4kVO
ruP6Z5w0GvdzpvG9dXHu/iCeXq6TlC3iKcKoL6EQ/gdyrtwA
"]]}, {}}, {{}, {}, {}}},
AspectRatio->NCache[GoldenRatio^(-1), 0.6180339887498948],
Axes->{True, True},
AxesLabel->{
FormBox["\"Distance to Point\"", TraditionalForm],
FormBox["Loss", TraditionalForm]},
AxesOrigin->{0, 0},
DisplayFunction->Identity,
Frame->{{False, False}, {False, False}},
FrameLabel->{{None, None}, {None, None}},
FrameTicks->{{Automatic, Automatic}, {Automatic, Automatic}},
GridLines->{None, None},
GridLinesStyle->Directive[
GrayLevel[0.5, 0.4]],
Method->{
"DefaultBoundaryStyle" -> Automatic, "DefaultMeshStyle" ->
AbsolutePointSize[6], "ScalingFunctions" -> None},
PlotLabel->FormBox["\"Hinge Loss\"", TraditionalForm],
PlotRange->{{-2, 2}, {0., 1.999999918367347}},
PlotRangeClipping->True,
PlotRangePadding->{{
Scaled[0.02],
Scaled[0.02]}, {
Scaled[0.05],
Scaled[0.05]}},
Ticks->{Automatic, Automatic}]], "Output",
CellChangeTimes->{
3.6907515418301935`*^9, 3.690751585724371*^9, {3.690751635663901*^9,
3.690751689470607*^9}, 3.690751722508381*^9, 3.6907517826713133`*^9,
3.69075197239196*^9, 3.690752393869375*^9, 3.69075272010596*^9,
3.6907528946732664`*^9, {3.6907904106779947`*^9, 3.6907904201808643`*^9},
3.6907904985807133`*^9, 3.690790557281128*^9, 3.6907906516436677`*^9,
3.6907912799422746`*^9, 3.690791386456688*^9, {3.6907922152596855`*^9,
3.6907922432758446`*^9}, 3.6907924034496574`*^9, 3.6907926864353437`*^9, {
3.6907930296264763`*^9, 3.6907930380823455`*^9}, 3.690793077434612*^9,
3.6908212672235928`*^9, 3.690822032335014*^9, 3.6910544356140423`*^9}]
}, Open ]],
Cell[CellGroupData[{
Cell[BoxData[{
RowBox[{
RowBox[{
RowBox[{"hingeLossShift", "[", "shift_", "]"}], ":=",
RowBox[{"Function", "[",
RowBox[{
RowBox[{"{",
RowBox[{"x", ",", "p", ",", "class"}], "}"}], ",",
RowBox[{"If", "[",
RowBox[{
RowBox[{"class", "\[Equal]", "1"}], ",",
RowBox[{"Max", "[",
RowBox[{"0", ",",
RowBox[{"x", "-", "p", "+", "shift"}]}], "]"}], ",",
RowBox[{"Max", "[",
RowBox[{"0", ",",
RowBox[{"p", "-", "x", "+", "shift"}]}], "]"}]}], "]"}]}], "]"}]}],
";"}], "\[IndentingNewLine]",
RowBox[{
RowBox[{"sft", "=", "0.4"}], ";"}], "\[IndentingNewLine]",
RowBox[{
RowBox[{"lossName", "=",
RowBox[{"\"\<Hinge Loss with Shift = \>\"", " ", "<>",
RowBox[{"ToString", "[", "sft", "]"}]}]}], ";"}], "\[IndentingNewLine]",
RowBox[{"SetDirectory", "[",
RowBox[{"NotebookDirectory", "[", "]"}], "]"}], "\[IndentingNewLine]",
RowBox[{"Show", "[",
RowBox[{
RowBox[{"Plot", "[",
RowBox[{
RowBox[{"{",
RowBox[{
RowBox[{
RowBox[{"applyLossForPlt", "[",
RowBox[{"x", ",", "points1", ",", "1", ",",
RowBox[{"hingeLossShift", "[", "sft", "]"}]}], "]"}], "+",
RowBox[{"applyLossForPlt", "[",
RowBox[{"x", ",", "points2", ",", "2", ",",
RowBox[{"hingeLossShift", "[", "sft", "]"}]}], "]"}]}], " ", ",",
"0"}], "}"}], ",",
RowBox[{"{",
RowBox[{"x", ",",
RowBox[{"-", "3"}], ",", "3"}], "}"}], ",",
RowBox[{"PlotStyle", "\[Rule]",
RowBox[{"{",
RowBox[{"Blue", ",", "White"}], "}"}]}], ",",
RowBox[{"Exclusions", "\[Rule]", "None"}], ",", " ",
RowBox[{"PlotLabel", "\[Rule]",
RowBox[{"lossName", "<>", "\"\< example\>\""}]}], ",",
RowBox[{"AxesLabel", "\[Rule]",
RowBox[{"{",
RowBox[{"x", ",", "Loss"}], "}"}]}]}], "]"}], ",",
RowBox[{"ListPlot", "[",
RowBox[{
RowBox[{"{",
RowBox[{"points1", ",", " ", "points2"}], "}"}], ",",
RowBox[{"PlotStyle", "\[Rule]",
RowBox[{"PointSize", "[", "0.02", "]"}]}]}], "]"}]}],
"]"}], "\[IndentingNewLine]",
RowBox[{"Plot", "[",
RowBox[{
RowBox[{
RowBox[{"hingeLossShift", "[", "sft", "]"}], "[",
RowBox[{"x", ",", "0", ",", "1"}], "]"}], ",",
RowBox[{"{",
RowBox[{"x", ",",
RowBox[{"-", "2"}], ",", "2"}], "}"}], ",",
RowBox[{"PlotLabel", "\[Rule]", "lossName"}], ",",
RowBox[{"AxesLabel", "\[Rule]",
RowBox[{"{",
RowBox[{"\"\<Distance to Point\>\"", ",", "Loss"}], "}"}]}]}],
"]"}], "\[IndentingNewLine]"}], "Input",
CellChangeTimes->{{3.690752473099066*^9, 3.690752561154684*^9}, {
3.6907525941426272`*^9, 3.6907527133022265`*^9}, {3.6907527972106333`*^9,
3.690752820205948*^9}, {3.690752881769766*^9, 3.690752886771574*^9}, {
3.6907905610831523`*^9, 3.690790586264638*^9}, {3.6907906204457846`*^9,
3.690790620508231*^9}, {3.6907906590788918`*^9, 3.6907906620954313`*^9}, {
3.6907912927025433`*^9, 3.6907913001241217`*^9}, 3.6907920735034447`*^9, {
3.690792104521962*^9, 3.6907921798060036`*^9}, {3.6907924229380713`*^9,
3.69079245003621*^9}, {3.690793086722348*^9, 3.6907931187724147`*^9},
3.6908212742568703`*^9, {3.6908214981718884`*^9, 3.6908215420743084`*^9}, {
3.690821629799026*^9, 3.690821687120576*^9}, {3.690821726797206*^9,
3.6908218109974346`*^9}, {3.690821847562481*^9, 3.6908219156685734`*^9}, {
3.69082204477932*^9, 3.6908220500460176`*^9}, {3.6908221316497545`*^9,
3.6908221664536467`*^9}, {3.691054466100763*^9, 3.6910545213300877`*^9}, {
3.691054585912099*^9, 3.6910547009285913`*^9}}],
Cell[BoxData["\<\"C:\\\\Users\\\\Hendrik\\\\Dropbox\\\\ML-Presentation\"\>"], \
"Output",
CellChangeTimes->{{3.6907525271821485`*^9, 3.69075256157046*^9}, {
3.690752614671867*^9, 3.6907527138022346`*^9}, 3.6907528212069845`*^9,
3.690752896796974*^9, 3.690790590079266*^9, 3.6907906211930847`*^9, {
3.6907906552618103`*^9, 3.690790662611157*^9}, {3.690791287083647*^9,
3.6907913006557817`*^9}, 3.690791388758895*^9, 3.6907921182974277`*^9, {
3.6907921510020905`*^9, 3.6907921806009674`*^9}, {3.6907924185009804`*^9,
3.690792450436116*^9}, 3.6907926920234632`*^9, 3.6907930877070055`*^9,
3.690793119541599*^9, 3.6908212748021593`*^9, 3.690821547504118*^9, {
3.6908216646612062`*^9, 3.690821688710867*^9}, {3.6908217477627883`*^9,
3.690821811777695*^9}, {3.6908218780859833`*^9, 3.6908219162614965`*^9},
3.690822046477078*^9, {3.6908221382644577`*^9, 3.690822167156937*^9},
3.6910544427318535`*^9, {3.6910544842836094`*^9, 3.6910545221956935`*^9}, {
3.6910545917014055`*^9, 3.691054701638246*^9}}],
Cell[BoxData[
GraphicsBox[{{{}, {},
{RGBColor[0, 0, 1], AbsoluteThickness[1.6], Opacity[1.],
LineBox[CompressedData["
1:eJxFmHk01N//x8c6thi7tFlHShKK1tdNKVEKiSRJJXvSlKJIhYrQniWlZE3J
vt9JiCJCypJ9RpJ1xlhmTL/5nvM5/d7/3PM4z+e573vPuff5uvequpyxPsVP
IBD0+AiE/7Un3saM//1LpG7ppIz8/UtG1Ohl5M0cIjWbkTy+h01GS30zHC/M
EqnqEt8Y91lk1KZXVfdngkgV37qeozVKRmY5My/b+4jUjsRpiQMdZKSb72Sf
+4FIveRyQfd5HhnNlui8dw0nUguG/c8idzKKrKm91yBJpK6dDZi52qyJVJT7
fK1EhalpzosbXkVoIN8tNlba8kLUSPG0V+cc1JFzKmvXZ01BqrFVntK2tWqo
zDLAX11NgOrZb2/7+rcKaqmyy2hcy08leXVqh/uvQLb+8kr62nxU24z1Wxbo
S9FFP8F4Jy0C1c7iTIJ6vjJ6czEOVXhzsXwPIVWjVQmZhP6hrj7Jwekj1lr3
Pikgy7VTptuvzOP8h/avUwfkULyHw/TvZ7OY/yv1iJWwLPJaNL6v5fEsbj1n
m7eRK4O2ZF9PKY2exckKvyXUWDKoe/q1XWTwLDZ1lK2YoskglZC/xWuOzeKb
Q6dUHlTLoOTHyUG+y2exBFeM1nZDBmVVjRFZCTNYbrWtj6OADAo6fd25+8EM
pjUM1+xkSyNLMaXimsgZnO8btGINQxpN7N/u8fjyDLYvSG1a6JdG+p33640d
Z3Ds9nn9Z5XSqGDS+G7gkhm8zP7ZTF+INMLLryvzxbEwOXT46mmCNBKOWSVL
ucfC3qyYSx2zJLSXr1l86DYL55029ts3SUI/BlQW6gNZGJmHnzDoJ6HltrXT
QGHh0FJdx5QOEjpVc2Ysx4uF63XaDi5uIaGptIqeJ0dZuID7JVW/hoSMlV1/
iB9i4cz7e/tvUkkoOGLR1yBLFn6+8tPSnhISkvBxrDwJLHzbuvpuxFsSIhvM
J+upsvDRlNLAwSckFLn77FrntGmcMf1A3WwbCTn4HtuJC5j45spo+nIZKfR5
E2dgOGMK69vPf3MiSKCgR+ystLQJXHF8TnCBI4KsVhydW35vFAd9F9r8eI0w
shHYea06ZBgH8+eqHlQVQF8233GM9RvGXX/chRjyAsic0rbB+8Qw3vhdZfiu
mAAyobmNyJkOY0ZmVHYjgx/pf7xz8KTIMD5t6wEWNfyIFPGdLBD9C+9LUz1q
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
+j/Oy3Th
"]]},
{GrayLevel[1], AbsoluteThickness[1.6], Opacity[1.],
LineBox[CompressedData["
1:eJxN1F1IU3EYBvCzTadlmaILtTLnspDlB1pkKbnGLC0V5qhMTMtvpOxU1nSm
MFNMFBxDDbZS0QvnRO1LJVlu6rINNYNBKIZ4NJOZQ5lzW25pBfr+e+Hh4Xf1
3L30jHtJ2WQMwxL+5l9n9ohWt7edVNjOqeqOHI+0Ix/G5amPrchfQ9XalTXk
2DeWtmkCObg3LfntCLJ14ORQThVy7ahGPOGK7OdD4Nw9VDAexeMG0hzBt9rN
F8cCHMCKRAGf4U8B69TX5ZMhZPBVPs0rLJAELnrgIE07gYG7iySswbtbyl2z
K1dUzCw7ODHEGHOhdBMszU/ZWG62gpW+T31IEjM4BU/nKPtM4LFz9gW93Agu
a7R1yWRrYO7Rm798xQYwj8Ip/yjUgzn+Yk9F3yKYCLstrpEQYMr4spbKmAEz
ZISwUaoDR0y+o79aGAXXL+1rmGjoBpfH5Lq1hHZF79pEe6hML/8Ezul/Lu/k
6sDFWGHTo4oZMJucWcjXEOAb2mNuWdWLYHVTtoov1YNZZ6NzI/MM4BdTHak/
RWvgYel6XXyjEYwPVQ86FpvAsQXp/KQKM7ijVMi03LGCNTZWr1P8JtidxNJ2
8uzg+byaqfaILfAq0+X9IQbG2vV4SjPuHUACGwamA0ZoZHDbbHhLnw8F/DL8
lNc1VwewOZpSwvyN/P2AsfUyRgUfdK/S0IzIdWcY9xPMyM5pSu/KTWSb3JJv
IjuB5zh5+3UeyB1FcUmi08hRcy7f9hYj91JlFexS5OAgTpBAiEwXPCnTVyNT
PQ1+Ggnyl0ufsysVyHEF+a4fVMjD9dR+k/q/PeK8c9YEsqSkR86eRfZovcIT
zCPXapZsr38gl9H8EuiryJZIxUbyOjKekdwksiAvPzNd1NiQd/4X+A/w8ilf
"]]}}, {{}, {{},