<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.10.0">Jekyll</generator><link href="https://blog.yani.ai/feed.xml" rel="self" type="application/atom+xml" /><link href="https://blog.yani.ai/" rel="alternate" type="text/html" /><updated>2025-11-24T20:14:32+00:00</updated><id>https://blog.yani.ai/feed.xml</id><title type="html">A Shallow Blog about Deep Learning</title><subtitle>Deep Learning Blog</subtitle><author><name>Yani Ioannou</name><email>yani.ioannou@gmail.com</email><uri>https://yani.ai/</uri></author><entry><title type="html">Pushing the Exoplanet Frontier with Deep Learning</title><link href="https://blog.yani.ai/nasa-fdl-exoplanets/" rel="alternate" type="text/html" title="Pushing the Exoplanet Frontier with Deep Learning" /><published>2018-10-12T00:00:00+01:00</published><updated>2018-10-12T00:00:00+01:00</updated><id>https://blog.yani.ai/nasa-fdl-exoplanets</id><content type="html" xml:base="https://blog.yani.ai/nasa-fdl-exoplanets/"><![CDATA[<p><img style="float: right;" src="/assets/images/posts/2018-10-12-nasa-fdl-exoplanets/nasatour.jpg" />
This summer I was invited to take part in the 2018 <a href="https://frontierdevelopmentlab.org">NASA Frontier Development Lab</a>, along with a small team including <a href="http://michelesasdelli.com">Michele Sasdelli (University of Adelaide)</a>, and a pair of planetary scientists, <a href="https://astro.berkeley.edu/researcher-profile/3629984-megan-ansdell">Megan Ansdel (University of California at Berkeley)</a> and <a href="http://www.hughosborn.co.uk">Hugh Osborn (Laboratoire d’Astrophysique de Marseille)</a>. 
Our team composed of both machine learning and planetary scientists, was challenged over the course of 8 weeks to combine our expert knowledge in order to improve the methods behind one of the most exciting frontiers of science: <em>exoplanet discovery</em>.</p>

<p>Here I discuss some of the challenges of applying machine learning to real-world scientific data, in particular noisy and sparse periodic time-series data.</p>

<h1 id="exoplanets">Exoplanets</h1>
<p>Our knowledge of exoplanets, or planets that exist outside our Solar System, has advanced drastically over the last few decades. In fact, until relatively recently one could have called exoplanets a theoretical concept. The first confirmed detection of a real exoplanet wasn’t until 1992 <a href="/references/#ref-wolszczan1992planetary">(Wolszczan et al. 1992)</a>, and even by 2004 only about a hundred exoplanets had been detected. This all changed with the launch of the <a href="https://keplerscience.arc.nasa.gov">Kepler space telescope in 2009</a> <a href="/references/#ref-kepler">(Borucki et al. 2010)</a>. Since then, thousands of exoplanets have been detected with the ``transit” method (i.e., detecting an exoplanet by observing the drop in brightness of a star as the orbiting exoplanet crosses our line-or-sight to the star). This year (2018) a new but related space telescope was launched — the <a href="https://tess.gsfc.nasa.gov">Transiting Exoplanet Survey Satellite (TESS)</a> <a href="/references/#ref-tess">(Ricker et al. 2014)</a>. TESS, which also uses the transit method, will concentrate on finding exoplanets closer to Earth and around brighter stars than Kepler allowed, which will be important for follow-up observations necessary to help us learn more details about these exoplanets, such as their compositions and atmospheres.</p>

<p>TESS is already collecting new data with the potential to improve our knowledge of exoplanets, but there is a bottleneck to accessing this knowledge: humans. Each candidate planet identified by TESS must be confirmed by a scientist with follow-up observations from the ground, making it vital that these planet candidates be as reliable as possible, meaning that false positives must be minimized. At the same time, we must avoid missing real planets and minimize the false negatives.</p>

<h2 id="the-keplertess-pipeline">The Kepler/TESS Pipeline</h2>
<p>The raw data returned by a space telescope (i.e. Kepler/TESS) is essentially a very noisy, low-framerate video of a patch of the sky. For both Kepler and TESS, the data is a set of <em>Target Pixel Files</em> (TPFs), which are small (e.g. \(11 \times 11\) pixels) image frames roughly centered on the target stars, collected at a regular time interval over a given amount of time — every 2 minutes over 27 days for TESS. From these TPFs, the pipeline extracts time-series photometry of the target stars, called a “light curve”, which is essentially the 1D signal of the brightness of a star over time. The pipeline then must remove the systematic and random noise introduced by the instrument, as well as real stellar phenomena that can look similar to noisy exoplanet transit signatures. Only then can the pipeline search for the exoplanet <em>transit signals</em> — the characteristic drop in light when an exoplanet passes in front of its star (see <a href="#fig-transit">fig. 1</a>). This is no easy task, and a team at the NASA Ames Research Center has spent the greater part of a decade creating a pipeline to do all this for the Kepler data <a href="/references/#ref-keplerhandbook">(Jenkins, et al. 2017)</a>, and is now also applying using it to process the new TESS data.</p>

<h2 id="challenges-of-the-keplertess-exoplanet-datasets">Challenges of the Kepler/TESS Exoplanet Datasets</h2>
<figure id="fig-transit">
  <img src="/assets/images/posts/2018-10-12-nasa-fdl-exoplanets/views.png" alt="Global and local views of a folded exoplanet transit signal from a light curve" />
  <figcaption>Figure 1: Global and local views of a folded exoplanet transit signal from a light curve.
  
  Light curves are the pre-processed output of the Kepler/TESS pipeline, a time-series photometry of the target stars. The pipeline removes systematic and random noise present in the raw images. Even then, the characteristic transit signals are barely above the noise floor and are *folded*, i.e. averaged over their period, to increase the signal, and consistently represent signals with different planetary periods.</figcaption>
</figure>

<p>The challenges present in the detection and classification of exoplanets are different than those typically seen in typical supervised machine learning problems. The quality and completeness of the “ground truth” is limited, being both noisy and intrinsically incomplete. Only the already discovered exoplanets are labelled and a large number of undiscovered planets are present in the data, sometimes incorrectly labelled as false negatives. Those planets that are labelled are biased towards the easier planets to detect — that is large planets. The nature of the TESS mission requires a quick “response time” in order to follow-up the most promising planets with other instruments without wasting limited telescope time and resources.</p>

<p>Transit signals are periodic dips in the light curves, but these are often near the noise floor of the data. Without the pipeline’s removal of systematic noise, transit signals are rarely apparent at all. Transit signals are also extremely sparse however, the occultation of the star due to the planet lasts only a very small fraction of the period and, depending on the planet’s orbital period, this might occur only a handful of times. What makes it possible to observe the transit signals at all is the high precision of the period of the dips, allowing the signals to be <em>folded</em>, averaged over the planetary period. The planetary period is unknown <em>a priori</em>, and must be exhaustively searched. All of these characteristics of the signals make the problem challenging, and different from problems typically solved with machine learning methods.</p>

<h2 id="learning-approaches">Learning Approaches</h2>
<h3 id="lightcurves">Lightcurves</h3>
<p>Recently a deep learning approach to exoplanet classification from detection candidate light curves output by the Kepler pipeline was proposed <a href="/references/#ref-shallue2018">(Shallue, et al. 2018)</a>.
A CNN is trained on the light curves folded by the candidate period. Our main approach was to expand upon their work by incorporating more domain knowledge, and extending the method to the TESS dataset which is quite different than that of Kepler. We also addressed the severe class imbalance present in TESS — few candidates are labelled as planets vs. non-planets – by using mini-batch class balancing. Our approach improved in both performance and efficiency over that of <a href="/references/#ref-shallue2018">(Shallue, et al. 2018)</a>. We also tried approaches of folding the candidate light curves on an exhaustive range of possible periods, avoiding the need for the pipeline’s detection.</p>

