Lewati ke konten utama

Mengurai Konsep Matematika untuk Deep Learning

Jelajahi konsep matematika dasar untuk data science dan deep learning seperti skalar dan vektor, determinan, dekomposisi nilai singular, dan lainnya.
Diperbarui 28 Sep 2026  · 11 mnt Baca

Jelajahi bersama AI

ChatGPTClaudePerplexity

Data science adalah bidang interdisipliner yang menggunakan matematika dan statistik lanjutan untuk membuat prediksi. Semua algoritma data science secara langsung atau tidak langsung menggunakan konsep matematika. Pemahaman matematika yang kuat akan membantu Anda mengembangkan solusi data science yang inovatif seperti sistem rekomendasi. Jika Anda mahir matematika, transisi Anda ke data science akan lebih mudah. Sebagai data scientist, Anda harus memanfaatkan konsep dasar matematika untuk memecahkan masalah.

Selain matematika, Anda juga memerlukan pengetahuan domain, keterampilan pemrograman, keterampilan bisnis, kemampuan analitis, dan pola pikir yang ingin tahu. Tidak ada cara untuk menghindari matematika bagi seorang data scientist. Anda harus membiasakan diri dan mempelajari dasar-dasar matematika dan statistik untuk menjadi data scientist.

Skalar dan Vektor

  • Skalar: Skalar adalah sebuah bilangan tunggal yang berinteraksi dengan vektor di ruang melalui perkalian skalar.
  • Vektor: Vektor V adalah himpunan terurut dari item. Vektor adalah array angka yang dapat berupa baris atau kolom. Vektor dapat dijumlahkan dan dapat dikalikan dengan bilangan real yang dikenal sebagai skalar.
skalar vs vektor vs matriks

Sumber Gambar

# Import numpy module
import numpy as np

# creating a vector
v = np.array([1, 2, 3, 4, 5])
print(v)
[1 2 3 4 5]
# Vector Operations
# Import numpy module
import numpy as np

# Create two vector
a = np.array([1, 2, 3, 4, 5])
b = np.array([1, 2, 3, 4, 5])

# adding two vectors
add = a + b
print("Addition:",add)

# Vector Subtraction
sub = a - b
print("Subtraction:",sub)

# Vector Multiplication
mul = a * b
print("Multiplication:",mul)

# Vector Division
div = a / b
print("division",div)
Addition: [ 2  4  6  8 10]
Subtraction: [0 0 0 0 0]
Multiplication: [ 1  4  9 16 25]
division [1. 1. 1. 1. 1.]

Matriks dan Tensor

  • Matriks: Matriks adalah array N-D dari angka yang merepresentasikan transformasi. Anda dapat memandang matriks sebagai sebuah transformasi seperti "skala", "rotasi", "geser", dan "balik". Matriks mengubah titik-titik tunggal di ruang menjadi titik-titik lain di ruang.
# Import numpy module
import numpy as np

# create 2*2 matrix
a1=np.array([[1, 2], [3, 4]])
a2=np.array([[1, 2], [3, 4]])

# Dot Product
dot_product = np.dot(a1,a2)
print("Dot Product: \n",dot_product)

# Cross Product
cross_product = np.cross(a1,a2)
print("Cross Product: \n", cross_product)
Dot Product:
 [[ 7 10]
 [15 22]]
Cross Product:
 [0 0]

Dot product dari dua vektor merepresentasikan proyeksi satu vektor pada vektor lainnya dan cross product dari dua vektor memungkinkan satu vektor mengidentifikasi bidang tempat kedua vektor itu berada.

  • Tensor: Terkadang, Anda memerlukan array dengan lebih dari dua dimensi dan dengan dimensi berbeda pada setiap array, yang diatur dalam kisi yang dikenal sebagai tensor. Dimensi tensor dikenal sebagai rank-nya. Skalar dan vektor juga merupakan jenis tensor. Tensor orde nol adalah skalar, dan tensor orde pertama adalah vektor.
