dimension requirements for gaussian random matrix to be a restricted isometry with high probability

[[concept]]

[!themes] Topics

Evaluation Error: SyntaxError: Unexpected token '>'

at DataviewInlineApi.eval (plugin:dataview:19027:21)
at evalInContext (plugin:dataview:19028:7)
at asyncEvalInContext (plugin:dataview:19038:32)
at DataviewJSRenderer.render (plugin:dataview:19064:19)
at DataviewJSRenderer.onload (plugin:dataview:18606:14)
at DataviewJSRenderer.load (app://obsidian.md/app.js:1:1182416)
at DataviewApi.executeJs (plugin:dataview:19607:18)
at DataviewCompiler.eval (plugin:digitalgarden:10763:23)
at Generator.next (<anonymous>)
at eval (plugin:digitalgarden:90:61)

Theorem

Suppose k1 and δ(0,1) and d64klogmδ2. Let GN(0,1d)d×m. Then

P[G has (k,δ)-RIP]12mk

(We want to reduce the number of measurements required to ensure we can recover x from only seeing y=Gx)

Proof

Suppose S[m],|S|=k and xRm. Define

  1. x(S)Rk as the restriction to indices in S
  2. G(S)Rd×k be the restriction to columns with indices in S

If ||x||0k and all non-zero indices are in S, ie supp(x)S, then we have

Gx=G(S)x(S) and ||x||=||x(S)||

In this case, the (k,δ) RIP is equivalent to requiring that
(for all S[m] with |S|=k) we have

(1-\delta)\lvert \lvert x^{(S)} \rvert \rvert { #2} \leq \lvert \lvert G^{(S)}x^{(S)} \rvert \rvert { #2} \leq (1+\delta) \lvert \lvert x^{(S)} \rvert \rvert { #2}

Now, let x^(S):=x(S)||x(S)||. Then

δx^(S)(G(S)TG(S)Ik)x^(S)δ||G(S)TG(S)Ik||δ

So, applying the union bound, we can see

P[G not (k,δ)-RIP]UBS[m],|S|=kP[||G(S)TG(S)I+k||>δ]

Now, Law(G(S))=N(0,1d)d×m. So introduce HN(0,1)k×d. Then we have

P[G not (k,δ)-RIP](mk)P[||HHTdIk||>δd]()(mk)2exp(18min{δ2d24d,δd2})

Where we get () from the high probability bound for operator norm of difference for Gaussian covariance matrix we saw last time. And continuing the calculation, we see

P[G not (k,δ)-RIP]mk2exp(δ232d)=2exp(klogmδ232d)2exp(klogm)=2mk

References

References

See Also

Mentions

Mentions

const modules = await cJS()

const COLUMNS = [  
	{ id: "Name", value: page => page.$link },  
	{ id: "Last Modified", value: page => modules.dateTime.getLastMod(page) },
];  
  
return function View() {  
	const current = dc.useCurrentFile();
// Selecting `#game` pages, for example. 
	let queryString = `@page and linksto(${current.$link})`;
	let pages = dc.useQuery(queryString);
	
	// check types
	pages = pages.filter( (p) => !modules.typeCheck.checkAll(p, current) ).sort()
	
	
	return <dc.Table columns={COLUMNS} rows={pages} paging={20}/>;  
}  

const { dateTime } = await cJS()

return function View() {
	const file = dc.useCurrentFile();
	return <p class="dv-modified">Created {dateTime.getCreated(file)}     ֍     Last Modified {dateTime.getLastMod(file)}</p>
}