Keahlian Matematika untuk Mulai Belajar Machine Learning

Halo Teman-teman!


Tulisan ini adalah bagian pertama dari seri yang membahas tentang apa saja keahlian (skill) yang dibutuhkan untuk mulai belajar tentang Machine Learning, kali ini kita membahas tentang pelajaran matematika.


Jangan lupa cek juga artikel lainnya dalam seri ini:

  1. Keahlian Pemrograman Python untuk Mulai Belajar Machine Learning


[[table-content]]


Sejumlah pembahasan matematika berikut ini diajarkan juga sebagai pelajaran di sekolah menengah, sehingga kebanyakan pembaca tentu sudah pernah pelajari. Pembahasan berikut mencakup sebagian pelajaran matematika yang sering digunakan dalam Machine Learning.


Persamaan Garis Lurus (Linear Equation)


Seperti tercermin dari namanya yakni "garis lurus" dan "persamaan", yang dibentuk juga dengan variabel (dalam hal ini kita akan membatasi pada 2 variabel) dan koefisien yang berupa angka.


Sebagai contoh misalnya kita punya persamaan:

$$y = 2x + 1$$


Artinya jika kita punya nilai untuk variabel x antara lain: 1, 2, 3.

Kita akan mendapatkan nilai untuk variabel y sebagai: 3, 5, 7.


Dalam bentuk gambar koordinat antara x dan y sebagai berikut:


plot-y-2x-1.pngplot y=2x+1.png


Pada persamaan garis tersebut di atas, memiliki kemiringan (slope) atau gradient sama dengan 2.


Contoh penggunaan persamaan garis lurus pada Machine Learning


Misalnya saat kita punya data harga rumah berdasarkan jumlah kamarnya:

  • Rumah dengan 1 kamar harganya 300 juta
  • Rumah dengan 2 kamar harganya 500 juta
  • Rumah dengan 3 kamar harganya 700 juta
  • Berapakah harga rumah dengan 5 kamar?


Algoritma Machine Learning pada contoh tersebut disebut sebagai regresi linear.


Aljabar Linear


Pelajaran Aljabar Linier adalah fondasi utama dari pemrosesan data di Machine Learning, dimana kita mempelajari tentang skalar, vektor, matriks dan tensor (tak terbatas hanya 1, 2 atau 3 dimensi).


Skalar, Vektor dan operasinya


Skalar hanya berupa angka biasa, misalnya ya angka bulat atau angka pecahan.

$$ 1 + 2 = 3$$

$$ 2.5 \text{x} 3.0 = 7.5$$


Vektor adalah kumpulan angka, dalam hal ini 1 dimensi, bisa digambarkan sebagai (satu) baris ataupun (satu) kolom.

Misalnya berikut adalah sebuah vector x.

$$x = \begin{bmatrix} 1 & 2 & 3\end{bmatrix}$$


Perkalian skalar dengan vektor akan mengalikan seluruh elemen dari vektor.


$$2 * x = \begin{bmatrix} 2 & 4 & 6\end{bmatrix}$$


Matriks dan operasinya


Jika sebelumnya sudah tau implementasi vektor sebagai kumpulan nilai 1 dimensi, berikutnya untuk kumpulan nilai 2 dimensi disebut dengan matriks. Jadi matriks memiliki baris juga kolom.


Suatu matriks memiliki atribut bentuk (shape) yang menggambarkan isi dari matriks tersebut berapa baris dan berapa kolom. Misalnya matriks A berikut memiliki bentuk 2 baris 3 kolom, ditulis sebagai (2, 3).

$$A = \begin{bmatrix} 1 & 2 & 3 \\ 2 & 4 & 7\end{bmatrix}$$


Penjumlahan Matriks


$$\begin{bmatrix} 2 & 3 \\ 4 & 7\end{bmatrix} + \begin{bmatrix} 5 & 6 \\ 8 & 9\end{bmatrix} = \begin{bmatrix} 7 & 9 \\ 12 & 16\end{bmatrix}$$


