Lewati ke konten utama

Produk Hadamard: Panduan Lengkap Perkalian Matriks Per Elemen

Pelajari landasan matematis, sifat komputasional, dan aplikasi dunia nyata dari produk Hadamard.
· 9 mnt Baca

Jelajahi bersama AI

Tutorial ini membahas landasan matematis, karakteristik komputasional, dan beragam aplikasi produk Hadamard. Melalui contoh langsung, Anda akan melihat bagaimana operasi ini menjembatani matematika teoretis dengan aplikasi ilmu data, menjadikannya alat penting bagi siapa pun yang bekerja dengan matriks dan data berdimensi tinggi.

Untuk membangun fondasi yang kuat dalam operasi matriks, jelajahi kursus Linear Algebra for Data Science in R kami, yang mencakup konsep-konsep penting yang melengkapi produk Hadamard. 

Definisi dan Notasi Matematis

Produk Hadamard, juga dikenal sebagai perkalian per elemen, merupakan salah satu operasi paling serbaguna dalam aljabar matriks. Tidak seperti perkalian matriks standar, operasi ini menggabungkan matriks dengan mengalikan elemen yang bersesuaian, menghasilkan keluaran yang mempertahankan dimensi asli sekaligus memungkinkan transformasi lokal.

Definisi formal

Diberikan dua matriks A dan B, keduanya berukuran m × n, produk Hadamard keduanya A ∘ B (atau kadang dilambangkan sebagai A ⊙ B) dihitung dengan mengalikan elemen yang bersesuaian:

dengan i berkisar dari 1 hingga m dan j berkisar dari 1 hingga n.

Matriks hasil C = A ∘ B memiliki dimensi yang sama dengan matriks masukan, dengan setiap elemen dihitung secara independen dari yang lain.

Notasi dan konvensi standar

Ada beberapa konvensi notasi untuk produk Hadamard:

  • ∘ (titik kosong): Notasi matematis yang paling umum
  • ⊙ (titik dilingkari): Simbol matematis alternatif
  • .*: Digunakan dalam bahasa pemrograman seperti MATLAB
  • *: Operator perkalian per elemen di NumPy dan pustaka lainnya

Pilihan notasi sering bergantung pada konteks dan bidang penerapan, meskipun ∘ tetap menjadi standar dalam literatur matematika.

Contoh langkah demi langkah

Mari ilustasikan produk Hadamard dengan contoh konkret menggunakan dua matriks 3×2:

Matriks A:

Matriks B:

A ∘ B:

  • Langkah 1: Kalikan elemen yang bersesuaian pada posisi (1,1): 2 × 3 = 6 
  • Langkah 2: Kalikan elemen yang bersesuaian pada posisi (1,2): 4 × 1 = 4 
  • Langkah 3: Kalikan elemen yang bersesuaian pada posisi (2,1): 1 × 2 = 2 
  • Langkah 4: Kalikan elemen yang bersesuaian pada posisi (2,2): 3 × 4 = 12 
  • Langkah 5: Kalikan elemen yang bersesuaian pada posisi (3,1): 5 × 1 = 5 
  • Langkah 6: Kalikan elemen yang bersesuaian pada posisi (3,2): 2 × 6 = 12

Berikut hasilnya:

Kendala penting

Produk Hadamard memiliki persyaratan dimensi yang ketat: kedua matriks harus memiliki dimensi yang identik. Berbeda dengan perkalian matriks standar, di mana dimensi dalam harus cocok, produk Hadamard memerlukan kecocokan dimensi secara penuh. Kendala ini memastikan setiap elemen pada satu matriks memiliki elemen yang bersesuaian pada matriks lainnya untuk dikalikan. Ketika matriks memiliki dimensi berbeda, produk Hadamard tidak terdefinisi.

Sifat Dasar dan Lanjutan

Produk Hadamard menunjukkan sifat aljabar yang berbeda yang membedakannya dari perkalian matriks standar. Memahami sifat-sifat ini mengungkapkan mengapa perkalian per elemen berperilaku berbeda dan memberikan wawasan tentang strukturnya secara matematis.

Sifat dasar

Komutatif

Produk Hadamard bersifat komutatif, artinya urutan perkalian tidak memengaruhi hasil:

Sifat ini berlaku karena perkalian per elemen bilangan real bersifat komutatif: aᵢⱼ × bᵢⱼ = bᵢⱼ × aᵢⱼ.

Ini berbeda dengan perkalian matriks, yang umumnya tidak komutatif.