<h3 id="target-pixel-files">Target Pixel Files</h3>
<p>In a more ambitious on-going approach, we attempt to train on the raw TPF images, bypassing the Kepler/TESS pipeline. 
With the intrinsic systematic noise, and given the sparsity and low signal-to-noise ratio, we have found a very challenging dataset to train with however. A typical TESS TPF time series has dimensions 11\(\times\)11\(\times\)19815 and there may be as few as two transits.  It is clear that novel machine learning approaches may be required to learn to classify exoplanets in the face of extremely sparse periodic signals.</p>

<h2 id="conclusion">Conclusion</h2>
<p>In exoplanet detection, many of the challenges we encountered were typical of applying machine learning to any real-world problem, such as class imbalance and noisy labels. However, the problems we encountered in trying to learn from the raw TPF images highlighted real-world data that is not well addressed by current machine learning methods. In particular learning sparse periodic signals with a low signal-to-noise ratio, and in the presence of strong systematic noise is challenging.</p>

<p>For more information, view our <a href="https://frontierdevelopmentlab.org/blog/2018/8/24/fdl-2018-exoplanets-team-presentation">recent presentation on the work we did over the summer</a>, or see the <a href="https://frontierdevelopmentlab.org/exoplanets">FDL exoplanets challenge website</a>.</p>

<h3 id="acknowledgments">Acknowledgments</h3>
<p>I’d like to thank the whole TESS team at SETI/NASA who were a massive help and proposed this challenge, in particular Jeffery Smith, Jon Jenkins and Douglas Caldwell. I’d also like to thank the NASA Frontier Development Lab organizers and mentors for giving us this unique opportunity. And finally I thank our challenge’s industry partners: Google Cloud and Kx Systems, in particular Google Cloud’s generous donation of compute resources without the support of which our work would not have been possible.</p>]]></content><author><name>Yani Ioannou</name><email>yani.ioannou@gmail.com</email><uri>https://yani.ai/</uri></author><category term="exoplanets" /><category term="nasa" /><category term="FDL" /><summary type="html"><![CDATA[This summer I was invited to take part in the 2018 NASA Frontier Development Lab, along with a small team including Michele Sasdelli (University of Adelaide), and a pair of planetary scientists, Megan Ansdel (University of California at Berkeley) and Hugh Osborn (Laboratoire d’Astrophysique de Marseille). Our team composed of both machine learning and planetary scientists, was challenged over the course of 8 weeks to combine our expert knowledge in order to improve the methods behind one of the most exciting frontiers of science: exoplanet discovery.]]></summary></entry><entry><title type="html">A Tutorial on Filter Groups (Grouped Convolution)</title><link href="https://blog.yani.ai/filter-group-tutorial/" rel="alternate" type="text/html" title="A Tutorial on Filter Groups (Grouped Convolution)" /><published>2017-08-10T00:00:00+01:00</published><updated>2017-08-10T00:00:00+01:00</updated><id>https://blog.yani.ai/filter-group-tutorial</id><content type="html" xml:base="https://blog.yani.ai/filter-group-tutorial/"><![CDATA[<p>Filter groups (AKA grouped convolution) were introduced in the now seminal <a href="https://papers.nips.cc/paper/4824-imagenet-classification-with-deep-convolutional-neural-networks">AlexNet paper</a> in 2012. As explained by the authors, their primary motivation was to allow the training of the network over two Nvidia GTX 580 gpus with 1.5GB of memory each. With the model requiring just under 3GB of GPU RAM to train, filter groups allowed more efficient model-parellization across the GPUs, as shown in the illustration of the network from the paper:</p>

<figure>
  <img src="/assets/images/posts/2017-08-10-filter-group-tutorial/alexnetarchitecture.svg" alt="AlexNet Architecture" />
  <figcaption>The architecture of AlexNet as illustrated in the original paper, showing two separate convolutional filter groups across most of the layers (<a href="https://papers.nips.cc/paper/4824-imagenet-classification-with-deep-convolutional-neural-networks">Alex Krizhevsky et al. 2012</a>).</figcaption>
