Derivative of a quadratic form: Difference between revisions

From Machinelearning
Line 4: Line 4:


==Straightforward method==
==Straightforward method==
This method is the most straightforward, and involves breaking apart the matrix and vector into components and performing the differentiation. While straightforward, it appears messy due to the indices involved.


Let <math>A = (a_{ki})</math> and <math>x = (x_1,\ldots,x_n)</math>.
Let <math>A = (a_{ki})</math> and <math>x = (x_1,\ldots,x_n)</math>.
Line 18: Line 20:


:<math>a_{jj}x_j^2 + \left(\sum_{i\ne j} a_{ji} x_i\right)x_j + \sum_{k\ne j} \left(a_{kj}x_k x_j + x_k \sum_{i\ne j} a_{ki} x_i\right) = a_{jj}x_j^2 + \left(\sum_{i\ne j} a_{ji} x_i\right)x_j + \left(\sum_{k\ne j}a_{kj}x_k\right) x_j + \sum_{k\ne j}x_k \sum_{i\ne j} a_{ki} x_i</math>
:<math>a_{jj}x_j^2 + \left(\sum_{i\ne j} a_{ji} x_i\right)x_j + \sum_{k\ne j} \left(a_{kj}x_k x_j + x_k \sum_{i\ne j} a_{ki} x_i\right) = a_{jj}x_j^2 + \left(\sum_{i\ne j} a_{ji} x_i\right)x_j + \left(\sum_{k\ne j}a_{kj}x_k\right) x_j + \sum_{k\ne j}x_k \sum_{i\ne j} a_{ki} x_i</math>
It is now easy to do the differentiation. We have
:<math>2a_{jj}x_j + \sum_{i\ne j} a_{ji} x_i + \sum_{k\ne j}a_{kj}x_k</math>
Since the matrix is symmetric, <math>a_{kj} = a_{jk}</math> so <math>\sum_{k\ne j}a_{kj}x_k = \sum_{k\ne j}a_{jk}x_k = \sum_{i\ne j}a_{ji}x_i</math>. The final equality follows because <math>k</math> is just an indexing variable and we are free to rename it. But now the derivative becomes
:<math>2a_{jj}x_j + 2\sum_{i\ne j} a_{ji} x_i = 2\sum_{i=1}^n a_{ji} x_i</math>


==Using the definition of the derivative==
==Using the definition of the derivative==

Revision as of 00:04, 14 July 2018

Let AMn,n(R) be an n by n real-valued matrix, and let f:RnR be defined by f(x)=xTAx. On this page, we calculate the derivative of f.

Understanding the problem

Straightforward method

This method is the most straightforward, and involves breaking apart the matrix and vector into components and performing the differentiation. While straightforward, it appears messy due to the indices involved.

Let A=(aki) and x=(x1,,xn).

We expand

xTAx=xT(i=1na1ixii=1nanixi)=k=1nxki=1nakixi

Now we find the partial derivative of the above with respect to xj. To distinguish the constants from the variable, it makes sense to split the sum:

k=1nxki=1nakixi=xji=1najixi+kjxki=1nakixi=xj(ajjxj+ijajixi)+kjxk(akjxj+ijakixi)

Now distributing we have

ajjxj2+(ijajixi)xj+kj(akjxkxj+xkijakixi)=ajjxj2+(ijajixi)xj+(kjakjxk)xj+kjxkijakixi

It is now easy to do the differentiation. We have

2ajjxj+ijajixi+kjakjxk

Since the matrix is symmetric, akj=ajk so kjakjxk=kjajkxk=ijajixi. The final equality follows because k is just an indexing variable and we are free to rename it. But now the derivative becomes

2ajjxj+2ijajixi=2i=1najixi

Using the definition of the derivative

This is an expanded version of the answer at [1].

The derivative is the linear transformation L such that:

limxx0;xx0|f(x)(f(x0)+L(xx0))||xx0|=0

Using our function, this is:

limxx0;xx0|xTAxx0TAx0L(xx0)||xx0|=0

Defining h=xx0, we have x=x0+h and

|(x0+h)TA(x0+h)x0TAx0L(h)||h|

Focusing on the subexpression (x0+h)TA(x0+h), since A is a matrix, it is a linear transformation, so we obtain (x0+h)T(Ax0+Ah). Since the transpose of a sum is the sum of the transposes, we have (x0T+hT)(Ax0+Ah). Now using linearity we have x0TAx0+hTAx0+x0TAh+hTAh.

Now the fraction is

|x0TAx0+hTAx0+x0TAh+hTAhx0TAx0L(h)||h|=|hTAx0+x0TAh+hTAhL(h)||h|

Focusing on hTAx0, it is a real number so taking the transpose leaves it unchanged: hTAx0=(hTAx0)T=x0TATh.

Now the fraction is

|x0TATh+x0TAh+hTAhL(h)||h|=|x0T(AT+A)h+hTAhL(h)||h|

In the numerator, hTAh is a higher order term that will disappear when taking the limit, so the linear transformation we are looking for must be L(h)=x0T(AT+A)h. Since A is symmetric, we have AT+A=2A and L(h)=2x0TAh.

Using the chain rule