Lewati ke konten utama
Logo Memahami Aljabar Linear

Subbab 7.5 Menggunakan dekomposisi nilai singular

Kita telah melihat apa itu dekomposisi nilai singular, cara membentuknya, dan bagaimana dekomposisi tersebut memberikan informasi penting tentang suatu matriks, seperti basis ortonormal untuk keempat subruang fundamental. Dengan bekal ini, kita dapat mulai menggunakan dekomposisi nilai singular untuk menyelesaikan beragam persoalan.
Karena dekomposisi nilai singular secara langsung menyampaikan data fundamental tentang suatu matriks, wajar jika sebagian pembahasan sebelumnya dapat ditafsirkan kembali melalui dekomposisi nilai singular. Oleh karena itu, pada bagian ini kita akan meninjau kembali beberapa persoalan yang sudah dikenal, seperti masalah kuadrat terkecil dan analisis komponen utama, sambil melihat beberapa penerapan baru.

Subbagian 7.5.1 Pendahuluan

Aktivitas Pratinjau 7.5.1.

Misalkan \(A = U\Sigma V^T\text{,}\) dengan
\begin{equation*} \Sigma = \begin{bmatrix} 13 \amp 0 \amp 0 \amp 0 \\ 0 \amp 8 \amp 0 \amp 0 \\ 0 \amp 0 \amp 2 \amp 0 \\ 0 \amp0 \amp 0 \amp 0 \\ 0 \amp0 \amp 0 \amp 0 \end{bmatrix}, \end{equation*}
vektor-vektor \(\uvec_j\) membentuk kolom-kolom \(U\text{,}\) dan vektor-vektor \(\vvec_j\) membentuk kolom-kolom \(V\text{.}\)
(a)
Berapakah ukuran matriks \(A\text{,}\) \(U\text{,}\) dan \(V\text{?}\)
(b)
Berapakah peringkat \(A\text{?}\)
(c)
Uraikan cara menentukan basis ortonormal untuk \(\col(A)\text{.}\)
(d)
Uraikan cara menentukan basis ortonormal untuk \(\nul(A)\text{.}\)
(e)
Jika kolom-kolom \(Q\) membentuk basis ortonormal untuk \(\col(A)\text{,}\) berapakah \(Q^TQ\text{?}\)
(f)
Bagaimana cara membentuk matriks yang memproyeksikan vektor secara ortogonal ke \(\col(A)\text{?}\)

Subbagian 7.5.2 Masalah kuadrat terkecil

Masalah kuadrat terkecil, yang telah kita pelajari dalam Subbab 6.5, muncul ketika kita menghadapi sistem linear tak konsisten \(A\xvec=\bvec\text{.}\) Karena sistem tersebut tidak memiliki solusi, kita mencari vektor \(\xvec\) yang meminimumkan jarak antara \(\bvec\) dan \(A\xvec\text{.}\) Dengan kata lain, kita mencari vektor \(\xhat\text{,}\) yaitu solusi hampiran kuadrat terkecil, dengan menyelesaikan \(A\xhat=\bhat\text{,}\) dengan \(\bhat\) sebagai proyeksi ortogonal dari \(\bvec\) ke ruang kolom \(A\text{.}\)
Jika kita memiliki dekomposisi nilai singular \(A=U\Sigma V^T\text{,}\) maka banyaknya nilai singular taknol \(r\) menyatakan peringkat \(A\text{,}\) dan \(r\) kolom pertama \(U\) membentuk basis ortonormal untuk \(\col(A)\text{.}\) Basis ini dapat digunakan untuk memproyeksikan vektor ke \(\col(A)\) dan dengan demikian menyelesaikan masalah kuadrat terkecil.
Sebelum menelaah hubungan ini lebih lanjut, kita akan memperkenalkan Sage sebagai alat untuk mengotomatiskan pembentukan dekomposisi nilai singular. Salah satu hal baru ialah kita perlu menyatakan bahwa matriks terdiri atas entri titik mengambang. Hal ini dilakukan dengan menyertakan RDF dalam definisi matriks, seperti ditunjukkan pada sel berikut.

Kegiatan 7.5.2.

Perhatikan persamaan \(A\xvec=\bvec\text{,}\) dengan
\begin{equation*} \begin{bmatrix} 1 \amp 0 \\ 1 \amp 1 \\ 1 \amp 2 \end{bmatrix} \xvec = \threevec{-1}36 \end{equation*}
  1. Tentukan dekomposisi nilai singular dari \(A\) menggunakan sel Sage di bawah. Apa saja nilai singular \(A\text{?}\)
  2. Berapakah \(r\text{,}\) yaitu peringkat \(A\text{?}\) Bagaimana cara menentukan basis ortonormal untuk \(\col(A)\text{?}\)
  3. Bentuklah dekomposisi nilai singular tereduksi \(U_r\Sigma_rV_r^T\) dengan menyusun: matriks \(U_r\text{,}\) yang terdiri atas \(r\) kolom pertama \(U\text{;}\) matriks \(V_r\text{,}\) yang terdiri atas \(r\) kolom pertama \(V\text{;}\) dan \(\Sigma_r\text{,}\) yaitu matriks diagonal persegi \(r\times r\text{.}\) Verifikasi bahwa \(A=U_r\Sigma_r V_r^T\text{.}\)
    Perlu diingat bahwa jika B adalah matriks yang didefinisikan dalam Sage, maka B.matrix_from_columns( list ) dan B.matrix_from_rows( list ) dapat digunakan untuk mengambil kolom atau baris dari B. Sebagai contoh, B.matrix_from_rows([0,1,2]) menghasilkan matriks yang dibentuk dari tiga baris pertama B.
  4. Bagaimana dekomposisi nilai singular tereduksi memberikan matriks yang kolom-kolomnya merupakan basis ortonormal untuk \(\col(A)\text{?}\)
  5. Jelaskan mengapa solusi hampiran kuadrat terkecil \(\xhat\) memenuhi
    \begin{equation*} A\xhat = U_rU_r^T\bvec. \end{equation*}
  6. Berapakah hasil kali \(V_rV_r^T\text{,}\) dan mengapa hasil kali tersebut memiliki bentuk ini?
  7. Jelaskan mengapa
    \begin{equation*} \xhat = V_r\Sigma_r^{-1}U_r^T\bvec \end{equation*}
    merupakan solusi hampiran kuadrat terkecil, lalu gunakan bentuk ini untuk menentukan \(\xhat\text{.}\)