</figure>

<p>The vast majority of deep learning researchers had explained away filter groups as an engineering hack, until the initial publication of the <a href="https://arxiv.org/abs/1605.06489">Deep Roots</a> paper in May 2016. Indeed it was clear that this was the primary reason for their invention, and by removing parameters surely accuracy was decreased?</p>

<h2 id="not-just-an-engineering-hack">Not just an Engineering Hack!</h2>
<figure>
  <img src="/assets/images/posts/2017-08-10-filter-group-tutorial/alexnetfilters.png" alt="AlexNet Filters" />
  <figcaption>AlexNet <tt>conv1</tt> filter separation: as noted by the authors, filter groups appear to structure learned filters into two distinct groups, black-and-white and colour filters (<a href="https://papers.nips.cc/paper/4824-imagenet-classification-with-deep-convolutional-neural-networks">Alex Krizhevsky et al. 2012</a>).</figcaption>
</figure>

<p>However, even the AlexNet authors noted, back in 2012, that there was an interesting side-effect to this engineering hack - the <tt>conv1</tt> filters being easily interpreted, it was noted that filter groups seemed to consistently divide <tt>conv1</tt> into two separate and distinct tasks: black and white filters and colour filters.</p>

<figure>
  <img src="/assets/images/posts/2017-08-10-filter-group-tutorial/alexnetgroupgraph.svg" alt="AlexNet with Varying Numbers of  Filter Groups" />
  <figcaption>AlexNet trained with varying numbers of filter groups, from 1 (i.e. no filter groups), to 4. When trained with 2 filter groups, AlexNet is more efficient and yet achieves the same if not lower validation error.</figcaption>
</figure>

<p>What wasn’t noted explicitly in the AlexNet paper was the more important side-effect of convolutional groups, that they learn <strong>better representations</strong>. This seems like quite the extraordinary claim, however this is backed up by one simple experiment: train AlexNet with and without filter groups and observe the difference in accuracy/computational efficiency. This is illustrated in the graph above, and as can be seen, not only is AlexNet without filter groups less efficient (both in parameters and compute), but it is also slightly less accurate!</p>

<h2 id="how-do-filter-groups-work">How do Filter Groups Work?</h2>
<figure>
  <img src="/assets/images/posts/2017-08-10-filter-group-tutorial/convlayer.svg" alt="Normal Convolutional Layer" />
  <figcaption>A normal convolutional layer. Yellow blocks represent learned parameters, gray blocks represent feature maps/input images (working memory).</figcaption>
</figure>
<p>Above is shown a normal convolutional layer, with no filter groups. Unlike most illustrations of CNNs, including that of AlexNet, here we explicitly show the <em>channel dimension</em>. This is the third dimension of a convolutional feature map, where the output of each filter is represented by one channel. In illustrations like this it is clear that the spatial dimension of a featuremap is often the tip of the iceberg, as we get deeper in a CNN, the number of channels rapidly increases (with the increase in the number of filters), while the spatial dimensions decrease (with pooling/strided convolution). Thus in much of the network, the channel dimension will dominate.</p>

<figure>
  <img src="/assets/images/posts/2017-08-10-filter-group-tutorial/filtergroups2.svg" alt="Convolutional Layer with Filter Groups" />
  <figcaption>A convolutional layer with 2 filter groups. Note that each of the filters in the grouped convolutional layer is now exactly half the depth, i.e. half the parameters and half the compute as the original filter.</figcaption>
</figure>

<p>Above is illustrated a convolutional layer with 2 filter groups, where each the filters in each filter group are convolved with only half the previous layer’s featuremaps. Unlike in the AlexNet illustration, with the third dimension shown it is immediately obvious that the grouped convolutional filters are much smaller than their normal counterparts. With two filter groups, as used in most of AlexNet, each filter is exactly half the number of parameters (yellow) of the equivalent normal convolutional layer.</p>