matriks vs vektor

Sumber gambar

Determinan

Determinan adalah nilai skalar yang merepresentasikan faktor dari sebuah matriks yang dengannya panjang (dalam 1 dimensi), luas (2 dimensi), volume (3 dimensi) dapat ditentukan. Jika determinan bernilai 2, volumenya (dalam 3 dimensi) menjadi dua kali lipat, atau jika determinan bernilai 1, maka tidak memengaruhi volume (dalam 3 dimensi). Jika determinan bernilai 0, tidak memiliki invers karena nol dikalikan apa pun akan menghasilkan nol.

matriks determinan

Properti:

  • Hasil kali matriks adalah hasil kali determinan matriks tersebut: det (M1M2)=det (M1) det (M2).

  • Determinan sebuah matriks setara dengan hasil kali nilai eigen.

  • Jika Anda mengalikan sebuah matriks dengan konstanta maka determinannya berubah menurut det(cM)=cN det (M). N adalah dimensi matriks.

Jika matriks Anda merepresentasikan sebuah mainan yang dapat diregangkan, maka determinan dari matriks ini menunjukkan seberapa banyak Anda meregangkan mainan tersebut.

# Import numpy module
import numpy as np

# Create 2*2 matrix
arr=np.array([[1,2],[3,4]])

# Compute Determinant of a matrix
arr_det=np.linalg.det(arr)

# Print the Computed Determinant
print("Determinant:",arr_det)
Determinant: -2.0000000000000004

Nilai Eigen dan Vektor Eigen

Vektor eigen dari matriks bujur sangkar A adalah vektor tak nol sedemikian rupa sehingga perkalian oleh A hanya mengubah skala v.

nilai eigen dan vektor eigen

Sumber Gambar

Vektor eigen juga dikenal sebagai vektor karakteristik. Ini adalah vektor tak nol yang hanya berubah dengan faktor skalar ketika transformasi linear diterapkan padanya.

Vektor eigen adalah sumbu rotasi dari transformasi linear. Sumbu-sumbu ini tetap arahnya, dan nilai eigen adalah faktor skala yang membuat matriks diperbesar atau diperkecil. Nilai eigen juga dikenal sebagai nilai karakteristik atau akar karakteristik. Dengan kata lain, dapat dikatakan nilai eigen adalah garis atau bidang tetap yang membatasi perilaku transformasi linear dan nilai eigen dari suatu transformasi linear adalah faktor distorsi.

Determinan memberi tahu Anda luas bentuk yang diperbesar atau diperkecil dalam transformasi linear. Itulah mengapa hasil kali nilai eigen sama dengan determinan.

# Import numpy module
import numpy as np

# Create 2*2 matrix
arr=np.array([[1,2],[3,4]])

# Find eigenvalues and eigenvectors
eigenvalues, eigenvectors = np.linalg.eig(arr)

# print the eigenvalues and eigenvectors
print("Eigen Values: \n",eigenvalues)
print("Eigen Vectors:\n", eigenvectors)
Eigen Values:
 [-0.37228132  5.37228132]
Eigen Vectors:
 [[-0.82456484 -0.41597356]
 [ 0.56576746 -0.90937671]]

Fungsi NORM

Terkadang Anda ingin mengukur ukuran sebuah vektor. Fungsi norm membantu Anda mengukur ukuran vektor. Fungsi ini memberikan panjang positif yang ketat pada vektor dalam ruang vektor kecuali untuk vektor nol. Ini mencakup norm L^p. Fungsi ini memetakan vektor ke nilai non-negatif. Ini setara dengan jarak Euclidean untuk vektor dan matriks. Nilainya sama dengan nilai singular terbesar.

rumus fungsi NORM
# import numpy module
import numpy as np

# Create 3*3 Matrix
a = np.array([[1,2,3],[4,5,6],[7,8,9]])

# Compute norm
a_norm = np.linalg.norm(a)

# print the norm of function
print(a_norm)
16.881943016134134

Faktorisasi Matriks

Faktorisasi matriks, juga dikenal sebagai dekomposisi matriks. Ini digunakan untuk memecah sebuah matriks menjadi bagian-bagian penyusunnya. Faktorisasi matriks setara dengan faktorisasi bilangan, seperti memfaktorkan 10 menjadi 2 x 5. Ini digunakan untuk menyelesaikan persamaan linear.

Berikut teknik faktorisasi matriks yang tersedia:

  • Dekomposisi LU untuk matriks bujur sangkar dan memecah matriks menjadi komponen L dan U.
  • Dekomposisi QR untuk matriks m x n (tidak terbatas pada matriks bujur sangkar) dan memecah matriks menjadi komponen Q dan R. Ini tidak terbatas pada matriks bujur sangkar seperti dekomposisi LU.
  • Dekomposisi Cholesky digunakan untuk menyelesaikan kuadrat terkecil linear pada regresi linear, serta metode simulasi dan optimisasi.
  • Dekomposisi Nilai Singular dijelaskan pada bagian berikutnya.

Dekomposisi Nilai Singular

Pada bagian sebelumnya, kita telah melihat eigen-dekomposisi sebuah matriks yang dipecah menjadi vektor eigen dan nilai eigen. Dekomposisi nilai singular adalah jenis metode faktorisasi matriks yang dipecah menjadi vektor singular dan nilai singular. Metode ini menawarkan berbagai aplikasi bermanfaat dalam pemrosesan sinyal, psikologi, sosiologi, iklim, ilmu atmosfer, statistik, dan astronomi.

rumus dekomposisi nilai singular
  • M adalah matriks m×m
  • U adalah matriks singular kiri m×n
  • Σ adalah matriks diagonal n×n dengan bilangan real non-negatif.
  • V adalah matriks singular kanan m×n
  • V* adalah matriks n×m, yaitu transpose dari V.
# Import numpy module
import numpy as np

# Create 3*3 matrix
a = np.array([[1, 3, 4], [5, 6, 9], [1, 2, 3], [7, 6, 8]])

# Decomposition of matrix using SVD
U, s, Vh = np.linalg.svd(a, full_matrices=False)

U,s,Vh
(array([[-0.27067357, -0.61678044,  0.69789573],
        [-0.65939972, -0.2937857 , -0.62152182],
        [-0.20244298, -0.3480035 , -0.06765408],
        [-0.67152413,  0.64200111,  0.34939247]]),
 array([18.0376394 ,  2.34360292,  0.38870323]),
 array([[-0.46961711, -0.51018039, -0.72053851],
        [ 0.87911451, -0.19502274, -0.43488368],
        [-0.08134773,  0.83766467, -0.54009299]]))
# Generate the initial matrix
new_a = np.dot(U, np.dot(np.diag(s), Vh))

# Print original matrix
print(new_a)
[[1. 3. 4.]
 [5. 6. 9.]
 [1. 2. 3.]
 [7. 6. 8.]]

Pseudoinvers Moore-Penrose

Pseudoinvers sebuah matriks adalah generalisasi dari matriks invers. Ini digunakan dalam menghitung solusi kuadrat terkecil. Invers Moore-Penrose adalah bentuk pseudoinvers matriks yang paling populer.

Matriks Pseudoinvers Moore-Penrose
# Import numpy module
import numpy as np

# Create 3*3 matrix
a = np.array([[1, 3, 4], [5, 6, 9], [1, 2, 3], [7, 6, 8]])

# Compute the (Moore-Penrose) pseudo-inverse of a matrix.
inv=np.linalg.pinv(a)

# Print pseudo-inverse of a matrix.
print(inv)
[[-0.37037037  0.03703704 -0.11111111  0.18518519]
 [ 1.56296296 -1.2962963  -0.11111111  0.71851852]
 [-0.84444444  0.94444444  0.16666667 -0.57777778]]

Produk Hadamard

Produk Hadamard atau produk Schur adalah perkalian elemen demi elemen dari dua matriks asli yang berdimensi sama. Ini juga dikenal sebagai perkalian elemen-per-elemen. Produk Hadamard lebih sederhana dibandingkan perkalian matriks. Produk Hadamard digunakan dalam algoritme kompresi lossy JPEG. Produk Hadamard bersifat komutatif, asosiatif, dan distributif. Ini memudahkan memperoleh invers dan menyederhanakan perhitungan pangkat matriks.

matriks produk Hadamard

Produk Hadamard digunakan di berbagai bidang seperti koreksi kode dalam transmisi satelit, teori informasi, kriptografi, pengenalan pola, neural network, estimasi kemungkinan maksimum, kompresi lossy JPEG, analisis statistik multivariat, dan pemodelan linear.

# Import numpy module
import numpy as np

# Create 2*2 matrix a1 and a2
a1=np.array([[1, 2], [3, 4]])
a2=np.array([[1, 2], [3, 4]])

# Element wise multiplication
hadamard_product = np.multiply(a1,a2)

# Print hadamard distance
print("Hadamard Product: \n", hadamard_product)
Hadamard Product:
 [[ 1  4]
 [ 9 16]]

Entropi

"Entropi dari sebuah variabel acak adalah fungsi yang berupaya mencirikan ketidakpastian dari variabel acak tersebut." (Entropy and Mutual Information)" Ini digunakan untuk membangun pohon keputusan otomatis di setiap langkah pembentukan pohon; pemilihan fitur dilakukan menggunakan kriteria entropi. Pemilihan model didasarkan pada prinsip entropi maksimum, yang menyatakan bahwa dari model-model yang saling bertentangan, yang memiliki entropi tertinggi adalah yang terbaik.

"Jika sebuah variabel acak X mengambil nilai dalam himpunan χ={x1, x2,..., xn}, dan didefinisikan oleh distribusi probabilitas P(X), maka kita akan menuliskan entropi dari variabel acak tersebut sebagai," (Entropy and Mutual Information)

rumus entropi

"Jika log pada persamaan di atas berbasis 2, maka entropi dinyatakan dalam bit. Jika log yang digunakan adalah log alami, maka entropi dinyatakan dalam nat. Lebih umum, entropi dinyatakan dalam bit." (Entropy and Mutual Information)

# Import scipy and numpy module
import scipy.stats
import numpy as np

# Create an array
a=np.array([1,1,2,3,1,3,4,2,5,6,3,2,4,3])


# Compute probability distribution
a_pdf=scipy.stats.norm.pdf(a)

# Calculate the entropy of a distribution for given probability values.
entropy = scipy.stats.entropy(a_pdf) # get entropy from probability values
print("Entropy: ",entropy)
Entropy:  1.6688066853941022

Divergensi Kullback-Leibler

Divergensi Kullback–Leibler adalah entropi relatif dari dua distribusi probabilitas. Ini mengukur jarak (kemiripan atau ketidakmiripan) suatu distribusi dari distribusi probabilitas referensi lainnya. Nilai 0 pada divergensi Kullback–Leibler menunjukkan bahwa kedua distribusi identik. Ini dapat dinyatakan sebagai,

rumus divergensi Kullback-Leibler

Memang terdengar seperti ukuran jarak, namun sebenarnya bukan. Ini karena sifatnya yang asimetris, yang berarti metrik ini tidak komutatif. Secara umum, Anda dapat mengatakan bahwa D(p, q) ≠D(q, p). KL divergence sering digunakan dalam teknik pembelajaran mesin tanpa pengawasan “Variational Autoencoders”.

# Import scipy.stats and numpy module
import scipy.stats
import numpy as np

# Create numpy arrays
a=np.array([1,1,2,3,1,3,4,2,5,6,3,2,4,3])
b=np.array([1,1,3,4,2,4,5,2,5,6,3,2,4,3])

# Compute probability distribution
a_pdf=scipy.stats.norm.pdf(a)
b_pdf=scipy.stats.norm.pdf(b)

# compute relative entropy or KL Divergence
kl_div=scipy.stats.entropy(a_pdf,b_pdf)

print("KL Divergence: ",kl_div)
KL Divergence:  0.26732496641464365

Gradient Descent

Gradient descent adalah salah satu algoritma paling dikenal yang digunakan untuk mengoptimalkan koefisien dan bias pada regresi linear, regresi logistik, dan neural network. Ini adalah proses iteratif yang menemukan minimum dari fungsi apa pun yang diberikan.

Ilustrasi Gradient Descent

Sumber Gambar

Rumus Gradient Descent

Sumber Gambar

Tiga jenis algoritma gradient descent: full batch, stochastic, dan mini-batch gradient descent. Full batch gradient descent menggunakan seluruh dataset untuk menghitung gradien sementara stochastic gradient descent menggunakan sampel dari dataset untuk menghitung gradien. Mini-batch gradient descent adalah kombinasi dari stochastic dan batch gradient descent. Dataset pelatihan dibagi menjadi beberapa kelompok kecil yang disebut batch. Batch kecil ini menghitung loss satu per satu dan merata-ratakan hasil loss akhir.

Kesimpulan

Selamat, Anda telah sampai di akhir tutorial ini!

Anda mempelajari konsep matematika dasar untuk deep learning seperti skalar, vektor, matriks, tensor, determinan, nilai eigen, vektor eigen, fungsi NORM, dekomposisi nilai singular (SVD), Pseudoinvers Moore-Penrose, produk Hadamard, Entropi, Divergensi Kullback-Leibler, dan Gradient Descent.

Sepanjang jalan, Anda juga mempraktikkan konsep-konsep ini di Python menggunakan NumPy dan SciPy.

Jika Anda ingin mempelajari lebih lanjut tentang Python, ikuti kursus DataCamp berikut:

Topik
Deep Learning
Data Science
Python

Pelajari lebih lanjut tentang Deep Learning

Kursus

Pengantar Deep Learning dengan Python

4 jam
264.7K
Pelajari dasar-dasar jaringan saraf tiruan dan cara membangun model pembelajaran mendalam menggunakan Keras 2.0 dalam Python.
Lihat DetailRight Arrow
Mulai Kursus
Lihat SelengkapnyaRight Arrow
Terkait

blogs

Tutorial Korelasi di R

Dapatkan pengenalan dasar-dasar korelasi di R: pelajari lebih lanjut tentang koefisien korelasi, matriks korelasi, plotting korelasi, dan sebagainya.
David Woods's photo

David Woods

13 mnt

blogs

Spaghetti Plot dan Jalur Badai

Temukan alasan mengapa Anda sebaiknya (tidak) menggunakan spaghetti plot untuk menyampaikan ketidakpastian jalur prediksi badai serta dampaknya terhadap interpretasi.
Hugo Bowne-Anderson's photo

Hugo Bowne-Anderson

13 mnt

blogs

40 Pertanyaan Wawancara DBMS Teratas di 2026

Kuasai pertanyaan wawancara basis data, dari konsep SQL dasar hingga skenario desain sistem tingkat lanjut. Panduan mendalam ini mencakup semua yang Anda perlukan untuk sukses di wawancara DBMS dan meraih peran berikutnya.
Dario Radečić's photo

Dario Radečić

15 mnt

blogs

12 Alternatif ChatGPT Terbaik yang Bisa Anda Coba pada 2026

Artikel ini menyajikan daftar alternatif ChatGPT yang akan meningkatkan produktivitas Anda.
Javier Canales Luna's photo

Javier Canales Luna

14 mnt

Lihat SelengkapnyaLihat Selengkapnya