Aktivitas ini memperlihatkan kemampuan dekomposisi nilai singular dalam menentukan solusi hampiran kuadrat terkecil bagi persamaan \(A\xvec = \bvec\text{.}\) Karena dekomposisi tersebut langsung memberikan basis ortonormal untuk \(\col(A)\text{,}\) yang sebelumnya harus kita bentuk menggunakan proses Gram–Schmidt, kita dapat dengan mudah memproyeksikan \(\bvec\) ke \(\col(A)\) dan memperoleh bentuk sederhana bagi \(\xhat\text{.}\)
Jika kolom-kolom \(A\) bebas linear, maka persamaan \(A\xhat = \bhat\) hanya memiliki satu solusi, sehingga terdapat solusi hampiran kuadrat terkecil tunggal \(\xhat\text{.}\) Jika tidak, bentuk dalam Proposisi 7.5.1 menghasilkan solusi \(A\xhat=\bhat\) yang memiliki panjang terkecil.
Matriks \(A^+ = V_r\Sigma_r^{-1}U_r^T\) dikenal sebagai pseudoinvers Moore–Penrose dari \(A\text{.}\) Jika \(A\) dapat dibalik, maka \(A^{-1} = A^+\text{.}\)

Subbagian 7.5.3 Hampiran berperingkat \(k\)

Jika kita memiliki dekomposisi nilai singular suatu matriks \(A\text{,}\) kita dapat membentuk barisan matriks \(A_k\) yang menghampiri \(A\) dengan ketelitian yang makin tinggi. Hal ini mungkin terasa akrab bagi mahasiswa kalkulus yang telah melihat bagaimana fungsi \(f(x)\) dapat dihampiri oleh fungsi linear, fungsi kuadrat, dan seterusnya dengan ketelitian yang makin tinggi.
Kita mulai dengan matriks berperingkat \(r\text{,}\) yaitu \(A\text{,}\) beserta dekomposisi nilai singularnya \(A=U\Sigma V^T\text{.}\) Untuk membentuk matriks hampiran \(A_k\text{,}\) kita mempertahankan \(k\) nilai singular pertama dan mengubah nilai lainnya menjadi nol. Sebagai contoh, jika \(\Sigma = \begin{bmatrix} 22 \amp 0 \amp 0 \amp 0 \amp 0 \\ 0 \amp 14 \amp 0 \amp 0 \amp 0 \\ 0 \amp 0 \amp 3 \amp 0 \amp 0 \\ 0 \amp 0 \amp 0 \amp 0 \amp 0 \\ \end{bmatrix} \text{,}\) kita dapat membentuk matriks
\begin{equation*} \Sigma^{(1)} = \begin{bmatrix} 22 \amp 0 \amp 0 \amp 0 \amp 0 \\ 0 \amp 0 \amp 0 \amp 0 \amp 0 \\ 0 \amp 0 \amp 0 \amp 0 \amp 0 \\ 0 \amp 0 \amp 0 \amp 0 \amp 0 \\ \end{bmatrix}, \hspace{24pt} \Sigma^{(2)} = \begin{bmatrix} 22 \amp 0 \amp 0 \amp 0 \amp 0 \\ 0 \amp 14 \amp 0 \amp 0 \amp 0 \\ 0 \amp 0 \amp 0 \amp 0 \amp 0 \\ 0 \amp 0 \amp 0 \amp 0 \amp 0 \\ \end{bmatrix} \end{equation*}
dan mendefinisikan \(A_1 = U\Sigma^{(1)}V^T\) serta \(A_2 = U\Sigma^{(2)}V^T\text{.}\) Karena \(A_k\) mempunyai \(k\) nilai singular taknol, kita mengetahui bahwa \(\rank(A_k) = k\text{.}\) Bahkan, dalam pengertian tertentu, \(A_k\) merupakan matriks terdekat dengan \(A\) di antara semua matriks berperingkat \(k\text{.}\)

Kegiatan 7.5.3.

Perhatikan matriks \(A=U\Sigma V^T\text{,}\) dengan
\begin{align*} \amp U = \begin{bmatrix} \frac{1}{2} \amp \frac{1}{2} \amp \frac{1}{2} \amp \frac{1}{2} \\ \frac{1}{2} \amp \frac{1}{2} \amp -\frac{1}{2} \amp -\frac{1}{2} \\ \frac{1}{2} \amp -\frac{1}{2} \amp \frac{1}{2} \amp -\frac{1}{2} \\ \frac{1}{2} \amp -\frac{1}{2} \amp -\frac{1}{2} \amp \frac{1}{2} \\ \end{bmatrix},\hspace{10pt} \Sigma = \begin{bmatrix} 500 \amp 0 \amp 0 \amp 0 \\ 0 \amp 100 \amp 0 \amp 0 \\ 0 \amp 0 \amp 20 \amp 0 \\ 0 \amp 0 \amp 0 \amp 4 \end{bmatrix}\\ \amp V = \begin{bmatrix} \frac{1}{2} \amp \frac{1}{2} \amp \frac{1}{2} \amp \frac{1}{2} \\ \frac{1}{2} \amp -\frac{1}{2} \amp -\frac{1}{2} \amp \frac{1}{2} \\ -\frac{1}{2} \amp -\frac{1}{2} \amp \frac{1}{2} \amp \frac{1}{2} \\ -\frac{1}{2} \amp \frac{1}{2} \amp -\frac{1}{2} \amp \frac{1}{2} \end{bmatrix} \end{align*}
Menjalankan sel berikut akan membuat matriks U, V, dan Sigma. Perhatikan bahwa perintah diagonal_matrix menyediakan cara yang praktis untuk membentuk matriks diagonal \(\Sigma\text{.}\)
  1. Bentuklah matriks \(A=U\Sigma V^T\text{.}\) Berapakah \(\rank(A)\text{?}\)
  2. Sekarang bentuklah matriks hampiran \(A_1=U\Sigma^{(1)} V^T\text{.}\) Berapakah \(\rank(A_1)\text{?}\)
  3. Tentukan galat dalam hampiran \(A\approx A_1\) dengan menghitung \(A-A_1\text{.}\)
  4. Sekarang tentukan \(A_2 = U\Sigma^{(2)} V^T\) beserta galat \(A-A_2\text{.}\) Berapakah \(\rank(A_2)\text{?}\)
  5. Tentukan \(A_3 = U\Sigma^{(3)} V^T\) beserta galat \(A-A_3\text{.}\) Berapakah \(\rank(A_3)\text{?}\)
  6. Apa yang terjadi jika kita menghitung \(A_4\text{?}\)
  7. Apa yang Anda amati tentang galat \(A-A_k\) ketika \(k\) meningkat?