<h2 id="why-do-filter-groups-work">Why do Filter Groups Work?</h2>
<p>This is where it gets a big more complicated. It’s not immediately obvious that filter groups should be of any benefit, but they are often able to learn more efficient and better representations. This is because <strong>filter relationships are sparse</strong>.</p>

<figure>
  <img src="/assets/images/posts/2017-08-10-filter-group-tutorial/cifar-nin-4pad-conv8-corr.png" alt="No Filter Groups" />
  <img src="/assets/images/posts/2017-08-10-filter-group-tutorial/colorbar.svg" alt="Colour Bar" />
  <figcaption>The correlation matrix between filters of adjacent layers in a Network-in-Network model trained on CIFAR10. Pairs of highly correlated filters are brighter, while lower correlated filters are darker.</figcaption>
</figure>

<p>We can show this by looking at the correlation across filters of adjacent layers. As shown above, the correlations are generally quite low, although in a standard network there is no discernable ordering of these filter relationships, they are also different between models trained with different random initializations. What about with filter groups?</p>

<figure>
  <img src="/assets/images/posts/2017-08-10-filter-group-tutorial/cifar-nin-groupanimation.gif" alt="No Filter Groups" />
  <img src="/assets/images/posts/2017-08-10-filter-group-tutorial/colorbar.svg" alt="Colour Bar" />
  <figcaption>The correlations between filters of adjacent layers in a Network-in-Network model trained on CIFAR10, when trained with 1, 2, 4, 8 and 16 filter groups.</figcaption>
</figure>

<p>The effect of filter groups is to learn with a <em>block-diagonal</em> structured sparsity on the channel dimension. As can be seen in the correlation images, the filters with high correlation are learned in a more structured way in the networks with filter groups. In effect, filter relationships that don’t have to be learned are no longer parameterized. In reducing the number of parameters in the network in this salient way, it is not as easy to over-fit, and hence a regularization-like effect allows the optimizer to learn more accurate, more efficient deep networks.</p>

<h2 id="unanswered-questions">Unanswered Questions</h2>
<p>How do we decide the number of filter groups to use? Can filter groups overlap? Do all groups have to be the same size, what about heterogeneous filter groups?</p>

<p>Unfortunately for the moment these are questions yet to be fully answered, although the latter has recently received some attention <a href="https://arxiv.org/abs/1707.09855">from Tae Lee et al., at KAIST</a>.</p>]]></content><author><name>Yani Ioannou</name><email>yani.ioannou@gmail.com</email><uri>https://yani.ai/</uri></author><category term="deep" /><category term="learning" /><category term="filter" /><category term="groups" /><category term="tutorial" /><category term="grouped" /><category term="convolution" /><summary type="html"><![CDATA[Filter groups (AKA grouped convolution) were introduced in the now seminal AlexNet paper in 2012. As explained by the authors, their primary motivation was to allow the training of the network over two Nvidia GTX 580 gpus with 1.5GB of memory each. With the model requiring just under 3GB of GPU RAM to train, filter groups allowed more efficient model-parellization across the GPUs, as shown in the illustration of the network from the paper:]]></summary></entry><entry><title type="html">CuDNN Now Accelerates Filter Groups!</title><link href="https://blog.yani.ai/cudnn-filter-groups/" rel="alternate" type="text/html" title="CuDNN Now Accelerates Filter Groups!" /><published>2017-08-09T00:00:00+01:00</published><updated>2017-08-09T00:00:00+01:00</updated><id>https://blog.yani.ai/cudnn-filter-groups</id><content type="html" xml:base="https://blog.yani.ai/cudnn-filter-groups/"><![CDATA[<p>With the latest cuDNN 7 release, a request of mine to the cuDNN team from just over a year ago has finally come to fruition - filter groups are now properly handled by the popular framework which provides accelerated code for common deep learning operations on Nvidia GPUs, according to the release notes:</p>

<blockquote>
  <p>Grouped Convolutions for models such as ResNeXt and Xception and CTC (Connectionist Temporal Classification) loss layer for temporal classification.</p>
</blockquote>

<p>For more information, see the <a href="https://developer.nvidia.com/cudnn">CuDNN release notes</a>. Thanks to <a href="https://twitter.com/mfigurnov">Michael Figurnov</a> for pointing this out to me!</p>]]></content><author><name>Yani Ioannou</name><email>yani.ioannou@gmail.com</email><uri>https://yani.ai/</uri></author><category term="cuda" /><category term="cudnn" /><category term="filter" /><category term="groups" /><summary type="html"><![CDATA[With the latest cuDNN 7 release, a request of mine to the cuDNN team from just over a year ago has finally come to fruition - filter groups are now properly handled by the popular framework which provides accelerated code for common deep learning operations on Nvidia GPUs, according to the release notes:]]></summary></entry><entry><title type="html">A Brief Review of Computer Vision and Pattern Recognition (CVPR) 2017</title><link href="https://blog.yani.ai/cvpr-2017/" rel="alternate" type="text/html" title="A Brief Review of Computer Vision and Pattern Recognition (CVPR) 2017" /><published>2017-07-27T00:00:00+01:00</published><updated>2017-07-27T00:00:00+01:00</updated><id>https://blog.yani.ai/cvpr-2017</id><content type="html" xml:base="https://blog.yani.ai/cvpr-2017/"><![CDATA[<p><em>Mean paper name: “Deep … in the wild”</em></p>

<p>With what must be one of the best locations for a computer vision conference ever, CVPR 2017 was always going to be one of the best, but even considering that this conference was notably better organized than most of it’s predessesors. This was despite a massive increase in attendance - over 37% more than CVPR 2016 in Los Vegas <a href="http://cvpr2017.thecvf.com/files/CVPR2017_opening_ceremony.pdf">see here for the slides describing this year’s stats</a>, and a 40% increase in paper submissions. Notable changes this year included moving to a 3 track conference instead of 2 track. Even so, one of the days had a free afternoon, and the organizers noted that this was at least partially because reviewers had not nominated enough orals this year to fill the schedule.</p>

<h2 id="orals">Orals</h2>
<p>Of the few papers that were orals, I was impressed with the following:</p>
<ul>
  <li>“Unsupervised Learning of Depth and Ego-Motion from Video”: This work is simply impressive (full disclaimer, one of the co-authors is my former PhD supervisor). It learns depth simply from unlabelled data of car driving around urban scenes. The weaknesses of the method seemed to be that it learned a bias in the data not to expect any close depth in the center of the frame (caused by correctly cautious drivers leaving a gap between themselves and the car in front), and a lack of good perforamance on non-urban scenes. In both cases the authors claimed that these were solvable by having more data. However, I believe there simply aren’t enough features outside of urban canyons for this method to suceed outside of urban environments.</li>
  <li>“Learning From Simulated and Unsupervised Images””: Although the work is interesting, and potentially very useful, this oral stood out for another reason. It was explicitly an oral by Apple researchers, marking a significant shift for a company that only a few years ago wouldn’t even let it’s CVPR attending employees admit their affiliation - nevermind publish it’s research. Hopefully this newfound openness continues.</li>
  <li>“Densely Connected Convolutional Networks”: This work presented some very impressive results in a domain I’m particularly interested in. I’m surprised such a network can be more computationally efficient while reducing error significantly. I will be trying to repeat these results for sure.</li>
  <li>“Global Optimality in Neural Network Training”: With little theoretical progress in understanding the optimization of deep networks, I like this work because it has relatively few assumptions compared to many theoretical analysis, and yet has relatively large claims. Whether it can be put to effect in practice however remains to be seen.</li>
  <li>“YOLO9000: Better, Faster, Stronger”: This oral surprisingly suceeded despite (because?) of the ridiculous title, and the theme of the presentation (daft punk’s stronger, faster). The presentation was engaging, and the results very impressive. A live demo of their realtime object detection system not only worked, but seemed to go beyond even the author’s expectations when the object detection system identified most of the audience in view along with the planned foreground objects.</li>
