From ea3e2d621dbdc2625a4b20abc3d9d618785d97c8 Mon Sep 17 00:00:00 2001 From: mhjensen Date: Tue, 6 Nov 2018 14:59:09 +0100 Subject: [PATCH] almost there, svm misses code for real data --- doc/pub/svm/html/._svm-bs000.html | 29 ++- doc/pub/svm/html/._svm-bs001.html | 39 ++- doc/pub/svm/html/._svm-bs002.html | 29 ++- doc/pub/svm/html/._svm-bs003.html | 29 ++- doc/pub/svm/html/._svm-bs004.html | 29 ++- doc/pub/svm/html/._svm-bs005.html | 29 ++- doc/pub/svm/html/._svm-bs006.html | 29 ++- doc/pub/svm/html/._svm-bs007.html | 29 ++- doc/pub/svm/html/._svm-bs008.html | 29 ++- doc/pub/svm/html/._svm-bs009.html | 29 ++- doc/pub/svm/html/._svm-bs010.html | 29 ++- doc/pub/svm/html/._svm-bs011.html | 29 ++- doc/pub/svm/html/._svm-bs012.html | 29 ++- doc/pub/svm/html/._svm-bs013.html | 29 ++- doc/pub/svm/html/._svm-bs014.html | 29 ++- doc/pub/svm/html/._svm-bs015.html | 30 ++- doc/pub/svm/html/._svm-bs016.html | 29 ++- doc/pub/svm/html/._svm-bs017.html | 29 ++- doc/pub/svm/html/._svm-bs018.html | 46 +++- doc/pub/svm/html/._svm-bs019.html | 62 ++++- doc/pub/svm/html/._svm-bs020.html | 57 ++++- doc/pub/svm/html/._svm-bs021.html | 53 +++- doc/pub/svm/html/._svm-bs022.html | 58 +++-- doc/pub/svm/html/._svm-bs023.html | 267 +++++++++++++++++++ doc/pub/svm/html/._svm-bs024.html | 215 ++++++++++++++++ doc/pub/svm/html/._svm-bs025.html | 195 ++++++++++++++ doc/pub/svm/html/svm-bs.html | 29 ++- doc/pub/svm/html/svm-reveal.html | 243 ++++++++++++++---- doc/pub/svm/html/svm-solarized.html | 247 +++++++++++++----- doc/pub/svm/html/svm.html | 247 +++++++++++++----- doc/pub/svm/ipynb/ipynb-svm-src.tar.gz | Bin 208 -> 208 bytes doc/pub/svm/ipynb/svm.ipynb | 341 +++++++++++++++++++++---- doc/pub/svm/pdf/svm-minted.pdf | Bin 322574 -> 333426 bytes doc/src/SupportVMachines/svm.do.txt | 77 ++++-- 34 files changed, 2170 insertions(+), 500 deletions(-) create mode 100644 doc/pub/svm/html/._svm-bs023.html create mode 100644 doc/pub/svm/html/._svm-bs024.html create mode 100644 doc/pub/svm/html/._svm-bs025.html diff --git a/doc/pub/svm/html/._svm-bs000.html b/doc/pub/svm/html/._svm-bs000.html index 85f83e77f..e08dfbbfe 100644 --- a/doc/pub/svm/html/._svm-bs000.html +++ b/doc/pub/svm/html/._svm-bs000.html @@ -61,14 +61,19 @@ Automatically generated HTML file from DocOnce source ('Soft optmization problem', 2, None, '___sec15'), ('Kernels and non-linearity', 2, None, '___sec16'), ('The equations', 2, None, '___sec17'), - ('Different kernels', 2, None, '___sec18'), - ('Quadratic coefficient matrix', 2, None, '___sec19'), - ("Mercer's theorem", 2, None, '___sec20'), + ('The problem to solve', 2, None, '___sec18'), + ("Different kernels and Mercer's theorem", 2, None, '___sec19'), ('Mathematical optimization of convex functions', 2, None, - '___sec21'), - ('How do we solve these problems', 2, None, '___sec22')]} + '___sec20'), + ('How do we solve these problems?', 2, None, '___sec21'), + ('A simplex example', 2, None, '___sec22'), + ('Back to the more realistic cases', 2, None, '___sec23'), + ('Multiclass problems and regression with SVMs', + 2, + None, + '___sec24')]} end of tocinfo --> @@ -124,11 +129,13 @@ MathJax.Hub.Config({
  • Soft optmization problem
  • Kernels and non-linearity
  • The equations
  • -
  • Different kernels
  • -
  • Quadratic coefficient matrix
  • -
  • Mercer's theorem
  • -
  • Mathematical optimization of convex functions
  • -
  • How do we solve these problems
  • +
  • The problem to solve
  • +
  • Different kernels and Mercer's theorem
  • +
  • Mathematical optimization of convex functions
  • +
  • How do we solve these problems?
  • +
  • A simplex example
  • +
  • Back to the more realistic cases
  • +
  • Multiclass problems and regression with SVMs
  • @@ -187,7 +194,7 @@ MathJax.Hub.Config({
  • 9
  • 10
  • ...
  • -
  • 24
  • +
  • 26
  • »
  • diff --git a/doc/pub/svm/html/._svm-bs001.html b/doc/pub/svm/html/._svm-bs001.html index 37297f5b7..399026d80 100644 --- a/doc/pub/svm/html/._svm-bs001.html +++ b/doc/pub/svm/html/._svm-bs001.html @@ -61,14 +61,19 @@ Automatically generated HTML file from DocOnce source ('Soft optmization problem', 2, None, '___sec15'), ('Kernels and non-linearity', 2, None, '___sec16'), ('The equations', 2, None, '___sec17'), - ('Different kernels', 2, None, '___sec18'), - ('Quadratic coefficient matrix', 2, None, '___sec19'), - ("Mercer's theorem", 2, None, '___sec20'), + ('The problem to solve', 2, None, '___sec18'), + ("Different kernels and Mercer's theorem", 2, None, '___sec19'), ('Mathematical optimization of convex functions', 2, None, - '___sec21'), - ('How do we solve these problems', 2, None, '___sec22')]} + '___sec20'), + ('How do we solve these problems?', 2, None, '___sec21'), + ('A simplex example', 2, None, '___sec22'), + ('Back to the more realistic cases', 2, None, '___sec23'), + ('Multiclass problems and regression with SVMs', + 2, + None, + '___sec24')]} end of tocinfo --> @@ -124,11 +129,13 @@ MathJax.Hub.Config({
  • Soft optmization problem
  • Kernels and non-linearity
  • The equations
  • -
  • Different kernels
  • -
  • Quadratic coefficient matrix
  • -
  • Mercer's theorem
  • -
  • Mathematical optimization of convex functions
  • -
  • How do we solve these problems
  • +
  • The problem to solve
  • +
  • Different kernels and Mercer's theorem
  • +
  • Mathematical optimization of convex functions
  • +
  • How do we solve these problems?
  • +
  • A simplex example
  • +
  • Back to the more realistic cases
  • +
  • Multiclass problems and regression with SVMs
  • @@ -166,8 +173,14 @@ classification problems) of variables. It is also used for regression problems.

    -With SVMs we distinguish between hard margin and soft margins. The latter introduces a so-called softening parameter to be discussed below. -We distinguish also between linear and non-linear approaches. The latter are the most frequent ones since it is rather unlikely that we can separate classes easily by say straight lines. +With SVMs we distinguish between hard margin and soft margins. The +latter introduces a so-called softening parameter to be discussed +below. We distinguish also between linear and non-linear +approaches. The latter are the most frequent ones since it is rather +unlikely that we can separate classes easily by say straight lines. + +

    +Note: several figures are missing. They will be added shortly. To run the codes, use the jupyter notebook

    @@ -186,7 +199,7 @@ We distinguish also between linear and non-linear approaches. The latter are the

  • 10
  • 11
  • ...
  • -
  • 24
  • +
  • 26
  • »
  • diff --git a/doc/pub/svm/html/._svm-bs002.html b/doc/pub/svm/html/._svm-bs002.html index 5db305100..07b5be673 100644 --- a/doc/pub/svm/html/._svm-bs002.html +++ b/doc/pub/svm/html/._svm-bs002.html @@ -61,14 +61,19 @@ Automatically generated HTML file from DocOnce source ('Soft optmization problem', 2, None, '___sec15'), ('Kernels and non-linearity', 2, None, '___sec16'), ('The equations', 2, None, '___sec17'), - ('Different kernels', 2, None, '___sec18'), - ('Quadratic coefficient matrix', 2, None, '___sec19'), - ("Mercer's theorem", 2, None, '___sec20'), + ('The problem to solve', 2, None, '___sec18'), + ("Different kernels and Mercer's theorem", 2, None, '___sec19'), ('Mathematical optimization of convex functions', 2, None, - '___sec21'), - ('How do we solve these problems', 2, None, '___sec22')]} + '___sec20'), + ('How do we solve these problems?', 2, None, '___sec21'), + ('A simplex example', 2, None, '___sec22'), + ('Back to the more realistic cases', 2, None, '___sec23'), + ('Multiclass problems and regression with SVMs', + 2, + None, + '___sec24')]} end of tocinfo --> @@ -124,11 +129,13 @@ MathJax.Hub.Config({
  • Soft optmization problem
  • Kernels and non-linearity
  • The equations
  • -
  • Different kernels
  • -
  • Quadratic coefficient matrix
  • -
  • Mercer's theorem
  • -
  • Mathematical optimization of convex functions
  • -
  • How do we solve these problems
  • +
  • The problem to solve
  • +
  • Different kernels and Mercer's theorem
  • +
  • Mathematical optimization of convex functions
  • +
  • How do we solve these problems?
  • +
  • A simplex example
  • +
  • Back to the more realistic cases
  • +
  • Multiclass problems and regression with SVMs
  • @@ -177,7 +184,7 @@ circles.
  • 11
  • 12
  • ...
  • -
  • 24
  • +
  • 26
  • »
  • diff --git a/doc/pub/svm/html/._svm-bs003.html b/doc/pub/svm/html/._svm-bs003.html index 109fd8cb1..bb33133ca 100644 --- a/doc/pub/svm/html/._svm-bs003.html +++ b/doc/pub/svm/html/._svm-bs003.html @@ -61,14 +61,19 @@ Automatically generated HTML file from DocOnce source ('Soft optmization problem', 2, None, '___sec15'), ('Kernels and non-linearity', 2, None, '___sec16'), ('The equations', 2, None, '___sec17'), - ('Different kernels', 2, None, '___sec18'), - ('Quadratic coefficient matrix', 2, None, '___sec19'), - ("Mercer's theorem", 2, None, '___sec20'), + ('The problem to solve', 2, None, '___sec18'), + ("Different kernels and Mercer's theorem", 2, None, '___sec19'), ('Mathematical optimization of convex functions', 2, None, - '___sec21'), - ('How do we solve these problems', 2, None, '___sec22')]} + '___sec20'), + ('How do we solve these problems?', 2, None, '___sec21'), + ('A simplex example', 2, None, '___sec22'), + ('Back to the more realistic cases', 2, None, '___sec23'), + ('Multiclass problems and regression with SVMs', + 2, + None, + '___sec24')]} end of tocinfo --> @@ -124,11 +129,13 @@ MathJax.Hub.Config({
  • Soft optmization problem
  • Kernels and non-linearity
  • The equations
  • -
  • Different kernels
  • -
  • Quadratic coefficient matrix
  • -
  • Mercer's theorem
  • -
  • Mathematical optimization of convex functions
  • -
  • How do we solve these problems
  • +
  • The problem to solve
  • +
  • Different kernels and Mercer's theorem
  • +
  • Mathematical optimization of convex functions
  • +
  • How do we solve these problems?
  • +
  • A simplex example
  • +
  • Back to the more realistic cases
  • +
  • Multiclass problems and regression with SVMs
  • @@ -187,7 +194,7 @@ $$
  • 12
  • 13
  • ...
  • -
  • 24
  • +
  • 26
  • »
  • diff --git a/doc/pub/svm/html/._svm-bs004.html b/doc/pub/svm/html/._svm-bs004.html index bd6abfe12..b60f9cb67 100644 --- a/doc/pub/svm/html/._svm-bs004.html +++ b/doc/pub/svm/html/._svm-bs004.html @@ -61,14 +61,19 @@ Automatically generated HTML file from DocOnce source ('Soft optmization problem', 2, None, '___sec15'), ('Kernels and non-linearity', 2, None, '___sec16'), ('The equations', 2, None, '___sec17'), - ('Different kernels', 2, None, '___sec18'), - ('Quadratic coefficient matrix', 2, None, '___sec19'), - ("Mercer's theorem", 2, None, '___sec20'), + ('The problem to solve', 2, None, '___sec18'), + ("Different kernels and Mercer's theorem", 2, None, '___sec19'), ('Mathematical optimization of convex functions', 2, None, - '___sec21'), - ('How do we solve these problems', 2, None, '___sec22')]} + '___sec20'), + ('How do we solve these problems?', 2, None, '___sec21'), + ('A simplex example', 2, None, '___sec22'), + ('Back to the more realistic cases', 2, None, '___sec23'), + ('Multiclass problems and regression with SVMs', + 2, + None, + '___sec24')]} end of tocinfo --> @@ -124,11 +129,13 @@ MathJax.Hub.Config({
  • Soft optmization problem
  • Kernels and non-linearity
  • The equations
  • -
  • Different kernels
  • -
  • Quadratic coefficient matrix
  • -
  • Mercer's theorem
  • -
  • Mathematical optimization of convex functions
  • -
  • How do we solve these problems
  • +
  • The problem to solve
  • +
  • Different kernels and Mercer's theorem
  • +
  • Mathematical optimization of convex functions
  • +
  • How do we solve these problems?
  • +
  • A simplex example
  • +
  • Back to the more realistic cases
  • +
  • Multiclass problems and regression with SVMs
  • @@ -203,7 +210,7 @@ When we try to separate hyperplanes, if it exists, we can use it to construct a
  • 13
  • 14
  • ...
  • -
  • 24
  • +
  • 26
  • »
  • diff --git a/doc/pub/svm/html/._svm-bs005.html b/doc/pub/svm/html/._svm-bs005.html index 8c3337f06..58e847731 100644 --- a/doc/pub/svm/html/._svm-bs005.html +++ b/doc/pub/svm/html/._svm-bs005.html @@ -61,14 +61,19 @@ Automatically generated HTML file from DocOnce source ('Soft optmization problem', 2, None, '___sec15'), ('Kernels and non-linearity', 2, None, '___sec16'), ('The equations', 2, None, '___sec17'), - ('Different kernels', 2, None, '___sec18'), - ('Quadratic coefficient matrix', 2, None, '___sec19'), - ("Mercer's theorem", 2, None, '___sec20'), + ('The problem to solve', 2, None, '___sec18'), + ("Different kernels and Mercer's theorem", 2, None, '___sec19'), ('Mathematical optimization of convex functions', 2, None, - '___sec21'), - ('How do we solve these problems', 2, None, '___sec22')]} + '___sec20'), + ('How do we solve these problems?', 2, None, '___sec21'), + ('A simplex example', 2, None, '___sec22'), + ('Back to the more realistic cases', 2, None, '___sec23'), + ('Multiclass problems and regression with SVMs', + 2, + None, + '___sec24')]} end of tocinfo --> @@ -124,11 +129,13 @@ MathJax.Hub.Config({
  • Soft optmization problem
  • Kernels and non-linearity
  • The equations
  • -
  • Different kernels
  • -
  • Quadratic coefficient matrix
  • -
  • Mercer's theorem
  • -
  • Mathematical optimization of convex functions
  • -
  • How do we solve these problems
  • +
  • The problem to solve
  • +
  • Different kernels and Mercer's theorem
  • +
  • Mathematical optimization of convex functions
  • +
  • How do we solve these problems?
  • +
  • A simplex example
  • +
  • Back to the more realistic cases
  • +
  • Multiclass problems and regression with SVMs
  • @@ -189,7 +196,7 @@ for our data sample.
  • 14
  • 15
  • ...
  • -
  • 24
  • +
  • 26
  • »
  • diff --git a/doc/pub/svm/html/._svm-bs006.html b/doc/pub/svm/html/._svm-bs006.html index 2f72c0129..db52ab566 100644 --- a/doc/pub/svm/html/._svm-bs006.html +++ b/doc/pub/svm/html/._svm-bs006.html @@ -61,14 +61,19 @@ Automatically generated HTML file from DocOnce source ('Soft optmization problem', 2, None, '___sec15'), ('Kernels and non-linearity', 2, None, '___sec16'), ('The equations', 2, None, '___sec17'), - ('Different kernels', 2, None, '___sec18'), - ('Quadratic coefficient matrix', 2, None, '___sec19'), - ("Mercer's theorem", 2, None, '___sec20'), + ('The problem to solve', 2, None, '___sec18'), + ("Different kernels and Mercer's theorem", 2, None, '___sec19'), ('Mathematical optimization of convex functions', 2, None, - '___sec21'), - ('How do we solve these problems', 2, None, '___sec22')]} + '___sec20'), + ('How do we solve these problems?', 2, None, '___sec21'), + ('A simplex example', 2, None, '___sec22'), + ('Back to the more realistic cases', 2, None, '___sec23'), + ('Multiclass problems and regression with SVMs', + 2, + None, + '___sec24')]} end of tocinfo --> @@ -124,11 +129,13 @@ MathJax.Hub.Config({
  • Soft optmization problem
  • Kernels and non-linearity
  • The equations
  • -
  • Different kernels
  • -
  • Quadratic coefficient matrix
  • -
  • Mercer's theorem
  • -
  • Mathematical optimization of convex functions
  • -
  • How do we solve these problems
  • +
  • The problem to solve
  • +
  • Different kernels and Mercer's theorem
  • +
  • Mathematical optimization of convex functions
  • +
  • How do we solve these problems?
  • +
  • A simplex example
  • +
  • Back to the more realistic cases
  • +
  • Multiclass problems and regression with SVMs
  • @@ -185,7 +192,7 @@ $$
  • 15
  • 16
  • ...
  • -
  • 24
  • +
  • 26
  • »
  • diff --git a/doc/pub/svm/html/._svm-bs007.html b/doc/pub/svm/html/._svm-bs007.html index 10ed2ca41..b748b5532 100644 --- a/doc/pub/svm/html/._svm-bs007.html +++ b/doc/pub/svm/html/._svm-bs007.html @@ -61,14 +61,19 @@ Automatically generated HTML file from DocOnce source ('Soft optmization problem', 2, None, '___sec15'), ('Kernels and non-linearity', 2, None, '___sec16'), ('The equations', 2, None, '___sec17'), - ('Different kernels', 2, None, '___sec18'), - ('Quadratic coefficient matrix', 2, None, '___sec19'), - ("Mercer's theorem", 2, None, '___sec20'), + ('The problem to solve', 2, None, '___sec18'), + ("Different kernels and Mercer's theorem", 2, None, '___sec19'), ('Mathematical optimization of convex functions', 2, None, - '___sec21'), - ('How do we solve these problems', 2, None, '___sec22')]} + '___sec20'), + ('How do we solve these problems?', 2, None, '___sec21'), + ('A simplex example', 2, None, '___sec22'), + ('Back to the more realistic cases', 2, None, '___sec23'), + ('Multiclass problems and regression with SVMs', + 2, + None, + '___sec24')]} end of tocinfo --> @@ -124,11 +129,13 @@ MathJax.Hub.Config({
  • Soft optmization problem
  • Kernels and non-linearity
  • The equations
  • -
  • Different kernels
  • -
  • Quadratic coefficient matrix
  • -
  • Mercer's theorem
  • -
  • Mathematical optimization of convex functions
  • -
  • How do we solve these problems
  • +
  • The problem to solve
  • +
  • Different kernels and Mercer's theorem
  • +
  • Mathematical optimization of convex functions
  • +
  • How do we solve these problems?
  • +
  • A simplex example
  • +
  • Back to the more realistic cases
  • +
  • Multiclass problems and regression with SVMs
  • @@ -189,7 +196,7 @@ $$
  • 16
  • 17
  • ...
  • -
  • 24
  • +
  • 26
  • »
  • diff --git a/doc/pub/svm/html/._svm-bs008.html b/doc/pub/svm/html/._svm-bs008.html index 08dfd1a31..48006344a 100644 --- a/doc/pub/svm/html/._svm-bs008.html +++ b/doc/pub/svm/html/._svm-bs008.html @@ -61,14 +61,19 @@ Automatically generated HTML file from DocOnce source ('Soft optmization problem', 2, None, '___sec15'), ('Kernels and non-linearity', 2, None, '___sec16'), ('The equations', 2, None, '___sec17'), - ('Different kernels', 2, None, '___sec18'), - ('Quadratic coefficient matrix', 2, None, '___sec19'), - ("Mercer's theorem", 2, None, '___sec20'), + ('The problem to solve', 2, None, '___sec18'), + ("Different kernels and Mercer's theorem", 2, None, '___sec19'), ('Mathematical optimization of convex functions', 2, None, - '___sec21'), - ('How do we solve these problems', 2, None, '___sec22')]} + '___sec20'), + ('How do we solve these problems?', 2, None, '___sec21'), + ('A simplex example', 2, None, '___sec22'), + ('Back to the more realistic cases', 2, None, '___sec23'), + ('Multiclass problems and regression with SVMs', + 2, + None, + '___sec24')]} end of tocinfo --> @@ -124,11 +129,13 @@ MathJax.Hub.Config({
  • Soft optmization problem
  • Kernels and non-linearity
  • The equations
  • -
  • Different kernels
  • -
  • Quadratic coefficient matrix
  • -
  • Mercer's theorem
  • -
  • Mathematical optimization of convex functions
  • -
  • How do we solve these problems
  • +
  • The problem to solve
  • +
  • Different kernels and Mercer's theorem
  • +
  • Mathematical optimization of convex functions
  • +
  • How do we solve these problems?
  • +
  • A simplex example
  • +
  • Back to the more realistic cases
  • +
  • Multiclass problems and regression with SVMs
  • @@ -193,7 +200,7 @@ at all.
  • 17
  • 18
  • ...
  • -
  • 24
  • +
  • 26
  • »
  • diff --git a/doc/pub/svm/html/._svm-bs009.html b/doc/pub/svm/html/._svm-bs009.html index 13e415077..80dfee3db 100644 --- a/doc/pub/svm/html/._svm-bs009.html +++ b/doc/pub/svm/html/._svm-bs009.html @@ -61,14 +61,19 @@ Automatically generated HTML file from DocOnce source ('Soft optmization problem', 2, None, '___sec15'), ('Kernels and non-linearity', 2, None, '___sec16'), ('The equations', 2, None, '___sec17'), - ('Different kernels', 2, None, '___sec18'), - ('Quadratic coefficient matrix', 2, None, '___sec19'), - ("Mercer's theorem", 2, None, '___sec20'), + ('The problem to solve', 2, None, '___sec18'), + ("Different kernels and Mercer's theorem", 2, None, '___sec19'), ('Mathematical optimization of convex functions', 2, None, - '___sec21'), - ('How do we solve these problems', 2, None, '___sec22')]} + '___sec20'), + ('How do we solve these problems?', 2, None, '___sec21'), + ('A simplex example', 2, None, '___sec22'), + ('Back to the more realistic cases', 2, None, '___sec23'), + ('Multiclass problems and regression with SVMs', + 2, + None, + '___sec24')]} end of tocinfo --> @@ -124,11 +129,13 @@ MathJax.Hub.Config({
  • Soft optmization problem
  • Kernels and non-linearity
  • The equations
  • -
  • Different kernels
  • -
  • Quadratic coefficient matrix
  • -
  • Mercer's theorem
  • -
  • Mathematical optimization of convex functions
  • -
  • How do we solve these problems
  • +
  • The problem to solve
  • +
  • Different kernels and Mercer's theorem
  • +
  • Mathematical optimization of convex functions
  • +
  • How do we solve these problems?
  • +
  • A simplex example
  • +
  • Back to the more realistic cases
  • +
  • Multiclass problems and regression with SVMs
  • @@ -205,7 +212,7 @@ We have thus defined our margin as the invers of the norm of \( \boldsymbol{w} \
  • 18
  • 19
  • ...
  • -
  • 24
  • +
  • 26
  • »
  • diff --git a/doc/pub/svm/html/._svm-bs010.html b/doc/pub/svm/html/._svm-bs010.html index ff49403d1..e8cac7084 100644 --- a/doc/pub/svm/html/._svm-bs010.html +++ b/doc/pub/svm/html/._svm-bs010.html @@ -61,14 +61,19 @@ Automatically generated HTML file from DocOnce source ('Soft optmization problem', 2, None, '___sec15'), ('Kernels and non-linearity', 2, None, '___sec16'), ('The equations', 2, None, '___sec17'), - ('Different kernels', 2, None, '___sec18'), - ('Quadratic coefficient matrix', 2, None, '___sec19'), - ("Mercer's theorem", 2, None, '___sec20'), + ('The problem to solve', 2, None, '___sec18'), + ("Different kernels and Mercer's theorem", 2, None, '___sec19'), ('Mathematical optimization of convex functions', 2, None, - '___sec21'), - ('How do we solve these problems', 2, None, '___sec22')]} + '___sec20'), + ('How do we solve these problems?', 2, None, '___sec21'), + ('A simplex example', 2, None, '___sec22'), + ('Back to the more realistic cases', 2, None, '___sec23'), + ('Multiclass problems and regression with SVMs', + 2, + None, + '___sec24')]} end of tocinfo --> @@ -124,11 +129,13 @@ MathJax.Hub.Config({
  • Soft optmization problem
  • Kernels and non-linearity
  • The equations
  • -
  • Different kernels
  • -
  • Quadratic coefficient matrix
  • -
  • Mercer's theorem
  • -
  • Mathematical optimization of convex functions
  • -
  • How do we solve these problems
  • +
  • The problem to solve
  • +
  • Different kernels and Mercer's theorem
  • +
  • Mathematical optimization of convex functions
  • +
  • How do we solve these problems?
  • +
  • A simplex example
  • +
  • Back to the more realistic cases
  • +
  • Multiclass problems and regression with SVMs
  • @@ -217,7 +224,7 @@ Then \( dz \) is no longer arbitrary.
  • 19
  • 20
  • ...
  • -
  • 24
  • +
  • 26
  • »
  • diff --git a/doc/pub/svm/html/._svm-bs011.html b/doc/pub/svm/html/._svm-bs011.html index 9c274b1b3..260e4471a 100644 --- a/doc/pub/svm/html/._svm-bs011.html +++ b/doc/pub/svm/html/._svm-bs011.html @@ -61,14 +61,19 @@ Automatically generated HTML file from DocOnce source ('Soft optmization problem', 2, None, '___sec15'), ('Kernels and non-linearity', 2, None, '___sec16'), ('The equations', 2, None, '___sec17'), - ('Different kernels', 2, None, '___sec18'), - ('Quadratic coefficient matrix', 2, None, '___sec19'), - ("Mercer's theorem", 2, None, '___sec20'), + ('The problem to solve', 2, None, '___sec18'), + ("Different kernels and Mercer's theorem", 2, None, '___sec19'), ('Mathematical optimization of convex functions', 2, None, - '___sec21'), - ('How do we solve these problems', 2, None, '___sec22')]} + '___sec20'), + ('How do we solve these problems?', 2, None, '___sec21'), + ('A simplex example', 2, None, '___sec22'), + ('Back to the more realistic cases', 2, None, '___sec23'), + ('Multiclass problems and regression with SVMs', + 2, + None, + '___sec24')]} end of tocinfo --> @@ -124,11 +129,13 @@ MathJax.Hub.Config({
  • Soft optmization problem
  • Kernels and non-linearity
  • The equations
  • -
  • Different kernels
  • -
  • Quadratic coefficient matrix
  • -
  • Mercer's theorem
  • -
  • Mathematical optimization of convex functions
  • -
  • How do we solve these problems
  • +
  • The problem to solve
  • +
  • Different kernels and Mercer's theorem
  • +
  • Mathematical optimization of convex functions
  • +
  • How do we solve these problems?
  • +
  • A simplex example
  • +
  • Back to the more realistic cases
  • +
  • Multiclass problems and regression with SVMs
  • @@ -210,7 +217,7 @@ $$
  • 20
  • 21
  • ...
  • -
  • 24
  • +
  • 26
  • »
  • diff --git a/doc/pub/svm/html/._svm-bs012.html b/doc/pub/svm/html/._svm-bs012.html index d5deef96a..c73530b2f 100644 --- a/doc/pub/svm/html/._svm-bs012.html +++ b/doc/pub/svm/html/._svm-bs012.html @@ -61,14 +61,19 @@ Automatically generated HTML file from DocOnce source ('Soft optmization problem', 2, None, '___sec15'), ('Kernels and non-linearity', 2, None, '___sec16'), ('The equations', 2, None, '___sec17'), - ('Different kernels', 2, None, '___sec18'), - ('Quadratic coefficient matrix', 2, None, '___sec19'), - ("Mercer's theorem", 2, None, '___sec20'), + ('The problem to solve', 2, None, '___sec18'), + ("Different kernels and Mercer's theorem", 2, None, '___sec19'), ('Mathematical optimization of convex functions', 2, None, - '___sec21'), - ('How do we solve these problems', 2, None, '___sec22')]} + '___sec20'), + ('How do we solve these problems?', 2, None, '___sec21'), + ('A simplex example', 2, None, '___sec22'), + ('Back to the more realistic cases', 2, None, '___sec23'), + ('Multiclass problems and regression with SVMs', + 2, + None, + '___sec24')]} end of tocinfo --> @@ -124,11 +129,13 @@ MathJax.Hub.Config({
  • Soft optmization problem
  • Kernels and non-linearity
  • The equations
  • -
  • Different kernels
  • -
  • Quadratic coefficient matrix
  • -
  • Mercer's theorem
  • -
  • Mathematical optimization of convex functions
  • -
  • How do we solve these problems
  • +
  • The problem to solve
  • +
  • Different kernels and Mercer's theorem
  • +
  • Mathematical optimization of convex functions
  • +
  • How do we solve these problems?
  • +
  • A simplex example
  • +
  • Back to the more realistic cases
  • +
  • Multiclass problems and regression with SVMs
  • @@ -208,7 +215,7 @@ When \( \lambda_i > 0 \), the vectors \( \boldsymbol{x}_i \) are called support
  • 21
  • 22
  • ...
  • -
  • 24
  • +
  • 26
  • »
  • diff --git a/doc/pub/svm/html/._svm-bs013.html b/doc/pub/svm/html/._svm-bs013.html index d67cdc39e..999868c65 100644 --- a/doc/pub/svm/html/._svm-bs013.html +++ b/doc/pub/svm/html/._svm-bs013.html @@ -61,14 +61,19 @@ Automatically generated HTML file from DocOnce source ('Soft optmization problem', 2, None, '___sec15'), ('Kernels and non-linearity', 2, None, '___sec16'), ('The equations', 2, None, '___sec17'), - ('Different kernels', 2, None, '___sec18'), - ('Quadratic coefficient matrix', 2, None, '___sec19'), - ("Mercer's theorem", 2, None, '___sec20'), + ('The problem to solve', 2, None, '___sec18'), + ("Different kernels and Mercer's theorem", 2, None, '___sec19'), ('Mathematical optimization of convex functions', 2, None, - '___sec21'), - ('How do we solve these problems', 2, None, '___sec22')]} + '___sec20'), + ('How do we solve these problems?', 2, None, '___sec21'), + ('A simplex example', 2, None, '___sec22'), + ('Back to the more realistic cases', 2, None, '___sec23'), + ('Multiclass problems and regression with SVMs', + 2, + None, + '___sec24')]} end of tocinfo --> @@ -124,11 +129,13 @@ MathJax.Hub.Config({
  • Soft optmization problem
  • Kernels and non-linearity
  • The equations
  • -
  • Different kernels
  • -
  • Quadratic coefficient matrix
  • -
  • Mercer's theorem
  • -
  • Mathematical optimization of convex functions
  • -
  • How do we solve these problems
  • +
  • The problem to solve
  • +
  • Different kernels and Mercer's theorem
  • +
  • Mathematical optimization of convex functions
  • +
  • How do we solve these problems?
  • +
  • A simplex example
  • +
  • Back to the more realistic cases
  • +
  • Multiclass problems and regression with SVMs
  • @@ -191,7 +198,7 @@ subject to \( \boldsymbol{y}^T\boldsymbol{\lambda}=0 \). Here we defined the vec
  • 22
  • 23
  • ...
  • -
  • 24
  • +
  • 26
  • »
  • diff --git a/doc/pub/svm/html/._svm-bs014.html b/doc/pub/svm/html/._svm-bs014.html index d132c80e9..b56b6ce36 100644 --- a/doc/pub/svm/html/._svm-bs014.html +++ b/doc/pub/svm/html/._svm-bs014.html @@ -61,14 +61,19 @@ Automatically generated HTML file from DocOnce source ('Soft optmization problem', 2, None, '___sec15'), ('Kernels and non-linearity', 2, None, '___sec16'), ('The equations', 2, None, '___sec17'), - ('Different kernels', 2, None, '___sec18'), - ('Quadratic coefficient matrix', 2, None, '___sec19'), - ("Mercer's theorem", 2, None, '___sec20'), + ('The problem to solve', 2, None, '___sec18'), + ("Different kernels and Mercer's theorem", 2, None, '___sec19'), ('Mathematical optimization of convex functions', 2, None, - '___sec21'), - ('How do we solve these problems', 2, None, '___sec22')]} + '___sec20'), + ('How do we solve these problems?', 2, None, '___sec21'), + ('A simplex example', 2, None, '___sec22'), + ('Back to the more realistic cases', 2, None, '___sec23'), + ('Multiclass problems and regression with SVMs', + 2, + None, + '___sec24')]} end of tocinfo --> @@ -124,11 +129,13 @@ MathJax.Hub.Config({
  • Soft optmization problem
  • Kernels and non-linearity
  • The equations
  • -
  • Different kernels
  • -
  • Quadratic coefficient matrix
  • -
  • Mercer's theorem
  • -
  • Mathematical optimization of convex functions
  • -
  • How do we solve these problems
  • +
  • The problem to solve
  • +
  • Different kernels and Mercer's theorem
  • +
  • Mathematical optimization of convex functions
  • +
  • How do we solve these problems?
  • +
  • A simplex example
  • +
  • Back to the more realistic cases
  • +
  • Multiclass problems and regression with SVMs
  • @@ -200,6 +207,8 @@ Below we discuss how to find the optimal values of \( \lambda_i \). Before we pr
  • 22
  • 23
  • 24
  • +
  • ...
  • +
  • 26
  • »
  • diff --git a/doc/pub/svm/html/._svm-bs015.html b/doc/pub/svm/html/._svm-bs015.html index b87cc8e72..6fc1126c9 100644 --- a/doc/pub/svm/html/._svm-bs015.html +++ b/doc/pub/svm/html/._svm-bs015.html @@ -61,14 +61,19 @@ Automatically generated HTML file from DocOnce source ('Soft optmization problem', 2, None, '___sec15'), ('Kernels and non-linearity', 2, None, '___sec16'), ('The equations', 2, None, '___sec17'), - ('Different kernels', 2, None, '___sec18'), - ('Quadratic coefficient matrix', 2, None, '___sec19'), - ("Mercer's theorem", 2, None, '___sec20'), + ('The problem to solve', 2, None, '___sec18'), + ("Different kernels and Mercer's theorem", 2, None, '___sec19'), ('Mathematical optimization of convex functions', 2, None, - '___sec21'), - ('How do we solve these problems', 2, None, '___sec22')]} + '___sec20'), + ('How do we solve these problems?', 2, None, '___sec21'), + ('A simplex example', 2, None, '___sec22'), + ('Back to the more realistic cases', 2, None, '___sec23'), + ('Multiclass problems and regression with SVMs', + 2, + None, + '___sec24')]} end of tocinfo --> @@ -124,11 +129,13 @@ MathJax.Hub.Config({
  • Soft optmization problem
  • Kernels and non-linearity
  • The equations
  • -
  • Different kernels
  • -
  • Quadratic coefficient matrix
  • -
  • Mercer's theorem
  • -
  • Mathematical optimization of convex functions
  • -
  • How do we solve these problems
  • +
  • The problem to solve
  • +
  • Different kernels and Mercer's theorem
  • +
  • Mathematical optimization of convex functions
  • +
  • How do we solve these problems?
  • +
  • A simplex example
  • +
  • Back to the more realistic cases
  • +
  • Multiclass problems and regression with SVMs
  • @@ -200,6 +207,9 @@ misclassifications.
  • 22
  • 23
  • 24
  • +
  • 25
  • +
  • ...
  • +
  • 26
  • »
  • diff --git a/doc/pub/svm/html/._svm-bs016.html b/doc/pub/svm/html/._svm-bs016.html index ef073b5cf..7ae6500f9 100644 --- a/doc/pub/svm/html/._svm-bs016.html +++ b/doc/pub/svm/html/._svm-bs016.html @@ -61,14 +61,19 @@ Automatically generated HTML file from DocOnce source ('Soft optmization problem', 2, None, '___sec15'), ('Kernels and non-linearity', 2, None, '___sec16'), ('The equations', 2, None, '___sec17'), - ('Different kernels', 2, None, '___sec18'), - ('Quadratic coefficient matrix', 2, None, '___sec19'), - ("Mercer's theorem", 2, None, '___sec20'), + ('The problem to solve', 2, None, '___sec18'), + ("Different kernels and Mercer's theorem", 2, None, '___sec19'), ('Mathematical optimization of convex functions', 2, None, - '___sec21'), - ('How do we solve these problems', 2, None, '___sec22')]} + '___sec20'), + ('How do we solve these problems?', 2, None, '___sec21'), + ('A simplex example', 2, None, '___sec22'), + ('Back to the more realistic cases', 2, None, '___sec23'), + ('Multiclass problems and regression with SVMs', + 2, + None, + '___sec24')]} end of tocinfo --> @@ -124,11 +129,13 @@ MathJax.Hub.Config({
  • Soft optmization problem
  • Kernels and non-linearity
  • The equations
  • -
  • Different kernels
  • -
  • Quadratic coefficient matrix
  • -
  • Mercer's theorem
  • -
  • Mathematical optimization of convex functions
  • -
  • How do we solve these problems
  • +
  • The problem to solve
  • +
  • Different kernels and Mercer's theorem
  • +
  • Mathematical optimization of convex functions
  • +
  • How do we solve these problems?
  • +
  • A simplex example
  • +
  • Back to the more realistic cases
  • +
  • Multiclass problems and regression with SVMs
  • @@ -218,6 +225,8 @@ $$
  • 22
  • 23
  • 24
  • +
  • 25
  • +
  • 26
  • »
  • diff --git a/doc/pub/svm/html/._svm-bs017.html b/doc/pub/svm/html/._svm-bs017.html index 8df569d0b..b832478ce 100644 --- a/doc/pub/svm/html/._svm-bs017.html +++ b/doc/pub/svm/html/._svm-bs017.html @@ -61,14 +61,19 @@ Automatically generated HTML file from DocOnce source ('Soft optmization problem', 2, None, '___sec15'), ('Kernels and non-linearity', 2, None, '___sec16'), ('The equations', 2, None, '___sec17'), - ('Different kernels', 2, None, '___sec18'), - ('Quadratic coefficient matrix', 2, None, '___sec19'), - ("Mercer's theorem", 2, None, '___sec20'), + ('The problem to solve', 2, None, '___sec18'), + ("Different kernels and Mercer's theorem", 2, None, '___sec19'), ('Mathematical optimization of convex functions', 2, None, - '___sec21'), - ('How do we solve these problems', 2, None, '___sec22')]} + '___sec20'), + ('How do we solve these problems?', 2, None, '___sec21'), + ('A simplex example', 2, None, '___sec22'), + ('Back to the more realistic cases', 2, None, '___sec23'), + ('Multiclass problems and regression with SVMs', + 2, + None, + '___sec24')]} end of tocinfo --> @@ -124,11 +129,13 @@ MathJax.Hub.Config({
  • Soft optmization problem
  • Kernels and non-linearity
  • The equations
  • -
  • Different kernels
  • -
  • Quadratic coefficient matrix
  • -
  • Mercer's theorem
  • -
  • Mathematical optimization of convex functions
  • -
  • How do we solve these problems
  • +
  • The problem to solve
  • +
  • Different kernels and Mercer's theorem
  • +
  • Mathematical optimization of convex functions
  • +
  • How do we solve these problems?
  • +
  • A simplex example
  • +
  • Back to the more realistic cases
  • +
  • Multiclass problems and regression with SVMs
  • @@ -186,6 +193,8 @@ we need to introduce for example a polynomial transformation to a two-dimensiona
  • 22
  • 23
  • 24
  • +
  • 25
  • +
  • 26
  • »
  • diff --git a/doc/pub/svm/html/._svm-bs018.html b/doc/pub/svm/html/._svm-bs018.html index dd6ac5476..072d3320b 100644 --- a/doc/pub/svm/html/._svm-bs018.html +++ b/doc/pub/svm/html/._svm-bs018.html @@ -61,14 +61,19 @@ Automatically generated HTML file from DocOnce source ('Soft optmization problem', 2, None, '___sec15'), ('Kernels and non-linearity', 2, None, '___sec16'), ('The equations', 2, None, '___sec17'), - ('Different kernels', 2, None, '___sec18'), - ('Quadratic coefficient matrix', 2, None, '___sec19'), - ("Mercer's theorem", 2, None, '___sec20'), + ('The problem to solve', 2, None, '___sec18'), + ("Different kernels and Mercer's theorem", 2, None, '___sec19'), ('Mathematical optimization of convex functions', 2, None, - '___sec21'), - ('How do we solve these problems', 2, None, '___sec22')]} + '___sec20'), + ('How do we solve these problems?', 2, None, '___sec21'), + ('A simplex example', 2, None, '___sec22'), + ('Back to the more realistic cases', 2, None, '___sec23'), + ('Multiclass problems and regression with SVMs', + 2, + None, + '___sec24')]} end of tocinfo --> @@ -124,11 +129,13 @@ MathJax.Hub.Config({
  • Soft optmization problem
  • Kernels and non-linearity
  • The equations
  • -
  • Different kernels
  • -
  • Quadratic coefficient matrix
  • -
  • Mercer's theorem
  • -
  • Mathematical optimization of convex functions
  • -
  • How do we solve these problems
  • +
  • The problem to solve
  • +
  • Different kernels and Mercer's theorem
  • +
  • Mathematical optimization of convex functions
  • +
  • How do we solve these problems?
  • +
  • A simplex example
  • +
  • Back to the more realistic cases
  • +
  • Multiclass problems and regression with SVMs
  • @@ -147,15 +154,15 @@ MathJax.Hub.Config({

    The equations

    -Suppose we define a polynomial transformation of degree two (we continue to live in a plane with \( x_1 \) and \( x_2 \) as variables) +Suppose we define a polynomial transformation of degree two only (we continue to live in a plane with \( x_i \) and \( y_i \) as variables) $$ -z = \phi(x) =\left(1, x_1, x_2, x_1^2, x_2^2, x_1x_2). +z = \phi(x_i) =\left(x_i^2, y_i^2, \sqrt{2}x_iy_i\right). $$

    With our new basis, the equations we solved earlier are basically the same, that is we have now (without the slack option for simplicity) $$ -{\cal L}=\sum_i\lambda_i-\frac{1}{2}\sum_{ij}^n\lambda_i\lambda_jy_iy_j\boldsymbol{z}_i^T\boldsymbol{Z}_j, +{\cal L}=\sum_i\lambda_i-\frac{1}{2}\sum_{ij}^n\lambda_i\lambda_jy_iy_j\boldsymbol{x}_i^T\boldsymbol{z}_j, $$ subject to the constraints \( \lambda_i\geq 0 \), \( \sum_i\lambda_iy_i=0 \), and for the support vectors @@ -164,6 +171,17 @@ y_i(\boldsymbol{w}^T\boldsymbol{z}_i+b)= 1 \hspace{0.1cm}\forall i, $$ from which we also find \( b \). +To compute \( \boldsymbol{z}_i^T\boldsymbol{Z}_j \) we define the kerne \( K(\boldsymbol{x}_i,\boldsymbol{x}_j) \) as +$$ +K(\boldsymbol{x}_i,\boldsymbol{x}_j)=\boldsymbol{z}_i^T\boldsymbol{Z}_j= \phi(\boldsymbol{x}_i)^T\phi(\boldsymbol{x}_j). +$$ + +For the above example, the kernel reads +$$ +K(\boldsymbol{x}_i,\boldsymbol{x}_j)=[x_i^2, y_i^2, \sqrt{2}x_iy_i]^T\begin{bmatrix} x_j^2 \\ y_j^2 \\ \sqrt{2}x_jy_j \end{bmatrix}=x_i^2x_j^2+2x_ixJy_iy_j+y_i^2y_j^2. +$$ + +We note that this is nothing but the dot product of the two original vectors \( (\boldsymbol{x}_i^T\boldsymbol{x}_j)^2 \). Instead of thus computing the product in the Lagrangian of \( \boldsymbol{x}_i^T\boldsymbol{z}_j \) we simply compute the dot product \( (\boldsymbol{x}_i^T\boldsymbol{x}_j)^2 \). This leads to the so-called kernel trick and the result leads to the same as if we went through the trouble of performing the transformation \( (\phi(\boldsymbol{x}_i)^T\phi(\boldsymbol{x}_j) \) during the SVM calculations.

    @@ -186,6 +204,8 @@ from which we also find \( b \).

  • 22
  • 23
  • 24
  • +
  • 25
  • +
  • 26
  • »
  • diff --git a/doc/pub/svm/html/._svm-bs019.html b/doc/pub/svm/html/._svm-bs019.html index 52686a402..a94b303c3 100644 --- a/doc/pub/svm/html/._svm-bs019.html +++ b/doc/pub/svm/html/._svm-bs019.html @@ -61,14 +61,19 @@ Automatically generated HTML file from DocOnce source ('Soft optmization problem', 2, None, '___sec15'), ('Kernels and non-linearity', 2, None, '___sec16'), ('The equations', 2, None, '___sec17'), - ('Different kernels', 2, None, '___sec18'), - ('Quadratic coefficient matrix', 2, None, '___sec19'), - ("Mercer's theorem", 2, None, '___sec20'), + ('The problem to solve', 2, None, '___sec18'), + ("Different kernels and Mercer's theorem", 2, None, '___sec19'), ('Mathematical optimization of convex functions', 2, None, - '___sec21'), - ('How do we solve these problems', 2, None, '___sec22')]} + '___sec20'), + ('How do we solve these problems?', 2, None, '___sec21'), + ('A simplex example', 2, None, '___sec22'), + ('Back to the more realistic cases', 2, None, '___sec23'), + ('Multiclass problems and regression with SVMs', + 2, + None, + '___sec24')]} end of tocinfo --> @@ -124,11 +129,13 @@ MathJax.Hub.Config({
  • Soft optmization problem
  • Kernels and non-linearity
  • The equations
  • -
  • Different kernels
  • -
  • Quadratic coefficient matrix
  • -
  • Mercer's theorem
  • -
  • Mathematical optimization of convex functions
  • -
  • How do we solve these problems
  • +
  • The problem to solve
  • +
  • Different kernels and Mercer's theorem
  • +
  • Mathematical optimization of convex functions
  • +
  • How do we solve these problems?
  • +
  • A simplex example
  • +
  • Back to the more realistic cases
  • +
  • Multiclass problems and regression with SVMs
  • @@ -144,7 +151,38 @@ MathJax.Hub.Config({ -

    Different kernels

    +

    The problem to solve

    +Using our definition of the kernel We can rewrite again the Lagrangian +$$ +{\cal L}=\sum_i\lambda_i-\frac{1}{2}\sum_{ij}^n\lambda_i\lambda_jy_iy_j\boldsymbol{x}_i^T\boldsymbol{z}_j, +$$ + +subject to the constraints \( \lambda_i\geq 0 \), \( \sum_i\lambda_iy_i=0 \) in terms of a convex optimization problem +$$ +\frac{1}{2} \boldsymbol{\lambda}^T\begin{bmatrix} y_1y_1K(\boldsymbol{x}_1,\boldsymbol{x}_1) & y_1y_2K(\boldsymbol{x}_1,\boldsymbol{x}_2) & \dots & \dots & y_1y_nK(\boldsymbol{x}_1,\boldsymbol{x}_n) \\ +y_2y_1\boldsymbol{x}_2^T\boldsymbol{x}_1 & y_2y_2\boldsymbol{x}_2^T\boldsymbol{x}_2 & \dots & \dots & y_1y_n\boldsymbol{x}_2^T\boldsymbol{x}_n \\ +\dots & \dots & \dots & \dots & \dots \\ +\dots & \dots & \dots & \dots & \dots \\ +y_ny_1K(\boldsymbol{x}_n,\boldsymbol{x}_1) & y_ny_2K(\boldsymbol{x}_n\boldsymbol{x}_2) & \dots & \dots & y_ny_nK(\boldsymbol{x}_n,\boldsymbol{x}_n) \\ +\end{bmatrix}\boldsymbol{\lambda}-\mathbb{I}\boldsymbol{\lambda}, +$$ + +subject to \( \boldsymbol{y}^T\boldsymbol{\lambda}=0 \). Here we defined the vectors \( \boldsymbol{\lambda} =[\lambda_1,\lambda_2,\dots,\lambda_n] \) and +\( \boldsymbol{y}=[y_1,y_2,\dots,y_n] \). +If we add the slack constants this leads to the additional constraint \( 0\leq \lambda_i \leq C \). + +

    +We can rewrite this (see the solutions below) in terms of a convex optimization problem of the type +$$ +\begin{align*} + &\mathrm{min}_{\lambda}\hspace{0.2cm} \frac{1}{2}\boldsymbol{\lambda}^T\boldsymbol{P}\boldsymbol{\lambda}+\boldsymbol{q}^T\boldsymbol{\lambda},\\ \nonumber + &\mathrm{subject to} \hspace{0.2cm} \boldsymbol{G}\boldsymbol{\lambda} \preceq \boldsymbol{h} \hspace{0.2cm} \boldsymbol{A}\boldsymbol{\lambda}=f. +\end{align*} +$$ + +Below we discuss how to solve these equations. Here we note that the matrix \( \boldsymbol{P} \) has matrix elements \( p_{ij}=y_iy_jK(\boldsymbol{x}_i,\boldsymbol{x}_j) \). +Given a kernel \( K \) and the targets \( y_i \) this matrix is easy to set up. The constraint \( \boldsymbol{y}^T\boldsymbol{\lambda}=0 \) leads to \( f=0 \) and \( \boldsymbol{A}=\boldsymbol{y} \). How to set up the matrix \( \boldsymbol{G} \) is discussed later. Here note that the inequalities \( 0\leq \lambda_i \leq C \) can be split up into +\( 0\leq \lambda_i \) and \( \lambda_i \leq C \). These two inequalities define then the matrix \( \boldsymbol{G} \) and the vector \( \boldsymbol{h} \).

    @@ -166,6 +204,8 @@ MathJax.Hub.Config({

  • 22
  • 23
  • 24
  • +
  • 25
  • +
  • 26
  • »
  • diff --git a/doc/pub/svm/html/._svm-bs020.html b/doc/pub/svm/html/._svm-bs020.html index fee529438..d6b10f85a 100644 --- a/doc/pub/svm/html/._svm-bs020.html +++ b/doc/pub/svm/html/._svm-bs020.html @@ -61,14 +61,19 @@ Automatically generated HTML file from DocOnce source ('Soft optmization problem', 2, None, '___sec15'), ('Kernels and non-linearity', 2, None, '___sec16'), ('The equations', 2, None, '___sec17'), - ('Different kernels', 2, None, '___sec18'), - ('Quadratic coefficient matrix', 2, None, '___sec19'), - ("Mercer's theorem", 2, None, '___sec20'), + ('The problem to solve', 2, None, '___sec18'), + ("Different kernels and Mercer's theorem", 2, None, '___sec19'), ('Mathematical optimization of convex functions', 2, None, - '___sec21'), - ('How do we solve these problems', 2, None, '___sec22')]} + '___sec20'), + ('How do we solve these problems?', 2, None, '___sec21'), + ('A simplex example', 2, None, '___sec22'), + ('Back to the more realistic cases', 2, None, '___sec23'), + ('Multiclass problems and regression with SVMs', + 2, + None, + '___sec24')]} end of tocinfo --> @@ -124,11 +129,13 @@ MathJax.Hub.Config({
  • Soft optmization problem
  • Kernels and non-linearity
  • The equations
  • -
  • Different kernels
  • -
  • Quadratic coefficient matrix
  • -
  • Mercer's theorem
  • -
  • Mathematical optimization of convex functions
  • -
  • How do we solve these problems
  • +
  • The problem to solve
  • +
  • Different kernels and Mercer's theorem
  • +
  • Mathematical optimization of convex functions
  • +
  • How do we solve these problems?
  • +
  • A simplex example
  • +
  • Back to the more realistic cases
  • +
  • Multiclass problems and regression with SVMs
  • @@ -144,7 +151,33 @@ MathJax.Hub.Config({ -

    Quadratic coefficient matrix

    +

    Different kernels and Mercer's theorem

    + +

    +There are several popular kernels being used. These are + +

      +
    1. Linear: \( K(\boldsymbol{x},\boldsymbol{y})=\boldsymbol{x}^T\boldsymbol{y} \),
    2. +
    3. Polynomial: \( K(\boldsymbol{x},\boldsymbol{y})=(\boldsymbol{x}^T\boldsymbol{y}+\gamma)^d \),
    4. +
    5. Gaussian Radial Basis Function: \( K(\boldsymbol{x},\boldsymbol{y})=\exp{\left(-\gamma\vert\vert\boldsymbol{x}-\boldsymbol{y}\vert\vert^2\right)} \),
    6. +
    7. Tanh: \( K(\boldsymbol{x},\boldsymbol{y})=\tanh{(\boldsymbol{x}^T\boldsymbol{y}+\gamma)} \),
    8. +
    + +and many other ones. + +

    +An important theorem for us is "Mercer's theorem":https://en.wikipedia.org/wiki/Mercer%27s_theorem". +The theorem states that if a kernel function \( K \) is symmetric, continuous and leads to a positive semi-definite matrix \( \boldsymbol{P} \) then +there exists a function \( \phi \) that maps \( \boldsymbol{x}_i \) and \( \boldsymbol{x}_j \) into another space +(possibly with much higher dimensions) such that +$$ +K(\boldsymbol{x}_i,\boldsymbol{x}_j)=\phi(\boldsymbol{x}_i)^T\phi(\boldsymbol{x}_j). +$$ + +So you can use \( K \) as a kernel since you know \( \phi \) exists, even if +you don’t know what \( \phi \) is. +Note that some frequently used kernels (such as the Sigmoid kernel) don’t respect all of Mercer’s conditions, yet they generally work +well in practice.

    @@ -165,6 +198,8 @@ MathJax.Hub.Config({

  • 22
  • 23
  • 24
  • +
  • 25
  • +
  • 26
  • »
  • diff --git a/doc/pub/svm/html/._svm-bs021.html b/doc/pub/svm/html/._svm-bs021.html index d855421d5..516500727 100644 --- a/doc/pub/svm/html/._svm-bs021.html +++ b/doc/pub/svm/html/._svm-bs021.html @@ -61,14 +61,19 @@ Automatically generated HTML file from DocOnce source ('Soft optmization problem', 2, None, '___sec15'), ('Kernels and non-linearity', 2, None, '___sec16'), ('The equations', 2, None, '___sec17'), - ('Different kernels', 2, None, '___sec18'), - ('Quadratic coefficient matrix', 2, None, '___sec19'), - ("Mercer's theorem", 2, None, '___sec20'), + ('The problem to solve', 2, None, '___sec18'), + ("Different kernels and Mercer's theorem", 2, None, '___sec19'), ('Mathematical optimization of convex functions', 2, None, - '___sec21'), - ('How do we solve these problems', 2, None, '___sec22')]} + '___sec20'), + ('How do we solve these problems?', 2, None, '___sec21'), + ('A simplex example', 2, None, '___sec22'), + ('Back to the more realistic cases', 2, None, '___sec23'), + ('Multiclass problems and regression with SVMs', + 2, + None, + '___sec24')]} end of tocinfo --> @@ -124,11 +129,13 @@ MathJax.Hub.Config({
  • Soft optmization problem
  • Kernels and non-linearity
  • The equations
  • -
  • Different kernels
  • -
  • Quadratic coefficient matrix
  • -
  • Mercer's theorem
  • -
  • Mathematical optimization of convex functions
  • -
  • How do we solve these problems
  • +
  • The problem to solve
  • +
  • Different kernels and Mercer's theorem
  • +
  • Mathematical optimization of convex functions
  • +
  • How do we solve these problems?
  • +
  • A simplex example
  • +
  • Back to the more realistic cases
  • +
  • Multiclass problems and regression with SVMs
  • @@ -142,9 +149,29 @@ MathJax.Hub.Config({

     

     

     

    - + -

    Mercer's theorem

    +

    Mathematical optimization of convex functions

    + +

    +A mathematical (quadratic) optimization problem, or just optimization problem, has the form +$$ +\begin{align*} + &\mathrm{min}_{\lambda}\hspace{0.2cm} \frac{1}{2}\boldsymbol{\lambda}^T\boldsymbol{P}\boldsymbol{\lambda}+\boldsymbol{q}^T\boldsymbol{\lambda},\\ \nonumber + &\mathrm{subject to} \hspace{0.2cm} \boldsymbol{G}\boldsymbol{\lambda} \preceq \boldsymbol{h} \hspace{0.2cm} \boldsymbol{A}\boldsymbol{\lambda}=f. +\end{align*} +$$ + +subject to some constraints for say a selected set \( i=1,2,\dots, n \). +In our case we are optimizing with respect to the Lagrangian multipliers \( \lambda_i \), and the +vector \( \boldsymbol{\lambda}=[\lambda_1, \lambda_2,\dots, \lambda_n] \) is the optimization variable we are dealing with. + +

    +In our case we are particularly interested in a class of optimization problems called convex optmization problems. +In our disussion on gradient descent methods we discussed at length the definition of a convex function. + +

    +Convex optimization problems play a central role in applied mathematics and we recommend strongly Boyd and Vandenberghe's text on the topics.

    @@ -164,6 +191,8 @@ MathJax.Hub.Config({

  • 22
  • 23
  • 24
  • +
  • 25
  • +
  • 26
  • »
  • diff --git a/doc/pub/svm/html/._svm-bs022.html b/doc/pub/svm/html/._svm-bs022.html index 2c44ea8be..4244211c1 100644 --- a/doc/pub/svm/html/._svm-bs022.html +++ b/doc/pub/svm/html/._svm-bs022.html @@ -61,14 +61,19 @@ Automatically generated HTML file from DocOnce source ('Soft optmization problem', 2, None, '___sec15'), ('Kernels and non-linearity', 2, None, '___sec16'), ('The equations', 2, None, '___sec17'), - ('Different kernels', 2, None, '___sec18'), - ('Quadratic coefficient matrix', 2, None, '___sec19'), - ("Mercer's theorem", 2, None, '___sec20'), + ('The problem to solve', 2, None, '___sec18'), + ("Different kernels and Mercer's theorem", 2, None, '___sec19'), ('Mathematical optimization of convex functions', 2, None, - '___sec21'), - ('How do we solve these problems', 2, None, '___sec22')]} + '___sec20'), + ('How do we solve these problems?', 2, None, '___sec21'), + ('A simplex example', 2, None, '___sec22'), + ('Back to the more realistic cases', 2, None, '___sec23'), + ('Multiclass problems and regression with SVMs', + 2, + None, + '___sec24')]} end of tocinfo --> @@ -124,11 +129,13 @@ MathJax.Hub.Config({
  • Soft optmization problem
  • Kernels and non-linearity
  • The equations
  • -
  • Different kernels
  • -
  • Quadratic coefficient matrix
  • -
  • Mercer's theorem
  • -
  • Mathematical optimization of convex functions
  • -
  • How do we solve these problems
  • +
  • The problem to solve
  • +
  • Different kernels and Mercer's theorem
  • +
  • Mathematical optimization of convex functions
  • +
  • How do we solve these problems?
  • +
  • A simplex example
  • +
  • Back to the more realistic cases
  • +
  • Multiclass problems and regression with SVMs
  • @@ -144,25 +151,28 @@ MathJax.Hub.Config({ -

    Mathematical optimization of convex functions

    +

    How do we solve these problems?

    -A mathematical optimization problem, or just optimization problem, has the form -$$ -\mathrm{minimize}\hspace{0.1cm} f(x), -$$ - -subject to some constraints \( g(\lambda_i) \leq b_i \) for say a selected set \( i=1,2,\dots, n \). -In our case we are optimizing with respect to the Lagrangian multipliers \( \lambda_i \), and the -vector \( \boldsymbol{\lambda}=[\lambda_1, \lambda_2,\dots, \lambda_n] \) is the optimization variable we are dealing with. -and \( f(x) \) is our objective function while \( g(\lambda_i) \leq b_i \) represents our constraint function. +If we use Python as programming language and wish to venture beyond +scikit-learn, tensorflow and similar software which makes our +lives so much easier, we need to dive into the wonderful world of +quadratic programming. We can, if we wish, solve the minimization +problem using say standard gradient methods or conjugate gradient +methods. However, these methods tend to exhibit a rather slow +converge. So, welcome to the promised land of quadratic programming.

    -In our case we are particularly interested in a class of optimization problems called convex optmization problems. -In our disussion on gradient descent methods we discussed at length the definition of a convex function. +The functions we need are contained in the quadratic programming package CVXOPT and we need to import it together with numpy as

    -Convex optimization problems play a central role in applied mathematics and we recommend strongly Boyd and Vandenberghe's text on the topics. + + +

    import numpy
    +import cvxopt
    +
    +

    +This will make our life much easier. You don't need t write your own optimizer.

    @@ -181,6 +191,8 @@ Convex optimization problems play a central role in applied mathematics and we r

  • 22
  • 23
  • 24
  • +
  • 25
  • +
  • 26
  • »
  • diff --git a/doc/pub/svm/html/._svm-bs023.html b/doc/pub/svm/html/._svm-bs023.html new file mode 100644 index 000000000..d223dbeb0 --- /dev/null +++ b/doc/pub/svm/html/._svm-bs023.html @@ -0,0 +1,267 @@ + + + + + + + +Data Analysis and Machine Learning: Support Vector Machines + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +

     

     

     

    + + + + +

    A simplex example

    + +

    +We remind ourselves about the general problem we want to solve +$$ +\begin{align*} + &\mathrm{min}_{x}\hspace{0.2cm} \frac{1}{2}\boldsymbol{x}^T\boldsymbol{P}\boldsymbol{x}+\boldsymbol{q}^T\boldsymbol{x},\\ \nonumber + &\mathrm{subject to} \hspace{0.2cm} \boldsymbol{G}\boldsymbol{x} \preceq \boldsymbol{h} \hspace{0.2cm} \boldsymbol{A}\boldsymbol{x}=f. +\end{align*} +$$ + +

    +Let us show how to perform the optmization using a simple case. Assume we want to optimize the following problem +$$ +\begin{align*} + &\mathrm{min}_{x}\hspace{0.2cm} \frac{1}{2}x^2+5x+3y \\ \nonumber + &\mathrm{subject to} \\ \nonumber + &x, y \geq 0 \\ \nonumber + &x+3y \geq 15 \\ \nonumber + &2x+5y \leq 100 \\ \nonumber + &3x+4y \leq 80. \\ \nonumber +\end{align*} +$$ + +The minimization problem can be rewritten in terms of vectors and matrices as (with \( x \) and \( y \) being the unknowns) +$$ +frac{1}{2}\begin{bmatrix} x\\ y \end{bmatrix}^T \begin{bmatrix} 1 & 0\\ 0 & 0 \end{bmatrix} \begin{bmatrix} x \\ y \end{bmatrix} + \begin{bmatrix}3\\ 4 \end{bmatrix}^T \begin{bmatrix}x \\ y \end{bmatrix}. +$$ + +Similarly, we can now set up the inequalities (we need to change \( \geq \) to \( \leq \) by multiplying with \( -1 \) on bot sides) as the following matrix-vector equation +$$ +\begin{bmatrix} -1 & 0 \\ 0 & -1 \\ -1 & -3 \\ 2 & 5 \\ 3 & 4\end{matrix}\begin{bmatrix} x \\ y\end{bmatrix} \preceq \begin{bmatrix}0 \\ 0\\ -15 \\ 100 \\ 80\end{bmatrix}. +$$ + +We have collapsed all the inequalities into a single matrix \( \boldsymbol{G} \). We see also that our matrix +$$ +\boldsymbol{P} =\begin{bmatrix} 1 & 0\\ 0 & 0 \end{bmatrix} +$$ + +is clearly positive semi-definite (all eigenvalues larger or equal zero). +Finally, the vector \( \boldsymbol{h} \) is defined as +$$ +\boldsymbol{h} = \begin{bmatrix}0 \\ 0\\ -15 \\ 100 \\ 80\end{bmatrix}. +$$ + +

    +Since we don't have any equalities the matrix \( \boldsymbol{A} \) is set to zero +The following code does this for us +

    + + +

    # Import the necessary packages
    +import numpy
    +from cvxopt import matrix
    +from cvxopt import solvers
    +# Define QP parameters (directly)
    +P = matrix([[1.0,0.0],[0.0,0.0]])
    +q = matrix([3.0,4.0])
    +G = matrix([[-1.0,0.0,-1.0,2.0,3.0],[0.0,-1.0,-3.0,5.0,4.0]])
    +h = matrix([0.0,0.0,-15.0,100.0,80.0])
    +# Define QP parameters (with NumPy)
    +P = matrix(numpy.diag([1,0]), tc=’d’)
    +q = matrix(numpy.array([3,4]), tc=’d’)
    +G = matrix(numpy.array([[-1,0],[0,-1],[-1,-3],[2,5],[3,4]]), tc=’d’)
    +h = matrix(numpy.array([0,0,-15,100,80]), tc=’d’)
    +# Construct the QP, invoke solver
    +sol = solvers.qp(P,q,G,h)
    +# Extract optimal value and solution
    +sol[’x’] 
    +sol[’primal objective’]
    +
    +

    +

    + +

    + + +
    + + + + + + + +
    + +
    + + + + + + diff --git a/doc/pub/svm/html/._svm-bs024.html b/doc/pub/svm/html/._svm-bs024.html new file mode 100644 index 000000000..6dcd0583d --- /dev/null +++ b/doc/pub/svm/html/._svm-bs024.html @@ -0,0 +1,215 @@ + + + + + + + +Data Analysis and Machine Learning: Support Vector Machines + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +

     

     

     

    + + + + +

    Back to the more realistic cases

    + +

    +We are now ready to return to our setup of the optmization problem for a more realistic case. Introducint the slack parameter \( C \) we have +$$ +\frac{1}{2} \boldsymbol{\lambda}^T\begin{bmatrix} y_1y_1K(\boldsymbol{x}_1,\boldsymbol{x}_1) & y_1y_2K(\boldsymbol{x}_1,\boldsymbol{x}_2) & \dots & \dots & y_1y_nK(\boldsymbol{x}_1,\boldsymbol{x}_n) \\ +y_2y_1\boldsymbol{x}_2^T\boldsymbol{x}_1 & y_2y_2\boldsymbol{x}_2^T\boldsymbol{x}_2 & \dots & \dots & y_1y_n\boldsymbol{x}_2^T\boldsymbol{x}_n \\ +\dots & \dots & \dots & \dots & \dots \\ +\dots & \dots & \dots & \dots & \dots \\ +y_ny_1K(\boldsymbol{x}_n,\boldsymbol{x}_1) & y_ny_2K(\boldsymbol{x}_n\boldsymbol{x}_2) & \dots & \dots & y_ny_nK(\boldsymbol{x}_n,\boldsymbol{x}_n) \\ +\end{bmatrix}\boldsymbol{\lambda}-\mathbb{I}\boldsymbol{\lambda}, +$$ + +subject to \( \boldsymbol{y}^T\boldsymbol{\lambda}=0 \). Here we defined the vectors \( \boldsymbol{\lambda} =[\lambda_1,\lambda_2,\dots,\lambda_n] \) and +\( \boldsymbol{y}=[y_1,y_2,\dots,y_n] \). +With the slack constants this leads to the additional constraint \( 0\leq \lambda_i \leq C \). + +

    +code will be added + +

    +

    + +

    + + +
    + + + + + + + +
    + +
    + + + + + + diff --git a/doc/pub/svm/html/._svm-bs025.html b/doc/pub/svm/html/._svm-bs025.html new file mode 100644 index 000000000..6a1bdc7ab --- /dev/null +++ b/doc/pub/svm/html/._svm-bs025.html @@ -0,0 +1,195 @@ + + + + + + + +Data Analysis and Machine Learning: Support Vector Machines + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +

     

     

     

    + + + + +

    Multiclass problems and regression with SVMs

    +This material will be added later. + +

    + +

    + + +
    + + + + + + + +
    + +
    + + + + + + diff --git a/doc/pub/svm/html/svm-bs.html b/doc/pub/svm/html/svm-bs.html index 85f83e77f..e08dfbbfe 100644 --- a/doc/pub/svm/html/svm-bs.html +++ b/doc/pub/svm/html/svm-bs.html @@ -61,14 +61,19 @@ Automatically generated HTML file from DocOnce source ('Soft optmization problem', 2, None, '___sec15'), ('Kernels and non-linearity', 2, None, '___sec16'), ('The equations', 2, None, '___sec17'), - ('Different kernels', 2, None, '___sec18'), - ('Quadratic coefficient matrix', 2, None, '___sec19'), - ("Mercer's theorem", 2, None, '___sec20'), + ('The problem to solve', 2, None, '___sec18'), + ("Different kernels and Mercer's theorem", 2, None, '___sec19'), ('Mathematical optimization of convex functions', 2, None, - '___sec21'), - ('How do we solve these problems', 2, None, '___sec22')]} + '___sec20'), + ('How do we solve these problems?', 2, None, '___sec21'), + ('A simplex example', 2, None, '___sec22'), + ('Back to the more realistic cases', 2, None, '___sec23'), + ('Multiclass problems and regression with SVMs', + 2, + None, + '___sec24')]} end of tocinfo --> @@ -124,11 +129,13 @@ MathJax.Hub.Config({
  • Soft optmization problem
  • Kernels and non-linearity
  • The equations
  • -
  • Different kernels
  • -
  • Quadratic coefficient matrix
  • -
  • Mercer's theorem
  • -
  • Mathematical optimization of convex functions
  • -
  • How do we solve these problems
  • +
  • The problem to solve
  • +
  • Different kernels and Mercer's theorem
  • +
  • Mathematical optimization of convex functions
  • +
  • How do we solve these problems?
  • +
  • A simplex example
  • +
  • Back to the more realistic cases
  • +
  • Multiclass problems and regression with SVMs
  • @@ -187,7 +194,7 @@ MathJax.Hub.Config({
  • 9
  • 10
  • ...
  • -
  • 24
  • +
  • 26
  • »
  • diff --git a/doc/pub/svm/html/svm-reveal.html b/doc/pub/svm/html/svm-reveal.html index 77ba1ed41..3916fb6df 100644 --- a/doc/pub/svm/html/svm-reveal.html +++ b/doc/pub/svm/html/svm-reveal.html @@ -181,8 +181,14 @@ classification problems) of variables. It is also used for regression problems.

    -With SVMs we distinguish between hard margin and soft margins. The latter introduces a so-called softening parameter to be discussed below. -We distinguish also between linear and non-linear approaches. The latter are the most frequent ones since it is rather unlikely that we can separate classes easily by say straight lines. +With SVMs we distinguish between hard margin and soft margins. The +latter introduces a so-called softening parameter to be discussed +below. We distinguish also between linear and non-linear +approaches. The latter are the most frequent ones since it is rather +unlikely that we can separate classes easily by say straight lines. + +

    +Note: several figures are missing. They will be added shortly. To run the codes, use the jupyter notebook @@ -829,10 +835,10 @@ we need to introduce for example a polynomial transformation to a two-dimensiona

    The equations

    -Suppose we define a polynomial transformation of degree two (we continue to live in a plane with \( x_1 \) and \( x_2 \) as variables) +Suppose we define a polynomial transformation of degree two only (we continue to live in a plane with \( x_i \) and \( y_i \) as variables)

     
    $$ -z = \phi(x) =\left(1, x_1, x_2, x_1^2, x_2^2, x_1x_2). +z = \phi(x_i) =\left(x_i^2, y_i^2, \sqrt{2}x_iy_i\right). $$

     
    @@ -840,7 +846,7 @@ $$ With our new basis, the equations we solved earlier are basically the same, that is we have now (without the slack option for simplicity)

     
    $$ -{\cal L}=\sum_i\lambda_i-\frac{1}{2}\sum_{ij}^n\lambda_i\lambda_jy_iy_j\boldsymbol{z}_i^T\boldsymbol{Z}_j, +{\cal L}=\sum_i\lambda_i-\frac{1}{2}\sum_{ij}^n\lambda_i\lambda_jy_iy_j\boldsymbol{x}_i^T\boldsymbol{z}_j, $$

     
    @@ -852,39 +858,117 @@ $$

     
    from which we also find \( b \). +To compute \( \boldsymbol{z}_i^T\boldsymbol{Z}_j \) we define the kerne \( K(\boldsymbol{x}_i,\boldsymbol{x}_j) \) as +

     
    +$$ +K(\boldsymbol{x}_i,\boldsymbol{x}_j)=\boldsymbol{z}_i^T\boldsymbol{Z}_j= \phi(\boldsymbol{x}_i)^T\phi(\boldsymbol{x}_j). +$$ +

     
    + +For the above example, the kernel reads +

     
    +$$ +K(\boldsymbol{x}_i,\boldsymbol{x}_j)=[x_i^2, y_i^2, \sqrt{2}x_iy_i]^T\begin{bmatrix} x_j^2 \\ y_j^2 \\ \sqrt{2}x_jy_j \end{bmatrix}=x_i^2x_j^2+2x_ixJy_iy_j+y_i^2y_j^2. +$$ +

     
    + +We note that this is nothing but the dot product of the two original vectors \( (\boldsymbol{x}_i^T\boldsymbol{x}_j)^2 \). Instead of thus computing the product in the Lagrangian of \( \boldsymbol{x}_i^T\boldsymbol{z}_j \) we simply compute the dot product \( (\boldsymbol{x}_i^T\boldsymbol{x}_j)^2 \). This leads to the so-called kernel trick and the result leads to the same as if we went through the trouble of performing the transformation \( (\phi(\boldsymbol{x}_i)^T\phi(\boldsymbol{x}_j) \) during the SVM calculations.

    -

    Different kernels

    -
    +

    The problem to solve

    +Using our definition of the kernel We can rewrite again the Lagrangian +

     
    +$$ +{\cal L}=\sum_i\lambda_i-\frac{1}{2}\sum_{ij}^n\lambda_i\lambda_jy_iy_j\boldsymbol{x}_i^T\boldsymbol{z}_j, +$$ +

     
    +subject to the constraints \( \lambda_i\geq 0 \), \( \sum_i\lambda_iy_i=0 \) in terms of a convex optimization problem +

     
    +$$ +\frac{1}{2} \boldsymbol{\lambda}^T\begin{bmatrix} y_1y_1K(\boldsymbol{x}_1,\boldsymbol{x}_1) & y_1y_2K(\boldsymbol{x}_1,\boldsymbol{x}_2) & \dots & \dots & y_1y_nK(\boldsymbol{x}_1,\boldsymbol{x}_n) \\ +y_2y_1\boldsymbol{x}_2^T\boldsymbol{x}_1 & y_2y_2\boldsymbol{x}_2^T\boldsymbol{x}_2 & \dots & \dots & y_1y_n\boldsymbol{x}_2^T\boldsymbol{x}_n \\ +\dots & \dots & \dots & \dots & \dots \\ +\dots & \dots & \dots & \dots & \dots \\ +y_ny_1K(\boldsymbol{x}_n,\boldsymbol{x}_1) & y_ny_2K(\boldsymbol{x}_n\boldsymbol{x}_2) & \dots & \dots & y_ny_nK(\boldsymbol{x}_n,\boldsymbol{x}_n) \\ +\end{bmatrix}\boldsymbol{\lambda}-\mathbb{I}\boldsymbol{\lambda}, +$$ +

     
    -

    -

    Quadratic coefficient matrix

    -
    - - -
    -

    Mercer's theorem

    -
    - - -
    -

    Mathematical optimization of convex functions

    +subject to \( \boldsymbol{y}^T\boldsymbol{\lambda}=0 \). Here we defined the vectors \( \boldsymbol{\lambda} =[\lambda_1,\lambda_2,\dots,\lambda_n] \) and +\( \boldsymbol{y}=[y_1,y_2,\dots,y_n] \). +If we add the slack constants this leads to the additional constraint \( 0\leq \lambda_i \leq C \).

    -A mathematical optimization problem, or just optimization problem, has the form +We can rewrite this (see the solutions below) in terms of a convex optimization problem of the type

     
    $$ -\mathrm{minimize}\hspace{0.1cm} f(x), +\begin{align*} + &\mathrm{min}_{\lambda}\hspace{0.2cm} \frac{1}{2}\boldsymbol{\lambda}^T\boldsymbol{P}\boldsymbol{\lambda}+\boldsymbol{q}^T\boldsymbol{\lambda},\\ \nonumber + &\mathrm{subject to} \hspace{0.2cm} \boldsymbol{G}\boldsymbol{\lambda} \preceq \boldsymbol{h} \hspace{0.2cm} \boldsymbol{A}\boldsymbol{\lambda}=f. +\end{align*} $$

     
    -subject to some constraints \( g(\lambda_i) \leq b_i \) for say a selected set \( i=1,2,\dots, n \). +Below we discuss how to solve these equations. Here we note that the matrix \( \boldsymbol{P} \) has matrix elements \( p_{ij}=y_iy_jK(\boldsymbol{x}_i,\boldsymbol{x}_j) \). +Given a kernel \( K \) and the targets \( y_i \) this matrix is easy to set up. The constraint \( \boldsymbol{y}^T\boldsymbol{\lambda}=0 \) leads to \( f=0 \) and \( \boldsymbol{A}=\boldsymbol{y} \). How to set up the matrix \( \boldsymbol{G} \) is discussed later. Here note that the inequalities \( 0\leq \lambda_i \leq C \) can be split up into +\( 0\leq \lambda_i \) and \( \lambda_i \leq C \). These two inequalities define then the matrix \( \boldsymbol{G} \) and the vector \( \boldsymbol{h} \). +

    + + +
    +

    Different kernels and Mercer's theorem

    + +

    +There are several popular kernels being used. These are + +

      +

    1. Linear: \( K(\boldsymbol{x},\boldsymbol{y})=\boldsymbol{x}^T\boldsymbol{y} \),
    2. +

    3. Polynomial: \( K(\boldsymbol{x},\boldsymbol{y})=(\boldsymbol{x}^T\boldsymbol{y}+\gamma)^d \),
    4. +

    5. Gaussian Radial Basis Function: \( K(\boldsymbol{x},\boldsymbol{y})=\exp{\left(-\gamma\vert\vert\boldsymbol{x}-\boldsymbol{y}\vert\vert^2\right)} \),
    6. +

    7. Tanh: \( K(\boldsymbol{x},\boldsymbol{y})=\tanh{(\boldsymbol{x}^T\boldsymbol{y}+\gamma)} \),
    8. +
    +

    + +and many other ones. + +

    +An important theorem for us is "Mercer's theorem":https://en.wikipedia.org/wiki/Mercer%27s_theorem". +The theorem states that if a kernel function \( K \) is symmetric, continuous and leads to a positive semi-definite matrix \( \boldsymbol{P} \) then +there exists a function \( \phi \) that maps \( \boldsymbol{x}_i \) and \( \boldsymbol{x}_j \) into another space +(possibly with much higher dimensions) such that +

     
    +$$ +K(\boldsymbol{x}_i,\boldsymbol{x}_j)=\phi(\boldsymbol{x}_i)^T\phi(\boldsymbol{x}_j). +$$ +

     
    + +So you can use \( K \) as a kernel since you know \( \phi \) exists, even if +you don’t know what \( \phi \) is. +Note that some frequently used kernels (such as the Sigmoid kernel) don’t respect all of Mercer’s conditions, yet they generally work +well in practice. +

    + + +
    +

    Mathematical optimization of convex functions

    + +

    +A mathematical (quadratic) optimization problem, or just optimization problem, has the form +

     
    +$$ +\begin{align*} + &\mathrm{min}_{\lambda}\hspace{0.2cm} \frac{1}{2}\boldsymbol{\lambda}^T\boldsymbol{P}\boldsymbol{\lambda}+\boldsymbol{q}^T\boldsymbol{\lambda},\\ \nonumber + &\mathrm{subject to} \hspace{0.2cm} \boldsymbol{G}\boldsymbol{\lambda} \preceq \boldsymbol{h} \hspace{0.2cm} \boldsymbol{A}\boldsymbol{\lambda}=f. +\end{align*} +$$ +

     
    + +subject to some constraints for say a selected set \( i=1,2,\dots, n \). In our case we are optimizing with respect to the Lagrangian multipliers \( \lambda_i \), and the vector \( \boldsymbol{\lambda}=[\lambda_1, \lambda_2,\dots, \lambda_n] \) is the optimization variable we are dealing with. -and \( f(x) \) is our objective function while \( g(\lambda_i) \leq b_i \) represents our constraint function.

    In our case we are particularly interested in a class of optimization problems called convex optmization problems. @@ -896,7 +980,7 @@ Convex optimization problems play a central role in applied mathematics and we r

    -

    How do we solve these problems

    +

    How do we solve these problems?

    If we use Python as programming language and wish to venture beyond @@ -908,7 +992,8 @@ methods. However, these methods tend to exhibit a rather slow converge. So, welcome to the promised land of quadratic programming.

    -The functions we need are contained in the quadratic programming package CVXOPT and we need to import it +The functions we need are contained in the quadratic programming package CVXOPT and we need to import it together with numpy as +

    @@ -916,32 +1001,71 @@ The functions we need are contained in the quadratic programming package CVXO import cvxopt

    -Let us first set up the standard form the of quadratic programming (QP) equations by defining the problem as +This will make our life much easier. You don't need t write your own optimizer. +

    + + +
    +

    A simplex example

    + +

    +We remind ourselves about the general problem we want to solve

     
    $$ -\mathrm{min} +\begin{align*} + &\mathrm{min}_{x}\hspace{0.2cm} \frac{1}{2}\boldsymbol{x}^T\boldsymbol{P}\boldsymbol{x}+\boldsymbol{q}^T\boldsymbol{x},\\ \nonumber + &\mathrm{subject to} \hspace{0.2cm} \boldsymbol{G}\boldsymbol{x} \preceq \boldsymbol{h} \hspace{0.2cm} \boldsymbol{A}\boldsymbol{x}=f. +\end{align*} $$

     

    -subject to Gx u. Note that x itself is not provided to the solver, since it is an internal -variable being optimized over. In particular, this means that the solver has no explicit knowledge -of x itself; everything is implicity defined by the supplied parameters. It is essential -that the same variable order is maintained for the relevant parameters (e.g., qi -Non-convexity implies the existence of local optima, making it difficult to find global optima. +Let us show how to perform the optmization using a simple case. Assume we want to optimize the following problem +

     
    +$$ +\begin{align*} + &\mathrm{min}_{x}\hspace{0.2cm} \frac{1}{2}x^2+5x+3y \\ \nonumber + &\mathrm{subject to} \\ \nonumber + &x, y \geq 0 \\ \nonumber + &x+3y \geq 15 \\ \nonumber + &2x+5y \leq 100 \\ \nonumber + &3x+4y \leq 80. \\ \nonumber +\end{align*} +$$ +

     
    + +The minimization problem can be rewritten in terms of vectors and matrices as (with \( x \) and \( y \) being the unknowns) +

     
    +$$ +frac{1}{2}\begin{bmatrix} x\\ y \end{bmatrix}^T \begin{bmatrix} 1 & 0\\ 0 & 0 \end{bmatrix} \begin{bmatrix} x \\ y \end{bmatrix} + \begin{bmatrix}3\\ 4 \end{bmatrix}^T \begin{bmatrix}x \\ y \end{bmatrix}. +$$ +

     
    + +Similarly, we can now set up the inequalities (we need to change \( \geq \) to \( \leq \) by multiplying with \( -1 \) on bot sides) as the following matrix-vector equation +

     
    +$$ +\begin{bmatrix} -1 & 0 \\ 0 & -1 \\ -1 & -3 \\ 2 & 5 \\ 3 & 4\end{matrix}\begin{bmatrix} x \\ y\end{bmatrix} \preceq \begin{bmatrix}0 \\ 0\\ -15 \\ 100 \\ 80\end{bmatrix}. +$$ +

     
    + +We have collapsed all the inequalities into a single matrix \( \boldsymbol{G} \). We see also that our matrix +

     
    +$$ +\boldsymbol{P} =\begin{bmatrix} 1 & 0\\ 0 & 0 \end{bmatrix} +$$ +

     
    + +is clearly positive semi-definite (all eigenvalues larger or equal zero). +Finally, the vector \( \boldsymbol{h} \) is defined as +

     
    +$$ +\boldsymbol{h} = \begin{bmatrix}0 \\ 0\\ -15 \\ 100 \\ 80\end{bmatrix}. +$$ +

     

    -collapsed all inequality constraints into a single G matrix of the standard form. -Since there are no equality constraints, we do not need to provide the empty A, b. Note -that even though y -2 did not appear in the original objective, we had to include it with zero -coefficients in P because the solver parameters must be defined using the full set of variables. -Even if certain variables only appear in constraints, they will still need to be expressed with -zero coefficients in the objective parameters, and vice versa. -Let us first define the above parameters in Python. CVXOPT supplies its own matrix -object; all arguments given to its solvers must be in this matrix type. There are two ways -to do this. The first is to define the matrix directly with (potentially nested) lists: -from cvxopt import matrix +Since we don't have any equalities the matrix \( \boldsymbol{A} \) is set to zero +The following code does this for us

    @@ -962,12 +1086,43 @@ h = matrix(numpy.array([0,# Construct the QP, invoke solver sol = solvers.qp(P,q,G,h) # Extract optimal value and solution -sol[x] # [7.13e-07, 5.00e+00] +sol[x] sol[primal objective]

    +
    +

    Back to the more realistic cases

    + +

    +We are now ready to return to our setup of the optmization problem for a more realistic case. Introducint the slack parameter \( C \) we have +

     
    +$$ +\frac{1}{2} \boldsymbol{\lambda}^T\begin{bmatrix} y_1y_1K(\boldsymbol{x}_1,\boldsymbol{x}_1) & y_1y_2K(\boldsymbol{x}_1,\boldsymbol{x}_2) & \dots & \dots & y_1y_nK(\boldsymbol{x}_1,\boldsymbol{x}_n) \\ +y_2y_1\boldsymbol{x}_2^T\boldsymbol{x}_1 & y_2y_2\boldsymbol{x}_2^T\boldsymbol{x}_2 & \dots & \dots & y_1y_n\boldsymbol{x}_2^T\boldsymbol{x}_n \\ +\dots & \dots & \dots & \dots & \dots \\ +\dots & \dots & \dots & \dots & \dots \\ +y_ny_1K(\boldsymbol{x}_n,\boldsymbol{x}_1) & y_ny_2K(\boldsymbol{x}_n\boldsymbol{x}_2) & \dots & \dots & y_ny_nK(\boldsymbol{x}_n,\boldsymbol{x}_n) \\ +\end{bmatrix}\boldsymbol{\lambda}-\mathbb{I}\boldsymbol{\lambda}, +$$ +

     
    + +subject to \( \boldsymbol{y}^T\boldsymbol{\lambda}=0 \). Here we defined the vectors \( \boldsymbol{\lambda} =[\lambda_1,\lambda_2,\dots,\lambda_n] \) and +\( \boldsymbol{y}=[y_1,y_2,\dots,y_n] \). +With the slack constants this leads to the additional constraint \( 0\leq \lambda_i \leq C \). + +

    +code will be added +

    + + +
    +

    Multiclass problems and regression with SVMs

    +This material will be added later. +
    + + diff --git a/doc/pub/svm/html/svm-solarized.html b/doc/pub/svm/html/svm-solarized.html index cf850a809..edb7dc9c0 100644 --- a/doc/pub/svm/html/svm-solarized.html +++ b/doc/pub/svm/html/svm-solarized.html @@ -55,14 +55,19 @@ div { text-align: justify; text-justify: inter-word; } ('Soft optmization problem', 2, None, '___sec15'), ('Kernels and non-linearity', 2, None, '___sec16'), ('The equations', 2, None, '___sec17'), - ('Different kernels', 2, None, '___sec18'), - ('Quadratic coefficient matrix', 2, None, '___sec19'), - ("Mercer's theorem", 2, None, '___sec20'), + ('The problem to solve', 2, None, '___sec18'), + ("Different kernels and Mercer's theorem", 2, None, '___sec19'), ('Mathematical optimization of convex functions', 2, None, - '___sec21'), - ('How do we solve these problems', 2, None, '___sec22')]} + '___sec20'), + ('How do we solve these problems?', 2, None, '___sec21'), + ('A simplex example', 2, None, '___sec22'), + ('Back to the more realistic cases', 2, None, '___sec23'), + ('Multiclass problems and regression with SVMs', + 2, + None, + '___sec24')]} end of tocinfo --> @@ -131,8 +136,14 @@ classification problems) of variables. It is also used for regression problems.

    -With SVMs we distinguish between hard margin and soft margins. The latter introduces a so-called softening parameter to be discussed below. -We distinguish also between linear and non-linear approaches. The latter are the most frequent ones since it is rather unlikely that we can separate classes easily by say straight lines. +With SVMs we distinguish between hard margin and soft margins. The +latter introduces a so-called softening parameter to be discussed +below. We distinguish also between linear and non-linear +approaches. The latter are the most frequent ones since it is rather +unlikely that we can separate classes easily by say straight lines. + +

    +Note: several figures are missing. They will be added shortly. To run the codes, use the jupyter notebook











    @@ -672,15 +683,15 @@ we need to introduce for example a polynomial transformation to a two-dimensiona

    The equations

    -Suppose we define a polynomial transformation of degree two (we continue to live in a plane with \( x_1 \) and \( x_2 \) as variables) +Suppose we define a polynomial transformation of degree two only (we continue to live in a plane with \( x_i \) and \( y_i \) as variables) $$ -z = \phi(x) =\left(1, x_1, x_2, x_1^2, x_2^2, x_1x_2). +z = \phi(x_i) =\left(x_i^2, y_i^2, \sqrt{2}x_iy_i\right). $$

    With our new basis, the equations we solved earlier are basically the same, that is we have now (without the slack option for simplicity) $$ -{\cal L}=\sum_i\lambda_i-\frac{1}{2}\sum_{ij}^n\lambda_i\lambda_jy_iy_j\boldsymbol{z}_i^T\boldsymbol{Z}_j, +{\cal L}=\sum_i\lambda_i-\frac{1}{2}\sum_{ij}^n\lambda_i\lambda_jy_iy_j\boldsymbol{x}_i^T\boldsymbol{z}_j, $$ subject to the constraints \( \lambda_i\geq 0 \), \( \sum_i\lambda_iy_i=0 \), and for the support vectors @@ -689,37 +700,102 @@ y_i(\boldsymbol{w}^T\boldsymbol{z}_i+b)= 1 \hspace{0.1cm}\forall i, $$ from which we also find \( b \). - -

    -









    - -

    Different kernels

    - -

    -









    - -

    Quadratic coefficient matrix

    - -

    - - -

    Mercer's theorem

    - -

    -









    - -

    Mathematical optimization of convex functions

    - -

    -A mathematical optimization problem, or just optimization problem, has the form +To compute \( \boldsymbol{z}_i^T\boldsymbol{Z}_j \) we define the kerne \( K(\boldsymbol{x}_i,\boldsymbol{x}_j) \) as $$ -\mathrm{minimize}\hspace{0.1cm} f(x), +K(\boldsymbol{x}_i,\boldsymbol{x}_j)=\boldsymbol{z}_i^T\boldsymbol{Z}_j= \phi(\boldsymbol{x}_i)^T\phi(\boldsymbol{x}_j). $$ -subject to some constraints \( g(\lambda_i) \leq b_i \) for say a selected set \( i=1,2,\dots, n \). +For the above example, the kernel reads +$$ +K(\boldsymbol{x}_i,\boldsymbol{x}_j)=[x_i^2, y_i^2, \sqrt{2}x_iy_i]^T\begin{bmatrix} x_j^2 \\ y_j^2 \\ \sqrt{2}x_jy_j \end{bmatrix}=x_i^2x_j^2+2x_ixJy_iy_j+y_i^2y_j^2. +$$ + +We note that this is nothing but the dot product of the two original vectors \( (\boldsymbol{x}_i^T\boldsymbol{x}_j)^2 \). Instead of thus computing the product in the Lagrangian of \( \boldsymbol{x}_i^T\boldsymbol{z}_j \) we simply compute the dot product \( (\boldsymbol{x}_i^T\boldsymbol{x}_j)^2 \). This leads to the so-called kernel trick and the result leads to the same as if we went through the trouble of performing the transformation \( (\phi(\boldsymbol{x}_i)^T\phi(\boldsymbol{x}_j) \) during the SVM calculations. + +

    +









    + +

    The problem to solve

    +Using our definition of the kernel We can rewrite again the Lagrangian +$$ +{\cal L}=\sum_i\lambda_i-\frac{1}{2}\sum_{ij}^n\lambda_i\lambda_jy_iy_j\boldsymbol{x}_i^T\boldsymbol{z}_j, +$$ + +subject to the constraints \( \lambda_i\geq 0 \), \( \sum_i\lambda_iy_i=0 \) in terms of a convex optimization problem +$$ +\frac{1}{2} \boldsymbol{\lambda}^T\begin{bmatrix} y_1y_1K(\boldsymbol{x}_1,\boldsymbol{x}_1) & y_1y_2K(\boldsymbol{x}_1,\boldsymbol{x}_2) & \dots & \dots & y_1y_nK(\boldsymbol{x}_1,\boldsymbol{x}_n) \\ +y_2y_1\boldsymbol{x}_2^T\boldsymbol{x}_1 & y_2y_2\boldsymbol{x}_2^T\boldsymbol{x}_2 & \dots & \dots & y_1y_n\boldsymbol{x}_2^T\boldsymbol{x}_n \\ +\dots & \dots & \dots & \dots & \dots \\ +\dots & \dots & \dots & \dots & \dots \\ +y_ny_1K(\boldsymbol{x}_n,\boldsymbol{x}_1) & y_ny_2K(\boldsymbol{x}_n\boldsymbol{x}_2) & \dots & \dots & y_ny_nK(\boldsymbol{x}_n,\boldsymbol{x}_n) \\ +\end{bmatrix}\boldsymbol{\lambda}-\mathbb{I}\boldsymbol{\lambda}, +$$ + +subject to \( \boldsymbol{y}^T\boldsymbol{\lambda}=0 \). Here we defined the vectors \( \boldsymbol{\lambda} =[\lambda_1,\lambda_2,\dots,\lambda_n] \) and +\( \boldsymbol{y}=[y_1,y_2,\dots,y_n] \). +If we add the slack constants this leads to the additional constraint \( 0\leq \lambda_i \leq C \). + +

    +We can rewrite this (see the solutions below) in terms of a convex optimization problem of the type +$$ +\begin{align*} + &\mathrm{min}_{\lambda}\hspace{0.2cm} \frac{1}{2}\boldsymbol{\lambda}^T\boldsymbol{P}\boldsymbol{\lambda}+\boldsymbol{q}^T\boldsymbol{\lambda},\\ \nonumber + &\mathrm{subject to} \hspace{0.2cm} \boldsymbol{G}\boldsymbol{\lambda} \preceq \boldsymbol{h} \hspace{0.2cm} \boldsymbol{A}\boldsymbol{\lambda}=f. +\end{align*} +$$ + +Below we discuss how to solve these equations. Here we note that the matrix \( \boldsymbol{P} \) has matrix elements \( p_{ij}=y_iy_jK(\boldsymbol{x}_i,\boldsymbol{x}_j) \). +Given a kernel \( K \) and the targets \( y_i \) this matrix is easy to set up. The constraint \( \boldsymbol{y}^T\boldsymbol{\lambda}=0 \) leads to \( f=0 \) and \( \boldsymbol{A}=\boldsymbol{y} \). How to set up the matrix \( \boldsymbol{G} \) is discussed later. Here note that the inequalities \( 0\leq \lambda_i \leq C \) can be split up into +\( 0\leq \lambda_i \) and \( \lambda_i \leq C \). These two inequalities define then the matrix \( \boldsymbol{G} \) and the vector \( \boldsymbol{h} \). + +

    +









    + +

    Different kernels and Mercer's theorem

    + +

    +There are several popular kernels being used. These are + +

      +
    1. Linear: \( K(\boldsymbol{x},\boldsymbol{y})=\boldsymbol{x}^T\boldsymbol{y} \),
    2. +
    3. Polynomial: \( K(\boldsymbol{x},\boldsymbol{y})=(\boldsymbol{x}^T\boldsymbol{y}+\gamma)^d \),
    4. +
    5. Gaussian Radial Basis Function: \( K(\boldsymbol{x},\boldsymbol{y})=\exp{\left(-\gamma\vert\vert\boldsymbol{x}-\boldsymbol{y}\vert\vert^2\right)} \),
    6. +
    7. Tanh: \( K(\boldsymbol{x},\boldsymbol{y})=\tanh{(\boldsymbol{x}^T\boldsymbol{y}+\gamma)} \),
    8. +
    + +and many other ones. + +

    +An important theorem for us is "Mercer's theorem":https://en.wikipedia.org/wiki/Mercer%27s_theorem". +The theorem states that if a kernel function \( K \) is symmetric, continuous and leads to a positive semi-definite matrix \( \boldsymbol{P} \) then +there exists a function \( \phi \) that maps \( \boldsymbol{x}_i \) and \( \boldsymbol{x}_j \) into another space +(possibly with much higher dimensions) such that +$$ +K(\boldsymbol{x}_i,\boldsymbol{x}_j)=\phi(\boldsymbol{x}_i)^T\phi(\boldsymbol{x}_j). +$$ + +So you can use \( K \) as a kernel since you know \( \phi \) exists, even if +you don’t know what \( \phi \) is. +Note that some frequently used kernels (such as the Sigmoid kernel) don’t respect all of Mercer’s conditions, yet they generally work +well in practice. + +

    +









    + +

    Mathematical optimization of convex functions

    + +

    +A mathematical (quadratic) optimization problem, or just optimization problem, has the form +$$ +\begin{align*} + &\mathrm{min}_{\lambda}\hspace{0.2cm} \frac{1}{2}\boldsymbol{\lambda}^T\boldsymbol{P}\boldsymbol{\lambda}+\boldsymbol{q}^T\boldsymbol{\lambda},\\ \nonumber + &\mathrm{subject to} \hspace{0.2cm} \boldsymbol{G}\boldsymbol{\lambda} \preceq \boldsymbol{h} \hspace{0.2cm} \boldsymbol{A}\boldsymbol{\lambda}=f. +\end{align*} +$$ + +subject to some constraints for say a selected set \( i=1,2,\dots, n \). In our case we are optimizing with respect to the Lagrangian multipliers \( \lambda_i \), and the vector \( \boldsymbol{\lambda}=[\lambda_1, \lambda_2,\dots, \lambda_n] \) is the optimization variable we are dealing with. -and \( f(x) \) is our objective function while \( g(\lambda_i) \leq b_i \) represents our constraint function.

    In our case we are particularly interested in a class of optimization problems called convex optmization problems. @@ -731,7 +807,7 @@ Convex optimization problems play a central role in applied mathematics and we r











    -

    How do we solve these problems

    +

    How do we solve these problems?

    If we use Python as programming language and wish to venture beyond @@ -743,7 +819,8 @@ methods. However, these methods tend to exhibit a rather slow converge. So, welcome to the promised land of quadratic programming.

    -The functions we need are contained in the quadratic programming package CVXOPT and we need to import it +The functions we need are contained in the quadratic programming package CVXOPT and we need to import it together with numpy as +

    @@ -751,30 +828,59 @@ The functions we need are contained in the quadratic programming package CVXO import cvxopt

    -Let us first set up the standard form the of quadratic programming (QP) equations by defining the problem as +This will make our life much easier. You don't need t write your own optimizer. + +

    +









    + +

    A simplex example

    + +

    +We remind ourselves about the general problem we want to solve $$ -\mathrm{min} +\begin{align*} + &\mathrm{min}_{x}\hspace{0.2cm} \frac{1}{2}\boldsymbol{x}^T\boldsymbol{P}\boldsymbol{x}+\boldsymbol{q}^T\boldsymbol{x},\\ \nonumber + &\mathrm{subject to} \hspace{0.2cm} \boldsymbol{G}\boldsymbol{x} \preceq \boldsymbol{h} \hspace{0.2cm} \boldsymbol{A}\boldsymbol{x}=f. +\end{align*} $$

    -subject to Gx u. Note that x itself is not provided to the solver, since it is an internal -variable being optimized over. In particular, this means that the solver has no explicit knowledge -of x itself; everything is implicity defined by the supplied parameters. It is essential -that the same variable order is maintained for the relevant parameters (e.g., qi -Non-convexity implies the existence of local optima, making it difficult to find global optima. +Let us show how to perform the optmization using a simple case. Assume we want to optimize the following problem +$$ +\begin{align*} + &\mathrm{min}_{x}\hspace{0.2cm} \frac{1}{2}x^2+5x+3y \\ \nonumber + &\mathrm{subject to} \\ \nonumber + &x, y \geq 0 \\ \nonumber + &x+3y \geq 15 \\ \nonumber + &2x+5y \leq 100 \\ \nonumber + &3x+4y \leq 80. \\ \nonumber +\end{align*} +$$ + +The minimization problem can be rewritten in terms of vectors and matrices as (with \( x \) and \( y \) being the unknowns) +$$ +frac{1}{2}\begin{bmatrix} x\\ y \end{bmatrix}^T \begin{bmatrix} 1 & 0\\ 0 & 0 \end{bmatrix} \begin{bmatrix} x \\ y \end{bmatrix} + \begin{bmatrix}3\\ 4 \end{bmatrix}^T \begin{bmatrix}x \\ y \end{bmatrix}. +$$ + +Similarly, we can now set up the inequalities (we need to change \( \geq \) to \( \leq \) by multiplying with \( -1 \) on bot sides) as the following matrix-vector equation +$$ +\begin{bmatrix} -1 & 0 \\ 0 & -1 \\ -1 & -3 \\ 2 & 5 \\ 3 & 4\end{matrix}\begin{bmatrix} x \\ y\end{bmatrix} \preceq \begin{bmatrix}0 \\ 0\\ -15 \\ 100 \\ 80\end{bmatrix}. +$$ + +We have collapsed all the inequalities into a single matrix \( \boldsymbol{G} \). We see also that our matrix +$$ +\boldsymbol{P} =\begin{bmatrix} 1 & 0\\ 0 & 0 \end{bmatrix} +$$ + +is clearly positive semi-definite (all eigenvalues larger or equal zero). +Finally, the vector \( \boldsymbol{h} \) is defined as +$$ +\boldsymbol{h} = \begin{bmatrix}0 \\ 0\\ -15 \\ 100 \\ 80\end{bmatrix}. +$$

    -collapsed all inequality constraints into a single G matrix of the standard form. -Since there are no equality constraints, we do not need to provide the empty A, b. Note -that even though y -2 did not appear in the original objective, we had to include it with zero -coefficients in P because the solver parameters must be defined using the full set of variables. -Even if certain variables only appear in constraints, they will still need to be expressed with -zero coefficients in the objective parameters, and vice versa. -Let us first define the above parameters in Python. CVXOPT supplies its own matrix -object; all arguments given to its solvers must be in this matrix type. There are two ways -to do this. The first is to define the matrix directly with (potentially nested) lists: -from cvxopt import matrix +Since we don't have any equalities the matrix \( \boldsymbol{A} \) is set to zero +The following code does this for us

    @@ -795,10 +901,37 @@ h = matrix(numpy.array([0,# Construct the QP, invoke solver sol = solvers.qp(P,q,G,h) # Extract optimal value and solution -sol[x] # [7.13e-07, 5.00e+00] +sol[x] sol[primal objective]

    +









    + +

    Back to the more realistic cases

    + +

    +We are now ready to return to our setup of the optmization problem for a more realistic case. Introducint the slack parameter \( C \) we have +$$ +\frac{1}{2} \boldsymbol{\lambda}^T\begin{bmatrix} y_1y_1K(\boldsymbol{x}_1,\boldsymbol{x}_1) & y_1y_2K(\boldsymbol{x}_1,\boldsymbol{x}_2) & \dots & \dots & y_1y_nK(\boldsymbol{x}_1,\boldsymbol{x}_n) \\ +y_2y_1\boldsymbol{x}_2^T\boldsymbol{x}_1 & y_2y_2\boldsymbol{x}_2^T\boldsymbol{x}_2 & \dots & \dots & y_1y_n\boldsymbol{x}_2^T\boldsymbol{x}_n \\ +\dots & \dots & \dots & \dots & \dots \\ +\dots & \dots & \dots & \dots & \dots \\ +y_ny_1K(\boldsymbol{x}_n,\boldsymbol{x}_1) & y_ny_2K(\boldsymbol{x}_n\boldsymbol{x}_2) & \dots & \dots & y_ny_nK(\boldsymbol{x}_n,\boldsymbol{x}_n) \\ +\end{bmatrix}\boldsymbol{\lambda}-\mathbb{I}\boldsymbol{\lambda}, +$$ + +subject to \( \boldsymbol{y}^T\boldsymbol{\lambda}=0 \). Here we defined the vectors \( \boldsymbol{\lambda} =[\lambda_1,\lambda_2,\dots,\lambda_n] \) and +\( \boldsymbol{y}=[y_1,y_2,\dots,y_n] \). +With the slack constants this leads to the additional constraint \( 0\leq \lambda_i \leq C \). + +

    +code will be added + +

    +









    + +

    Multiclass problems and regression with SVMs

    +This material will be added later. diff --git a/doc/pub/svm/html/svm.html b/doc/pub/svm/html/svm.html index 6d99d69b8..2ef8ae2da 100644 --- a/doc/pub/svm/html/svm.html +++ b/doc/pub/svm/html/svm.html @@ -60,14 +60,19 @@ div { text-align: justify; text-justify: inter-word; } ('Soft optmization problem', 2, None, '___sec15'), ('Kernels and non-linearity', 2, None, '___sec16'), ('The equations', 2, None, '___sec17'), - ('Different kernels', 2, None, '___sec18'), - ('Quadratic coefficient matrix', 2, None, '___sec19'), - ("Mercer's theorem", 2, None, '___sec20'), + ('The problem to solve', 2, None, '___sec18'), + ("Different kernels and Mercer's theorem", 2, None, '___sec19'), ('Mathematical optimization of convex functions', 2, None, - '___sec21'), - ('How do we solve these problems', 2, None, '___sec22')]} + '___sec20'), + ('How do we solve these problems?', 2, None, '___sec21'), + ('A simplex example', 2, None, '___sec22'), + ('Back to the more realistic cases', 2, None, '___sec23'), + ('Multiclass problems and regression with SVMs', + 2, + None, + '___sec24')]} end of tocinfo --> @@ -136,8 +141,14 @@ classification problems) of variables. It is also used for regression problems.

    -With SVMs we distinguish between hard margin and soft margins. The latter introduces a so-called softening parameter to be discussed below. -We distinguish also between linear and non-linear approaches. The latter are the most frequent ones since it is rather unlikely that we can separate classes easily by say straight lines. +With SVMs we distinguish between hard margin and soft margins. The +latter introduces a so-called softening parameter to be discussed +below. We distinguish also between linear and non-linear +approaches. The latter are the most frequent ones since it is rather +unlikely that we can separate classes easily by say straight lines. + +

    +Note: several figures are missing. They will be added shortly. To run the codes, use the jupyter notebook











    @@ -677,15 +688,15 @@ we need to introduce for example a polynomial transformation to a two-dimensiona

    The equations

    -Suppose we define a polynomial transformation of degree two (we continue to live in a plane with \( x_1 \) and \( x_2 \) as variables) +Suppose we define a polynomial transformation of degree two only (we continue to live in a plane with \( x_i \) and \( y_i \) as variables) $$ -z = \phi(x) =\left(1, x_1, x_2, x_1^2, x_2^2, x_1x_2). +z = \phi(x_i) =\left(x_i^2, y_i^2, \sqrt{2}x_iy_i\right). $$

    With our new basis, the equations we solved earlier are basically the same, that is we have now (without the slack option for simplicity) $$ -{\cal L}=\sum_i\lambda_i-\frac{1}{2}\sum_{ij}^n\lambda_i\lambda_jy_iy_j\boldsymbol{z}_i^T\boldsymbol{Z}_j, +{\cal L}=\sum_i\lambda_i-\frac{1}{2}\sum_{ij}^n\lambda_i\lambda_jy_iy_j\boldsymbol{x}_i^T\boldsymbol{z}_j, $$ subject to the constraints \( \lambda_i\geq 0 \), \( \sum_i\lambda_iy_i=0 \), and for the support vectors @@ -694,37 +705,102 @@ y_i(\boldsymbol{w}^T\boldsymbol{z}_i+b)= 1 \hspace{0.1cm}\forall i, $$ from which we also find \( b \). - -

    -









    - -

    Different kernels

    - -

    -









    - -

    Quadratic coefficient matrix

    - -

    - - -

    Mercer's theorem

    - -

    -









    - -

    Mathematical optimization of convex functions

    - -

    -A mathematical optimization problem, or just optimization problem, has the form +To compute \( \boldsymbol{z}_i^T\boldsymbol{Z}_j \) we define the kerne \( K(\boldsymbol{x}_i,\boldsymbol{x}_j) \) as $$ -\mathrm{minimize}\hspace{0.1cm} f(x), +K(\boldsymbol{x}_i,\boldsymbol{x}_j)=\boldsymbol{z}_i^T\boldsymbol{Z}_j= \phi(\boldsymbol{x}_i)^T\phi(\boldsymbol{x}_j). $$ -subject to some constraints \( g(\lambda_i) \leq b_i \) for say a selected set \( i=1,2,\dots, n \). +For the above example, the kernel reads +$$ +K(\boldsymbol{x}_i,\boldsymbol{x}_j)=[x_i^2, y_i^2, \sqrt{2}x_iy_i]^T\begin{bmatrix} x_j^2 \\ y_j^2 \\ \sqrt{2}x_jy_j \end{bmatrix}=x_i^2x_j^2+2x_ixJy_iy_j+y_i^2y_j^2. +$$ + +We note that this is nothing but the dot product of the two original vectors \( (\boldsymbol{x}_i^T\boldsymbol{x}_j)^2 \). Instead of thus computing the product in the Lagrangian of \( \boldsymbol{x}_i^T\boldsymbol{z}_j \) we simply compute the dot product \( (\boldsymbol{x}_i^T\boldsymbol{x}_j)^2 \). This leads to the so-called kernel trick and the result leads to the same as if we went through the trouble of performing the transformation \( (\phi(\boldsymbol{x}_i)^T\phi(\boldsymbol{x}_j) \) during the SVM calculations. + +

    +









    + +

    The problem to solve

    +Using our definition of the kernel We can rewrite again the Lagrangian +$$ +{\cal L}=\sum_i\lambda_i-\frac{1}{2}\sum_{ij}^n\lambda_i\lambda_jy_iy_j\boldsymbol{x}_i^T\boldsymbol{z}_j, +$$ + +subject to the constraints \( \lambda_i\geq 0 \), \( \sum_i\lambda_iy_i=0 \) in terms of a convex optimization problem +$$ +\frac{1}{2} \boldsymbol{\lambda}^T\begin{bmatrix} y_1y_1K(\boldsymbol{x}_1,\boldsymbol{x}_1) & y_1y_2K(\boldsymbol{x}_1,\boldsymbol{x}_2) & \dots & \dots & y_1y_nK(\boldsymbol{x}_1,\boldsymbol{x}_n) \\ +y_2y_1\boldsymbol{x}_2^T\boldsymbol{x}_1 & y_2y_2\boldsymbol{x}_2^T\boldsymbol{x}_2 & \dots & \dots & y_1y_n\boldsymbol{x}_2^T\boldsymbol{x}_n \\ +\dots & \dots & \dots & \dots & \dots \\ +\dots & \dots & \dots & \dots & \dots \\ +y_ny_1K(\boldsymbol{x}_n,\boldsymbol{x}_1) & y_ny_2K(\boldsymbol{x}_n\boldsymbol{x}_2) & \dots & \dots & y_ny_nK(\boldsymbol{x}_n,\boldsymbol{x}_n) \\ +\end{bmatrix}\boldsymbol{\lambda}-\mathbb{I}\boldsymbol{\lambda}, +$$ + +subject to \( \boldsymbol{y}^T\boldsymbol{\lambda}=0 \). Here we defined the vectors \( \boldsymbol{\lambda} =[\lambda_1,\lambda_2,\dots,\lambda_n] \) and +\( \boldsymbol{y}=[y_1,y_2,\dots,y_n] \). +If we add the slack constants this leads to the additional constraint \( 0\leq \lambda_i \leq C \). + +

    +We can rewrite this (see the solutions below) in terms of a convex optimization problem of the type +$$ +\begin{align*} + &\mathrm{min}_{\lambda}\hspace{0.2cm} \frac{1}{2}\boldsymbol{\lambda}^T\boldsymbol{P}\boldsymbol{\lambda}+\boldsymbol{q}^T\boldsymbol{\lambda},\\ \nonumber + &\mathrm{subject to} \hspace{0.2cm} \boldsymbol{G}\boldsymbol{\lambda} \preceq \boldsymbol{h} \hspace{0.2cm} \boldsymbol{A}\boldsymbol{\lambda}=f. +\end{align*} +$$ + +Below we discuss how to solve these equations. Here we note that the matrix \( \boldsymbol{P} \) has matrix elements \( p_{ij}=y_iy_jK(\boldsymbol{x}_i,\boldsymbol{x}_j) \). +Given a kernel \( K \) and the targets \( y_i \) this matrix is easy to set up. The constraint \( \boldsymbol{y}^T\boldsymbol{\lambda}=0 \) leads to \( f=0 \) and \( \boldsymbol{A}=\boldsymbol{y} \). How to set up the matrix \( \boldsymbol{G} \) is discussed later. Here note that the inequalities \( 0\leq \lambda_i \leq C \) can be split up into +\( 0\leq \lambda_i \) and \( \lambda_i \leq C \). These two inequalities define then the matrix \( \boldsymbol{G} \) and the vector \( \boldsymbol{h} \). + +

    +









    + +

    Different kernels and Mercer's theorem

    + +

    +There are several popular kernels being used. These are + +

      +
    1. Linear: \( K(\boldsymbol{x},\boldsymbol{y})=\boldsymbol{x}^T\boldsymbol{y} \),
    2. +
    3. Polynomial: \( K(\boldsymbol{x},\boldsymbol{y})=(\boldsymbol{x}^T\boldsymbol{y}+\gamma)^d \),
    4. +
    5. Gaussian Radial Basis Function: \( K(\boldsymbol{x},\boldsymbol{y})=\exp{\left(-\gamma\vert\vert\boldsymbol{x}-\boldsymbol{y}\vert\vert^2\right)} \),
    6. +
    7. Tanh: \( K(\boldsymbol{x},\boldsymbol{y})=\tanh{(\boldsymbol{x}^T\boldsymbol{y}+\gamma)} \),
    8. +
    + +and many other ones. + +

    +An important theorem for us is "Mercer's theorem":https://en.wikipedia.org/wiki/Mercer%27s_theorem". +The theorem states that if a kernel function \( K \) is symmetric, continuous and leads to a positive semi-definite matrix \( \boldsymbol{P} \) then +there exists a function \( \phi \) that maps \( \boldsymbol{x}_i \) and \( \boldsymbol{x}_j \) into another space +(possibly with much higher dimensions) such that +$$ +K(\boldsymbol{x}_i,\boldsymbol{x}_j)=\phi(\boldsymbol{x}_i)^T\phi(\boldsymbol{x}_j). +$$ + +So you can use \( K \) as a kernel since you know \( \phi \) exists, even if +you don’t know what \( \phi \) is. +Note that some frequently used kernels (such as the Sigmoid kernel) don’t respect all of Mercer’s conditions, yet they generally work +well in practice. + +

    +









    + +

    Mathematical optimization of convex functions

    + +

    +A mathematical (quadratic) optimization problem, or just optimization problem, has the form +$$ +\begin{align*} + &\mathrm{min}_{\lambda}\hspace{0.2cm} \frac{1}{2}\boldsymbol{\lambda}^T\boldsymbol{P}\boldsymbol{\lambda}+\boldsymbol{q}^T\boldsymbol{\lambda},\\ \nonumber + &\mathrm{subject to} \hspace{0.2cm} \boldsymbol{G}\boldsymbol{\lambda} \preceq \boldsymbol{h} \hspace{0.2cm} \boldsymbol{A}\boldsymbol{\lambda}=f. +\end{align*} +$$ + +subject to some constraints for say a selected set \( i=1,2,\dots, n \). In our case we are optimizing with respect to the Lagrangian multipliers \( \lambda_i \), and the vector \( \boldsymbol{\lambda}=[\lambda_1, \lambda_2,\dots, \lambda_n] \) is the optimization variable we are dealing with. -and \( f(x) \) is our objective function while \( g(\lambda_i) \leq b_i \) represents our constraint function.

    In our case we are particularly interested in a class of optimization problems called convex optmization problems. @@ -736,7 +812,7 @@ Convex optimization problems play a central role in applied mathematics and we r











    -

    How do we solve these problems

    +

    How do we solve these problems?

    If we use Python as programming language and wish to venture beyond @@ -748,7 +824,8 @@ methods. However, these methods tend to exhibit a rather slow converge. So, welcome to the promised land of quadratic programming.

    -The functions we need are contained in the quadratic programming package CVXOPT and we need to import it +The functions we need are contained in the quadratic programming package CVXOPT and we need to import it together with numpy as +

    @@ -756,30 +833,59 @@ The functions we need are contained in the quadratic programming package CVXO import cvxopt

    -Let us first set up the standard form the of quadratic programming (QP) equations by defining the problem as +This will make our life much easier. You don't need t write your own optimizer. + +

    +









    + +

    A simplex example

    + +

    +We remind ourselves about the general problem we want to solve $$ -\mathrm{min} +\begin{align*} + &\mathrm{min}_{x}\hspace{0.2cm} \frac{1}{2}\boldsymbol{x}^T\boldsymbol{P}\boldsymbol{x}+\boldsymbol{q}^T\boldsymbol{x},\\ \nonumber + &\mathrm{subject to} \hspace{0.2cm} \boldsymbol{G}\boldsymbol{x} \preceq \boldsymbol{h} \hspace{0.2cm} \boldsymbol{A}\boldsymbol{x}=f. +\end{align*} $$

    -subject to Gx u. Note that x itself is not provided to the solver, since it is an internal -variable being optimized over. In particular, this means that the solver has no explicit knowledge -of x itself; everything is implicity defined by the supplied parameters. It is essential -that the same variable order is maintained for the relevant parameters (e.g., qi -Non-convexity implies the existence of local optima, making it difficult to find global optima. +Let us show how to perform the optmization using a simple case. Assume we want to optimize the following problem +$$ +\begin{align*} + &\mathrm{min}_{x}\hspace{0.2cm} \frac{1}{2}x^2+5x+3y \\ \nonumber + &\mathrm{subject to} \\ \nonumber + &x, y \geq 0 \\ \nonumber + &x+3y \geq 15 \\ \nonumber + &2x+5y \leq 100 \\ \nonumber + &3x+4y \leq 80. \\ \nonumber +\end{align*} +$$ + +The minimization problem can be rewritten in terms of vectors and matrices as (with \( x \) and \( y \) being the unknowns) +$$ +frac{1}{2}\begin{bmatrix} x\\ y \end{bmatrix}^T \begin{bmatrix} 1 & 0\\ 0 & 0 \end{bmatrix} \begin{bmatrix} x \\ y \end{bmatrix} + \begin{bmatrix}3\\ 4 \end{bmatrix}^T \begin{bmatrix}x \\ y \end{bmatrix}. +$$ + +Similarly, we can now set up the inequalities (we need to change \( \geq \) to \( \leq \) by multiplying with \( -1 \) on bot sides) as the following matrix-vector equation +$$ +\begin{bmatrix} -1 & 0 \\ 0 & -1 \\ -1 & -3 \\ 2 & 5 \\ 3 & 4\end{matrix}\begin{bmatrix} x \\ y\end{bmatrix} \preceq \begin{bmatrix}0 \\ 0\\ -15 \\ 100 \\ 80\end{bmatrix}. +$$ + +We have collapsed all the inequalities into a single matrix \( \boldsymbol{G} \). We see also that our matrix +$$ +\boldsymbol{P} =\begin{bmatrix} 1 & 0\\ 0 & 0 \end{bmatrix} +$$ + +is clearly positive semi-definite (all eigenvalues larger or equal zero). +Finally, the vector \( \boldsymbol{h} \) is defined as +$$ +\boldsymbol{h} = \begin{bmatrix}0 \\ 0\\ -15 \\ 100 \\ 80\end{bmatrix}. +$$

    -collapsed all inequality constraints into a single G matrix of the standard form. -Since there are no equality constraints, we do not need to provide the empty A, b. Note -that even though y -2 did not appear in the original objective, we had to include it with zero -coefficients in P because the solver parameters must be defined using the full set of variables. -Even if certain variables only appear in constraints, they will still need to be expressed with -zero coefficients in the objective parameters, and vice versa. -Let us first define the above parameters in Python. CVXOPT supplies its own matrix -object; all arguments given to its solvers must be in this matrix type. There are two ways -to do this. The first is to define the matrix directly with (potentially nested) lists: -from cvxopt import matrix +Since we don't have any equalities the matrix \( \boldsymbol{A} \) is set to zero +The following code does this for us

    @@ -800,10 +906,37 @@ h = matrix(numpy# Construct the QP, invoke solver sol = solvers.qp(P,q,G,h) # Extract optimal value and solution -sol[’x’] # [7.13e-07, 5.00e+00] +sol[’x’] sol[’primal objective’]

    +









    + +

    Back to the more realistic cases

    + +

    +We are now ready to return to our setup of the optmization problem for a more realistic case. Introducint the slack parameter \( C \) we have +$$ +\frac{1}{2} \boldsymbol{\lambda}^T\begin{bmatrix} y_1y_1K(\boldsymbol{x}_1,\boldsymbol{x}_1) & y_1y_2K(\boldsymbol{x}_1,\boldsymbol{x}_2) & \dots & \dots & y_1y_nK(\boldsymbol{x}_1,\boldsymbol{x}_n) \\ +y_2y_1\boldsymbol{x}_2^T\boldsymbol{x}_1 & y_2y_2\boldsymbol{x}_2^T\boldsymbol{x}_2 & \dots & \dots & y_1y_n\boldsymbol{x}_2^T\boldsymbol{x}_n \\ +\dots & \dots & \dots & \dots & \dots \\ +\dots & \dots & \dots & \dots & \dots \\ +y_ny_1K(\boldsymbol{x}_n,\boldsymbol{x}_1) & y_ny_2K(\boldsymbol{x}_n\boldsymbol{x}_2) & \dots & \dots & y_ny_nK(\boldsymbol{x}_n,\boldsymbol{x}_n) \\ +\end{bmatrix}\boldsymbol{\lambda}-\mathbb{I}\boldsymbol{\lambda}, +$$ + +subject to \( \boldsymbol{y}^T\boldsymbol{\lambda}=0 \). Here we defined the vectors \( \boldsymbol{\lambda} =[\lambda_1,\lambda_2,\dots,\lambda_n] \) and +\( \boldsymbol{y}=[y_1,y_2,\dots,y_n] \). +With the slack constants this leads to the additional constraint \( 0\leq \lambda_i \leq C \). + +

    +code will be added + +

    +









    + +

    Multiclass problems and regression with SVMs

    +This material will be added later. diff --git a/doc/pub/svm/ipynb/ipynb-svm-src.tar.gz b/doc/pub/svm/ipynb/ipynb-svm-src.tar.gz index ff6e50e1a1ab1005dcbb325716e8d06f468adc6b..7e410e360aa5992975add6892c09a79a2cbf0cb1 100644 GIT binary patch literal 208 zcmV;>05AU^iwFS5o#9&m1MSbjYQjJe#&OSiig|*tYcx3*>Y;~1DSd&JtY+J0*Y0jg z^Y%ssJ?TwK>Hl~6m|+-ZURMu~&#N;3AF$1 zsHs@$nW+1nbTOoC;&e*)Zhf-;>fAK8+1%K3dPUCpN4#||$@00000000000001h|78#A KW~6}tC;$L=ziG+< literal 208 zcmb2|=3r<~dl=2Y{Pw(W)?ovIwuftKyDS?g)@QBfKC9I2q`9}DXKGZg?$Sv?uWldr zRES)\n", - "## Mercer's theorem\n", - "\n", - "## Mathematical optimization of convex functions\n", - "\n", - "A mathematical optimization problem, or just optimization problem, has the form" + "from which we also find $b$.\n", + "To compute $\\boldsymbol{z}_i^T\\boldsymbol{Z}_j$ we define the kerne $K(\\boldsymbol{x}_i,\\boldsymbol{x}_j)$ as" ] }, { @@ -1147,7 +1140,7 @@ "metadata": {}, "source": [ "$$\n", - "\\mathrm{minimize}\\hspace{0.1cm} f(x),\n", + "K(\\boldsymbol{x}_i,\\boldsymbol{x}_j)=\\boldsymbol{z}_i^T\\boldsymbol{Z}_j= \\phi(\\boldsymbol{x}_i)^T\\phi(\\boldsymbol{x}_j).\n", "$$" ] }, @@ -1155,10 +1148,153 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "subject to some constraints $g(\\lambda_i) \\leq b_i$ for say a selected set $i=1,2,\\dots, n$.\n", + "For the above example, the kernel reads" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "K(\\boldsymbol{x}_i,\\boldsymbol{x}_j)=[x_i^2, y_i^2, \\sqrt{2}x_iy_i]^T\\begin{bmatrix} x_j^2 \\\\ y_j^2 \\\\ \\sqrt{2}x_jy_j \\end{bmatrix}=x_i^2x_j^2+2x_ixJy_iy_j+y_i^2y_j^2.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We note that this is nothing but the dot product of the two original vectors $(\\boldsymbol{x}_i^T\\boldsymbol{x}_j)^2$. Instead of thus computing the product in the Lagrangian of $\\boldsymbol{x}_i^T\\boldsymbol{z}_j$ we simply compute the dot product $(\\boldsymbol{x}_i^T\\boldsymbol{x}_j)^2$. This leads to the so-called kernel trick and the result leads to the same as if we went through the trouble of performing the transformation $(\\phi(\\boldsymbol{x}_i)^T\\phi(\\boldsymbol{x}_j)$ during the SVM calculations. \n", + "\n", + "\n", + "## The problem to solve\n", + "Using our definition of the kernel We can rewrite again the Lagrangian" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "{\\cal L}=\\sum_i\\lambda_i-\\frac{1}{2}\\sum_{ij}^n\\lambda_i\\lambda_jy_iy_j\\boldsymbol{x}_i^T\\boldsymbol{z}_j,\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "subject to the constraints $\\lambda_i\\geq 0$, $\\sum_i\\lambda_iy_i=0$ in terms of a convex optimization problem" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\frac{1}{2} \\boldsymbol{\\lambda}^T\\begin{bmatrix} y_1y_1K(\\boldsymbol{x}_1,\\boldsymbol{x}_1) & y_1y_2K(\\boldsymbol{x}_1,\\boldsymbol{x}_2) & \\dots & \\dots & y_1y_nK(\\boldsymbol{x}_1,\\boldsymbol{x}_n) \\\\\n", + "y_2y_1\\boldsymbol{x}_2^T\\boldsymbol{x}_1 & y_2y_2\\boldsymbol{x}_2^T\\boldsymbol{x}_2 & \\dots & \\dots & y_1y_n\\boldsymbol{x}_2^T\\boldsymbol{x}_n \\\\\n", + "\\dots & \\dots & \\dots & \\dots & \\dots \\\\\n", + "\\dots & \\dots & \\dots & \\dots & \\dots \\\\\n", + "y_ny_1K(\\boldsymbol{x}_n,\\boldsymbol{x}_1) & y_ny_2K(\\boldsymbol{x}_n\\boldsymbol{x}_2) & \\dots & \\dots & y_ny_nK(\\boldsymbol{x}_n,\\boldsymbol{x}_n) \\\\\n", + "\\end{bmatrix}\\boldsymbol{\\lambda}-\\mathbb{I}\\boldsymbol{\\lambda},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "subject to $\\boldsymbol{y}^T\\boldsymbol{\\lambda}=0$. Here we defined the vectors $\\boldsymbol{\\lambda} =[\\lambda_1,\\lambda_2,\\dots,\\lambda_n]$ and \n", + "$\\boldsymbol{y}=[y_1,y_2,\\dots,y_n]$. \n", + "If we add the slack constants this leads to the additional constraint $0\\leq \\lambda_i \\leq C$.\n", + "\n", + "We can rewrite this (see the solutions below) in terms of a convex optimization problem of the type" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\begin{align*}\n", + " &\\mathrm{min}_{\\lambda}\\hspace{0.2cm} \\frac{1}{2}\\boldsymbol{\\lambda}^T\\boldsymbol{P}\\boldsymbol{\\lambda}+\\boldsymbol{q}^T\\boldsymbol{\\lambda},\\\\ \\nonumber\n", + " &\\mathrm{subject to} \\hspace{0.2cm} \\boldsymbol{G}\\boldsymbol{\\lambda} \\preceq \\boldsymbol{h} \\hspace{0.2cm} \\boldsymbol{A}\\boldsymbol{\\lambda}=f.\n", + "\\end{align*}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Below we discuss how to solve these equations. Here we note that the matrix $\\boldsymbol{P}$ has matrix elements $p_{ij}=y_iy_jK(\\boldsymbol{x}_i,\\boldsymbol{x}_j)$.\n", + "Given a kernel $K$ and the targets $y_i$ this matrix is easy to set up. The constraint $\\boldsymbol{y}^T\\boldsymbol{\\lambda}=0$ leads to $f=0$ and $\\boldsymbol{A}=\\boldsymbol{y}$. How to set up the matrix $\\boldsymbol{G}$ is discussed later. Here note that the inequalities $0\\leq \\lambda_i \\leq C$ can be split up into\n", + "$0\\leq \\lambda_i$ and $\\lambda_i \\leq C$. These two inequalities define then the matrix $\\boldsymbol{G}$ and the vector $\\boldsymbol{h}$.\n", + "\n", + "\n", + "## Different kernels and Mercer's theorem\n", + "\n", + "There are several popular kernels being used. These are\n", + "1. Linear: $K(\\boldsymbol{x},\\boldsymbol{y})=\\boldsymbol{x}^T\\boldsymbol{y}$,\n", + "\n", + "2. Polynomial: $K(\\boldsymbol{x},\\boldsymbol{y})=(\\boldsymbol{x}^T\\boldsymbol{y}+\\gamma)^d$,\n", + "\n", + "3. Gaussian Radial Basis Function: $K(\\boldsymbol{x},\\boldsymbol{y})=\\exp{\\left(-\\gamma\\vert\\vert\\boldsymbol{x}-\\boldsymbol{y}\\vert\\vert^2\\right)}$,\n", + "\n", + "4. Tanh: $K(\\boldsymbol{x},\\boldsymbol{y})=\\tanh{(\\boldsymbol{x}^T\\boldsymbol{y}+\\gamma)}$,\n", + "\n", + "and many other ones.\n", + "\n", + "An important theorem for us is \"Mercer's theorem\":https://en.wikipedia.org/wiki/Mercer%27s_theorem\". \n", + "The theorem states that if a kernel function $K$ is symmetric, continuous and leads to a positive semi-definite matrix $\\boldsymbol{P}$ then\n", + "there exists a function $\\phi$ that maps $\\boldsymbol{x}_i$ and $\\boldsymbol{x}_j$ into another space\n", + "(possibly with much higher dimensions) such that" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "K(\\boldsymbol{x}_i,\\boldsymbol{x}_j)=\\phi(\\boldsymbol{x}_i)^T\\phi(\\boldsymbol{x}_j).\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "So you can use $K$ as a kernel since you know $\\phi$ exists, even if\n", + "you don’t know what $\\phi$ is. \n", + "Note that some frequently used kernels (such as the Sigmoid kernel) don’t respect all of Mercer’s conditions, yet they generally work\n", + "well in practice.\n", + "\n", + "\n", + "## Mathematical optimization of convex functions\n", + "\n", + "A mathematical (quadratic) optimization problem, or just optimization problem, has the form" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\begin{align*}\n", + " &\\mathrm{min}_{\\lambda}\\hspace{0.2cm} \\frac{1}{2}\\boldsymbol{\\lambda}^T\\boldsymbol{P}\\boldsymbol{\\lambda}+\\boldsymbol{q}^T\\boldsymbol{\\lambda},\\\\ \\nonumber\n", + " &\\mathrm{subject to} \\hspace{0.2cm} \\boldsymbol{G}\\boldsymbol{\\lambda} \\preceq \\boldsymbol{h} \\hspace{0.2cm} \\boldsymbol{A}\\boldsymbol{\\lambda}=f.\n", + "\\end{align*}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "subject to some constraints for say a selected set $i=1,2,\\dots, n$.\n", "In our case we are optimizing with respect to the Lagrangian multipliers $\\lambda_i$, and the\n", "vector $\\boldsymbol{\\lambda}=[\\lambda_1, \\lambda_2,\\dots, \\lambda_n]$ is the optimization variable we are dealing with.\n", - "and $f(x)$ is our objective function while $g(\\lambda_i) \\leq b_i$ represents our constraint function.\n", "\n", "In our case we are particularly interested in a class of optimization problems called convex optmization problems. \n", "In our disussion on gradient descent methods we discussed at length the definition of a convex function. \n", @@ -1167,7 +1303,7 @@ "\n", "\n", "\n", - "## How do we solve these problems\n", + "## How do we solve these problems?\n", "\n", "If we use Python as programming language and wish to venture beyond\n", "**scikit-learn**, **tensorflow** and similar software which makes our\n", @@ -1177,7 +1313,7 @@ "methods. However, these methods tend to exhibit a rather slow\n", "converge. So, welcome to the promised land of quadratic programming.\n", "\n", - "The functions we need are contained in the quadratic programming package **CVXOPT** and we need to import it" + "The functions we need are contained in the quadratic programming package **CVXOPT** and we need to import it together with **numpy** as" ] }, { @@ -1196,7 +1332,12 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Let us first set up the standard form the of quadratic programming (QP) equations by defining the problem as" + "This will make our life much easier. You don't need t write your own optimizer.\n", + "\n", + "\n", + "## A simplex example\n", + "\n", + "We remind ourselves about the general problem we want to solve" ] }, { @@ -1204,7 +1345,10 @@ "metadata": {}, "source": [ "$$\n", - "\\mathrm{min}\n", + "\\begin{align*}\n", + " &\\mathrm{min}_{x}\\hspace{0.2cm} \\frac{1}{2}\\boldsymbol{x}^T\\boldsymbol{P}\\boldsymbol{x}+\\boldsymbol{q}^T\\boldsymbol{x},\\\\ \\nonumber\n", + " &\\mathrm{subject to} \\hspace{0.2cm} \\boldsymbol{G}\\boldsymbol{x} \\preceq \\boldsymbol{h} \\hspace{0.2cm} \\boldsymbol{A}\\boldsymbol{x}=f.\n", + "\\end{align*}\n", "$$" ] }, @@ -1212,23 +1356,96 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "subject to Gx u. Note that x itself is not provided to the solver, since it is an internal\n", - "variable being optimized over. In particular, this means that the solver has no explicit knowledge\n", - "of x itself; everything is implicity defined by the supplied parameters. It is essential\n", - "that the same variable order is maintained for the relevant parameters (e.g., qi\n", - "Non-convexity implies the existence of local optima, making it difficult to find global optima.\n", - "\n", - "collapsed all inequality constraints into a single G matrix of the standard form.\n", - "Since there are no equality constraints, we do not need to provide the empty A, b. Note\n", - "that even though y\n", - "2 did not appear in the original objective, we had to include it with zero\n", - "coefficients in P because the solver parameters must be defined using the full set of variables.\n", - "Even if certain variables only appear in constraints, they will still need to be expressed with\n", - "zero coefficients in the objective parameters, and vice versa.\n", - "Let us first define the above parameters in Python. CVXOPT supplies its own matrix\n", - "object; all arguments given to its solvers must be in this matrix type. There are two ways\n", - "to do this. The first is to define the matrix directly with (potentially nested) lists:\n", - "from cvxopt import matrix" + "Let us show how to perform the optmization using a simple case. Assume we want to optimize the following problem" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\begin{align*}\n", + " &\\mathrm{min}_{x}\\hspace{0.2cm} \\frac{1}{2}x^2+5x+3y \\\\ \\nonumber\n", + " &\\mathrm{subject to} \\\\ \\nonumber\n", + " &x, y \\geq 0 \\\\ \\nonumber\n", + " &x+3y \\geq 15 \\\\ \\nonumber\n", + " &2x+5y \\leq 100 \\\\ \\nonumber\n", + " &3x+4y \\leq 80. \\\\ \\nonumber\n", + "\\end{align*}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The minimization problem can be rewritten in terms of vectors and matrices as (with $x$ and $y$ being the unknowns)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "frac{1}{2}\\begin{bmatrix} x\\\\ y \\end{bmatrix}^T \\begin{bmatrix} 1 & 0\\\\ 0 & 0 \\end{bmatrix} \\begin{bmatrix} x \\\\ y \\end{bmatrix} + \\begin{bmatrix}3\\\\ 4 \\end{bmatrix}^T \\begin{bmatrix}x \\\\ y \\end{bmatrix}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Similarly, we can now set up the inequalities (we need to change $\\geq$ to $\\leq$ by multiplying with $-1$ on bot sides) as the following matrix-vector equation" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\begin{bmatrix} -1 & 0 \\\\ 0 & -1 \\\\ -1 & -3 \\\\ 2 & 5 \\\\ 3 & 4\\end{matrix}\\begin{bmatrix} x \\\\ y\\end{bmatrix} \\preceq \\begin{bmatrix}0 \\\\ 0\\\\ -15 \\\\ 100 \\\\ 80\\end{bmatrix}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We have collapsed all the inequalities into a single matrix $\\boldsymbol{G}$. We see also that our matrix" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{P} =\\begin{bmatrix} 1 & 0\\\\ 0 & 0 \\end{bmatrix}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "is clearly positive semi-definite (all eigenvalues larger or equal zero). \n", + "Finally, the vector $\\boldsymbol{h}$ is defined as" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{h} = \\begin{bmatrix}0 \\\\ 0\\\\ -15 \\\\ 100 \\\\ 80\\end{bmatrix}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Since we don't have any equalities the matrix $\\boldsymbol{A}$ is set to zero\n", + "The following code does this for us" ] }, { @@ -1256,9 +1473,47 @@ "# Construct the QP, invoke solver\n", "sol = solvers.qp(P,q,G,h)\n", "# Extract optimal value and solution\n", - "sol[’x’] # [7.13e-07, 5.00e+00]\n", + "sol[’x’] \n", "sol[’primal objective’]" ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Back to the more realistic cases\n", + "\n", + "We are now ready to return to our setup of the optmization problem for a more realistic case. Introducint the **slack** parameter $C$ we have" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\frac{1}{2} \\boldsymbol{\\lambda}^T\\begin{bmatrix} y_1y_1K(\\boldsymbol{x}_1,\\boldsymbol{x}_1) & y_1y_2K(\\boldsymbol{x}_1,\\boldsymbol{x}_2) & \\dots & \\dots & y_1y_nK(\\boldsymbol{x}_1,\\boldsymbol{x}_n) \\\\\n", + "y_2y_1\\boldsymbol{x}_2^T\\boldsymbol{x}_1 & y_2y_2\\boldsymbol{x}_2^T\\boldsymbol{x}_2 & \\dots & \\dots & y_1y_n\\boldsymbol{x}_2^T\\boldsymbol{x}_n \\\\\n", + "\\dots & \\dots & \\dots & \\dots & \\dots \\\\\n", + "\\dots & \\dots & \\dots & \\dots & \\dots \\\\\n", + "y_ny_1K(\\boldsymbol{x}_n,\\boldsymbol{x}_1) & y_ny_2K(\\boldsymbol{x}_n\\boldsymbol{x}_2) & \\dots & \\dots & y_ny_nK(\\boldsymbol{x}_n,\\boldsymbol{x}_n) \\\\\n", + "\\end{bmatrix}\\boldsymbol{\\lambda}-\\mathbb{I}\\boldsymbol{\\lambda},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "subject to $\\boldsymbol{y}^T\\boldsymbol{\\lambda}=0$. Here we defined the vectors $\\boldsymbol{\\lambda} =[\\lambda_1,\\lambda_2,\\dots,\\lambda_n]$ and \n", + "$\\boldsymbol{y}=[y_1,y_2,\\dots,y_n]$. \n", + "With the slack constants this leads to the additional constraint $0\\leq \\lambda_i \\leq C$.\n", + "\n", + "**code will be added**\n", + "\n", + "\n", + "## Multiclass problems and regression with SVMs\n", + "This material will be added later." + ] } ], "metadata": {}, diff --git a/doc/pub/svm/pdf/svm-minted.pdf b/doc/pub/svm/pdf/svm-minted.pdf index 226be3e02f7cc1dd59c76063a99e9f749bb913cc..f9cf6937cb236074aebc6e60be7618e6634657a3 100644 GIT binary patch delta 179909 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

    t&*q`s{(!St8N7t1W8388{;MwKT9W1a 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

    ET{( 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 Lh?`qgUk&sh1mN~X diff --git a/doc/src/SupportVMachines/svm.do.txt b/doc/src/SupportVMachines/svm.do.txt index a645290ed..17b9a8b0b 100644 --- a/doc/src/SupportVMachines/svm.do.txt +++ b/doc/src/SupportVMachines/svm.do.txt @@ -621,7 +621,7 @@ We can rewrite this (see the solutions below) in terms of a convex optimization &\mathrm{subject to} \hspace{0.2cm} \bm{G}\bm{\lambda} \preceq \bm{h} \hspace{0.2cm} \bm{A}\bm{\lambda}=f. \end{align*} !et -Below we discuss how to solve these equations. Here we note that the matrix $\bm{P} has matrix elements $p_{ij}=y_iy_jK(\bm{x}_i,\bm{x}_j)$. +Below we discuss how to solve these equations. Here we note that the matrix $\bm{P}$ has matrix elements $p_{ij}=y_iy_jK(\bm{x}_i,\bm{x}_j)$. Given a kernel $K$ and the targets $y_i$ this matrix is easy to set up. The constraint $\bm{y}^T\bm{\lambda}=0$ leads to $f=0$ and $\bm{A}=\bm{y}$. How to set up the matrix $\bm{G}$ is discussed later. Here note that the inequalities $0\leq \lambda_i \leq C$ can be split up into $0\leq \lambda_i$ and $\lambda_i \leq C$. These two inequalities define then the matrix $\bm{G}$ and the vector $\bm{h}$. @@ -637,7 +637,7 @@ o Tanh: $K(\bm{x},\bm{y})=\tanh{(\bm{x}^T\bm{y}+\gamma)}$, and many other ones. An important theorem for us is "Mercer's theorem":https://en.wikipedia.org/wiki/Mercer%27s_theorem". -The theorem states that if a kernel function $K$ is symmetric, continuous and leads to a positive definite matrix $\bm{P}$ then +The theorem states that if a kernel function $K$ is symmetric, continuous and leads to a positive semi-definite matrix $\bm{P}$ then there exists a function $\phi$ that maps $\bm{x}_i$ and $\bm{x}_j$ into another space (possibly with much higher dimensions) such that !bt @@ -673,7 +673,7 @@ Convex optimization problems play a central role in applied mathematics and we r !split -===== How do we solve these problems ===== +===== How do we solve these problems? ===== If we use Python as programming language and wish to venture beyond _scikit-learn_, _tensorflow_ and similar software which makes our @@ -696,10 +696,18 @@ This will make our life much easier. You don't need t write your own optimizer. !split ===== A simplex example ===== +We remind ourselves about the general problem we want to solve +!bt +\begin{align*} + &\mathrm{min}_{x}\hspace{0.2cm} \frac{1}{2}\bm{x}^T\bm{P}\bm{x}+\bm{q}^T\bm{x},\\ \nonumber + &\mathrm{subject to} \hspace{0.2cm} \bm{G}\bm{x} \preceq \bm{h} \hspace{0.2cm} \bm{A}\bm{x}=f. +\end{align*} +!et + Let us show how to perform the optmization using a simple case. Assume we want to optimize the following problem !bt \begin{align*} - &\mathrm{min}_{\lambda}\hspace{0.2cm} \frac{1}{2}x^2+5x+3y \\ \nonumber + &\mathrm{min}_{x}\hspace{0.2cm} \frac{1}{2}x^2+5x+3y \\ \nonumber &\mathrm{subject to} \\ \nonumber &x, y \geq 0 \\ \nonumber &x+3y \geq 15 \\ \nonumber @@ -713,24 +721,29 @@ The minimization problem can be rewritten in terms of vectors and matrices as (w frac{1}{2}\begin{bmatrix} x\\ y \end{bmatrix}^T \begin{bmatrix} 1 & 0\\ 0 & 0 \end{bmatrix} \begin{bmatrix} x \\ y \end{bmatrix} + \begin{bmatrix}3\\ 4 \end{bmatrix}^T \begin{bmatrix}x \\ y \end{bmatrix}. \] !et -Similarly, we an now -subject to Gx u. Note that x itself is not provided to the solver, since it is an internal -variable being optimized over. In particular, this means that the solver has no explicit knowledge -of x itself; everything is implicity defined by the supplied parameters. It is essential -that the same variable order is maintained for the relevant parameters (e.g., qi -Non-convexity implies the existence of local optima, making it difficult to find global optima. +Similarly, we can now set up the inequalities (we need to change $\geq$ to $\leq$ by multiplying with $-1$ on bot sides) as the following matrix-vector equation +!bt +\[ +\begin{bmatrix} -1 & 0 \\ 0 & -1 \\ -1 & -3 \\ 2 & 5 \\ 3 & 4\end{matrix}\begin{bmatrix} x \\ y\end{bmatrix} \preceq \begin{bmatrix}0 \\ 0\\ -15 \\ 100 \\ 80\end{bmatrix}. +\] +!et +We have collapsed all the inequalities into a single matrix $\bm{G}$. We see also that our matrix +!bt +\[ +\bm{P} =\begin{bmatrix} 1 & 0\\ 0 & 0 \end{bmatrix} +\] +!et +is clearly positive semi-definite (all eigenvalues larger or equal zero). +Finally, the vector $\bm{h}$ is defined as +!bt +\[ +\bm{h} = \begin{bmatrix}0 \\ 0\\ -15 \\ 100 \\ 80\end{bmatrix}. +\] +!et -collapsed all inequality constraints into a single G matrix of the standard form. -Since there are no equality constraints, we do not need to provide the empty A, b. Note -that even though y -2 did not appear in the original objective, we had to include it with zero -coefficients in P because the solver parameters must be defined using the full set of variables. -Even if certain variables only appear in constraints, they will still need to be expressed with -zero coefficients in the objective parameters, and vice versa. -Let us first define the above parameters in Python. CVXOPT supplies its own matrix -object; all arguments given to its solvers must be in this matrix type. There are two ways -to do this. The first is to define the matrix directly with (potentially nested) lists: -from cvxopt import matrix + +Since we don't have any equalities the matrix $\bm{A}$ is set to zero +The following code does this for us !bc pycod # Import the necessary packages import numpy @@ -749,10 +762,30 @@ h = matrix(numpy.array([0,0,-15,100,80]), tc=’d’) # Construct the QP, invoke solver sol = solvers.qp(P,q,G,h) # Extract optimal value and solution -sol[’x’] # [7.13e-07, 5.00e+00] +sol[’x’] sol[’primal objective’] !ec +!split +===== Back to the more realistic cases ===== + +We are now ready to return to our setup of the optmization problem for a more realistic case. Introducint the _slack_ parameter $C$ we have +!bt +\[ +\frac{1}{2} \bm{\lambda}^T\begin{bmatrix} y_1y_1K(\bm{x}_1,\bm{x}_1) & y_1y_2K(\bm{x}_1,\bm{x}_2) & \dots & \dots & y_1y_nK(\bm{x}_1,\bm{x}_n) \\ +y_2y_1\bm{x}_2^T\bm{x}_1 & y_2y_2\bm{x}_2^T\bm{x}_2 & \dots & \dots & y_1y_n\bm{x}_2^T\bm{x}_n \\ +\dots & \dots & \dots & \dots & \dots \\ +\dots & \dots & \dots & \dots & \dots \\ +y_ny_1K(\bm{x}_n,\bm{x}_1) & y_ny_2K(\bm{x}_n\bm{x}_2) & \dots & \dots & y_ny_nK(\bm{x}_n,\bm{x}_n) \\ +\end{bmatrix}\bm{\lambda}-\mathbb{I}\bm{\lambda}, +\] +!et +subject to $\bm{y}^T\bm{\lambda}=0$. Here we defined the vectors $\bm{\lambda} =[\lambda_1,\lambda_2,\dots,\lambda_n]$ and +$\bm{y}=[y_1,y_2,\dots,y_n]$. +With the slack constants this leads to the additional constraint $0\leq \lambda_i \leq C$. + +_code will be added_ + !split ===== Multiclass problems and regression with SVMs =====

    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 MJQbCsvK0J(0X6v2Q2+n{ delta 169094 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