Dalam aktivitas ini, matriks hampiran \(A_k\) berperingkat \(k\) karena dekomposisi nilai singularnya memiliki \(k\) nilai singular tak nol. Kemudian kita melihat bahwa selisih antara \(A\) dan hampiran \(A_k\) mengecil ketika \(k\) meningkat, yang berarti barisan \(A_k\) menghasilkan hampiran yang semakin baik ketika \(k\) meningkat.
Cara lain untuk menyatakan \(A_k\) adalah dengan dekomposisi nilai singular tereduksi, sehingga \(A_k = U_k\Sigma_kV_k^T\text{,}\) dengan
\begin{equation*} U_k = \begin{bmatrix} \uvec_1 \amp \ldots \amp \uvec_k \end{bmatrix},\hspace{10pt} \Sigma_k = \begin{bmatrix} \sigma_1 \amp 0 \amp \ldots \amp 0 \\ 0 \amp \sigma_2 \amp \ldots \amp 0 \\ \vdots \amp \vdots \amp \ddots \amp \vdots \\ 0 \amp 0 \amp \ldots \amp \sigma_k \end{bmatrix},\hspace{10pt} V_k = \begin{bmatrix} \vvec_1 \amp \ldots \amp \vvec_k \end{bmatrix}\text{.} \end{equation*}
Perhatikan bahwa matriks berperingkat \(1\text{,}\) \(A_1\text{,}\) kemudian berbentuk \(A_1 = \uvec_1\begin{bmatrix}\sigma_1\end{bmatrix} \vvec_1^T = \sigma_1\uvec_1\vvec_1^T\text{,}\) dan secara serupa kita dapat menulis:
\begin{align*} A \approx A_1 \amp = \sigma_1\uvec_1\vvec_1^T\\ A \approx A_2 \amp = \sigma_1\uvec_1\vvec_1^T + \sigma_2\uvec_2\vvec_2^T\\ A \approx A_3 \amp = \sigma_1\uvec_1\vvec_1^T + \sigma_2\uvec_2\vvec_2^T + \sigma_3\uvec_3\vvec_3^T\\ \vdots \amp\\ A = A_r \amp = \sigma_1\uvec_1\vvec_1^T + \sigma_2\uvec_2\vvec_2^T + \sigma_3\uvec_3\vvec_3^T + \ldots + \sigma_r\uvec_r\vvec_r^T\text{.} \end{align*}
Untuk dua vektor \(\uvec\) dan \(\vvec\text{,}\) matriks \(\uvec~\vvec^T\) disebut hasil kali luar dari \(\uvec\) dan \(\vvec\text{.}\) (Hasil kali titik \(\uvec\cdot\vvec=\uvec^T\vvec\) kadang-kadang disebut hasil kali dalam.) Hasil kali luar selalu merupakan matriks berperingkat \(1\text{;}\) jadi di atas kita melihat bagaimana \(A_k\) diperoleh dengan menjumlahkan \(k\) matriks berperingkat \(1\text{,}\) yang masing-masing membawa kita selangkah lebih dekat ke matriks asal \(A\text{.}\)

Subbagian 7.5.4 Analisis komponen utama

Dalam Subbab 7.3, kita mempelajari analisis komponen utama sebagai teknik untuk mengurangi dimensi suatu himpunan data. Secara khusus, kita membentuk matriks kovarians \(C\) dari matriks data terpusat dan melihat bahwa nilai eigen serta vektor eigen \(C\) memberi tahu kita tentang varians himpunan data pada berbagai arah. Kita menyebut vektor-vektor eigen \(C\) sebagai komponen utama dan mendapati bahwa memproyeksikan data ke subruang yang ditentukan oleh beberapa komponen utama pertama sering memberi kita cara untuk memvisualisasikan himpunan data tersebut. Ketika kita menambahkan lebih banyak komponen utama, kita mempertahankan lebih banyak informasi tentang himpunan data asal. Hal ini terasa serupa dengan hampiran berperingkat \(k\) yang baru saja kita lihat, jadi mari kita telusuri kaitannya.
Misalkan kita memiliki himpunan data dengan \(N\) titik, \(A\) menyatakan matriks data terpusat, \(A = U\Sigma V^T\) adalah suatu dekomposisi nilai singular, dan nilai-nilai singular \(A\) dinotasikan dengan \(\sigma_i\text{.}\) Maka matriks kovarians
\begin{equation*} C = \frac1N AA^T = \frac1N (U\Sigma V^T) (U\Sigma V^T)^T = U\left(\frac1N \Sigma \Sigma^T\right) U^T. \end{equation*}
Perhatikan bahwa \(\frac1N \Sigma\Sigma^T\) adalah matriks diagonal yang entri diagonalnya \(\frac1N\sigma_i^2\text{.}\) Oleh karena itu, diperoleh bahwa
\begin{equation*} C = U\left(\frac1N \Sigma \Sigma^T\right) U^T \end{equation*}
merupakan diagonalisasi ortogonal \(C\text{,}\) yang menunjukkan bahwa
  • komponen utama himpunan data, yaitu vektor-vektor eigen \(C\text{,}\) diberikan oleh kolom-kolom \(U\text{.}\) Dengan kata lain, vektor-vektor singular kiri \(A\) adalah komponen utama himpunan data tersebut.
  • varians pada arah suatu komponen utama adalah nilai eigen \(C\) yang terkait, sehingga
    \begin{equation*} V_{\uvec_i} = \frac1N\sigma_i^2. \end{equation*}

