svm_lightning.html.bak 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216
  1. <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
  2. <html> <head>
  3. <title>Support Vector Machines</title>
  4. <style>
  5. .slide {
  6. border: 2px solid #000066;
  7. background-color: #CCCCFF;
  8. position: absolute;
  9. width: 95%;
  10. height: 95%;
  11. }
  12. </style>
  13. <script>
  14. var slides = new Array();
  15. var currentSlide = 0;
  16. function initializeSlideshow() {
  17. var divs = document.getElementsByTagName("div");
  18. for (i=0; i < divs.length; i++) {
  19. var div = divs[i];
  20. if (div.className && (div.className == "slide")) {
  21. div.style.display = "none";
  22. div.addEventListener("click", showSlide, false);
  23. slides.push(div);
  24. }
  25. }
  26. showSlide();
  27. }
  28. function showSlide() {
  29. for (var i in slides) {
  30. slides[i].style.display = "none";
  31. }
  32. slides[currentSlide].style.display = "inline";
  33. currentSlide++;
  34. if (currentSlide >= slides.length) {
  35. currentSlide = 0;
  36. }
  37. }
  38. </script>
  39. </head>
  40. <body onload="initializeSlideshow();">
  41. <div class='slide'>
  42. <h1>Support Vector Machines</h1>
  43. <p>(lightning talk)</p>
  44. <p>(LPW '07) (john melesky)</p>
  45. </div>
  46. <div class='slide'>
  47. <h1>Presupposing:</h1>
  48. <p><ul>
  49. <li>You have a bunch of something.</li>
  50. <li>You can transform relevant attributes of those things into numbers.</li>
  51. <li>You can connect those numbers into vectors (think coordinates in an attribute space).</li>
  52. <li>You want to categorise them base on those numbers.</li>
  53. </ul></p>
  54. </div>
  55. <div class='slide'>
  56. <h1>The problem: find a line that separates these two categories of thing</h1>
  57. <img style="float: right;" src="basedata.png" />
  58. </div>
  59. <div class='slide'>
  60. <h1>For humans, this is easy.</h1>
  61. <img style="float: right;" src="cleansep.png" />
  62. <p>For mathematicians, it's actually not too hard.</p>
  63. </div>
  64. <div class='slide'>
  65. <h1>For humans, this is easy.</h1>
  66. <img style="float: right;" src="cleansep.png" />
  67. <p>For <del>mathematicians</del> computers, it's actually not too hard.</p>
  68. </div>
  69. <div class='slide'>
  70. <h1>There are two problems, though.</h1>
  71. </div>
  72. <div class='slide'>
  73. <h1>Problem, the first:</h1>
  74. <img style="float: right;" src="badline1.png" />
  75. </div>
  76. <div class='slide'>
  77. <h1>Problem, the first:</h1>
  78. <img style="float: right;" src="badline2.png" />
  79. </div>
  80. <div class='slide'>
  81. <h1>Problem, the second:</h1>
  82. <img style="float: right;" src="badset1.png" />
  83. </div>
  84. <div class='slide'>
  85. <h1>Problem, the second:</h1>
  86. <img style="float: right;" src="badset2.png" />
  87. </div>
  88. <div class='slide'>
  89. <h1>Problem, the second:</h1>
  90. <img style="float: right;" src="badset3.png" />
  91. </div>
  92. <div class='slide'>
  93. <h1>Conveniently, Support Vector Machines address both of the problems i've identified.</h1>
  94. <p></p>
  95. </div>
  96. <div class='slide'>
  97. <h1>Solution, the first:</h1>
  98. <p></p>
  99. </div>
  100. <div class='slide'>
  101. <h1>Solution, the first:</h1>
  102. <img style="float: right;" src="bordervectors.png" />
  103. <p><ul>
  104. <li>Create "border" vectors, parallel to eachother, touching the outermost edge of each category dataset.</li>
  105. </ul></p>
  106. </div>
  107. <div class='slide'>
  108. <h1>Solution, the first:</h1>
  109. <img style="float: right;" src="bordervectors.png" />
  110. <p><ul>
  111. <li>Create "border" vectors, parallel to eachother, touching the outermost edge of each category dataset.</li>
  112. <li>As you add new items, ensure these "borders" stay parallel.</li>
  113. </ul></p>
  114. </div>
  115. <div class='slide'>
  116. <h1>Solution, the first:</h1>
  117. <img style="float: right;" src="supportvectors.png" />
  118. <p><ul>
  119. <li>Create "border" vectors, parallel to eachother, touching the outermost edge of each category dataset.</li>
  120. <li>As you add new items, ensure these "borders" stay parallel.</li>
  121. <li>Create your categorizing vector equidistant from your two "borders".</li>
  122. </ul></p>
  123. </div>
  124. <div class='slide'>
  125. <h1>Solution, the first:</h1>
  126. <img style="float: right;" src="supportvectors.png" />
  127. <p><ul>
  128. <li>Create "border" vectors, parallel to eachother, touching the outermost edge of each category dataset.</li>
  129. <li>As you add new items, ensure these "borders" stay parallel.</li>
  130. <li>Create your categorizing vector equidistant from your two "borders".</li>
  131. <li>These "borders" are called "support vectors".</li>
  132. </ul></p>
  133. </div>
  134. <div class='slide'>
  135. <h1>A joke:</h1>
  136. <p>Q: How many mathematicians does it take to change a lightbulb?</p>
  137. <p></p>
  138. </div>
  139. <div class='slide'>
  140. <h1>A joke:</h1>
  141. <p>Q: How many mathematicians does it take to change a lightbulb?</p>
  142. <p>A: One, who hands it to 127 Londoners, thus reducing it to an earlier joke.</p>
  143. <p></p>
  144. </div>
  145. <div class='slide'>
  146. <h1>A question:</h1>
  147. <p>Q: How do mathematicians categorize non-linearly-separable data?</p>
  148. <p></p>
  149. </div>
  150. <div class='slide'>
  151. <h1>A question:</h1>
  152. <p>Q: How do mathematicians categorize non-linearly-separable data?</p>
  153. <p>A: Munge the data until it's linearly separable, thus reducing it to an earlier slide.</p>
  154. <p></p>
  155. </div>
  156. <div class='slide'>
  157. <h1>A question:</h1>
  158. <p>Q: How do mathematicians categorize non-linearly-separable data?</p>
  159. <p>A: Munge the data until it's linearly separable, thus reducing it to an earlier slide.</p>
  160. <p>Seriously. The munging is done using what are known as "kernel methods".</p>
  161. </div>
  162. <div class='slide'>
  163. <h1>Kernel Methods</h1>
  164. <p><ul>
  165. <li>Functions that munge data</li>
  166. <li>Very faintly magical (because i have no idea how they were derived)</li>
  167. <li>Require some skill to choose the right one for the problem</li>
  168. <ul></p>
  169. </div>
  170. <div class='slide'>
  171. <h1>Kernel Methods + Support Vectors = Support Vector Machines</h1>
  172. </div>
  173. <div class='slide'>
  174. <h1>In Perl:</h1>
  175. <p>Algorithm::SVM - bindings to libsvm</p>
  176. <p>(Also wrapped by AI::Categorizer)</p>
  177. </div>
  178. </body></html>