Perkalian Matriks

Ada dua jenis perkalian pada matrix, perkalian cross dan perkalian dot.


Perkalian cross (cross product)

$$\begin{bmatrix} 2 & 3 \\ 4 & 7\end{bmatrix} \text{x} \begin{bmatrix} 5 & 6 \\ 8 & 9\end{bmatrix} = \begin{bmatrix} 10 & 18 \\ 32 & 63\end{bmatrix}$$


Perkalian dot (dot product)

Setiap elemen baris pada matrix yang pertama akan dioperasikan kepada elemen kolom pada matrix yang kedua.

$$A = \begin{bmatrix} 1 & 2 & 3 \\ 2 & 4 & 7\end{bmatrix}$$

$$B = \begin{bmatrix} 3 & 4 \\ 5 & 6 \\ 8 & 9\end{bmatrix}$$

$$A \cdotp B = \begin{bmatrix} 1 & 2 & 3 \\ 2 & 4 & 7\end{bmatrix} \cdotp \begin{bmatrix} 3 & 4 \\ 5 & 6 \\ 8 & 9\end{bmatrix} = \begin{bmatrix} 37 & 43 \\ 82 & 95\end{bmatrix}$$


Penjelasan perhitungannya:

  • Baris pertama matriks A dioperasikan dengan kolom pertama matriks B

$$(1 * 3) + (2 * 5) + (3 * 8) = 37$$

  • Baris pertama matriks A dioperasikan dengan kolom kedua matriks B

$$(1 * 4) + (2 * 6) + (3 * 9) = 43$$

  • Baris kedua matriks A dioperasikan dengan kolom pertama matrix B

$$(2 * 3) + (4 * 5) + (7 * 8) = 82$$

  • Baris kedua matrix A dioperasikan dengan kolom kedua matrix B

$$(2 * 4) + (4 * 6) + (7 * 9) = 95$$


Matriks A memiliki bentuk 2 baris 3 kolom, ditulis sebagai (2, 3).

Matriks B memiliki bentuk 3 baris 2 kolom, ditulis sebagai (3, 2).

Hasil perkalian dot antara (2, 3) dengan (3, 2) adalah (2, 2).

Perhatikan bahwa jumlah kolom pada matriks pertama (A) harus sama dengan jumlah baris pada matriks kedua (B).


Ilustrasi diambil dari wikipedia mengenai perkalian dot.

Matrix-multiplication-qtl1.jpgMatrix_multiplication_qtl1.jpg


Matriks Identitas


Identitas di sini seperti halnya kalo skalar bernilai 1, angka berapapun kalo dikalikan dengan identitas akan tetap bernilai angka itu sendiri.

$$ 7 \text{x} 1 = 7$$


Matriks Identitas 2 dimensi:

$$\begin{bmatrix} 1 & 0 \\ 0 & 1\end{bmatrix}$$

Matrix Identitas 3 baris 3 kolom:

$$\left[\begin{matrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1\end{matrix}\right]$$


Perkalian matrix dengan identitas:

$$\begin{bmatrix} 2 & 3 \\ 4 & 7\end{bmatrix} \cdotp \begin{bmatrix} 1 & 0 \\ 0 & 1\end{bmatrix} = \begin{bmatrix} 2 & 3 \\ 4 & 7\end{bmatrix}$$


Termasuk juga dari identitas yakni perkalian antara suatu angka dan kebalikannya, akan menghasilkan 1 (identitas).

$$ 7 \text{x} \frac{1}{7} = 1$$


Transpose dari Matriks


Proses transpose akan mengubah elemen pada baris dari suatu matriks menjadi elemen kolom pada matriks tersebut.


$$A = \begin{bmatrix} 1 & 2 \\ 3 & 4\end{bmatrix}$$


Transpose dari matriks A adalah


$$A^{T} = \begin{bmatrix} 1 & 3 \\ 2 & 4\end{bmatrix}$$


Contoh penggunaan Matriks pada Machine Learning


Misalnya untuk merepresentasikan sebuah gambar.


mnist-matrix-2.pngmnist-matrix-2.png


Gambar tersebut dari dataset pengenalan tulisan tangan untuk angka (handwritten digits MNIST). Terlihat bahwa gambar angka 2 tersebut representasi gambar 8 piksel x 8 piksel, dituliskan sebagai matriks dengan dimensi 8 x 8.

Sebuah piksel diwakili oleh angka 0-16, dimana 0 adalah putih (paling terang) dan 16 adalah hitam (paling gelap), sedangkan semua nilai di antaranya memiliki tingkat warna abu-abu (grayscale) yang meningkat.


Logaritma dan Bilangan Natural e


Logaritma adalah fungsi kebalikan (inverse) dari eksponensial.

Misalnya untuk perhitungan eksponensial (untuk basis bilangan 10) sebagai berikut:

$$ 10^{3} = 10 * 10 * 10 = 1000 $$

Kebalikannya, untuk menghitung logaritma (untuk basis bilangan 10) sebagai berikut:

$$ \log_{10}(1000) = 3$$


Beberapa sifat dari logaritma yang menyederhanakan kalkulasi (salah satunya dari pemrosesan Machine Learning sebagai berikut.

Dicontohkan untuk logaritma dengan basis bilangan b.


Perkalian (Product) pada Logaritma

Kompleksitas perkalian dapat disederhanakan menjadi penjumlahan.

$$\log_{b}(x * y) = \log_{b}(x) + \log_{b}(y)$$


Pembagian (Quotient) pada Logaritma

Kompleksitas pembagian dapat disederhanakan menjadi pengurangan.

$$\log_{b}(\frac{x}{y}) = \log_{b}(x) - \log_{b}(y)$$


Basis bilangan yang sering digunakan untuk logaritma antara lain:


Berikut adalah grafik diambil dari wikipedia yang menggambarkan logaritma dari ketiga basis bilangan tersebut.

Logarithm-plots.pngLogarithm_plots.png


Nilai logaritma dari 1 untuk semua basis bilangan akan menghasilkan angka 0.

$$\log_{b}(1) = 0$$


Logaritma dengan bilangan natural ini sering digunakan di bidang matematika dan pemrograman, sehingga salah satunya di Machine Learning.

Logaritma natural dituliskan juga sebagai:

$$\log_{e}(x) = \ln(x)$$


Pada grafik di atas tergambar juga bahwa logaritma natural dari e adalah 1.

$$\log_{e}(e) = \ln(e) = 1$$


Contoh penggunaan bilangan natural e pada Machine Learning

Dalam Machine Learning, tepatnya pada implementasi Neural Networks kita akan menggunakan fungsi Sigmoid sebagai salah satu dari fungsi aktivasi. Contoh umum dari fungsi Sigmoid adalah fungsi Logistic dengan formula:

$$S(x) = \frac{1}{1+e^{-x}} = \frac{e^{x}}{e^{x}+1}$$


Kalo digambarkan, diambil dari wikipedia, bentuknya akan seperti kurva huruf S.

Logistic-curve.jpgLogistic_curve.jpg


Sekian dulu nih pelajaran matematika yang kita bahas kali ini..

Terima kasih sudah membaca sampai habis, tolong berikan masukan/komentar untuk tulisan ini yaa..


Seluruh referensi berikut bersifat bebas/terbuka (free/open).


Referensi:

  • "Deep Learning". 2016. Ian Goodfellow, Yoshua Bengio and Aaron Courville. Published by MIT Press. https://www.deeplearningbook.org/
  • "Mathematics for Machine Learning". 2020. Marc Peter Deisenroth, A. Aldo Faisal, and Cheng Soon Ong. Published by Cambridge University Press. https://mml-book.github.io/


Foto oleh Chris 73.

machine-learning matematika
avatar oonid

Ditulis oleh @oonid

"saya suka matematika. saya belajar dengan cara berbagi."