Kegiatan 7.5.4.

Mari kita tinjau kembali himpunan data iris yang kita pelajari dalam Subbab 7.3. Ingat bahwa terdapat empat pengukuran untuk masing-masing dari 150 bunga iris dan setiap bunga iris termasuk dalam salah satu dari tiga spesies.
Mengevaluasi sel berikut akan memuat himpunan data dan mendefinisikan matriks data terpusat \(A\) yang berukuran \(4\times150\text{.}\)
  1. Tentukan nilai-nilai singular \(A\) menggunakan perintah A.singular_values(), lalu gunakan nilai-nilai tersebut untuk menentukan varians \(V_{\uvec_j}\) pada arah masing-masing dari empat komponen utama. Berapakah proporsi varians yang dipertahankan oleh dua komponen utama pertama?
  2. Sekarang kita akan menulis matriks \(\Gamma = \Sigma V^T\) sehingga \(A = U\Gamma\text{.}\) Misalkan suatu titik data terpusat, misalnya kolom ke-100 dari \(A\text{,}\) ditulis sebagai kombinasi linear komponen-komponen utama:
    \begin{equation*} \xvec = c_1\uvec_1+c_2\uvec_2+c_3\uvec_3+c_4\uvec_4. \end{equation*}
    Jelaskan mengapa \(\fourvec{c_1}{c_2}{c_3}{c_4}\text{,}\) vektor koordinat \(\xvec\) dalam basis komponen utama, muncul sebagai kolom ke-100 dari \(\Gamma\text{.}\)
  3. Misalkan sekarang kita memproyeksikan titik data terpusat \(\xvec\) ini secara ortogonal ke subruang yang direntang oleh dua komponen utama pertama, \(\uvec_1\) dan \(\uvec_2\text{.}\) Apa koordinat titik yang diproyeksikan dalam basis ini, dan bagaimana kita dapat menemukannya dalam matriks \(\Gamma\text{?}\)
  4. Sebagai alternatif, tinjau hampiran \(A_2=U_2\Sigma_2V_2^T\) dari matriks data terpusat \(A\text{.}\) Jelaskan mengapa kolom ke-100 dari \(A_2\) menyatakan proyeksi \(\xvec\) ke subruang dua dimensi yang direntang oleh dua komponen utama pertama, \(\uvec_1\) dan \(\uvec_2\text{.}\) Kemudian jelaskan mengapa koefisien dalam proyeksi itu, \(c_1\uvec_1 + c_2\uvec_2\text{,}\) membentuk vektor dua dimensi \(\twovec{c_1}{c_2}\) yang merupakan kolom ke-100 dari \(\Gamma_2=\Sigma_2 V_2^T\text{.}\)
  5. Sekarang kita telah melihat bahwa kolom-kolom \(\Gamma_2 = \Sigma_2 V_2^T\) membentuk koordinat titik-titik data terpusat yang diproyeksikan ke subruang dua dimensi yang direntang oleh \(\uvec_1\) dan \(\uvec_2\text{.}\) Dalam sel di bawah, tentukan suatu dekomposisi nilai singular \(A\) dan gunakan dekomposisi tersebut untuk membentuk matriks Gamma2. Ketika Anda mengevaluasi sel ini, Anda akan melihat plot titik-titik data terpusat yang diproyeksikan, serupa dengan yang kita buat dalam Subbab 7.3.
Pada perjumpaan pertama kita dengan analisis komponen utama, kita memulai dengan matriks data terpusat \(A\text{,}\) membentuk matriks kovarians \(C\text{,}\) lalu menggunakan nilai eigen dan vektor eigen \(C\) untuk memproyeksikan data terpusat ke subruang berdimensi lebih kecil. Dalam bagian ini, kita telah melihat bahwa dekomposisi nilai singular \(A\) menyediakan jalur yang lebih langsung: vektor-vektor singular kiri \(A\) membentuk komponen utama, dan matriks hampiran \(A_k\) menyatakan titik-titik data yang diproyeksikan ke subruang yang direntang oleh \(k\) komponen utama pertama. Koordinat suatu titik data terpusat yang diproyeksikan diberikan oleh kolom-kolom \(\Gamma_k = \Sigma_kV_k^T\text{.}\)

Subbagian 7.5.5 Pemampatan citra dan pengurangan derau

Selain analisis komponen utama, hampiran \(A_k\) dari matriks \(A\) yang diperoleh dari dekomposisi nilai singular dapat digunakan dalam pengolahan citra. Ingat bahwa kita mempelajari algoritma pemampatan JPEG, yang berlandaskan perubahan basis yang didefinisikan oleh Transformasi Kosinus Diskret, dalam Subbab 3.3. Sekarang kita akan melihat bagaimana dekomposisi nilai singular menyediakan perangkat lain untuk memampatkan citra sekaligus mengurangi derau di dalamnya.

Kegiatan 7.5.5.

