Regresi linier dan metode pemulihannya

Regresi linier dan metode pemulihannya
Sumber: xkcd

Regresi linier adalah salah satu algoritma dasar untuk banyak bidang yang berkaitan dengan analisis data. Alasannya jelas. Ini adalah algoritme yang sangat sederhana dan mudah dipahami, yang telah berkontribusi pada penggunaannya secara luas selama puluhan, bahkan ratusan tahun. Idenya adalah kita mengasumsikan ketergantungan linier dari satu variabel pada sekumpulan variabel lain, dan kemudian mencoba memulihkan ketergantungan ini.

Namun artikel ini bukan tentang penggunaan regresi linier untuk memecahkan masalah praktis. Di sini kita akan mempertimbangkan fitur menarik dari implementasi algoritma terdistribusi untuk pemulihannya, yang kita temui saat menulis modul pembelajaran mesin Api Apache. Sedikit matematika dasar, pembelajaran mesin, dan komputasi terdistribusi dapat membantu Anda mengetahui cara melakukan regresi linier bahkan ketika data Anda didistribusikan ke ribuan node.

Apa yang kita bicarakan?

Kita dihadapkan pada tugas memulihkan ketergantungan linier. Sebagai data masukan, diberikan sekumpulan vektor variabel bebas, yang masing-masing dikaitkan dengan nilai tertentu dari variabel terikat. Data ini dapat direpresentasikan dalam bentuk dua matriks:

Regresi linier dan metode pemulihannya

Sekarang, karena ketergantungan diasumsikan, dan terlebih lagi linier, kita akan menuliskan asumsi kita sebagai hasil kali matriks (untuk menyederhanakan pencatatan, di sini dan di bawah ini diasumsikan bahwa suku bebas persamaan tersebut tersembunyi di balik Regresi linier dan metode pemulihannya, dan kolom terakhir matriks Regresi linier dan metode pemulihannya berisi satuan):

Regresi linier dan metode pemulihannya

Kedengarannya sangat mirip dengan sistem persamaan linear, bukan? Tampaknya, kemungkinan besar, tidak akan ada solusi untuk sistem persamaan seperti itu. Alasannya adalah noise, yang terdapat di hampir semua data nyata. Alasan lain mungkin adalah kurangnya ketergantungan linier, yang dapat diatasi dengan memasukkan variabel tambahan yang bergantung secara nonlinier pada variabel asli. Perhatikan contoh berikut:
Regresi linier dan metode pemulihannya
Sumber: Wikipedia

Ini adalah contoh sederhana regresi linier yang menunjukkan hubungan suatu variabel (sepanjang sumbu Regresi linier dan metode pemulihannya) dari variabel lain (sepanjang sumbu Regresi linier dan metode pemulihannya). Agar sistem persamaan linier yang sesuai dengan contoh ini mempunyai penyelesaian, semua titik harus terletak tepat pada garis lurus yang sama. Tapi itu tidak benar. Namun keduanya tidak terletak pada garis lurus yang sama justru karena adanya gangguan (atau karena asumsi hubungan linier yang keliru). Jadi, untuk memulihkan hubungan linier dari data nyata, biasanya perlu diperkenalkan satu asumsi lagi: data masukan mengandung derau dan derau ini memiliki distribusi normal. Anda dapat membuat asumsi tentang jenis distribusi kebisingan lainnya, namun dalam sebagian besar kasus, distribusi normallah yang dipertimbangkan, yang akan dibahas lebih lanjut.

Metode kemungkinan maksimum

Jadi, kami mengasumsikan adanya kebisingan acak yang terdistribusi normal. Apa yang harus dilakukan dalam situasi seperti ini? Untuk kasus ini dalam matematika ada dan digunakan secara luas metode kemungkinan maksimum. Singkatnya, esensinya terletak pada pilihan fungsi kemungkinan dan maksimalisasi selanjutnya.