</ul>

<h2 id="industrial-presence">Industrial Presence</h2>
<p>As with every year, the industrial presence at CVPR grew more this year. While the number of companies increased, this was mostly due to the large number of new startups with a booth presence, rather than the larger companies. If anything the larger US companies had a slightly reduced prescense overall, especially when I compare with NIPS. This had the notable exception of Apple however, which organized <strong>three</strong> separate events, two `mixers’ and one technical session, and Nvidia, whose CEO attended the conference and made a major new GPU announcement. Notably this year there were many more asian companies with a presence, Chinese (Tencent, and too many to list), and Korean companies (Naver, Samsung).</p>]]></content><author><name>Yani Ioannou</name><email>yani.ioannou@gmail.com</email><uri>https://yani.ai/</uri></author><category term="computer" /><category term="vision" /><category term="conference" /><category term="CVPR" /><summary type="html"><![CDATA[Mean paper name: “Deep … in the wild”]]></summary></entry><entry><title type="html">No Free Lunch</title><link href="https://blog.yani.ai/no-free-lunch/" rel="alternate" type="text/html" title="No Free Lunch" /><published>2017-07-19T00:00:00+01:00</published><updated>2017-07-19T00:00:00+01:00</updated><id>https://blog.yani.ai/no-free-lunch</id><content type="html" xml:base="https://blog.yani.ai/no-free-lunch/"><![CDATA[<p>A fundamental topic, and yet one often left until later to learn, is that of the so-called ``No Free Lunch’’ theorem. If I was asked to summarize the lesson of this theorem in one line, it would simply be:</p>

<p>Machine learning is <strong>not</strong> magic</p>

<p>And this is a very important lesson indeed. Perhaps the best intuition behind the theorem is to be gained by the following simple example. Assume we see a sequence of random numbers,</p>

\[x = { 1, 3, 9, \ldots}\]

<p>and we are asked to predict the next number in the sequence. Most of us would probably predict,
\(x = { 1, 3, 9, 27, \ldots}\),
assuming that the sequence at each time step is being generated by \(x_t = 3 x_{t-1}\).</p>

<p>However, there is no reason to not instead believe the hypothesis that this sequence is simply the output of a random number generator, in which case the next item of the sequence can not easily predicted. Even if it seems very unlikely (and Occam’s razor is a good argument here), we cannot completely disprove this hypothesis without seeing <strong>all</strong> the data points.</p>

<blockquote>
  <p>``Everything, but the data, is an assumption’’</p>

  <p><cite><a href="http://mlg.eng.cam.ac.uk/zoubin/">Zoubin Gahramani</a> MSR AI Summer School 2017</cite></p>
</blockquote>

<p>The only reason machine learning works at all are the assumptions we make about the problem. We call these assumptions the <em>model</em>. Whatever assumptions we make in our model will, of course, only help predictions with the types of problems where those assumptions hold, while hindering prediction with other types of problems. Wolpert et al. show that this means at best, <strong>over all possible input data distributions</strong>, we can not expect any model to do better than random.</p>

<p>This is often cited as the nail in the coffin for the idea of a universal learning algorithm, and algorithm that can learn any problem. Theoretically this is certainly true, however we are interested only in learning real-word problems, of which the data lies in a specific subset of all possible distributions.</p>]]></content><author><name>Yani Ioannou</name><email>yani.ioannou@gmail.com</email><uri>https://yani.ai/</uri></author><category term="machine" /><category term="learning" /><summary type="html"><![CDATA[A fundamental topic, and yet one often left until later to learn, is that of the so-called ``No Free Lunch’’ theorem. If I was asked to summarize the lesson of this theorem in one line, it would simply be:]]></summary></entry></feed>