Mengevaluasi sel berikut akan memuat sejumlah data yang akan kita gunakan dalam aktivitas ini. Sebagai permulaan, sel tersebut mendefinisikan dan menampilkan matriks berukuran \(25\times15\text{,}\) \(A\text{.}\)
  1. Jika kita menafsirkan 0 sebagai hitam dan 1 sebagai putih, matriks ini menyatakan citra seperti yang ditampilkan di bawah.
    Kita akan menyelidiki bagaimana dekomposisi nilai singular membantu kita memampatkan citra ini.
    1. Dengan mengamati citra yang dinyatakan oleh \(A\text{,}\) identifikasilah suatu basis untuk \(\col(A)\) dan tentukan \(\rank(A)\text{.}\)
    2. Sel berikut memplot nilai-nilai singular \(A\text{.}\) Jelaskan bagaimana plot ini memverifikasi bahwa peringkatnya sama dengan yang Anda temukan pada bagian sebelumnya.
    3. Terdapat perintah approximate(A, k) yang membentuk hampiran \(A_k\text{.}\) Gunakan sel di bawah untuk mendefinisikan \(k\) dan mengamati citra yang dinyatakan oleh beberapa hampiran pertama. Berapakah nilai terkecil \(k\) yang memenuhi \(A=A_k\text{?}\)
    4. Sekarang kita dapat melihat bagaimana dekomposisi nilai singular memungkinkan kita memampatkan citra. Karena ini adalah matriks \(25\times15\text{,}\) kita memerlukan \(25\cdot15=375\) bilangan untuk menyatakan citra tersebut. Namun, kita juga dapat merekonstruksi citra dengan menggunakan sejumlah kecil nilai singular dan vektor singular:
      \begin{equation*} A = A_k = \sigma_1\uvec_1\vvec_1^T + \sigma_2\uvec_2\vvec_2^T + \ldots + \sigma_k\uvec_k\vvec_k^T. \end{equation*}
      Apa dimensi vektor-vektor singular \(\uvec_i\) dan \(\vvec_i\text{?}\) Dengan memperhitungkan vektor singular dan nilai singular, berapa banyak bilangan yang kita perlukan untuk merekonstruksi \(A_k\) pada nilai terkecil \(k\) yang memenuhi \(A=A_k\text{?}\) Inilah ukuran termampatkan citra tersebut.
    5. Rasio pemampatan adalah rasio ukuran tak termampatkan terhadap ukuran termampatkan. Berapakah rasio pemampatan yang dihasilkan dalam kasus ini?
  2. Selanjutnya kita akan menyelidiki contoh yang didasarkan pada sebuah foto.
    1. Tinjau citra berikut yang terdiri atas larik piksel berukuran \(316\times310\) yang disimpan dalam matriks \(A\text{.}\)
      Plot nilai-nilai singular \(A\text{.}\)
    2. Gunakan sel di bawah untuk mempelajari hampiran \(A_k\) untuk \(k=1, 10, 20, 50, 100\text{.}\)
      Perhatikan bahwa citra hampiran \(A_k\) semakin mendekati citra asal \(A\) ketika \(k\) meningkat.
      Berapakah rasio pemampatan ketika \(k=50\text{?}\) Berapakah rasio pemampatan ketika \(k=100\text{?}\) Perhatikan bahwa rasio pemampatan yang lebih tinggi menghasilkan rekonstruksi citra dengan kualitas yang lebih rendah.
  3. Penerapan kedua yang berkaitan dari dekomposisi nilai singular dalam pengolahan citra disebut pengurangan derau. Sebagai contoh, tinjau citra yang dinyatakan oleh matriks \(A\) di bawah.
    Citra ini serupa dengan citra huruf "O" yang pertama kali kita pelajari dalam aktivitas ini, tetapi terdapat daerah-daerah bernoda pada latar belakang, yang mungkin timbul akibat pemindaian citra. Kita menganggap daerah bernoda tersebut sebagai derau, dan tujuan kita adalah meningkatkan kualitas citra dengan mengurangi derau.
    1. Plot nilai-nilai singular di bawah. Dalam hal apa nilai-nilai singular matriks ini serupa dengan nilai-nilai yang dinyatakan oleh citra bersih yang kita tinjau sebelumnya, dan dalam hal apa keduanya berbeda?
    2. Terdapat titik alami tempat nilai-nilai singular menurun secara drastis, sehingga masuk akal untuk menganggap derau terbentuk oleh nilai-nilai singular kecil. Oleh karena itu, untuk mengurangi derau citra, kita akan mengganti \(A\) dengan hampiran \(A_k\text{,}\) dengan \(k\) sebagai titik tempat nilai-nilai singular menurun. Tindakan ini membuat nilai-nilai singular kecil menjadi nol dan dengan demikian menghilangkan derau. Pilih nilai \(k\) yang sesuai di bawah dan perhatikan bahwa citra baru tampak agak lebih bersih setelah deraunya dihilangkan.
Beberapa contoh yang memperlihatkan cara dekomposisi nilai singular memampatkan citra tersedia pada halaman milik Tim Baumann.

Subbagian 7.5.6 Menganalisis perkara Mahkamah Agung

Seperti yang telah kita lihat, dekomposisi nilai singular memusatkan ciri-ciri terpenting suatu matriks pada nilai-nilai singular dan vektor-vektor singular pertama. Sekarang kita akan menggunakan pengamatan ini untuk memperoleh makna dari himpunan data besar yang memuat catatan suara para hakim Mahkamah Agung. Analisis serupa muncul dalam artikel A pattern analysis of the second Rehnquist U.S. Supreme Court oleh Lawrence Sirovich.
Susunan Mahkamah Agung luar biasa stabil selama 1994–2005 ketika dipimpin oleh Ketua Hakim William Rehnquist. Masa ini kadang disebut Mahkamah Rehnquist kedua. Para hakim pada masa tersebut adalah:
Selama masa ini, terdapat 911 perkara yang diikuti pemungutan suara oleh kesembilan hakim. Kita ingin memahami pola suara mereka.

Kegiatan 7.5.6.

