viewgit/index.php:465 Only variables should be passed by reference [2048]

viewgit/index.php:466 Non-static method GeSHi::get_language_name_from_extension() should not be called statically [2048]

  1. \chapter{Decomposizione in valori singolari}
  2.  
  3. In questa sezione ci occuperemo di un tipo di fattorizzazione basato sulle proprietà spettrali, e quindi differente
  4. dalle fattorizzazioni viste fino ad ora (come la QR o la LU). Cominceremo esponendo un caso concreto in cui
  5. ci si trova nella necessità di utilizzarla.
  6.  
  7. \section{Problemi lineari ai minimi quadrati}
  8. Consideriamo il seguente problema; sia $A$ una matrice $m \times n$ con $m \geq n$ e $b$ un vettore
  9. di $\R^m$. Vogliamo trovare $x$ tale che $Ax = b$. In generale questo problema è risolubile solo se
  10. $b \in \imm{A}$ vista come applicazione lineare, ma non è conveniente affrontare il problema risolvendo
  11. effettivamente il sistema lineare. Possiamo quindi riformulare la nostra richiesta in questo modo: cerchiamo
  12. $x$ tale che
  13. \[
  14. x = \min_{x \in \R^n}( || Ax - b ||_2 )
  15. \]
  16. Se $x$ è effettivamente soluzione del sistema lineare avremo $||Ax - b||_2 = 0$, ed in caso contrario
  17. avremo un $x$ tale che $Ax$ sia una buona\footnote{dove buona significa che non si potrebbe trovare
  18. un altro $x'$ tale ceh $Ax'$ sia più vicino (nel senso della norma 2) a $b$ di quanto lo sia già $Ax$}
  19. approssimazione di $b$.
  20.  
  21. Analizziamo alcune tecniche per la risoluzione di questo problema
  22.  
  23. \subsection{Fattorizzazione QR}
  24. Consideriamo la fattorizzazione QR di $A = QR$. Osserviamo che in questo caso $Q \in \matr{\R}{n}{n}$ e
  25. $R \in \matr{\R}{m}{n}$. Osservando che minimizzare la norma 2 è la stessa cosa che minimizzarne il
  26. quadrato si ottiene
  27. \[
  28. ||Ax - b||_2^2 = ||QRx - b||_2^2 = ||Q(Rx - \trasp Qb)||_2^2 = ||Rx - \trasp Qb||_2^2
  29. \]
  30. dove l'ultimo passaggio è giustificato dal fatto che $Q$ è unitaria.
  31. Consideriamo che la matrice $R$ e il vettore $\trasp Qb$ avranno una struttura di questo tipo:
  32. \[
  33. R = \left[ \begin{array}{c}
  34. \hat R \\
  35. \trasp 0
  36. \end{array} \right]
  37. \qquad \trasp Qb = \left[ \begin{array}{c}
  38. w_1 \\
  39. w_2
  40. \end{array} \right]
  41. \]
  42. dove $\hat R$ è una matrice quadrata $n \times n$, $w_1$ un vettore con $n$ componenti e $w_2$ un vettore
  43. di $\R^{m-n}$. Possiamo quindi riscrivere la relazione precedente in questo modo
  44. \[
  45. ||Ax - b||_2^2 = ||\hat Rx - w_1||_2^2 + ||w_2||^2
  46. \]
  47. Abbiamo ricondotto il problema a minimizzare la norma di $\hat Rx - w_1$. Se $\hat R$ è invertibile allora
  48. la soluzione al problema è evidentemente unica ed è la soluzione del sistema lineare $\hat Rx = w_1$.
  49. Osserviamo che $\hat R$ è invertibile se e solo se lo è $\rk{A} = n$; per ora assumeremo che
  50. questo sia vero, riservandoci di analizzare il caso più generale in seguito.
  51.  
  52. In conclusione la fattorizzazione QR ci ha permesso di ricondurre il problema alla risoluzione di un sistema
  53. lineare quadrato di ordine $n$. Analizziamo ora un diverso approccio.
  54.  
  55. \subsection{Sistema delle equazioni normali}
  56. Questo sistema deriva dalla seguente osservazione. Supponiamo di avere $x$ soluzione del sistema $Ax = b$. Allora
  57. $x$ deve essere anche soluzione del sistema quadrato $\trasp AAx = \trasp Ab$, che si ottiene semplicemente moltiplicando
  58. a sinistra la precedente relazione per $\trasp A$.
  59. Osserviamo ancora una volta che scrivendo la fattorizzazione QR di $A$ e supponendo che $A$ abbia rango massimo si
  60. ottiene lo stesso risultato di prima:
  61. \[
  62. A = QR \qquad \trasp AAx = b \iff \trasp RRx = \trasp R\trasp Qb \iff \trasp R\hat R = \trasp Rw_1 \iff
  63. \hat Rx = w_1
  64. \]
  65. e quindi si ha l'unicità della soluzione e la risolubilità del sistema lineare. In generale però, il calcolo
  66. di $\trasp AA$ potrebbe esserer oneroso e, soprattutto, nessuno ci garantisce in una situazione generale
  67. che il rango di $A$ sia massimo.
  68.  
  69. \subsection{Teorema di decomposizione in valori singolari}
  70. Possiamo pensare di voler migliorare l'idea delle equazioni normali. In altre parole, vogliamo trovare il
  71. modo di evitare il calcolo di $\trasp AA$. Consideriamo dunque il seguente
  72. \begin{te}[Decomposizione in valori singolari]
  73. Sia $A \in \matr{\R}{m}{n}$. Esistono $U \in \matr{\R}{m}{n}$ e $V \in \mat{\R}{n}$ ortogonali e
  74. $\Sigma \in \matr{\R}{m}{n}$ tali che
  75. \[
  76. \Sigma = \left[ \begin{array}{cccc}
  77. \sigma_1 & & & \\
  78. & \sigma_2 & & \\
  79. & & \ddots & \\
  80. & & & \sigma_n \\ \hline
  81. \multicolumn{4}{c}{\trasp 0} \\
  82. \end{array} \right]; \qquad \textrm{dove} \: \sigma_i \geq \sigma_j \ \forall i < j \qquad \textrm{e} \qquad
  83. A = U\Sigma\trasp V
  84. \]
  85. \end{te}
  86.  
  87. \begin{os}
  88. Osservando che $\Sigma$ è quasi diagonale si capisce che in un certo senso questa è una decomposizione spettrale.
  89. In particolare si può scrivere $\trasp AA$ come
  90. \[
  91. \trasp AA = \trasp V\Sigma\trasp U U \Sigma V = \trasp V \left[ \begin{array}{cccc}
  92. \sigma_1^2 & & & \\
  93. & \sigma_2^2 & & \\
  94. & & \ddots & \\
  95. & & & \sigma_n^2 \\ \hline
  96. \multicolumn{4}{c}{\trasp 0} \\
  97. \end{array} \right] V
  98. \]
  99. e quindi se prendiamo $\lambda_i$ gli autovalori di $\trasp AA$ (che sono reali perché la matrice $\trasp AA$
  100. è simmetrica) ordinati in modo decrescente abbiamo che $\sigma_i = \sqrt{\lambda_i}$ per ogni $i = 1 \ldots n$.
  101. \end{os}
  102. Inoltre questa fattorizzazione mette in luce altre proprietà della matrice $A$. In particolare:
  103. \begin{os}
  104. Se $A$ ha rango $k$, allora $\sigma_1 \ldots \sigma_k$ sono tutti diversi da $0$ mentre $\sigma_{k+1} \ldots
  105. \sigma_n$ sono $0$. Questo si nota dal fatto che $\trasp AA$ ha lo stesso rango di $A$ ed il suo rango
  106. è pari al numero\footnote{inteso come numero moltiplicato per la molteplicità algebrica} di autovalori diversi da $0$.
  107. L'ordinamento che abbiamo richiesto sui $\sigma_i$ ci permette di concludere.
  108. \end{os}
  109.  
  110. Possiamo ora osservare come cambia il problema lineare ai minimi quadrati quando introduciamo questa
  111. nuova fattorizzazione.
  112. \[
  113. ||Ax - b||_2^2 = ||U\Sigma\trasp Vx - b||_2^2 = ||\Sigma\trasp Vx - \trasp Ub||_2^2
  114. \]
  115. e ponendo $z = \trasp V x$ e $\trasp Ub = \left[ \begin{array}{c} w_1 \\ w_2 \end{array} \right] $ si ottiene
  116. \[
  117. \Bigg|\Bigg|\Sigma z - \left[ \begin{array}{c} w_1 \\ w_2 \end{array} \right] \Bigg|\Bigg|_2^2 =
  118. \Bigg|\Bigg|\left[ \begin{array}{ccc} \sigma_1 & & \\ & \ddots & \\ & & \sigma_n \end{array} \right] z - w_1\Bigg|\Bigg|_2^2 + ||w_2||_2^2
  119. \]
  120. Se il rango di $A$ è $n$ allora la matrice $\diag{\sigma_1 \ldots \sigma_n}$ è invertibile e quindi per
  121. minimizzare il primo fattore è sufficiente risolvere un sistema diagonale di ordine $n$.
  122.  
  123. Se però $A$ è di ordine $k < n$ allora si può ripartizionare $\trasp Ub$ in una parte con $k$ componenti
  124. e una parte con le restanti $n-k$. Riscrivendo l'espressione si ottiene che si può minimizzare il primo fattore
  125. risolvendo un sistema di $k$ equazioni e scegliendo arbitrariamente le restanti $n-k$.
  126. \begin{os} Come regola generale si preferisce scegliere queste ultime componenti tutte nulle in modo
  127. da minimizzare la norma della soluzione. \`E infatti generalmente preferibile ottenere una soluzione di norma piccola.
  128. \end{os}
  129. Dalle relazioni sopra possiamo anche ottenere una espressione esplicita della soluzione $z$. In particolare
  130. \[
  131. z_j = \frac{w_{1,j}}{\sigma_j} = \frac{\trasp U_j b }{\sigma_j} \quad \text{dove} \ U_j \ \text{è la $j$-esima
  132. colonna di} \ U
  133. \]
  134. Ora possiamo ricordare che $x = Vz$ e quindi se $A$ è di rango massimo
  135. \[
  136. x = Vz = \sum_{k=1}^{n} \frac{V_kU_kb}{\sigma_k} = \underbrace{\left( \sum_{k=1}^{n} \frac{V_kU_k}{\sigma_k} \right)}_{A^+} b
  137. \]
  138. e chiamiamo $A^+$ \emph{pseudo-inversa} di $A$. Più precisamente
  139. \[
  140. A^+ = V \Sigma^{-1} \trasp U
  141. \]
  142. Si verifica subito infatti che $AA^+ = I$ e $A^+A = I$\footnote{ma attenzione! Non è vero che $AA^+ = A^+A$ perchè
  143. queste sono addirittura due matrici di ordine diverso. Il loro prodotto dà sempre l'identità, ma non dello stesso
  144. spazio.}.
  145. Questa pseudo-inversa di chiama anche \emph{inversa di Moore-Penrose}.
  146.  
  147. Se $A$ non è di rango massimo possiamo ugualmente definire la pseudo-inversa ``fermando'' la somma
  148. a $k$ dove $k$ è il rango di $A$. Abbiamo dunque
  149. \[
  150. A^+ = \sum_{j=1}^{k} \frac{V_jU_j}{\sigma_j}
  151. \]
  152. e ancora una volta vale l'eguaglianza $x = A^+b$ dove $x$ è il vettore di rango minimo che risolve (nel modo migliore)
  153. il problema lineare ai minimi quadrati.
  154.  
  155. \subsection{Interpolazione polinomiale}
  156. Abbiamo visto nel corso di analisi numerica che dati $(x_i,y_i)$ con $i = 0 \ldots n$ è sempre possibile
  157. trovare un polinomio di grado al più $n$ tale che $p(x_i) = y_i$ per tutti gli $i$.
  158.  
  159. Nelle applicazioni concrete si ha però a che fare con grandi moli di dati sperimentali e raramente
  160. il grado del polinomio che si vorrebbe usare per creare un modello matematico ha lo stesso ordine
  161. di grandezza. Ci chiediamo: ``\`E allora possibile trovare il polinomio di grado $m \ll n$ che meglio
  162. approssimi la distribuzione dei nostri dati sperimentali?''; la risposta è sì e si tratta di risolvere
  163. un problema lineare ai minimi quadrati con una matrice $m \times n$.
  164. Indagheremo in seguito questa tecnica per il calcolo del miglior polinomio approssimanete un insieme di dati
  165. sperimentali, perché dovremo superare anche il problema del condizionamente della matrice di Van der Monde
  166. che individua il problema\footnote{Questo era un problema anche nel caso standard con matrice quadrata, e rimarrà
  167. complesso anche nel caso della matrice rettangolare}.
  168.  
  169. \subsection{Principali proprietà della SVD} \label{subsec:svdprop}
  170. Abbiamo introdotto la SVD parlando di sistemi lineari perché questo è il contesto in cui è stata originariamente
  171. concepita. Possiamo però osservare che essa ha anche delle interessanti proprietà in molti altri ambiti.
  172.  
  173. Consideriamo la matrice $A \in \matr{\R}{m}{n}$ che individua univocamente un'applicazione lineare
  174. \[
  175. T_A : \R^n \longto \R^m
  176. \]
  177. La \svd\ ci permette di conoscere meglio questa applicazione. Sappiamo che se $A$ è di rango $k$ allora
  178. $A = U\Sigma\trasp V$ e i $\sigma_i$ della matrice $\Sigma$ sono nulli a partire dal ($k+1$)-esimo.
  179. \`E chiaro dunque che la scomposizione di permette di determinare il rango di $A$ e quindi di capire
  180. che l'immagine di $T_A$ avrà dimensione $k$ e il kernel dell'applicazione $n-k$. Ricordando però che
  181. \[
  182. Ax = U\Sigma\trasp Vx = \sum_{i=1}^{k} \sigma_i U_i\trasp V_i x
  183. \]
  184. possiamo estrarre altre informazioni. Dato che per ogni $x$ $V_i x$ è uno scalare l'immagine di $T_A$
  185. deve essere contenuta nello $\Span{U_1 \ldots U_k}$. Dato che quest'ultimo ha dimensione $k$, che è la
  186. stessa di $\imm{T_A}$, devono coincidere e quindi le prime $k$ colonne di $U$ sono una base per l'immagine.
  187. Analogamente dall'ortogonalità delle colonne di $V$ si ha che se $x = V_j$ con $j > k$ allora $Ax = 0$
  188. e quindi lo $\Span{V_{k+1} \ldots V_{n}}$ è contenuto nel kernel di $T_A$. Ancora una volta per motivi
  189. dimensionali devono coincidere.
  190.  
  191. In sintesi si ha che se $A = U\Sigma\trasp V$ è una matrice di rango $k$ allora
  192. \begin{itemize}
  193. \item $\Ker{A} = \Span{V_{k+1} \ldots V_n}$;
  194. \item $\imm{A} = \Span{U_1 \ldots U_k}$;
  195. \end{itemize}
  196.  
  197. Introduciamo ora un'estensione del concetto di norma indotta visto nel corso di Analisi Numerica
  198. \begin{de}
  199. Sia $A$ una matrice $m \times n$. Si dice \emph{norma di $A$ indotta dalla norma vettoriale $||\cdot||$}
  200. la seguente funzione
  201. \[
  202. \begin{array}{rcl}
  203. ||\cdot|| : \matr{\R}{m}{n} &\longto& \R \\
  204. A & \longmapsto & \displaystyle \max_{||x|| = 1} ||Ax||
  205. \end{array}
  206. \]
  207. \end{de}
  208. Questa è effettivamente una norma, ma la verifica viene qui omessa.
  209. %TODO: Magari si potrebbe anche fare, suvvia!
  210.  
  211. \begin{os}
  212. Osserviamo la seguente catena di uguaglianze
  213. \[
  214. ||Ax||_2 = ||U\Sigma \trasp V x||_2 = ||\Sigma \trasp V x||_2 = ||\Sigma z||_2
  215. \]
  216. Queste ci dicono che, data l'invertibilità e l'ortogonalità di $V$, $||A||_2 = ||\Sigma||_2 = \sigma_1$.
  217. \end{os}
  218. Date queste considerazioni possiamo introdurre anche una generalizzazione del condizionamento
  219. ridefinendole con la nuova norma e con la pseudo inversa. Nel caso della norma due si ottiene che
  220. \[
  221. \cond{A} = ||A^+|| \cdot ||A||_2 = \frac{\sigma_1}{\sigma_k}
  222. \]
  223. dove $\sigma_k$ è il più piccolo $\sigma_i$ non nullo, ovvero, come al solito, $k$ è il rango di $A$.
  224. Un'analisi dell'errore effettuata sul problema lineare ai minimi quadrati mostrerebbe come effettivamente
  225. l'errore generato dal procedimento dipende proprio da questo coefficiente.
  226.  
  227. \subsection{\tsvd, pulizia del rumore e compressione di immagini}
  228. Le considerazioni fatte nella Sezione~\ref{subsec:svdprop} ci permettono di introdurre delle tecniche
  229. per ridurre il condizionamento di alcuni problemi.
  230.  
  231. Supponiamo di avere ad esempio un sistema lineare $Ax = b$ con $A$ una matrice con un condizionamento
  232. molto alto. Siamo consci di non avere speranza di risolvere in maniera esatta il sistema senza aumentare
  233. la precisione dei tipi che utilizziamo negli algoritmi.
  234. Se ad esempio il condizionamento è nell'ordine di $10^{12}$ e la precisione di macchina di $10^{16}$ sappiamo
  235. che probabilmente avremo circa $4$ cifre decimali corrette (nella migliore delle ipotesi). La soluzione di aumentare
  236. la precisione di macchina (ad esempio portarla a $10^{-32}$) potrebbe essere una soluzione ma appesantirebbe
  237. molto l'esecuzione dell'algoritmo.
  238.  
  239. Consideriamo dunque la \svd di $A = U\Sigma\trasp V$.
  240. Possiamo supporre che $\sigma_n$ sia molto piccolo e che
  241. questo causi il cattivo condizionamento (ricordiamo che $\cond{A} = \frac{\sigma_1}{\sigma_n}$). Possiamo
  242. pensare di troncare la matrice $\Sigma$ sostituendola con una matrice $\hat \Sigma$ identica ad eslusione del posto
  243. $(n,n)$ dove rimpiazziamo $\sigma_n$ con $0$, e risolvere il problema $\hat Ax = U\hat \Sigma\trasp Vx = b$.
  244. Questo \textbf{è un altro problema}, ma potrebbe essere molto meglio condizionato del precedente (ad esempio
  245. se $\sigma_{n-1} \gg \sigma_n$) e talvolta è la scelta migliore.
  246.  
  247. Questa pratica di ``troncamento'' viene chiamata \tsvd, ovvero \svd\ con troncamento. \`E tipicamente
  248. utile nella ricostruzione di immagini (che vedremo più avanti) perché non ci interessa la soluzione esatta
  249. del problema, ma la soluzione esatta di un problema ``semplice'' che si avvicini ai nostri dati.
  250. Questo procedimento viene anche detto di soglia, o di filtro, perché è possbile decidere una soglia minima
  251. sotto la quale i $\sigma_i$ non possono scendere, pena essere messi a $0$. In questo modo, fissata la
  252. soglia $s$, avremo che il condizionamento sarà maggiorato da $\sigma_1s^{-1}$.
  253.  
  254. In generale non è un problema banale scegliere il livello di soglia $s$. Nei casi più semplici si ha
  255. un salto dei valori singolari, che passano da un ordine di grandezza ad uno (o a più) inferiori, dividendo
  256. in due zone ben distinte quelli prossimi a $0$ e quelli $\gg 0$.
  257.  
  258. Osservaiamo che in generale non abbiamo alcuna garanzia che i risultati ottenuti tramite
  259. questa tecnica abbiano un riscontro con il problema che aveva generato i dati di partenza, e va quindi
  260. usata con molta attenzione.
  261.  
  262. Un altro esempio pratico di utilizzo della \tsvd\ è quello della compressione delle immagini. Supponiamo di avere
  263. un'immagine rappresentata come una matrice di pixel $A$\footnote{non esiste un motivo per cui la matrice dovrebbe
  264. essere quadrata, è solo per rendere più chiaro l'esempio} di dimensione $n \times n$. Possiamo scrivere
  265. $A = U\Sigma\trasp V$ e pensare di limitarci ad una matrice di rango $k$ e quindi tronvare tutti i $\sigma_i$
  266. con $i > k$. In questo modo potremo rappresentare l'immagine considerando solo le prime $k$ colonne di $U$, le
  267. prime $k$ righe di $V$ e i $\sigma_1 \ldots \sigma_k$.
  268. Per fare un esempio pratico supponiamo $n = 1024$, ovvero un'immagine da 1 Megapixel. Questa occuperebbe in memoria
  269. (suppoendo che sia in bianco e nero a 256 colori) $1 MB$. Decidendo di comprimerla con una matrice di rango $15$
  270. avremmo invece una dimensione di $15 KB$! Ovviamente l'immagine risultante darebbe solamente un'idea di quella originale,
  271. ma si potrebbe pensare di trovare un punto d'incontro fra dimensione e qualità\footnote{e magari di raffinare anche
  272. il metodo di compressione, ma questo lo vedremo in seguito}.