Asosiatif

Produk Hadamard bersifat asosiatif, memungkinkan pengelompokan operasi tanpa mengubah hasil:

Sifat ini berlaku untuk sejumlah matriks, asalkan semuanya memiliki dimensi yang identik.

Distributif terhadap penjumlahan matriks

Produk Hadamard terdistribusi terhadap penjumlahan matriks:

Sifat ini membuat produk Hadamard kompatibel dengan kombinasi linear matriks.

Elemen identitas

Elemen identitas untuk produk Hadamard adalah matriks semua satu, J, di mana setiap elemennya bernilai 1. Untuk sembarang matriks A:

Ini sangat berbeda dari perkalian matriks standar, di mana matriks identitas memiliki angka satu pada diagonal dan nol di tempat lain.

Perbandingan dengan perkalian matriks standar

Tidak seperti perkalian matriks standar, produk Hadamard:

  • Memerlukan matriks dengan dimensi identik
  • Menghasilkan keluaran dengan dimensi yang sama seperti matriks masukan
  • Selalu bersifat komutatif
  • Memiliki elemen identitas yang berbeda
  • Tidak memenuhi sifat asosiatif campuran: (AB) ∘ C ≠ A(B ∘ C) secara umum

Sifat produk campuran

Sifat produk campuran menetapkan hubungan antara produk Hadamard dan transpos matriks:

Sifat ini sangat berguna dalam masalah optimisasi dan aplikasi statistik di mana matriks yang ditranspos sering muncul.

xBerikut skenario contoh: Dalam estimasi matriks kovarians, peneliti sering bekerja dengan matriks data yang ditranspos. Sifat produk campuran memungkinkan operasi per elemen dilakukan sebelum atau sesudah transpos, memberikan keluwesan komputasional dalam perancangan algoritme.

Teorema produk Schur dan semidefinit positif

Teorema Produk Schur merupakan salah satu hasil teoretis paling penting terkait produk Hadamard. Teorema ini menyatakan bahwa produk Hadamard dari dua matriks semidefinit positif juga semidefinit positif.

Teorema: Jika A dan B adalah matriks semidefinit positif dengan ukuran yang sama, maka A ∘ B juga semidefinit positif.

Implikasi untuk analisis matriks

Teorema ini memiliki beberapa konsekuensi penting:

  • Mempertahankan semidefinit positif: Sifat ini memastikan operasi matriks tertentu mempertahankan sifat matematis yang diinginkan. Dalam pemodelan statistik, matriks semidefinit positif merepresentasikan struktur kovarians yang valid, dan teorema ini menjamin bahwa perkalian per elemen mempertahankan validitas tersebut.
  • Kaitan dengan rank matriks: Produk Hadamard umumnya tidak mempertahankan rank matriks. Rank dari A ∘ B dapat lebih kecil, sama, atau (dalam kasus khusus) lebih besar daripada minimum dari rank(A) dan rank(B).
  • Relasi nilai eigen: Meskipun produk Hadamard tidak memiliki hubungan sederhana dengan nilai eigen dari matriks asal, Teorema Produk Schur memberikan batasan pada nilai eigen hasilnya ketika berurusan dengan matriks semidefinit positif.

Komputasi dan Implementasi

Karakteristik komputasional produk Hadamard membuatnya sangat menarik untuk aplikasi pemrosesan data skala besar. Memahami profil efisiensinya dan pertimbangan implementasi membantu mengoptimalkan kinerja di lingkungan komputasi.

Efisiensi dan kompleksitas komputasi

Analisis kompleksitas

Produk Hadamard memiliki kompleksitas waktu O(mn) untuk dua matriks berukuran m × n, di mana setiap elemen membutuhkan tepat satu operasi perkalian. Kompleksitas linear ini sangat kontras dengan perkalian matriks standar, yang memiliki kompleksitas O(n³) untuk matriks bujur sangkar menggunakan algoritme konvensional algorithms.

Operasi

Kompleksitas Waktu

Kompleksitas Ruang

Produk Hadamard

O(mn)

O(mn)

Perkalian Matriks Standar

O(n³)

O(n²)

Penjumlahan Matriks

O(mn)

O(mn)

Implikasi untuk pemrosesan skala besar