Menjalankan sel berikut memuat dan menampilkan himpunan data yang menjelaskan suara setiap hakim dalam 911 perkara tersebut. Secara lebih khusus, entri +1 berarti bahwa hakim yang dinyatakan oleh baris memberikan suara bersama mayoritas dalam perkara yang dinyatakan oleh kolom. Entri -1 berarti bahwa hakim tersebut berada dalam minoritas. Informasi ini juga disimpan dalam matriks \(9\times911\) \(A\text{.}\)
Para hakim dicantumkan, secara sangat kasar, dalam urutan dari yang lebih konservatif hingga yang lebih progresif.
Dalam aktivitas ini, visualisasi entri berbagai matriks dan vektor akan membantu. Sel berikut menampilkan 50 kolom pertama matriks \(A\text{,}\) dengan putih menyatakan entri +1, merah menyatakan -1, dan hitam menyatakan 0.
  1. Plot nilai-nilai singular \(A\) di bawah. Uraikan makna plot ini, termasuk kontribusi relatif nilai-nilai singular \(\sigma_k\) ketika \(k\) meningkat.
  2. Bentuklah dekomposisi nilai singular \(A=U\Sigma V^T\) dan matriks koefisien \(\Gamma\) sehingga \(A=U\Gamma\text{.}\)
  3. Sekarang kita mempelajari perkara tertentu, yaitu perkara kedua yang muncul sebagai kolom \(A\) dengan indeks 1. Perintah display_column(A, k) memberikan tampilan visual kolom ke- \(k\) dari matriks \(A\text{.}\) Uraikan suara para hakim dalam perkara kedua.
  4. Tampilkan pula vektor singular kiri pertama \(\uvec_1\text{,}\) yaitu kolom \(U\) dengan indeks \(0\text{,}\) serta kolom \(\Gamma\) yang memuat koefisien untuk menyatakan perkara kedua sebagai kombinasi linear vektor-vektor singular kiri.
    Apa yang ditunjukkan hal ini tentang cara perkara kedua dibentuk sebagai kombinasi linear vektor-vektor singular kiri? Apa makna vektor singular kiri pertama \(\uvec_1\text{?}\)
  5. Sekarang kita pelajari perkara ke-\(48\text{,}\) yang dinyatakan oleh kolom \(A\) dengan indeks 47. Uraikan pola suara dalam perkara ini.
  6. Tampilkan vektor singular kiri kedua \(\uvec_2\) dan vektor koefisien yang menyatakan perkara ke-\(48\) sebagai kombinasi linear vektor-vektor singular kiri.
    Uraikan bagaimana perkara ini dibentuk sebagai kombinasi linear vektor-vektor singular. Apa makna vektor singular kiri kedua \(\uvec_2\text{?}\)
  7. Data dalam Tabel 7.5.2 menjelaskan banyaknya perkara yang diputus untuk setiap kemungkinan jumlah suara.
    Tabel 7.5.2. Banyaknya perkara menurut jumlah suara
    Jumlah suara Banyaknya perkara
    9-0 405
    8-1 89
    7-2 111
    6-3 118
    5-4 188
    Bagaimana vektor-vektor singular \(\uvec_1\) dan \(\uvec_2\) mencerminkan data ini? Apakah mahkamah cenderung konservatif atau progresif? Gunakan vektor-vektor singular ini untuk menjelaskan jawaban Anda.
  8. Perkara yang diputus dengan suara 5-4 sering kali paling berdampak karena mencerminkan perpecahan tajam di antara para hakim dan sering pula dalam masyarakat luas. Karena itu, sekarang kita berfokus pada putusan 5-4. Menjalankan sel berikut membentuk matriks \(9\times188\) \(B\) yang terdiri atas putusan 5-4.
    Bentuklah dekomposisi nilai singular \(B=U\Sigma V^T\) beserta matriks koefisien \(\Gamma\) sehingga \(B=U\Gamma\text{,}\) lalu tampilkan vektor singular kiri pertama \(\uvec_1\text{.}\) Pelajari cara perkara ke-\(7\text{,}\) dengan indeks 6, dibentuk sebagai kombinasi linear vektor-vektor singular kiri.
    Apa yang ditunjukkan vektor singular ini tentang susunan mahkamah dan kecenderungannya ke arah konservatif atau progresif?
  9. Tampilkan vektor singular kiri kedua \(\uvec_2\) dan pelajari cara perkara ke-\(6\text{,}\) dengan indeks 5, dibentuk sebagai kombinasi linear vektor-vektor singular kiri.
    Apa yang ditunjukkan \(\uvec_2\) tentang arti penting relatif catatan suara para hakim?
  10. Dengan suara penentu, kita maksudkan hakim yang tidak terlalu cenderung memberikan suara bersama satu blok hakim tertentu, tetapi berpindah dari satu blok ke blok lain dan berpotensi menentukan putusan yang selisih suaranya tipis. Apa yang ditunjukkan vektor-vektor singular \(\uvec_1\) dan \(\uvec_2\) tentang keberadaan blok suara dan suara penentu di mahkamah? Hakim manakah yang menjadi suara penentu?

Subbagian 7.5.7 Ringkasan

Bagian ini telah memperlihatkan beberapa penggunaan dekomposisi nilai singular. Karena nilai-nilai singular disusun dalam urutan menurun, dekomposisi ini memusatkan ciri-ciri terpenting matriks pada nilai-nilai singular dan vektor-vektor singular pertama.
  • Karena vektor-vektor singular kiri pertama membentuk basis ortonormal bagi \(\col(A)\text{,}\) dekomposisi nilai singular menyediakan cara yang mudah untuk memproyeksikan vektor ke \(\col(A)\) dan, dengan demikian, menyelesaikan masalah kuadrat terkecil.
  • Dekomposisi nilai singular suatu matriks berperingkat \(r\text{,}\) \(A\text{,}\) menghasilkan serangkaian hampiran \(A_k\) bagi \(A\text{,}\) dengan
    \begin{align*} A \approx A_1 \amp = \sigma_1\uvec_1\vvec_1^T\\ A \approx A_2 \amp = \sigma_1\uvec_1\vvec_1^T + \sigma_2\uvec_2\vvec_2^T\\ A \approx A_3 \amp = \sigma_1\uvec_1\vvec_1^T + \sigma_2\uvec_2\vvec_2^T + \sigma_3\uvec_3\vvec_3^T\\ \vdots \amp\\ A = A_r \amp = \sigma_1\uvec_1\vvec_1^T + \sigma_2\uvec_2\vvec_2^T + \sigma_3\uvec_3\vvec_3^T + \ldots + \sigma_r\uvec_r\vvec_r^T \end{align*}
    Dalam setiap kasus, \(A_k\) adalah matriks berperingkat \(k\) yang paling dekat dengan \(A\text{.}\)
  • Jika \(A\) merupakan matriks data terpusat, vektor-vektor singular kiri memberikan komponen-komponen utama \(A\text{,}\) dan varians pada arah suatu komponen utama dapat dinyatakan dengan mudah menggunakan nilai singular yang bersesuaian.
  • Dekomposisi nilai singular memiliki banyak penerapan. Dalam bagian ini, kita telah melihat penggunaannya dalam pengolahan citra melalui teknik pemampatan dan pengurangan derau.
  • Karena beberapa vektor singular kiri pertama memuat ciri-ciri terpenting suatu matriks, kita dapat menggunakan dekomposisi nilai singular untuk memperoleh makna dari himpunan data besar, seperti ketika kita menganalisis pola suara Mahkamah Rehnquist kedua.