Kami kembali memulihkan hubungan linier dari data dengan noise normal. Perhatikan bahwa asumsi hubungan linier adalah ekspektasi matematis Regresi linier dan metode pemulihannya distribusi normal yang ada. Pada saat yang sama, kemungkinannya adalah Regresi linier dan metode pemulihannya mengambil satu nilai atau lainnya, tergantung pada kehadiran yang dapat diamati Regresi linier dan metode pemulihannya, sebagai berikut:

Regresi linier dan metode pemulihannya

Mari kita gantikan sekarang Regresi linier dan metode pemulihannya ΠΈ Regresi linier dan metode pemulihannya Variabel yang kita butuhkan adalah:

Regresi linier dan metode pemulihannya

Yang tersisa hanyalah mencari vektornya Regresi linier dan metode pemulihannya, di mana probabilitas ini maksimum. Untuk memaksimalkan suatu fungsi, akan lebih mudah jika kita mengambil logaritmanya terlebih dahulu (logaritma dari fungsi tersebut akan mencapai maksimum pada titik yang sama dengan fungsi itu sendiri):

Regresi linier dan metode pemulihannya

Yang, pada gilirannya, berarti meminimalkan fungsi berikut:

Regresi linier dan metode pemulihannya

Omong-omong, ini disebut metode kuadrat terkecil. Seringkali semua pertimbangan di atas dihilangkan dan metode ini digunakan begitu saja.

Dekomposisi QR

Nilai minimum dari fungsi di atas dapat dicari dengan mencari titik di mana gradien fungsi tersebut adalah nol. Dan gradiennya akan ditulis sebagai berikut:

Regresi linier dan metode pemulihannya

Dekomposisi QR adalah metode matriks untuk menyelesaikan masalah minimalisasi yang digunakan dalam metode kuadrat terkecil. Sehubungan dengan hal ini, kami menulis ulang persamaan tersebut dalam bentuk matriks:

Regresi linier dan metode pemulihannya

Jadi kami menguraikan matriksnya Regresi linier dan metode pemulihannya ke matriks Regresi linier dan metode pemulihannya ΠΈ Regresi linier dan metode pemulihannya dan melakukan serangkaian transformasi (algoritme dekomposisi QR itu sendiri tidak akan dipertimbangkan di sini, hanya penggunaannya dalam kaitannya dengan tugas yang ada):

Regresi linier dan metode pemulihannya

matriks Regresi linier dan metode pemulihannya adalah ortogonal. Hal ini memungkinkan kita untuk menyingkirkan pekerjaan Regresi linier dan metode pemulihannya:

Regresi linier dan metode pemulihannya

Dan jika Anda menggantinya Regresi linier dan metode pemulihannya pada Regresi linier dan metode pemulihannya, maka itu akan berhasil Regresi linier dan metode pemulihannya. Mengingat bahwa Regresi linier dan metode pemulihannya adalah matriks segitiga atas, tampilannya seperti ini:

Regresi linier dan metode pemulihannya

Hal ini dapat diselesaikan dengan menggunakan metode substitusi. Elemen Regresi linier dan metode pemulihannya terletak sebagai Regresi linier dan metode pemulihannya, elemen sebelumnya Regresi linier dan metode pemulihannya terletak sebagai Regresi linier dan metode pemulihannya dan sebagainya.

Perlu dicatat di sini bahwa kompleksitas algoritma yang dihasilkan karena penggunaan dekomposisi QR adalah sama Regresi linier dan metode pemulihannya. Selain itu, meskipun operasi perkalian matriks diparalelkan dengan baik, tidak mungkin untuk menulis versi terdistribusi yang efektif dari algoritma ini.

Penurunan Gradien

Ketika berbicara tentang meminimalkan suatu fungsi, selalu ada baiknya mengingat metode penurunan gradien (stokastik). Ini adalah metode minimalisasi yang sederhana dan efektif berdasarkan penghitungan gradien suatu fungsi pada suatu titik secara berulang dan kemudian menggesernya ke arah yang berlawanan dengan gradien. Setiap langkah tersebut membawa solusi mendekati titik minimum. Gradiennya masih terlihat sama:

Regresi linier dan metode pemulihannya

Metode ini juga diparalelkan dan didistribusikan dengan baik karena sifat linier dari operator gradien. Perhatikan bahwa dalam rumus di atas, di bawah tanda penjumlahan terdapat suku-suku independen. Dengan kata lain, kita dapat menghitung gradien secara mandiri untuk semua indeks Regresi linier dan metode pemulihannya dari pertama hingga Regresi linier dan metode pemulihannya, bersamaan dengan ini, hitung gradien untuk indeks dengan Regresi linier dan metode pemulihannya untuk Regresi linier dan metode pemulihannya. Kemudian tambahkan gradien yang dihasilkan. Hasil penjumlahannya akan sama seperti jika kita langsung menghitung gradien untuk indeks dari pertama hingga Regresi linier dan metode pemulihannya. Jadi, jika suatu data tersebar di antara beberapa bagian data, maka gradiennya dapat dihitung secara terpisah pada masing-masing bagian, kemudian hasil perhitungan tersebut dapat dijumlahkan untuk memperoleh hasil akhir:

Regresi linier dan metode pemulihannya

Dari segi implementasi, hal ini sesuai dengan paradigma PetaKurangi. Pada setiap langkah penurunan gradien, tugas dikirim ke setiap node data untuk menghitung gradien, kemudian gradien yang dihitung dikumpulkan bersama, dan hasil penjumlahannya digunakan untuk meningkatkan hasilnya.

Terlepas dari kemudahan implementasi dan kemampuan mengeksekusi paradigma MapReduce, penurunan gradien juga memiliki kekurangan. Secara khusus, jumlah langkah yang diperlukan untuk mencapai konvergensi jauh lebih tinggi dibandingkan metode lain yang lebih terspesialisasi.

LSQR

LSQR adalah metode lain untuk menyelesaikan masalah, yang cocok untuk memulihkan regresi linier dan untuk menyelesaikan sistem persamaan linier. Fitur utamanya adalah menggabungkan keunggulan metode matriks dan pendekatan berulang. Implementasi metode ini dapat ditemukan di kedua perpustakaan SciPy, dan masuk MATLAB. Penjelasan tentang metode ini tidak akan diberikan di sini (dapat ditemukan di artikel LSQR: Algoritma untuk persamaan linier renggang dan kuadrat terkecil renggang). Sebaliknya, sebuah pendekatan akan ditunjukkan untuk mengadaptasi LSQR untuk dieksekusi di lingkungan terdistribusi.

Metode LSQR didasarkan pada prosedur bidiagonalisasi. Ini adalah prosedur berulang, setiap iterasi terdiri dari langkah-langkah berikut:
Regresi linier dan metode pemulihannya

Tetapi jika kita berasumsi bahwa matriksnya Regresi linier dan metode pemulihannya dipartisi secara horizontal, maka setiap iterasi dapat direpresentasikan sebagai dua langkah MapReduce. Dengan cara ini, transfer data dapat diminimalkan selama setiap iterasi (hanya vektor dengan panjang yang sama dengan jumlah yang tidak diketahui):

Regresi linier dan metode pemulihannya

Pendekatan inilah yang digunakan ketika menerapkan regresi linier Apache Nyalakan ML.

Kesimpulan

Ada banyak algoritma pemulihan regresi linier, namun tidak semuanya dapat diterapkan di semua kondisi. Jadi dekomposisi QR sangat baik untuk solusi akurat pada kumpulan data kecil. Penurunan gradien mudah diterapkan dan memungkinkan Anda menemukan solusi perkiraan dengan cepat. Dan LSQR menggabungkan properti terbaik dari dua algoritma sebelumnya, karena dapat didistribusikan, konvergen lebih cepat dibandingkan dengan penurunan gradien, dan juga memungkinkan penghentian awal algoritma, tidak seperti dekomposisi QR, untuk menemukan solusi perkiraan.

Sumber: www.habr.com

Tambah komentar