Kompleksitas linear membuat produk Hadamard sangat cocok untuk:

  • Dataset berdimensi tinggi: Saat bekerja dengan matriks berisi jutaan elemen, kompleksitas O(mn) memastikan waktu pemrosesan meningkat secara terprediksi sesuai ukuran data.
  • Aplikasi waktu nyata: Beban komputasi yang minimal memungkinkan operasi per elemen dalam skenario sensitif waktu seperti pipeline pemrosesan citra dan inferensi jaringan saraf.
  • Efisiensi memori: Karena setiap elemen diproses secara independen, implementasi dapat memanfaatkan pemrosesan streaming atau per blok untuk menangani dataset yang lebih besar daripada memori yang tersedia.

Perkalian per elemen dalam praktik

Pertimbangan pemrosesan matriks

Menghitung produk Hadamard melibatkan beberapa pertimbangan praktis:

  • Tata letak memori: Penyimpanan baris-utama versus kolom-utama memengaruhi kinerja cache. Sebagian besar implementasi diuntungkan dengan memproses elemen sesuai urutan kemunculannya di memori.
  • Vektorisasi: Prosesor modern mendukung operasi SIMD (single instruction, multiple data) yang dapat memproses beberapa elemen sekaligus, sehingga mempercepat komputasi secara signifikan.
  • Paralelisasi: Independensi operasi per elemen membuat produk Hadamard sangat dapat diparalelkan di banyak inti CPU atau thread GPU.

Konteks tensor dan tantangan

Saat diperluas ke tensor berdimensi lebih tinggi, timbul kompleksitas tambahan:

  • Broadcasting: Banyak implementasi mendukung broadcasting, memungkinkan perkalian per elemen antara tensor dengan bentuk yang berbeda namun kompatibel.
  • Perataan memori: Operasi tensor memerlukan perhatian cermat pada perataan memori untuk memaksimalkan kinerja, khususnya pada perangkat keras khusus seperti GPU dan TPU.
  • Optimisasi algoritme: Algoritme lanjutan seperti HaTT (Hadamard Transform for Tensors) menyediakan implementasi teroptimisasi untuk struktur tensor tertentu, mengurangi kompleksitas waktu dan ruang dalam skenario tertentu.

Implementasi dalam bahasa pemrograman

Python dengan NumPy

NumPy menyediakan implementasi produk Hadamard yang langsung menggunakan operator *:

import numpy as np

# Define matrices
A = np.array([[2, 4], [1, 3], [5, 2]])
B = np.array([[3, 1], [2, 4], [1, 6]])

# Compute Hadamard product
C = A * B
print(C)
# Output: [[ 6  4]
#          [ 2 12]
#          [ 5 12]]

# Alternative explicit notation
C_explicit = np.multiply(A, B)

Optimisasi kinerja di NumPy:

# For large matrices, ensure proper data types
A = A.astype(np.float32)  # Use float32 for memory efficiency
B = B.astype(np.float32)

# Pre-allocate output array for memory efficiency
C = np.empty_like(A)
np.multiply(A, B, out=C)

Bahasa dan pustaka alternatif

R:

# C <- A * B  # Element-wise multiplication is default

matrix1 <- matrix(
  c(1, 2, 3,
    4, 5, 6,
    7, 8, 9),
  nrow = 3,
  ncol = 3,
  byrow = TRUE
)

# Create the second matrix (3x3)
matrix2 <- matrix(
  c(9, 8, 7,
    6, 5, 4,
    3, 2, 1),
  nrow = 3,
  ncol = 3,
  byrow = TRUE
)

matrix1
matrix2
matrix1 * matrix2
     [,1] [,2] [,3]
[1,]    1    2    3
[2,]    4    5    6
[3,]    7    8    9
     [,1] [,2] [,3]
[1,]    9    8    7
[2,]    6    5    4
[3,]    3    2    1
     [,1] [,2] [,3]
[1,]    9   16   21
[2,]   24   25   24
[3,]   21   16    9

Julia:

C = A .* B  # Broadcasting element-wise multiplication	

Jebakan umum dan praktik terbaik

Kompatibilitas tipe: Pastikan matriks memiliki tipe data yang kompatibel untuk menghindari promosi tipe yang tidak diinginkan atau kehilangan presisi.

# Avoid mixing integer and float types unnecessarily
A = np.array([[1, 2]], dtype=np.int32)
B = np.array([[1.5, 2.5]], dtype=np.float64)
C = A * B  # Results in float64, may not be intended

Pemahaman broadcasting: Pahami cara kerja broadcasting untuk menghindari perluasan dimensi yang tidak diinginkan.