Latihan 7.5.8 Latihan

1.

Misalkan
\begin{equation*} A = \begin{bmatrix} 2.1 \amp -1.9 \amp 0.1 \amp 3.7 \\ -1.5 \amp 2.7 \amp 0.9 \amp -0.6 \\ -0.4 \amp 2.8 \amp -1.5 \amp 4.2 \\ -0.4 \amp 2.4 \amp 1.9 \amp -1.8 \end{bmatrix}\text{.} \end{equation*}
  1. Tentukan nilai-nilai singular \(A\text{.}\) Berapakah \(\rank(A)\text{?}\)
  2. Tentukan barisan matriks \(A_1\text{,}\) \(A_2\text{,}\) \(A_3\text{,}\) dan \(A_4\text{,}\) dengan \(A_k\) sebagai hampiran berperingkat \(k\) dari \(A\text{.}\)

2.

Misalkan kita ingin menentukan fungsi kuadrat yang paling sesuai,
\begin{equation*} \beta_0 + \beta_1x + \beta_2x^2=y \end{equation*}
untuk menghampiri titik-titik
\begin{equation*} (0,1), (1,0), (2,1.5), (3,4), (4,8)\text{.} \end{equation*}
  1. Susunlah sistem linear \(A\xvec = \bvec\) yang menentukan koefisien-koefisien \(\xvec = \threevec{\beta_0}{\beta_1}{\beta_2}\text{.}\)
  2. Tentukan dekomposisi nilai singular dari \(A\text{.}\)
  3. Gunakan dekomposisi nilai singular untuk menentukan solusi hampiran kuadrat terkecil \(\xhat\text{.}\)

3.

Ingat bahwa hasil kali luar dua vektor \(\uvec\) dan \(\vvec\) adalah matriks \(\uvec~\vvec^T\text{.}\)
  1. Misalkan \(\uvec = \twovec{2}{-3}\) dan \(\vvec=\threevec201\text{.}\) Hitung hasil kali luar \(\uvec~\vvec^T\text{.}\) Agar cara kerja operasi ini lebih jelas, lakukan perhitungan tanpa menggunakan teknologi.
    Bagaimana hubungan setiap kolom \(\uvec~\vvec^T\) dengan \(\uvec\text{?}\)
  2. Misalkan \(\uvec\) dan \(\vvec\) adalah vektor-vektor umum. Berapakah \(\rank(\uvec~\vvec^T)\text{,}\) dan apa basis untuk ruang kolomnya \(\col(\uvec~\vvec^T)\text{?}\)
  3. Misalkan \(\uvec\) adalah vektor satuan. Apa akibat mengalikan suatu vektor dengan matriks \(\uvec~\uvec^T\text{?}\)

4.

Menjalankan sel berikut memuat himpunan data yang mencatat beberapa ciri dari 1057 rumah. Perhatikan bahwa luas tanah berubah dalam rentang yang relatif kecil dibandingkan dengan ciri-ciri lainnya. Karena itu, selain memusatkan data, kita menskalakan setiap ciri dengan membaginya dengan simpangan bakunya agar rentang nilai setiap ciri serupa. Matriks \(A\) memuat hasilnya.
  1. Tentukan nilai-nilai singular \(A\) dan gunakan nilai-nilai tersebut untuk menentukan varians pada arah komponen-komponen utama.
  2. Berapa bagian dari varians yang dijelaskan oleh dua komponen utama pertama?
  3. Tentukan dekomposisi nilai singular dari \(A\) dan bentuklah matriks \(2\times1057\) \(B\) yang entri-entrinya merupakan koordinat titik-titik data terpusat setelah diproyeksikan ke subruang berdimensi dua yang direntang oleh dua komponen utama pertama. Anda dapat memplot titik-titik hasil proyeksi menggunakan list_plot(B.columns()).
  4. Pelajari entri-entri dalam dua komponen utama pertama \(\uvec_1\) dan \(\uvec_2\text{.}\) Apakah rumah yang lebih mahal akan berada di sebelah kiri, kanan, atas, atau bawah plot yang Anda buat?
  5. Dalam hal apa rumah yang terletak jauh di sebelah kiri plot berbeda dari rumah rata-rata? Dalam hal apa rumah yang terletak dekat bagian atas plot berbeda dari rumah rata-rata?

5.

Mari kita tinjau kembali catatan suara para hakim pada Mahkamah Rehnquist kedua. Menjalankan sel berikut akan memuat catatan suara para hakim dalam 188 perkara yang diputus dengan suara 5-4 dan menyimpannya dalam matriks \(A\text{.}\)
  1. Sel di atas juga mendefinisikan vektor berdimensi 188 \(\vvec\) yang semua entrinya bernilai 1. Apa yang dinyatakan oleh hasil kali \(A\vvec\text{?}\) Gunakan sel berikut untuk menghitung hasil kali tersebut.
  2. Bagaimana hasil kali \(A\vvec\) menunjukkan hakim mana yang paling sering memberikan suara bersama mayoritas? Apa yang ditunjukkan hal ini tentang keberadaan suara penentu di mahkamah?
  3. Bagaimana hasil kali ini menunjukkan apakah mahkamah tersebut cenderung konservatif atau progresif?
  4. Bagaimana hasil kali ini menunjukkan keberadaan suara penentu kedua di mahkamah?
  5. Pelajari vektor singular kiri \(\uvec_3\) dan uraikan bagaimana vektor tersebut memperkuat fakta bahwa terdapat suara penentu kedua. Siapakah suara penentu kedua tersebut?

6.

Sel berikut memuat himpunan data yang menjelaskan persentase kesesuaian suara antarmajelis hakim pada Mahkamah Rehnquist kedua. Sebagai contoh, entri pada baris pertama dan kolom kedua adalah 72.78, yang berarti bahwa Hakim Rehnquist dan Scalia memberikan suara yang sama dalam 72.78% perkara.
  1. Periksa matriks \(A\text{.}\) Struktur khusus apa yang dimiliki matriks ini, dan mengapa struktur tersebut dapat diduga sebelumnya?
  2. Plot nilai-nilai singular \(A\) di bawah. Untuk nilai \(k\) berapakah hampiran \(A_k\) merupakan hampiran yang wajar dari \(A\text{?}\)
  3. Tentukan dekomposisi nilai singular \(A=U\Sigma V^T\) dan periksa matriks \(U\) serta \(V\) menggunakan, misalnya, n(U, 3). Apa yang Anda amati tentang hubungan antara \(U\) dan \(V\text{,}\) dan mengapa hubungan tersebut dapat diduga sebelumnya?
  4. Perintah approximate(A, k) membentuk matriks hampiran \(A_k\text{.}\) Pelajari matriks \(A_1\) menggunakan perintah display_matrix. Hakim mana yang tampaknya paling sering sependapat, yakni paling mungkin memberikan suara yang sama dengan hakim lain? Hakim mana yang paling jarang sependapat?
  5. Periksa selisih \(A_2-A_1\) dan uraikan bagaimana selisih ini menunjukkan keberadaan blok suara dan suara penentu di mahkamah.

7.

Misalkan \(A=U_r\Sigma_rV_r^T\) adalah dekomposisi nilai singular tereduksi dari matriks \(m\times n\) \(A\text{.}\) Matriks \(A^+ = V_r\Sigma_r^{-1}U_r^T\) disebut invers Moore–Penrose dari \(A\text{.}\)
  1. Jelaskan mengapa \(A^+\) merupakan matriks \(n\times m\text{.}\)
  2. Jika \(A\) adalah matriks persegi yang dapat dibalik, jelaskan mengapa \(A^+=A^{-1}\text{.}\)
  3. Jelaskan mengapa \(AA^+\bvec=\bhat\text{,}\) yaitu proyeksi ortogonal dari \(\bvec\) ke \(\col(A)\text{.}\)
  4. Jelaskan mengapa \(A^+A\xvec=\xhat\text{,}\) yaitu proyeksi ortogonal dari \(\xvec\) ke \(\col(A^T)\text{.}\)

8.

Dalam Subbagian 5.1.2, kita melihat bahwa beberapa komputasi aljabar linear peka terhadap galat pembulatan yang dibuat komputer. Dekomposisi nilai singular dapat membantu kita memahami kapan situasi ini dapat terjadi.
Sebagai contoh, perhatikan matriks-matriks
\begin{equation*} A = \begin{bmatrix} 1.0001 \amp 1 \\ 1 \amp 1 \\ \end{bmatrix},\hspace{24pt} B = \begin{bmatrix} 1 \amp 1 \\ 1 \amp 1 \\ \end{bmatrix}. \end{equation*}
Entri-entri kedua matriks ini sangat berdekatan, tetapi \(A\) dapat dibalik sedangkan \(B\) tidak. Tampaknya \(A\) hampir singular. Sebenarnya, kita dapat mengukur seberapa dekat suatu matriks dengan keadaan singular melalui bilangan kondisi, \(\sigma_1/\sigma_n\text{,}\) yaitu rasio nilai singular terbesar terhadap nilai singular terkecil. Jika \(A\) singular, bilangan kondisinya tidak terdefinisi karena nilai singular \(\sigma_n=0\text{.}\) Oleh karena itu, kita menganggap matriks dengan bilangan kondisi besar sebagai matriks yang dekat dengan keadaan singular.
  1. Definisikan matriks \(A\) dan tentukan dekomposisi nilai singularnya. Berapakah bilangan kondisi \(A\text{?}\)
  2. Definisikan vektor-vektor singular kiri \(\uvec_1\) dan \(\uvec_2\text{.}\) Bandingkan hasil \(A^{-1}\bvec\) ketika
    1. \(\bvec=\uvec_1+\uvec_2\text{.}\)
    2. \(\bvec=2\uvec_1+\uvec_2\text{.}\)
    Perhatikan bahwa perubahan kecil pada vektor \(\bvec\) menyebabkan perubahan kecil pada \(A^{-1}\bvec\text{.}\)
  3. Sekarang bandingkan hasil \(A^{-1}\bvec\) ketika
    1. \(\bvec=\uvec_1+\uvec_2\text{.}\)
    2. \(\bvec=\uvec_1+2\uvec_2\text{.}\)
    Perhatikan bahwa perubahan kecil pada \(\bvec\) kini menyebabkan perubahan besar pada \(A^{-1}\bvec\text{.}\)
  4. Sebelumnya kita melihat bahwa, jika \(\xvec\) dinyatakan dalam vektor-vektor singular kanan sebagai \(\xvec=c_1\vvec_1+c_2\vvec_2\text{,}\) maka
    \begin{equation*} \bvec=A\xvec = c_1\sigma_1\uvec_1 + c_2\sigma_2\uvec_2. \end{equation*}
    Jika \(\bvec=d_1\uvec_1+d_2\uvec_2\text{,}\) jelaskan mengapa \(A^{-1}\bvec\) peka terhadap perubahan kecil pada \(d_2\text{.}\)
Secara umum, matriks persegi \(A\) dengan bilangan kondisi besar akan menunjukkan perilaku semacam ini sehingga komputasi \(A^{-1}\) cenderung dipengaruhi oleh galat pembulatan. Matriks semacam itu disebut berkondisi buruk.