<p>As Nilay pointed out in his blog post: <a href="http://mlpack.org/gsocblog/we-need-to-go-deeper-googlenet-week-5-highlights.html">http://mlpack.org/gsocblog/we-need-to-go-deeper-googlenet-week-5-highlights.html</a></p>
<p>the discretize function that uses the PCA class, wasn't what we expected runtime wise, so we decided to use the another PCA approach: Randomized SVD as proposed in:</p>
<pre><code>* @article{Halko2011,
* author = {Halko, N. and Martinsson, P. G. and Tropp, J. A.},
* title = {Finding Structure with Randomness: Probabilistic Algorithms for
Constructing Approximate Matrix Decompositions},
* journal = {SIAM Rev.},
* volume = {53},
* year = {2011},
* }
*
* @article{Szlam2014,
* author = {Arthur Szlam Yuval Kluger and Mark Tygert},
* title = {An implementation of a randomized algorithm for principal
component analysis},
* journal = {CoRR},
* volume = {abs/1412.3510},
* year = {2014},
* }
</code></pre>
<p>I refactored the PCA class, that is now able to use different decomposition methods including the already existing QUIC-SVD technique.</p>
<hr>
<h4>You can view, comment on, or merge this pull request online at:</h4>
<p> <a href='https://github.com/mlpack/mlpack/pull/716'>https://github.com/mlpack/mlpack/pull/716</a></p>
<h4>Commit Summary</h4>
<ul>
<li>Fix explicitly specialized template issue.</li>
<li>Merge remote-tracking branch 'upstream/master'</li>
<li>Properly resetting auxBound. Start using a Reset() method, to avoid futures errors like this.</li>
<li>edge_boxes: feature extraction</li>
<li>backported ind2sub and sub2ind</li>
<li>backported ind2sub and sub2ind</li>
<li>Revert "edge_boxes: feature extraction"</li>
<li>backported sub2ind & ind2sub</li>
<li>Minor style fixes for ind2sub() test.</li>
<li>Add new contributors.</li>
<li>Try debugging symbols for AppVeyor build to see if it is faster.</li>
<li>Use appveyor cache (nuget and armadillo).</li>
<li>added test for ind2sub and sub2ind</li>
<li>fix doc tutorial</li>
<li>fix typo</li>
<li>Merge remote-tracking branch 'upstream/master'</li>
<li>Add QUIC-SVD singular values test.</li>
<li>Remove implementation from header file to avoid duplicate symbol error.</li>
<li>Add randomized SVD method.</li>
<li>Add randomized SVd test suite.</li>
<li>Add exact, randomized and QUIC SVD decomposition policies; meant to be used in conjunction with the PCA class.</li>
<li>Refactor PCA class; able to use different decomposition methods.</li>
<li>Merge remote-tracking branch 'upstream/master'</li>
<li>Merge with master.</li>
</ul>
<h4>File Changes</h4>
<ul>
<li>
<strong>M</strong>
<a href="https://github.com/mlpack/mlpack/pull/716/files#diff-0">src/mlpack/core/tree/cosine_tree/cosine_tree.cpp</a>
(4)
</li>
<li>
<strong>M</strong>
<a href="https://github.com/mlpack/mlpack/pull/716/files#diff-1">src/mlpack/methods/CMakeLists.txt</a>
(1)
</li>
<li>
<strong>M</strong>
<a href="https://github.com/mlpack/mlpack/pull/716/files#diff-2">src/mlpack/methods/pca/CMakeLists.txt</a>
(4)
</li>
<li>
<strong>A</strong>
<a href="https://github.com/mlpack/mlpack/pull/716/files#diff-3">src/mlpack/methods/pca/decomposition_policies/CMakeLists.txt</a>
(16)
</li>
<li>
<strong>A</strong>
<a href="https://github.com/mlpack/mlpack/pull/716/files#diff-4">src/mlpack/methods/pca/decomposition_policies/exact_svd_method.hpp</a>
(72)
</li>
<li>
<strong>A</strong>
<a href="https://github.com/mlpack/mlpack/pull/716/files#diff-5">src/mlpack/methods/pca/decomposition_policies/quic_svd_method.hpp</a>
(92)
</li>
<li>
<strong>A</strong>
<a href="https://github.com/mlpack/mlpack/pull/716/files#diff-6">src/mlpack/methods/pca/decomposition_policies/randomized_svd_method.hpp</a>
(97)
</li>
<li>
<strong>M</strong>
<a href="https://github.com/mlpack/mlpack/pull/716/files#diff-7">src/mlpack/methods/pca/pca.hpp</a>
(42)
</li>
<li>
<strong>R</strong>
<a href="https://github.com/mlpack/mlpack/pull/716/files#diff-8">src/mlpack/methods/pca/pca_impl.hpp</a>
(89)
</li>
<li>
<strong>M</strong>
<a href="https://github.com/mlpack/mlpack/pull/716/files#diff-9">src/mlpack/methods/pca/pca_main.cpp</a>
(69)
</li>
<li>
<strong>M</strong>
<a href="https://github.com/mlpack/mlpack/pull/716/files#diff-10">src/mlpack/methods/quic_svd/CMakeLists.txt</a>
(2)
</li>
<li>
<strong>R</strong>
<a href="https://github.com/mlpack/mlpack/pull/716/files#diff-11">src/mlpack/methods/quic_svd/quic_svd.cpp</a>
(9)
</li>
<li>
<strong>M</strong>
<a href="https://github.com/mlpack/mlpack/pull/716/files#diff-12">src/mlpack/methods/quic_svd/quic_svd.hpp</a>
(7)
</li>
<li>
<strong>A</strong>
<a href="https://github.com/mlpack/mlpack/pull/716/files#diff-13">src/mlpack/methods/randomized_svd/CMakeLists.txt</a>
(15)
</li>
<li>
<strong>A</strong>
<a href="https://github.com/mlpack/mlpack/pull/716/files#diff-14">src/mlpack/methods/randomized_svd/randomized_svd.cpp</a>
(128)
</li>
<li>
<strong>A</strong>
<a href="https://github.com/mlpack/mlpack/pull/716/files#diff-15">src/mlpack/methods/randomized_svd/randomized_svd.hpp</a>
(133)
</li>
<li>
<strong>M</strong>
<a href="https://github.com/mlpack/mlpack/pull/716/files#diff-16">src/mlpack/tests/CMakeLists.txt</a>
(3)
</li>
<li>
<strong>M</strong>
<a href="https://github.com/mlpack/mlpack/pull/716/files#diff-17">src/mlpack/tests/pca_test.cpp</a>
(118)
</li>
<li>
<strong>M</strong>
<a href="https://github.com/mlpack/mlpack/pull/716/files#diff-18">src/mlpack/tests/quic_svd_test.cpp</a>
(34)
</li>
<li>
<strong>A</strong>
<a href="https://github.com/mlpack/mlpack/pull/716/files#diff-19">src/mlpack/tests/randomized_svd_test.cpp</a>
(62)
</li>
</ul>
<h4>Patch Links:</h4>
<ul>
<li><a href='https://github.com/mlpack/mlpack/pull/716.patch'>https://github.com/mlpack/mlpack/pull/716.patch</a></li>
<li><a href='https://github.com/mlpack/mlpack/pull/716.diff'>https://github.com/mlpack/mlpack/pull/716.diff</a></li>
</ul>
<p style="font-size:small;-webkit-text-size-adjust:none;color:#666;">—<br />You are receiving this because you are subscribed to this thread.<br />Reply to this email directly, <a href="https://github.com/mlpack/mlpack/pull/716">view it on GitHub</a>, or <a href="https://github.com/notifications/unsubscribe/AJ4bFIjgVyNCiGUnSPwd7yIqJZJK-TmQks5qSPuqgaJpZM4JEUwr">mute the thread</a>.<img alt="" height="1" src="https://github.com/notifications/beacon/AJ4bFC4EWFEcLz1WrNkYu6eBUmsudDsJks5qSPuqgaJpZM4JEUwr.gif" width="1" /></p>
<div itemscope itemtype="http://schema.org/EmailMessage">
<div itemprop="action" itemscope itemtype="http://schema.org/ViewAction">
<link itemprop="url" href="https://github.com/mlpack/mlpack/pull/716"></link>
<meta itemprop="name" content="View Pull Request"></meta>
</div>
<meta itemprop="description" content="View this Pull Request on GitHub"></meta>
</div>