Rumah  >  Artikel  >  Peranti teknologi  >  Pengenalan kepada Penguraian Nilai Tunggal (SVD) dan contoh-contohnya dalam pemampatan imej

Pengenalan kepada Penguraian Nilai Tunggal (SVD) dan contoh-contohnya dalam pemampatan imej

王林
王林ke hadapan
2024-01-22 14:42:251020semak imbas

奇异值分解(SVD)概念 奇异值分解进行图片压缩示例

Penguraian nilai tunggal (SVD) ialah kaedah yang digunakan untuk pemfaktoran matriks. Ia menguraikan matriks kepada hasil darab tiga matriks, iaitu matriks vektor tunggal kiri, matriks vektor tunggal kanan dan matriks nilai tunggal. SVD digunakan secara meluas dalam pengurangan dimensi data, pemprosesan isyarat, sistem pengesyoran dan bidang lain. Melalui SVD, kami boleh mengurangkan data berdimensi tinggi kepada ruang berdimensi rendah untuk mengekstrak ciri utama data. Dalam pemprosesan isyarat, SVD boleh digunakan untuk pengurangan hingar dan pembinaan semula isyarat. Dalam sistem pengesyoran, SVD boleh membantu kami menemui perkaitan tersembunyi antara pengguna dan item untuk membuat pengesyoran yang tepat. Ringkasnya, SVD ialah kaedah penguraian matriks yang berkuasa dan fleksibel yang menyelesaikan banyak masalah bagi kami SVD ialah singkatan penguraian nilai tunggal, yang menguraikan matriks kepada tiga bahagian: U, Σ dan V^T. Antaranya, U ialah matriks m×m, dan setiap lajur ialah vektor eigen bagi matriks AA^T, yang dipanggil vektor tunggal kiri V ialah matriks n×n, dan setiap lajur ialah vektor eigen bagi matriks A ^TA. , dipanggil vektor tunggal kanan Σ ialah matriks m×n, dan unsur-unsur pada pepenjurunya dipanggil nilai tunggal Ia adalah punca kuasa dua bagi nilai eigen bukan sifar bagi matriks AA^T dan A^TA. Melalui penguraian SVD, kami boleh membuka matriks kompleks kepada bahagian mudah untuk lebih memahami dan memproses data.

SVD ialah kaedah penguraian matriks yang biasa digunakan yang boleh digunakan untuk pemampatan matriks dan pengurangan dimensi. Ia menghampiri matriks asal dengan mengekalkan sebahagian besar nilai tunggal, dengan itu mengurangkan penyimpanan dan kerumitan pengiraan matriks. Selain itu, SVD juga boleh digunakan pada sistem pengesyoran. Dengan melakukan penguraian SVD pada pengguna dan matriks penilaian item, kami boleh mendapatkan vektor tersembunyi pengguna dan item. Vektor terpendam ini boleh menangkap potensi hubungan antara pengguna dan item, dengan itu memberikan hasil pengesyoran yang tepat untuk sistem pengesyoran.

Dalam aplikasi praktikal, kerumitan pengiraan SVD adalah tinggi, jadi teknik pengoptimuman perlu digunakan untuk mempercepatkan pengiraan, seperti SVD terpenggal dan SVD rawak. Teknologi ini boleh mengurangkan jumlah pengiraan dan meningkatkan kecekapan pengiraan.

Truncation SVD merujuk kepada mengekalkan bahagian dengan nilai singular yang lebih besar dan menetapkan nilai singular yang lebih kecil kepada sifar untuk mencapai mampatan matriks dan pengurangan dimensi. Stochastic SVD menghampiri penguraian SVD melalui unjuran rawak untuk mempercepatkan pengiraan.

SVD juga mempunyai beberapa bentuk lanjutan, seperti SVD berwajaran, SVD tambahan, SVD teragih, dll., yang boleh digunakan pada senario yang lebih kompleks.

SVD berwajaran memperkenalkan pemberat berdasarkan SVD standard untuk melakukan penguraian berwajaran matriks untuk menyesuaikan diri dengan lebih baik kepada keperluan aplikasi praktikal.

Incremental SVD merujuk kepada mengemas kini matriks secara berperingkat berdasarkan hasil penguraian SVD asal, dengan itu mengelakkan overhed pengiraan semula SVD setiap kali.

SVD teragih merujuk kepada pengagihan pengiraan penguraian SVD kepada berbilang komputer untuk mempercepatkan pengiraan dan sesuai untuk memproses data berskala besar.

SVD digunakan secara meluas dalam pembelajaran mesin, sistem pengesyoran, pemprosesan imej dan bidang lain, dan merupakan alat analisis data yang penting. Perkara di atas menerangkan prinsip dan teknik pengoptimuman penguraian nilai tunggal, dan kemudian mari kita lihat pada aplikasi praktikal penguraian nilai tunggal.

Cara menggunakan penguraian nilai tunggal untuk pemampatan imej

Idea asas menggunakan penguraian nilai tunggal untuk pemampatan imej adalah untuk menguraikan matriks imej melalui SVD, dan kemudian hanya mengekalkan beberapa nilai tunggal yang lebih besar ​dan vektor tunggal kiri dan kanan yang sepadan, Dengan itu mencapai pemampatan imej.

Langkah-langkah khusus adalah seperti berikut:

1. Tukar imej berwarna kepada imej skala kelabu dan dapatkan matriks A.

2. Lakukan penguraian SVD pada matriks A untuk mendapatkan tiga matriks U, S, dan V, di mana S ialah matriks pepenjuru dan unsur-unsur pada pepenjuru ialah nilai tunggal.

3 Hanya kekalkan nilai tunggal yang lebih besar dalam matriks S dan vektor tunggal kiri dan kanan yang sepadan untuk mendapatkan matriks baharu S', U', dan V'.

4. Darabkan S', U', dan V' untuk mendapatkan anggaran matriks A', dan gantikan matriks A asal dengan A-A', yang mencapai pemampatan.

Secara khusus, dalam langkah 3, bilangan k nilai tunggal yang akan dikekalkan perlu ditentukan mengikut nisbah mampatan dan keperluan kualiti imej Dalam keadaan biasa, mengekalkan 20-30 nilai tunggal pertama boleh mencapai kesan mampatan yang lebih baik. Pada masa yang sama, untuk mencapai kesan mampatan yang lebih baik, nilai tunggal yang dikekalkan boleh dikuantisasi dan dikodkan.

Perlu diambil perhatian bahawa semasa proses pemampatan imej menggunakan penguraian nilai tunggal, sejumlah maklumat imej mungkin hilang, jadi pertukaran perlu dibuat antara nisbah mampatan dan kualiti imej.

Atas ialah kandungan terperinci Pengenalan kepada Penguraian Nilai Tunggal (SVD) dan contoh-contohnya dalam pemampatan imej. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:163.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam