<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Some stuff &#187; overbrace</title>
	<atom:link href="http://blog.yhuang.org/?feed=rss2&#038;tag=overbrace" rel="self" type="application/rss+xml" />
	<link>https://blog.yhuang.org</link>
	<description>here.</description>
	<lastBuildDate>Wed, 27 Aug 2025 08:50:58 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.1</generator>
		<item>
		<title>tensors</title>
		<link>https://blog.yhuang.org/?p=655</link>
		<comments>https://blog.yhuang.org/?p=655#comments</comments>
		<pubDate>Sun, 16 Oct 2011 12:33:29 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[basis]]></category>
		<category><![CDATA[component elements]]></category>
		<category><![CDATA[math]]></category>
		<category><![CDATA[math math]]></category>
		<category><![CDATA[overbrace]]></category>
		<category><![CDATA[space]]></category>
		<category><![CDATA[sum]]></category>
		<category><![CDATA[vector products]]></category>
		<category><![CDATA[vector space]]></category>
		<category><![CDATA[vector spaces]]></category>

		<guid isPermaLink="false">http://scripts.mit.edu/~zong/wpress/?p=655</guid>
		<description><![CDATA[This has been a confusing topic, with half a dozen Wikipedia pages on the subject. Here I took some notes. Tensors are sums of &#8220;products&#8221; of vectors. There are different kinds of vector products. The one used to build tensors is, naturally, the tensor product. In the Cartesian product of vector spaces , the set [...]]]></description>
			<content:encoded><![CDATA[<p>This has been a confusing topic, with half a dozen Wikipedia pages on the subject. Here I took some notes.</p>
<p>Tensors are sums of &#8220;products&#8221; of vectors. There are different kinds of vector products. The one used to build tensors is, naturally, the <strong>tensor product</strong>. In the Cartesian product of vector spaces \(V\times W\), the set elements are tuples like \((v,w)\) where \(v\in V, w\in W\). A tensor product \(v\otimes w\) is obtained by tupling the component <strong>bases</strong> rather than the component elements. If \(V\) has basis \(\{e_i\}_{i\in\{1,&#8230;,M\}}\) and \(W\) has basis \(\{f_j\}_{j\in\{1,&#8230;,N\}}\), then take \(\{(e_i,f_j)\}_{i\in\{1,&#8230;,M\},j\in\{1,&#8230;,N\}}\) as the basis of the <strong>tensor product space</strong> \(V\otimes W\). Then define the tensor product \(v\otimes w\) as</p>
<p>(1) \(\sum_{i,j} v_i w_j (e_i,f_j) \in V\otimes W\),</p>
<p>if \(v=\sum_i v_i e_i\) and \(w=\sum_j w_j f_j\). The entire tensor product space \(V\otimes W\) is defined as sums of these tensor products</p>
<p>(2) \(\{\sum_k v_k\otimes w_k | v_k\in V, w_k\in W\}\).</p>
<p>So tensors in a given basis can be represented as multidimensional arrays.</p>
<p>\(V\otimes W\) is also a vector space, with \(MN\) basis dimensions (c.f. \(V\times W\) with \(M+N\) basis dimensions). But additionally, it has internal multilinear structure due to the fact that it is made of component vector spaces, namely:</p>
<p>\((v_1+v_2)\otimes w = v_1\otimes w + v_2\otimes w\)<br />
\(v\otimes (w_1+w_2) = v\otimes w_1 + v\otimes w_2\)<br />
\(\alpha (v\otimes w) = (\alpha v)\otimes w = v\otimes (\alpha w)\)<br />
<span id="more-655"></span><br />
Higher-order (n-th order) tensor products \(v_1\otimes v_2\otimes \cdots \otimes v_n\) are obtained by chaining in the obvious way, likewise for higher-order tensor product spaces \(V_1\otimes V_2\otimes \cdots \otimes V_n\). With this, <strong>concatenation</strong> of tensors are also defined, i.e. \(S_{i_1,&#8230;i_m} \in V_1\otimes \cdots \otimes V_m\) and \(T_{i_{m+1},&#8230;,i_n} \in V_{m+1}\otimes \cdots \otimes V_n\), then \(S_{i_1,&#8230;,i_m}\otimes T_{i_{m+1},&#8230;,i_n} = Z_{i_1,&#8230;,i_n} \in V_1\otimes \cdots \otimes V_n\). In other words, the indices are appended. This is essentially the <strong>Kronecker product</strong>, which generalizes the <strong>outer product</strong>.</p>
<p>However, usually when tensors are mentioned, the tensor product spaces under discussion are already specialized to those generated from a single base vector space \(V\) and its dual space \(V^*\), rather than from a collection of arbitrary vector spaces. In such a space \(P(m,n) = \overbrace{V\otimes \cdots \otimes V}^{m} \otimes \overbrace{V^*\otimes \cdots \otimes V^*}^{n}\), the component spaces (and their bases, indices, etc.) naturally belong to two groups, those from \(V\) are called <strong>contravariant</strong>, those from \(V^*\) are called <strong>covariant</strong>,  and an (m,n)-tensor from \(P(m,n)\) is written \(T^{i_1,&#8230;,i_m}_{j_1,&#8230;,j_n}\).</p>
<p>This specialization allows the <strong>contraction</strong> of tensors to be defined. A contraction basically chooses one covariant vector component and one contravariant vector component from a tensor and applies the former as a functional on the latter, e.g., contracting \(T^{i_1,&#8230;,i_m}_{j_1,&#8230;,j_n} = v_{i_1}\otimes \cdots \otimes v_{i_m} \otimes v^*_{j_1} \otimes \cdots \otimes v^*_{j_n}\) on the pair of indices \(i_1\) and \(j_1\) gives \(Z^{i_2,&#8230;,i_m}_{j_2,&#8230;,j_n} = v^*_{j_1}(v_{i_1}) (v_{i_2}\otimes \cdots \otimes v_{i_m} \otimes v^*_{j_2} \otimes \cdots \otimes v^*_{j_n})\). \(v^*_{j_1}(v_{i_1})\) of course is an <strong>inner product</strong> that sums over the dimensions of the paired components. Contraction generalizes the <strong>trace</strong> operator. Combined with concatenation, this defines a <strong>tensor multiplication</strong>, such that if \(S^{r,i_2,&#8230;,i_m}_{s,j_2,&#8230;,j_n}\in P(m,n)\) and \(T^{s,k_2,&#8230;,k_p}_{r,l_2,&#8230;,l_q}\in P(p,q)\), then \(S^{r,i_2,&#8230;,i_m}_{s,j_2,&#8230;,j_n}T^{s,k_2,&#8230;,k_p}_{r,l_2,&#8230;,l_q}\) is the contraction of \(S^{r,i_2,&#8230;,i_m}_{s,j_2,&#8230;,j_n}\otimes T^{s,k_2,&#8230;,k_p}_{r,l_2,&#8230;,l_q}\) on all common indices that can be paired, e.g. \(r,s\). This is the so-called <strong>Einstein notation</strong>, and generalizes <strong>matrix multiplication</strong>.</p>
<p>The distinction of \(V\) vs. \(V^*\) also manifests in the <strong>change-of-basis</strong> rules for tensors, which inherit from the change-of-basis rules of the component vector spaces, which are:</p>
<ul>
<li><strong>contravariant</strong> change-of-basis rule: If \(B = [b_1\ b_2\ \cdots\ b_M]\) is a change-of-basis matrix, with the new basis \(\{b_i\}_{i\in \{1,&#8230;,M\}}\) written in the old basis as columns, then for a vector written in the old basis \(v\in V\) and the same vector written in the new basis \(\tilde{v}\in V\), \(v = B\tilde{v}\). Therefore, we have
<p>(3) \(v \mapsto \tilde{v} = B^{-1}v\).</li>
<li><strong>covariant</strong> change-of-basis rule: If additionally \(a^T\in V^*\) is a functional written in the old basis and \(\tilde{a}^T\in V^*\) is the same functional written in the new basis, then \(\forall v\in V: a^T v = \tilde{a}^T \tilde{v} = \tilde{a}^T B^{-1}v\). Therefore, we have
<p>(4) \(a^T \mapsto \tilde{a}^T = a^T B\).</li>
</ul>
<p>Combining (1), it can be shown that, for a change-of-basis tensor \(B = {B^{-1}}^{i_1}_{i_1}\cdots {B^{-1}}^{i_m}_{i_m}B^{j_1}_{j_1}\cdots B^{j_n}_{j_n}\), an (m,n)-tensor \(T^{i_1,&#8230;,i_m}_{j_1,&#8230;,j_n}\) has the change-of-basis rule \(T^{i_1,&#8230;,i_m}_{j_1,&#8230;,j_n} \mapsto BT^{i_1,&#8230;,i_m}_{j_1,&#8230;,j_n}\).</p>
<p>Okay, so what&#8217;s the point of these tensors? Basically, an (m,n)-tensor \(T^{i_1,&#8230;,i_m}_{j_1,&#8230;,j_n}\in P(m,n)\) represents a multilinear input-output relationship that takes \(n\) vectors as input and produces \(m\) vectors as output. If used &#8220;canonically&#8221; on an input \(X^{j_1,&#8230;,j_n}\in P(n,0)\), you get \(T^{i_1,&#8230;,i_m}_{j_1,&#8230;,j_n}X^{j_1,&#8230;,j_n} = Y^{i_1,&#8230;,i_m}\in P(m,0)\) as output. The contravariant input gets contracted with the covariant parts of the transformation tensor, and these drive the contravariant parts of the transformation tensor to produce the contravariant output.</p>
<p><img src="wp-content/uploads/images/tensor.png" /><br />
(System diagrams: <strong>Rank</strong> is the minimal number of terms in a tensor. On the left, a rank-1 tensor transformation; on the right, a rank-\(K\) one. )</p>
<p>An example is linear transformations, which are (1,1)-tensors (1 vector in, 1 vector out). In array representation these would just be matrices. Any rank-\(K\) linear transformation \(T^v_a\) is decomposable into a \(K\)-term tensor \(\sum_{k=1}^K v_k\otimes a_k\), but 1-term (1,1)-tensors are outer products, so this is the matrix \(\sum_{k=1}^K v_k a^T_k\), and \(Y^v = T^v_a X^a\) is just \(y = \sum_k v_k (a^T_k x)\).</p>
<p>Most other &#8220;multilinear&#8221; operations on vectors (inner product, cross product, wedge product, determinant) can be written as tensors. For example, the inner product operation (2 vectors in, &#8220;0&#8243; vectors out, i.e. scalar) is the (0,2) \(N\)-term <strong>Kronecker tensor</strong> \(\delta_{i_1 i_2}=\sum_{k=1}^N e^*_k\otimes e^*_k\) where \(\{e^*_k\}_{k\in\{1,&#8230;,N\}}\) are the standard basis of \(V^*\).</p>
]]></content:encoded>
			<wfw:commentRss>https://blog.yhuang.org/?feed=rss2&#038;p=655</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>on abstraction</title>
		<link>https://blog.yhuang.org/?p=497</link>
		<comments>https://blog.yhuang.org/?p=497#comments</comments>
		<pubDate>Wed, 15 Jun 2011 01:54:57 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[abstraction]]></category>
		<category><![CDATA[difficult questions]]></category>
		<category><![CDATA[genericity]]></category>
		<category><![CDATA[imprecision]]></category>
		<category><![CDATA[larger systems]]></category>
		<category><![CDATA[overbrace]]></category>
		<category><![CDATA[precision]]></category>
		<category><![CDATA[specificity]]></category>
		<category><![CDATA[transmitter]]></category>
		<category><![CDATA[underbrace]]></category>

		<guid isPermaLink="false">http://scripts.mit.edu/~zong/wpress/?p=497</guid>
		<description><![CDATA[I&#8217;ve come across the word &#8220;abstraction&#8221; in exactly three contexts. The first is in computer science, where &#8220;abstraction&#8221; is the hiding away of details within a black box whose interfaces are well defined. The second is in mathematics, where &#8220;abstraction&#8221; is the induction from special cases. The third is in art, where &#8220;abstraction&#8221; seems to [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve come across the word &#8220;abstraction&#8221; in exactly three contexts. The first is in computer science, where &#8220;abstraction&#8221; is the hiding away of details within a black box whose interfaces are well defined. The second is in mathematics, where &#8220;abstraction&#8221; is the induction from special cases. The third is in art, where &#8220;abstraction&#8221; seems to be independence from concrete meaning. Abstract is &#8220;drag away&#8221; in Latin, so it is likely to be defined by its opposition &#8212; that which it is &#8220;dragged away&#8221; from. No wonder it has so many different meanings. Interpreted thusly, the first context for &#8220;abstraction&#8221; may better be termed &#8220;opacity&#8221; in opposition to &#8220;transparency&#8221;; the second, &#8220;genericity&#8221; in opposition to &#8220;specificity&#8221;; and the third, &#8220;notionality&#8221; in opposition to &#8220;concreteness.&#8221;</p>
<p>What is the point of abstraction? Is there something terrible about transparency, specificity, or concreteness; are they not qualities that we praise, for the clarity that they provide?<br />
<span id="more-497"></span><br />
There must be some limitation to these generally positive qualities. Maybe, once something is transparent, specific, or concrete, we &#8220;understand&#8221; it. Then it is not much of a challenge and we get bored. The seemingly obfuscating nature of &#8220;abstraction&#8221; instead challenges us to tackle more difficult questions by removing the easiest ones already answered. Why are abstracted questions more difficult? Because they must give &#8220;larger&#8221; (I hesitate to use the phrase &#8220;more powerful&#8221;) answers, since they begin with fewer informational constraints. So in the first case, opacity is used to build larger systems; in the second case, genericity is used to demonstrate more applicable truths; and in the third case, notionality is used to elicit a wider range of reactions.</p>
<p>Still, what does &#8220;larger&#8221; mean? And what is the relation between &#8220;abstraction&#8221; and &#8220;precision&#8221;: are the two complementary, or a tradeoff? They seem to be at first, yet there is nothing imprecise about mathematical abstraction, for example, but there is something imprecise about artistic abstraction. Maybe what I mean is best represented by this:</p>
\(\underbrace{&#8230;1001101001001}_\textrm{precise}\overbrace{01010101&#8230;}^\mathrm{imprecise}\)<br />
\(\underbrace{&#8230;10011010}_\mathrm{unabstracted}\overbrace{0100101010101&#8230;}^\textrm{abstracted}\)
<p>Here I have some bits. To the left are MSBs and to the right are LSBs. &#8220;Precision&#8221; is commonly understood to be how many bits into LSBs I can measure. Similarly, &#8220;abstraction&#8221; as defined here is how many bits I hide. So immediately, the two are describing complementary perspectives, one from an receiver&#8217;s POV, and the other from a transmitter&#8217;s POV. It is easy to see where complementarity could arise.</p>
<p>But in fact, &#8220;precise&#8221; and &#8220;abstracted&#8221; bits can overlap; and when they do as here, then the transmitter has done something significant by hiding away bits the receiver would otherwise be capable of measuring. Moreover, what the receiver gets, the &#8220;unabstracted&#8221; part, is entirely precise. This is the case with mathematical abstraction. In fact, mathematics has no &#8220;imprecision&#8221; at all, so the unabstracted part is as precise as the abstracted part. In other situations where imprecision exists, the part of abstraction that does not overlap with precision are bits the receiver will always be uncertain about. (Those are stuck-up, elitist, phony abstraction bits as far as the receiver is concerned, haha&#8230;)</p>
\(\underbrace{&#8230;1001101001001}_\textrm{precise}\overbrace{01010101&#8230;}^\mathrm{imprecise}\)<br />
\(\overbrace{&#8230;10011010}^\mathrm{abstracted}\underbrace{0100101010101&#8230;}_\textrm{unabstracted}\)
<p>However, abstraction does not need to occupy the LSB end. It could start on the other end, too. When there is some overlap between &#8220;imprecise&#8221; and &#8220;unabstracted&#8221; bits, the result is some degree of imprecision in the conveyed object. This is the case with artistic abstraction, I believe. Here, as abstraction rises from the transmitter, we get less precision in the receiver.</p>
<p>So now we can answer the question of what becomes &#8220;larger&#8221; in abstraction: the number of possibilities in the abstracted and precise part &#8212; the part that the receiver is capable of measuring but which the transmitter deliberately does not send &#8212; rises as abstraction gets higher. Yet, what happens to the precision of the unabstracted part is not guaranteed. Precision and abstraction are not complementary.</p>
]]></content:encoded>
			<wfw:commentRss>https://blog.yhuang.org/?feed=rss2&#038;p=497</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