# Be explicit about intended operations
A = np.array([[1, 2, 3]])      # Shape: (1, 3)
B = np.array([[1], [2], [3]])  # Shape: (3, 1)
C = A * B  # Results in (3, 3) matrix due to broadcasting

Manajemen memori: Untuk operasi skala besar, pertimbangkan operasi in-place dan pra-alokasi memori.

# In-place operation to save memory
A *= B  # Modifies A directly

# Pre-allocate for repeated operations
result = np.empty((1000, 1000))
for i in range(iterations):
    np.multiply(matrix1, matrix2, out=result)

Integrasi pipeline: Dalam alur kerja pembelajaran mesin, pastikan operasi Hadamard terintegrasi mulus dengan kerangka diferensiasi otomatis dan mempertahankan aliran gradien.

Aplikasi Lintas Disiplin

Produk Hadamard digunakan pada operasi yang memerlukan transformasi lokal sambil mempertahankan struktur matriks.

Pemrosesan citra

Produk Hadamard berperan penting dalam decoding JPEG, di mana ia menggabungkan matriks kuantisasi dengan koefisien citra yang ditransformasi untuk merekonstruksi data visual. Dalam tugas peningkatan citra, ini memungkinkan operasi selektif seperti penekanan noise melalui perkalian per elemen dengan masker filter, serta penajaman atau pengaburan terkontrol dengan menerapkan matriks bobot spasial pada lingkungan piksel.

Pemodelan statistik dan analisis data

Produk Hadamard memfasilitasi regresi berbobot dengan menerapkan bobot per elemen pada matriks desain, dan mendukung estimasi kovarians yang tangguh melalui penskalaan selektif elemen matriks. Operasi ini esensial dalam metode kernel dan pemrograman semidefinit, di mana ia mempertahankan sifat semidefinit positif yang diperlukan untuk model statistik yang valid, sehingga bernilai untuk teknik regularisasi yang menerapkan kendala per elemen pada struktur kovarians.

Deep learning dan jaringan saraf

Produk Hadamard banyak muncul dalam arsitektur jaringan saraf berulang, khususnya pada GRU dan LSTM, di mana ia mengontrol aliran informasi melalui mekanisme gating per elemen. Arsitektur modern seperti StyleGAN dan SENet menggunakannya untuk penskalaan fitur adaptif, sementara mekanisme atensi memanfaatkan perkalian per elemen untuk membobot representasi fitur, yang secara signifikan meningkatkan efisiensi dan kinerja model dalam pemodelan sekuens dan tugas generatif.

Aplikasi penting lainnya

Produk Hadamard meluas ke pemrosesan sinyal untuk penyaringan domain frekuensi dan analisis spektral, di mana perkalian per elemen dengan fungsi transfer memodifikasi karakteristik sinyal. Dalam teori graf, ini memungkinkan operasi per simpul pada matriks ketetanggaan, sementara aplikasi kombinatorik mencakup manipulasi per elemen pada matriks pencacahan dan masalah optimisasi diskret.

Kesimpulan

Jika Anda tertarik mempelajari lebih banyak konsep matematika yang menopang machine learning dan deep learning modern, tutorial Demystifying Mathematical Concepts for Deep Learning kami memberikan wawasan tambahan tentang fondasi matematis yang mendorong inovasi AI saat ini, dan daftar di kursus Linear Algebra for Data Science in R untuk fondasi yang kuat. 

Vinod Chugani

Penulis

Vinod Chugani

Vinod Chugani memulai kariernya di Tokyo sebagai Kepala Meja Penjualan Hedge Fund termuda di JPMorgan dan kemudian mencetak rekor penjualan individu di Lehman Brothers, lalu membangun bisnis distribusi elektronik di 30 negara dengan pendapatan melampaui SG$100 juta sebelum beralih ke data. Lulusan Ekonomi Duke dan alumni NYC Data Science Academy, ia menjadi salah satu dari tiga penerima beasiswa dari lebih dari 100 pelamar untuk kursus Building AI Applications oleh Hugo Bowne-Anderson di Maven. Saat ini, ia menulis untuk DataCamp, KDnuggets, Machine Learning Mastery, dan Statology tentang topik mulai dari statistika hingga AI agensial, dan membimbing para profesional data di NYC Data Science Academy dengan lebih dari 1.000 sesi tatap muka atas namanya.

 

FAQ

Apa itu produk Hadamard dan bagaimana bedanya dengan perkalian matriks biasa?

