{"id":17,"date":"2005-02-07T20:58:31","date_gmt":"2005-02-08T02:58:31","guid":{"rendered":"\/?p=17"},"modified":"2005-02-08T21:46:49","modified_gmt":"2005-02-09T03:46:49","slug":"the-state-of-the-reduction","status":"publish","type":"post","link":"https:\/\/hunch.net\/?p=17","title":{"rendered":"The State of the Reduction"},"content":{"rendered":"<p><strong>What?<\/strong> Reductions are machines which turn solvers for one problem into solvers for another problem.<br \/>\n<strong>Why?<\/strong> Reductions are useful for several reasons.<\/p>\n<ol>\n<li><strong>Laziness<\/strong>.  Reducing a problem to classification make at least 10 learning algorithms available to solve a problem.  Inventing 10 learning algorithms is quite a bit of work.  Similarly, programming a reduction is often trivial, while programming a learning algorithm is a great deal of work.<\/li>\n<li><strong>Crystallization<\/strong>.  The problems we often want to solve in learning are worst-case-impossible, but average case feasible.  By reducing all problems onto one or a few primitives, we can fine tune these primitives to perform well on real-world problems with greater precision due to the greater number of problems to validate on.<\/li>\n<li><strong>Theoretical Organization<\/strong>.  By studying what reductions are easy vs. hard vs. impossible, we can learn which problems are roughly equivalent in difficulty and which are much harder.<\/li>\n<\/ol>\n<p><strong>What we know now<\/strong>.<\/p>\n<p><strong>Typesafe reductions<\/strong>. In the beginning, there was the observation that every complex object on a computer can be written as a sequence of bits.  This observation leads to the notion that a classifier (which predicts a single bit) can be used to predict any complex object.   Using this observation, we can make the following statements:<\/p>\n<ol>\n<li>Any prediction problem which can be broken into examples can be solved with a classifier.<\/li>\n<li>In particular, reinforcement learning can be decomposed into examples given a generative model (see <a href=\"http:\/\/www.cs.duke.edu\/~mgl\/papers\/PDF\/icml03.pdf\">Lagoudakis &#038; Parr<\/a> and <a href=\"http:\/\/web.engr.oregonstate.edu\/~afern\/papers\/api.ps\">Fern, Yoon, &#038; Givan<\/a>).<\/li>\n<\/ol>\n<p> This observation also often doesn&#8217;t work well in practice, because the classifiers are sometimes wrong, so one of many classifiers are often wrong.<\/p>\n<p><strong>Error Transform Reductions<\/strong>. Worrying about errors leads to the notion of robust reductions (= ways of using simple predictors such as classifiers to make complex predictions).   <a href=\"http:\/\/citeseer.ist.psu.edu\/dietterich95solving.html\">Error correcting output codes<\/a> were proposed in analogy to coding theory.   These were analyzed in terms of <a href=\"http:\/\/www.cs.washington.edu\/homes\/venkat\/pubs\/papers\/colt99boost.ps\">error rates on training sets<\/a> and <a href=\"http:\/\/www.cs.huji.ac.il\/~singer\/papers\/ocmargin.ps.gz\">general losses on training sets<\/a>.  The robustness can be (more generally) analyzed with respect to arbitrary <a href=\"https:\/\/hunch.net\/~jl\/projects\/reductions\/mc_to_c\/mc_submission.ps\">test distributions<\/a>, and algorithms optimized with respect to this notion are often very simple and <a href=\"https:\/\/hunch.net\/~jl\/projects\/reductions\/costing\/finalICDM2003.ps\">yield good performance<\/a>.  Solving created classification problems up to error rate <em>e<\/em> implies:<\/p>\n<ol>\n<li>Solving importance weighed classifications up to error rate <em>eN<\/em> where <em>N<\/em> is the expected importance. <a href=\"https:\/\/hunch.net\/~jl\/projects\/reductions\/costing\/finalICDM2003.ps\">Costing<\/a><\/li>\n<li>Solving multiclass classification up to error rate <em>4e<\/em> using ECOC. <a href=\"https:\/\/hunch.net\/~jl\/projects\/reductions\/mc_to_c\/mc_submission.ps\">Error limiting reductions paper<\/a><\/li>\n<li>Solving Cost sensitive classification up to loss <em>2eZ<\/em> where <em>Z<\/em> is the sum of costs. <a href=\"https:\/\/hunch.net\/~jl\/projects\/reductions\/mc_to_c\/mc_submission.ps\">Weighted All Pairs algorithm<\/a><\/li>\n<li>Finding a policy within expected reward <em>(T+1)e\/2<\/em> of the optimal policy for <em>T<\/em> step reinforcement learning with a generative model. <a href=\"https:\/\/hunch.net\/~jl\/projects\/reductions\/RL_to_class\/colt_submission.ps\">RLgen paper<\/a><\/li>\n<li>The same statement holds much more efficiently when the distribution of states of a near optimal policy is also known.  <a href=\"http:\/\/gibbs.sp.cs.cmu.edu\/~dbagnell\/nips03-dpps.ps\">PSDP paper<\/a><\/li>\n<\/ol>\n<p>A new problem arises: sometimes the subproblems created are inherently hard, for example when <a href=\"https:\/\/hunch.net\/~jl\/projects\/reductions\/probing\/aistat_real_final\/aistat_final.ps\">estimating class probability from a classifier<\/a>.  In this situation saying &#8220;good performance implies good performance&#8221; is vacuous.<\/p>\n<p><strong>Regret Transform Reductions<\/strong>  To cope with this, we can analyze how good performance minus the best possible performance (called &#8220;regret&#8221;) is transformed under reduction.  Solving created binary classification problems to regret <em>r<\/em> implies:<\/p>\n<ol>\n<li>Solving importance weighted regret up to <em>r N<\/em> using the same algorithm as for errors. <a href=\"href=\"https:\/\/hunch.net\/~jl\/projects\/reductions\/costing\/finalICDM2003.ps\">Costing<\/a>\n<li>Solving class membership probability up to l<sub>2<\/sub> regret <em>2r<\/em>. <a href=\"https:\/\/hunch.net\/~jl\/projects\/reductions\/probing\/aistat_real_final\/aistat_final.ps\">Probing paper<\/a><\/li>\n<li>Solving multiclass classification to regret <em>4 r<sup>0.5<\/sup><\/em>. <a href=\"https:\/\/hunch.net\/~jl\/projects\/reductions\/pecoc\/v7\/pecoc.ps\">SECOC paper<\/a><\/li>\n<li>Predicting costs in cost sensitive classification up to l<sub>2<\/sub> regret <em>4r<\/em> <a href=\"https:\/\/hunch.net\/~jl\/projects\/reductions\/pecoc\/v7\/pecoc.ps\">SECOC again<\/a><\/li>\n<li>Solving cost sensitive classification up to regret <em>4(r Z)<sup>0.5<\/sup><\/em> where <em>Z<\/em> is the sum of the costs of each choice.  <a href=\"https:\/\/hunch.net\/~jl\/projects\/reductions\/pecoc\/v7\/pecoc.ps\">SECOC again<\/a><\/li>\n<\/li>\n<\/ol>\n<p>There are several reduction-related problems currently being worked on which I&#8217;ll discuss in the future.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>What? Reductions are machines which turn solvers for one problem into solvers for another problem. Why? Reductions are useful for several reasons. Laziness. Reducing a problem to classification make at least 10 learning algorithms available to solve a problem. Inventing 10 learning algorithms is quite a bit of work. Similarly, programming a reduction is often &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/hunch.net\/?p=17\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;The State of the Reduction&#8221;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[12],"tags":[],"class_list":["post-17","post","type-post","status-publish","format-standard","hentry","category-reductions"],"_links":{"self":[{"href":"https:\/\/hunch.net\/index.php?rest_route=\/wp\/v2\/posts\/17","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hunch.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/hunch.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/hunch.net\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/hunch.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=17"}],"version-history":[{"count":0,"href":"https:\/\/hunch.net\/index.php?rest_route=\/wp\/v2\/posts\/17\/revisions"}],"wp:attachment":[{"href":"https:\/\/hunch.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=17"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/hunch.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=17"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/hunch.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=17"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}