This is an automated email from the ASF dual-hosted git repository.
git-site-role pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/mahout.git
The following commit(s) were added to refs/heads/asf-site by this push:
new 92b73d6 Automatic Site Publish by Buildbot
92b73d6 is described below
commit 92b73d6e517fe0cdab589fa868b5c5628dc70877
Author: jenkins <[email protected]>
AuthorDate: Thu Feb 28 19:49:47 2019 +0000
Automatic Site Publish by Buildbot
---
docs/latest/algorithms/linear-algebra/d-ssvd.html | 62 ++++++++++++-----------
feed.xml | 2 +-
2 files changed, 34 insertions(+), 30 deletions(-)
diff --git a/docs/latest/algorithms/linear-algebra/d-ssvd.html
b/docs/latest/algorithms/linear-algebra/d-ssvd.html
index 367c8b7..298b129 100644
--- a/docs/latest/algorithms/linear-algebra/d-ssvd.html
+++ b/docs/latest/algorithms/linear-algebra/d-ssvd.html
@@ -171,50 +171,54 @@
<h2 id="modified-ssvd-algorithm">Modified SSVD Algorithm</h2>
-<p>Given an <code class="highlighter-rouge">\(m\times n\)</code>
-matrix <code class="highlighter-rouge">\(\mathbf{A}\)</code>, a target rank
<code class="highlighter-rouge">\(k\in\mathbb{N}_{1}\)</code>
-, an oversampling parameter <code
class="highlighter-rouge">\(p\in\mathbb{N}_{1}\)</code>,
-and the number of additional power iterations <code
class="highlighter-rouge">\(q\in\mathbb{N}_{0}\)</code>,
-this procedure computes an <code
class="highlighter-rouge">\(m\times\left(k+p\right)\)</code>
-SVD <code class="highlighter-rouge">\(\mathbf{A\approx
U}\boldsymbol{\Sigma}\mathbf{V}^{\top}\)</code>:</p>
+<p>Given an <foo>\(m\times n\)</foo>
+matrix <foo>\(\mathbf{A}\)</foo>, a target rank
<foo>\(k\in\mathbb{N}_{1}\)</foo>
+, an oversampling parameter <foo>\(p\in\mathbb{N}_{1}\)</foo>,
+and the number of additional power iterations
<foo>\(q\in\mathbb{N}_{0}\)</foo>,
+this procedure computes an <foo>\(m\times\left(k+p\right)\)</foo>
+SVD <foo>\(\mathbf{A\approx U}\boldsymbol{\Sigma}\mathbf{V}^{\top}\)</foo>:</p>
<ol>
<li>
- <p>Create seed for random <code
class="highlighter-rouge">\(n\times\left(k+p\right)\)</code>
- matrix <code class="highlighter-rouge">\(\boldsymbol{\Omega}\)</code>. The
seed defines matrix <code class="highlighter-rouge">\(\mathbf{\Omega}\)</code>
+ <p>Create seed for random <foo>\(n\times\left(k+p\right)\)</foo>
+ matrix <foo>\(\boldsymbol{\Omega}\)</foo>. The seed defines matrix
<foo>\(\mathbf{\Omega}\)</foo>
using Gaussian unit vectors per one of suggestions in [Halko, Martinsson,
Tropp].</p>
</li>
<li>
- <p><code
class="highlighter-rouge">\(\mathbf{Y=A\boldsymbol{\Omega}},\,\mathbf{Y}\in\mathbb{R}^{m\times\left(k+p\right)}\)</code></p>
+
<foo>\(\mathbf{Y=A\boldsymbol{\Omega}},\,\mathbf{Y}\in\mathbb{R}^{m\times\left(k+p\right)}\)</foo>
</li>
<li>
- <p>Column-orthonormalize <code
class="highlighter-rouge">\(\mathbf{Y}\rightarrow\mathbf{Q}\)</code>
- by computing thin decomposition <code
class="highlighter-rouge">\(\mathbf{Y}=\mathbf{Q}\mathbf{R}\)</code>.
- Also, <code
class="highlighter-rouge">\(\mathbf{Q}\in\mathbb{R}^{m\times\left(k+p\right)},\,\mathbf{R}\in\mathbb{R}^{\left(k+p\right)\times\left(k+p\right)}\)</code>;
denoted as <code
class="highlighter-rouge">\(\mathbf{Q}=\mbox{qr}\left(\mathbf{Y}\right).\mathbf{Q}\)</code></p>
+ <p>Column-orthonormalize <foo>\(\mathbf{Y}\rightarrow\mathbf{Q}\)</foo>
+ by computing thin decomposition
<foo>\(\mathbf{Y}=\mathbf{Q}\mathbf{R}\)</foo>.
+ Also,
<foo>\(\mathbf{Q}\in\mathbb{R}^{m\times\left(k+p\right)},\,\mathbf{R}\in\mathbb{R}^{\left(k+p\right)\times\left(k+p\right)}\)</foo>;
denoted as
<foo>\(\mathbf{Q}=\mbox{qr}\left(\mathbf{Y}\right).\mathbf{Q}\)</foo></p>
</li>
<li>
- <p><code
class="highlighter-rouge">\(\mathbf{B}_{0}=\mathbf{Q}^{\top}\mathbf{A}:\,\,\mathbf{B}\in\mathbb{R}^{\left(k+p\right)\times
n}\)</code>.</p>
- </li>
- <li>
- <p>If <code class="highlighter-rouge">\(q>0\)</code>
- repeat: for <code class="highlighter-rouge">\(i=1..q\)</code>:
- <code
class="highlighter-rouge">\(\mathbf{B}_{i}^{\top}=\mathbf{A}^{\top}\mbox{qr}\left(\mathbf{A}\mathbf{B}_{i-1}^{\top}\right).\mathbf{Q}\)</code>
- (power iterations step).</p>
- </li>
- <li>
- <p>Compute Eigensolution of a small Hermitian <code
class="highlighter-rouge">\(\mathbf{B}_{q}\mathbf{B}_{q}^{\top}=\mathbf{\hat{U}}\boldsymbol{\Lambda}\mathbf{\hat{U}}^{\top}\)</code>,
- <code
class="highlighter-rouge">\(\mathbf{B}_{q}\mathbf{B}_{q}^{\top}\in\mathbb{R}^{\left(k+p\right)\times\left(k+p\right)}\)</code>.</p>
+
<foo>\(\mathbf{B}_{0}=\mathbf{Q}^{\top}\mathbf{A}:\,\,\mathbf{B}\in\mathbb{R}^{\left(k+p\right)\times
n}\)</foo>
+ <p>.</p>
</li>
+ <li>If <foo>\(q>0\)</foo>
+ repeat: for <foo>\(i=1..q\)</foo>:</li>
+</ol>
+<foo>\(\mathbf{B}_{i}^{\top}=\mathbf{A}^{\top}\mbox{qr}\left(\mathbf{A}\mathbf{B}_{i-1}^{\top}\right).\mathbf{Q}\)</foo>
+<p>(power iterations step).</p>
+
+<ol>
+ <li>Compute Eigensolution of a small Hermitian
<foo>\(\mathbf{B}_{q}\mathbf{B}_{q}^{\top}=\mathbf{\hat{U}}\boldsymbol{\Lambda}\mathbf{\hat{U}}^{\top}\)</foo>,</li>
+</ol>
+<foo>\(\mathbf{B}_{q}\mathbf{B}_{q}^{\top}\in\mathbb{R}^{\left(k+p\right)\times\left(k+p\right)}\)</foo>
+<p>.</p>
+
+<ol>
<li>
- <p>Singular values <code
class="highlighter-rouge">\(\mathbf{\boldsymbol{\Sigma}}=\boldsymbol{\Lambda}^{0.5}\)</code>,
- or, in other words, <code
class="highlighter-rouge">\(s_{i}=\sqrt{\sigma_{i}}\)</code>.</p>
+ <p>Singular values
<foo>\(\mathbf{\boldsymbol{\Sigma}}=\boldsymbol{\Lambda}^{0.5}\)</foo>,
+ or, in other words, <foo>\(s_{i}=\sqrt{\sigma_{i}}\)</foo>.</p>
</li>
<li>
- <p>If needed, compute <code
class="highlighter-rouge">\(\mathbf{U}=\mathbf{Q}\hat{\mathbf{U}}\)</code>.</p>
+ <p>If needed, compute
<foo>\(\mathbf{U}=\mathbf{Q}\hat{\mathbf{U}}\)</foo>.</p>
</li>
<li>
- <p>If needed, compute <code
class="highlighter-rouge">\(\mathbf{V}=\mathbf{B}_{q}^{\top}\hat{\mathbf{U}}\boldsymbol{\Sigma}^{-1}\)</code>.
-Another way is <code
class="highlighter-rouge">\(\mathbf{V}=\mathbf{A}^{\top}\mathbf{U}\boldsymbol{\Sigma}^{-1}\)</code>.</p>
+ <p>If needed, compute
<foo>\(\mathbf{V}=\mathbf{B}_{q}^{\top}\hat{\mathbf{U}}\boldsymbol{\Sigma}^{-1}\)</foo>.
+Another way is
<foo>\(\mathbf{V}=\mathbf{A}^{\top}\mathbf{U}\boldsymbol{\Sigma}^{-1}\)</foo>.</p>
</li>
</ol>
@@ -281,7 +285,7 @@ Another way is <code
class="highlighter-rouge">\(\mathbf{V}=\mathbf{A}^{\top}\ma
</code></pre>
</div>
-<p>Note: As a side effect of checkpointing, U and V values are returned as
logical operators (i.e. they are neither checkpointed nor computed). Therefore
there is no physical work actually done to compute <code
class="highlighter-rouge">\(\mathbf{U}\)</code> or <code
class="highlighter-rouge">\(\mathbf{V}\)</code> until they are used in a
subsequent expression.</p>
+<p>Note: As a side effect of checkpointing, U and V values are returned as
logical operators (i.e. they are neither checkpointed nor computed). Therefore
there is no physical work actually done to compute <foo>\(\mathbf{U}\)</foo> or
<foo>\(\mathbf{V}\)</foo> until they are used in a subsequent expression.</p>
<h2 id="usage">Usage</h2>
diff --git a/feed.xml b/feed.xml
index 81f0ad5..61885df 100644
--- a/feed.xml
+++ b/feed.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="utf-8"?><feed
xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/"
version="3.5.0">Jekyll</generator><link
href="http://mahout.apache.org//feed.xml" rel="self"
type="application/atom+xml" /><link href="http://mahout.apache.org//"
rel="alternate" type="text/html"
/><updated>2019-02-22T18:17:19+00:00</updated><id>http://mahout.apache.org//feed.xml</id><title
type="html">Apache Mahout</title><subtitle>Distributed Linear
Algebra</subtitle> [...]
+<?xml version="1.0" encoding="utf-8"?><feed
xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/"
version="3.5.0">Jekyll</generator><link
href="http://mahout.apache.org//feed.xml" rel="self"
type="application/atom+xml" /><link href="http://mahout.apache.org//"
rel="alternate" type="text/html"
/><updated>2019-02-28T19:48:24+00:00</updated><id>http://mahout.apache.org//feed.xml</id><title
type="html">Apache Mahout</title><subtitle>Distributed Linear
Algebra</subtitle> [...]
<p>This release might not seem super exciting from a user perspective
(except
we’re bumping Apache Spark to version 2.x and Scala to version 2.11) but