Produk Hadamard mengalikan elemen yang bersesuaian dari dua matriks dengan dimensi identik, sedangkan perkalian matriks biasa melibatkan hasil kali titik dari baris dan kolom. Tidak seperti perkalian matriks standar, produk Hadamard mempertahankan dimensi matriks asli dan selalu komutatif.

Kapan saya harus menggunakan produk Hadamard alih-alih perkalian matriks standar?

Gunakan produk Hadamard saat Anda memerlukan operasi per elemen, seperti menerapkan masker dalam pemrosesan citra, menerapkan mekanisme gating dalam jaringan saraf, atau melakukan penskalaan selektif elemen matriks. Ini sangat berguna saat Anda ingin mempertahankan hubungan spasial atau menerapkan transformasi lokal.

Apakah produk Hadamard dapat dihitung untuk matriks dengan ukuran berbeda?

Tidak, produk Hadamard mengharuskan matriks memiliki dimensi identik agar perkalian per elemen terdefinisi. Kedua matriks harus memiliki jumlah baris dan kolom yang sama, berbeda dengan perkalian matriks standar, yang hanya memerlukan dimensi dalam yang kompatibel.

Apa arti kompleksitas O(mn) dalam konteks produk Hadamard?

O(mn) adalah "notasi Big O" yang menjelaskan bagaimana waktu komputasi meningkat seiring ukuran input — dalam hal ini, artinya waktu sebanding dengan total jumlah elemen matriks (m baris × n kolom). Misalnya, jika Anda menggandakan jumlah baris dan kolom, waktu komputasi kira-kira menjadi empat kali lipat, sehingga sangat terprediksi dan efisien untuk matriks besar.

Apakah produk Hadamard efisien secara komputasional dibandingkan operasi matriks lainnya?

 Ya, produk Hadamard memiliki kompleksitas waktu linear O(mn), menjadikannya jauh lebih efisien daripada kompleksitas O(n³) pada perkalian matriks standar. Efisiensi ini membuatnya sangat cocok untuk aplikasi waktu nyata dan pemrosesan data skala besar.

Apa aplikasi utama produk Hadamard dalam pembelajaran mesin?

Produk Hadamard mendasari mekanisme gating pada LSTM dan GRU, muncul dalam varian atensi yang menyesuaikan skala fitur per kanal, dan banyak digunakan untuk pembobotan atau penskalaan fitur. Dalam pemrosesan citra, ini menerapkan masker tingkat piksel, dan dalam model statistik berfungsi sebagai cara sederhana untuk memberi bobot atau meniadakan entri tertentu.

Apa perbedaan antara produk Hadamard dan hasil kali titik (dot product)?

Produk Hadamard melakukan perkalian per elemen antara matriks berukuran sama, mempertahankan strukturnya. Sebaliknya, hasil kali titik menjumlahkan hasil kali per elemen untuk menghasilkan sebuah skalar (dalam kasus vektor) atau menerapkan aturan perkalian matriks untuk matriks.

Bagaimana perbedaan produk Hadamard dari produk Kronecker?

Sementara produk Hadamard mengalikan matriks elemen demi elemen dan mempertahankan dimensi aslinya, produk Kronecker membuat matriks blok yang lebih besar dengan mengalikan setiap elemen dari satu matriks dengan seluruh matriks kedua.

Apakah produk Hadamard dapat diterapkan pada deret pangkat?

Ya, dalam analisis kompleks, produk Hadamard dapat diperluas ke deret pangkat, di mana ia mengalikan koefisien yang bersesuaian. Operasi ini mengubah sifat konvergensi deret yang dihasilkan dan terhubung dengan hasil analitis yang lebih mendalam.

Apa kaitan antara produk Hadamard dan teorema faktorisasi Hadamard?

Teorema faktorisasi Hadamard menggambarkan fungsi entire sebagai produk atas nol-nolnya, dan secara konseptual produk Hadamard terkait melalui kemunculannya dalam manipulasi deret dalam teorema ini.

Bagaimana produk Hadamard terkait dengan fungsi zeta Riemann?

Dalam matematika tingkat lanjut, konsep produk Hadamard muncul dalam ekspansi produk tak hingga dari fungsi zeta Riemann, menggambarkan bagaimana operasi per elemen menghubungkan aljabar matriks diskret dengan teori fungsi kontinu.

Topik

Terkait

blogs

Tutorial Korelasi di R

blogs

Spaghetti Plot dan Jalur Badai

blogs

40 Pertanyaan Wawancara DBMS Teratas di 2026