### 2.5 Gaussian Distribution

Distribusi adalah fenomena acak atau deskripsi matematis suatu _random variable_.
Distribusi paling terkenal (mungkin juga terpenting) adalah _bell curve_
atau distribusi normal. Distribusi normal adalah bentuk khusus dariGaussian
distribution. Ada beberapa macam distribusi yang akan dibahas pada bab
ini, yaitu: _Univariate Gaussian_, _Multivariate Gaussian_, danGaussian Mixture
Model. Pertama kita bahas _Univariate Gaussian_ terlebih dahulu.
Disebut _univariate_ karena distribusinya bergantung padasatu _input_ variabel,
misalkanx. Distribusi univariate Gaussian dikarakteristikkan oleh variabelx, _mean_ (μ)
dan _variance_ (σ^2 ) diberikan pada persamaan 2.10.μdanσ^2
adalah rata-rata dan _variance_ untuk kumpulan data. Karena nilaiμdanσ^2
bergantung padax, maka kita dapat menganggap bahwa _univariate gaussian_
bergantung pada satu _random variable_ saja yaitux.

```
N(x|μ,σ^2 ) =
```
#### 1

#### √

```
2 πσ^2
```
```
e
```
```
(
−(x 2 −σμ 2 )^2
```
```
)
(2.10)
```
Perhatikan Gambar 2.3,xadalah absis dan nilaiNuntukxtertentu (persamaan
2.10) adalah ordinat pada kurva ini. Bentuk distribusi berubah-ubah
sesuai dengan nilai rata-rata ( _mean_ ), serta _variance_. Semakin besar _variance_ nya,
maka kurva distribusi semakin lebar (seperti yang dijelaskan sebelumnya).
Untuk menggeser-geser kurva ke kiri maupun ke kanan, dapat dilakukan
dengan menggeser nilai _mean_. Untuk mencari nilai pada suatu interval tertentu,
cukup mengintegralkan fungsi pada interval tersebut. Nilai integral
fungsi dari−∞, hingga∞adalah satu.
_Multivariate Gaussian_ adalah distribusi gaussian yang bergantung pada
lebih dari satu _random variable_. Sedangkan _Gaussian Mixture Model_ (GMM)
adalah gabungan dari satu atau lebih distribusi Gaussian. Masing-masing distribusi
Gaussian memiliki bobot yang berbeda di GMM. Konon katanya,

(^1) source:wikimedia.org by Inductiveload

28 2 Fondasi Matematis

```
Gambar 2.3: Univariate Gaussian.^1
```
GMM dapat me _model_ kan fungsi apapun [12]. Ilustrasinya diberikan pada
Gambar 2.4 yang tersusun dari 3 buah _Univariate gaussian_. Distribusi populasi
berwarna merah, sedangkan GMM berwarna biru.

```
Gambar 2.4: Gaussian Mixture Model.^2
```


### 2.4 Bayesian Probability

Pada subbab sebelumnya, kita menghitung probabilitas dengan frekuensi kejadian
yang dapat diulang. Pada pandangan Bayesian, kita ingin menguantifikasi
ketidakpastian untuk kejadian yang mungkin sulit untuk diulang. Misalkan
kita ingin tahu, seberapa peluang Mars dapat dihuni. Ini adalah sesuatu
yang tidak dapat dihitung dengan frekuensi, maupun sebuah kejadian yang
dapat diulangi (pergi ke mars, lihat berapa orang yang hidup). Akan tetapi,
tentunya kita memiliki sebuah asumsi awal ( _prior_ ). Dengan sebuah alat canggih
baru, kita dapat mengumpulkan data baru tentang Mars. Dengan data
tersebut, kita mengoreksi pendapat kita tentang Mars ( _posterior_ ). Hal ini
menyebabkan perubahan dalam pengambilan keputusan.
Pada keadaan ini, kita ingin mampu menguantifikasi ekspresi ketidakpastian;
dan membuat revisi tentang ketidakpastian menggunakan bukti baru [8].
Dalam Bayesian, nilai probabilitas digunakan untuk merepresentasikan derajat
kepercayaan/ketidakpastian.

```
P(x|y) =
P(y|x)P(x)
P(y)
```
#### (2.8)

P(x) disebut _prior_, yaitu pengetahuan/asumsi awal kita. Setelah kita
mengobservasi fakta baruy(dapat berupa sekumpulan data atau satu _data_
_point_ / _event_ ), kita mengubah asumsi kita.P(y|x) disebut _likelihood function_.Likelihood
_function_ mendeskripsikan peluang data, untuk asumsi/ pengetahuan
tentang x yang berubah-ubah (xsebagai parameter yang dapat
diatur). Dengan _likelihood function_ tersebut, kita mengoreksi pendapat akhir
kita yang dapat digunakan untuk mengambil keputusan ( _posterior_ ). Secara
umum probabilitas Bayesian mengubah _prior_ menjadi _posterior_ akibat adanya
kepercayaan baru ( _likelihood_ ).

```
_posterior_ ∝ _likelihood_ × _prior_ (2.9)
```
Teori ini hebat karena kita dapat mentransformasiP(x|y) dimanaxdependen
terhadapymenjadi bentukP(y|x) yang manaydependen terhadapx.
Transformasi ini sangat berguna pada berbagai macam persoalan.
Pada umumnya, untuk mengestimasi _likelihood_, digunakanmaximum likelihood
estimator; yang berarti mengatur nilaixuntuk memaksimalkan nilai
P(y|x). Dalam literatur _machine learning_, banyak menggunakannegative log
of likelihood function[8]. Ingat kembali nilai probabilitas 0≤P≤1. Kadangkala,
nilai dibelakang koma (0.xxxx) sangatlah panjang, sehingga dapat terjadiunderflowpada
komputer. Kita menggunakan nilai logaritma probabilitas
untuk menghindariunderflow. Nilai probabilitas 0≤P≤1 membuat nilai
logaritmanya sebagaian besar negatif, secara monotonik bertambah, maka
memaksimalkan nilai _likelihood_ ekuivalen dengan meminimalkan negatif logaritma
probabilitas.

```
2.5 Gaussian Distribution 27
```
Perhatikan kembali persamaan 2.8, secara intuitif, _posterior_ dipengaruhi
_prior_, artinya bergantung pada sampel yang kita punya, karena _prior_ didapatkan
atau diestimasi berdasarkan sampel. Hal ini berlaku padamachine
_learning_, kualitas model yang dihasilkan bergantung pada kualitas training
_data_.
Pada umumnya, kita tidak mengetahui seluruh informasi tentang situasi
tertentu dan tidak mengetahui seluruh informasi probabilitas. Sebagai contoh,
probabilitasP(x|y) dapat dihitung dengan PP(x,y(x)). Tetapi, kita tidak
tahu seberapa banyak kejadian (x,y) pada saat bersamaan. Oleh sebab itu,
kita bisa menggunakan teori bayes untuk menghitung probabilitas dengan
informasi lain yang kita tahu.


### 2.11 Bacaan Lanjutan

Untuk lebih mengerti, silahkan membaca buku _statistical mechanis_ oleh Hitoshi
Nishimori [17], buku probabilitas dan statistika oleh Walpole et al. [18]
atau Brian Caffo [10], buku aljabar linear oleh Gilbert Strang [19] dan buku
_statistical learning theory_ oleh James et al. [20].

```
2.11 Bacaan Lanjutan 37
```


### 2.2 Probability Density Function

_Probability density function_ dikenal juga dengan istilah distribusi, yaitu tentang
persebaran nilai. Sebagai contoh, penulis menceritakan pelajaran di sekolah.
Terdapat ujian mata pelajaran di kelas yang beranggotakan 10 siswa,
diberikan pada Tabel 2.1. Terdapat 3 orang anak mendapatkan nilai 50, 2
orang anak mendapatkan nilai 75 dan 80, 1 orang anak mendapatkan nilai

24 2 Fondasi Matematis

```
id nilai
1 50
2 75
3 80
4 100
5 50
6 50
7 75
8 80
9 40
10 10
```
```
Tabel 2.1: Contoh daftar nilai siswa.
```
100, 1 orang anak mendapat nilai 40, serta 1 orang anak mendapatkan nilai
10.

```
Histogram of data
```
```
Nilai
```
```
Probabilitas
```
```
20 40 60 80 100
```
```
0.0
```
```
0.1
```
```
0.2
```
```
0.3
```
```
0.4
```
```
Gambar 2.2: Persebaran probabilitas nilai siswa Tabel 2.1.
```
Guru ingin mengetahui persebaran (distribusi) nilai ujian untuk menentukan
batas kelas nilai menggunakan _quantile_. Grafik persebaran nilai mengkuantifikasi
seberapa mungkin suatu siswa mendapat nilai tertentu, dapat dilihat
pada Gambar 2.2. Grafik ini disebut sebagai distribusi. Fungsi yang menghasilkan
distribusi tersebut disebut _probability density function_. Apabila kita

```
2.3 Expectation dan Variance 25
```
menjumlahkan probabilitas (probabilitas siswa mendapat nilai 0–100) nilainya
adalah 1.
Ini adalah contoh untuk data diskrit, tetapi sering kali kita berurusan
dengan data kontinu. Untuk mengetahui nilai probabilitas dari himpunan
_event_ /kejadian, kita dapat mengintegralkan kurva distribusi kejadian pada
interval tertentu. Ciri _probability density function_, nilai dibawah kurva pada
interval−∞sampai∞adalah 1, i.e.,p(x)≥0;

#### ∫∞

```
−∞p(x)dx= 1.
```


### 2.1 Probabilitas

Di dunia ini, ada banyak hal yang tidak pasti (uncertain). Ssungguhnya,machine
_learning_ berurusan dengan ketidakpastian ( _uncertainty_ ). Dengan begitu,machine
_learning_  memiliki kaitan yang sangat erat dengan statistika.
Probabilitas menyediakan _framework_ untuk kuantifikasi dan manipulasi ketidakpastian
[8]. Mari kita lihat contoh sederhana. Terdapat dua buah kotak

22 2 Fondasi Matematis

berwarna merah dan berwarna biru. Pada kotak merah terdapat 3 _apel_ dan
1 jeruk. Pada kotak biru, terdapat 2 _apel_ dan 4jeruk, kita ingin mengambil
buah dari salah satu kotak tersebut. Ilustrasi persoalan dapat dilihat pada
Gambar 2.1. Dalam hal ini, kotak adalah _random variable_. _Random variable_
k(melambangkan kotak) dapat bernilaimerahataubiru. Begitu pula dengan
buah, dilambangkan dengan variabelb, dapat bernilai _apel_ ataujeruk.

```
Gambar 2.1: Kotak apel dan jeruk.
```
Saat kita mengambil buah dari kotak biru, peluang untuk memilih _apel_
bernilai^26 , sedangkan peluang untuk memilihjerukbernilai^46 ; kita tulis probabilitas
ini sebagaiP(b= _apel_ ) =^26 ; danP(b=jeruk) =^46. Artinya, jika kita
mengambil buah dari kotak biru, mungkin kita mendapatkan jeruk. Dengan
mengkuantifikasi ketidakpastian, kita bisa mengatur ekspektasi. Nilai suatu
probabilitas harus lebih besar sama dengan nol sampai kurang dari atau sama
dengan satu (0≤P ≤1). Nilai nol berarti suatu kejadian tidak mungkin
muncul, sementara nilai satu berarti suatu kejadian pasti terjadi.
Lalu sekarang ada pertanyaan baru; pada suatu percobaan, berapakah
probabilitas mengambil sebuah _apel_ dari kotak biruatausebuahjerukdari
kotak merah. Hal ini dituliskan sebagaiP((k=biru,b= _apel_ )atau(k=
merah,b=jeruk)). Nilai probabilitas tersebut dapat dihitung dengan

```
P((k=biru,b= _apel_ )∨(k=merah,b=jeruk))
=P(k=biru,b= _apel_ ) +P(k=merah,b=jeruk)
```
#### (2.1)

- P(k=biru,b= _apel_ ) disebut _joint probability_, yaitu probabilitas kejadian
    yang dipengaruhi oleh beberapa variabel (kondisi untuk kedua variabel
    terpenuhi).
- P(k=biru,b= _apel_ ) +P(k=merah,b=jeruk) disebutaturan tam-
    bah.

Penting untuk diingat bahwa hasil operasi apapun terhadap probabilitas (baik
tambah, kurang, kali, atau bagi) haruslah lebih besar sama dengan nol sampai
kurang dari atau sama dengan satu (0≤P≤1).

```
2.2 Probability Density Function 23
```
Misalkan terdapat percobaan lain, kali ini kamu mengambil 1 buah. Kamu
ingin mengetahui berapakah probabilitas untuk mengambil buah _apel_ kotak
mana saja. Hal ini dihitung dengan persamaan 2.2.

```
P(b= _apel_ ) =
```
#### ∑I

```
i=1
```
```
P(k=ki,b= _apel_ ) (2.2)
```
Aturan tambah seperti ini disebut _marginal probability_ karena hasilnya
didapat dengan menjumlahkan probabilitas seluruh kemungkinan nilai pada
variabel tertentu (buah) dengan mengontrol variabel lainnya (kotak).
Kemudian, kamu ingin melakukan percobaan lain. Kali ini kamu mengambil
2 buah sekaligus dari kedua kotak. Kamu ingin mengetahui berapakah
probabilitas mengambil buah _apel_ yang berasal dari kotak birudanbuah
jerukyang berasal dari kotak merah. Dalam kasus ini, kejadiannya adalah
saling bebas ( _independent_ ), artinya mengambil buah dari kotak biru tidak
akan mempengaruhi hasil pengambilan dari kotak merah (dan sebaliknya).
Apabila kedua _random variable_ xdanybersifat _independent_ (tidak bergantung
satu sama lain), makaP(x=X,y=Y) =P(X)×P(Y). Permasalahan
mengambil buah dapat dihitung dengan persamaan 2.3.

```
P((k=biru,b= _apel_ )∧(k=merah,b=jeruk))
=P(k=biru,b= _apel_ )×P(k=merah,b=jeruk)
```
#### (2.3)

Aturan ini disebutaturan kali.
Untuk _joint probability_, secara umum dapat ditulis sebagaiP(x,y), yaitu
peluangxdanymuncul bersamaan. Apabila kedua variabelxdanytidak saling
bebas, maka keduanya disebut _dependent_. Artinyaxdanysaling mempengaruhi.
Apabila suatu variabelxdikondisikan ( _conditioned_ ) oleh variabel
lain (misaly). Maka probabilitasxadalah _conditional probability function_,
ditulisP(x|y). Artinya probabilitasxyang dikondisikan olehy.P(x|y) dapat
dihitung dengan persamaan 2.4, yaitu peluang kejadianxdanymuncul
bersamaan dibagi dengan peluang kejadiany. Apabilaxternyata tidak dikondisikan
oleh variabely, makaP(x|y) =P(x).

```
P(x|y) =
P(x,y)
P(y)
```
#### (2.4)


### 2.3 Expectation dan Variance

Salah satu operasi paling penting dalam probabilitas adalah menemukan nilai
rata-rata ( _average_ ) sebuah fungsi [8]. Hal ini disebut menghitung ekspektasi
( _expectation_ ). Untuk sebuah fungsif(x) dengan distribusi probabilitas _random_
variableadalahp(x), nilai expectation diberikan pada persamaan 2.5.

```
E(f) =
```
#### {∑

```
∫ xp(x)f(x); diskrit
p(x)f(x)dx; kontinu
```
#### (2.5)

Dalam kasus nyata, misalkan diberikanNbuah sampel, _random variable_
xdan fungsif(x), dimana sampel tersebut diambil dengan distribusi tertentu
yang kita tidak ketahui, maka fungsi untuk menghitung nilai _expectation_ menjadi
persamaan 2.6, dimanaximerepresentasikan data ke-i( _point_ ).

```
E(f)'
```
#### 1

#### N

#### ∑N

```
i=1
```
```
f(xi) (2.6)
```
Perhatikan, persamaan ini sama dengan persamaan untuk menghitung
rata-rata ( _mean_ atauμ) seperti yang sudah kamu pelajari di SMA. Untuk
mengetahui seberapa variasi nilaif(x) di sekitar nilai rata-ratanya, kita
menghitungnya mengunakan _variance_, disimbolkan denganvar(f) atauσ^2
(persamaan 2.7).

```
σ^2 =var(f) =E
```
#### (

```
(f(x)−E(f))^2
```
#### )

#### (2.7)

Bila nilai _variance_ tinggi, secara umum banyak variabel yang nilainya jauh
dari nilai rata-rata. Interpretasi secara “geometris” mata, berarti distribusinya
semakin “lebar” seperti pada Gambar 2.3. Untuk fungsi dengan lebih dari satu
_random variable_, kita menghitung _covariance_. _Covariance_ adalah _variance_
untuk kombinasi variabel.
Akar dari _variance_, yaitu

#### √

σ^2 =σdisebut _standard deviation_ (sering
disingkat “SD”). SD melambangkan seberapa jauh jarak dari masing-masing
_data point_ xidengan rata-rataμ. SD cukup penting karena merupakan ukuran
“persebaran” ( _spread out_ ) data.

26 2 Fondasi Matematis


### 2.6 Apakah Karakteristik Sampel Mencerminkan Populasi?

Sekarang bayangkan kita diberikanM buah data (diskrit) hasil observasi.
Diasumsikan observasi dihasilkan oleh distribusi univariate GaussianNdengan
rata-rataμdan _variance_ σ^2. Ilustrasi diberikan pada Gambar 2.5. Setiap
_data_  diambil secara independen dari distribusi yang sama, disebut _independent_
and identically distributed(iid). Kita tahu bahwa data yang in-

(^2) [http://dirichletprocess.weebly.com/ _clustering_.html](http://dirichletprocess.weebly.com/ _clustering_.html)

```
2.6 Apakah Karakteristik Sampel Mencerminkan Populasi? 29
```
```
− 2 − 1 0 1 2
```
```
0.05
```
```
0.10
```
```
0.15
```
```
0.20
```
```
0.25
```
```
0.30
```
```
0.35
```
```
0.40
```
```
x
```
```
N
```
```
𝑥!
```
Gambar 2.5: Contoh _sampling_ dari distribusi normal. Titik berwarna merah
melambangkan sampel ( _instance_ ).

dependen, apabila dihitung probabilitasnya maka tersusun atas probabilitas
masing-masing data, seperti pada persamaan 2.11.

```
p(x|μ,σ^2 ) =
```
#### ∏M

```
i=1
```
```
N(xi|μ,σ^2 ) (2.11)
```
Kita ingin mencari tahu bagaimana distribusi yang sebenarnya. Untuk
itu, kita harus mencari nilaiμdanσ^2 padap(x|μ,σ^2 ). Kita dapat menggunakan
teknik _maximum likelihood estimation_, untuk mengestimasi parameter
yang memberikan distribusi (silahkan dieksplorasi lebih lanjut). Secara empiris,
ternyata _mean_ dari sampel dan _variance_ dari sampel (diberikan sampel
denganMyang cukup banyak) cukup baik untuk mengestimasi _mean_ dan
_variance_ dari distribusi sebenarnya (persamaan 2.12).

```
μ≈μsample=
```
#### 1

#### M

#### ∑M

```
i=1
```
```
xi; σ^2 ≈σ^2 sample=
```
#### 1

#### M

#### ∑M

```
i=1
```
```
(xi−μsample)^2 (2.12)
```
Pada statistik, apabila kita mengetahui (atau mengasumsikan) bahwa suatu
kumpulan sampel diambil dari suatu distribusiq, maka kita bisa mengestimasi
distribusiqmenggunakan sampel yang ada sebagaip. Apabila sampel
yang diberikan berjumlah sangat banyak (M→ ∞), makapakan semakin
mirip denganq(konvergen). Kami menya _rank_ an pembaca untuk menonton
kuliah _statistical inference_ oleh Professor Brian Caffo, dimana konsep mengestimasi _mean_ dan _variance_ populasi
diestimasi menggunakan _mean_ dan _variance_ sampel
dijelaskan dengan sangat baik (dengan banyak ilustrasi).

30 2 Fondasi Matematis

Hal ini memiliki interpretasi (secara kasar) yang cukup penting padamachine
_learning_. Masih ingat materi bab 1? Pada _machine learning_, kita juga
mengestimasi sesuatu yang kita tidak ketahui (populasi) dengan sampel data
yang kita miliki. Kita anggap populasi memiliki karakteristik yang sama dengan
sampel data. Semakin banyak sampel data yang kita miliki, maka semakin
bagus estimasi kita terhadap populasi (jumlah dataset menjadi sangat pent-
ing).
Dengan bahasa lebih manusiawi, misal kamu diminta untuk membuat
_model_  klasifikasi berita otomatis untuk outlet berita tertentu. Populasi data
yang ada yaitu: (1) berita yang sudah di- _publish_ selama ini dan (2) berita di
masa akan datang. Sampel yang kita punya adalah (1), yaitu berita masa lalu.
Kita asumsikan bahwa sampel ini dapat mencerminkan karakteristik berita
yang akan datang. Sehingga, model yang dilatih dengan data (1) dapat digunakan
untuk memproses data (2).
Walau demikian, asumsi bahwa sampel berita yang dimiliki memiliki
karakteristik yang sama dengan berita yang akan muncul di masa akan datang
belum tentu tepat di dunia nyata. Sebagai contoh, kata _data science_ belum
digunakan pada tahun 1990an. Kosa kata selalu berkembang sesuai jaman.
Bagaimana jika editor outlet berita bersangkutan mengundurkan diri dan
diganti dengan editor lainnya? Gaya penulisan bisa saja berubah. Artinya,
karaketeristik data sampel yang kita miliki hanya dapat mencerminkan data
masa depan apabila banyak kondisi tetap sama, i.e., (1) dan (2) diambil dari
distribusi yang sama. Sedangkan pada kenyataan, (1) dan (2) bisa jadi diambil
dari distribusi yang berbeda. Pada kasus ini, model pembelajaran mesin
yang dihasilkan menjadi _obsolete_, dan kita harus membuat model yang baru.
Melatih atau membuat model baru menjadi peling untuk merefleksikan perubahan
pada dunia.


### 2.9 Teori Informasi

Kami tidak akan membahas bagian ini terlalu detail, jika kamu membaca
buku, topik ini sendiri bisa mencapai satu buku [16]. Mudah-mudahan bab
ini dapat memberikan gambaran (serius, ini sekedar gambaran!).Information
Theory/Teori Informasi menjawab dua pertanyaan fundamental, pertama:
bagaimana cara kompresi data terbaik (jawab: _entropy_ ); kedua: apakah cara
transmisi komunikasi terbaik (jawab: channel capacity) [16]. Dalam _statistical_
_learning_  theory, fokus utama adalah menjawab pertanyaan pertama, yaitu
bagaimana melakukan kompresi informasi. Contoh aplikasi _entropy_ adalah
_decision tree learning_.
Pada _machine learning_, kita ingin fitur pembelajaran yang digunakan
mampu melambangkan _information source properties_. Artinya, kita ingin
memilih fitur yang memuat informasi terbanyak (relatif terhadapinformation
source). Karena hal tersebut, mengerti entropy menjadi penting. Ada sebuah
st _rate_ gi pemilihan fitur ( _feature selection_ ) dengan membangun _decision tree_.
Awalnya kita bentuk _training data_ dengan semua kemungkinan fitur, kemudian
mengambil beberapa fitur yang dekat dengan _root_. Hal tersebut dimaksudkan
untuk mencari fitur yang memuat banyak informasi. Kemudian, fitur
tersebut dapat dicoba pada algoritma learning lainnya. Detil akan dijelaskan
pada bab 6.

2.9.1 Entropy

Diberikan sebuah random variabelx, kita ingin mengetahui seberapa banyak
informasi yang kita dapatkan ketika kita mengobservasi sebuah nilai spesifik
xi. Kuantitas informasi yang kita dapatkan bisa dipandang sebagai “degree
of surprise” [8]. Misalkan kita mengetahui seorang temanAsering makan es
krim. Suatu ketika kita diberitahu bahwa dia sedang makan es krim, tentu
kita tidak heran lagi karena hal tersebut sudah lumrah. Tetapi, apabila kita
diberitahu bahwa temanAtidak memakan es krim yang diberikan teman
B(padahal kita tahu dia suka), maka akan ada efek “kaget”. Kasus kedua
memuat lebih banyak informasi karena suatu kejadian yang seharusnya tidak
mungkin, terjadi. Hal ini dikuantifikasi dengan persamaanShannon En-
tropy2.14.

```
S(x) =−
```
#### ∑N

```
i=1
```
```
p(xi)log(p(xi)) (2.14)
```
Mari kita ambil contoh dari Bishop [8]. Misalkan sebuah _random variable_
xmemiliki 8 kemungkinan kejadian yang kemungkinannya sama (yaitu^18 ).
_Entropy_ untuk kasus ini adalah (log dalam basis 2) diberikan oleh

#### S=− 8

#### 1

#### 8

```
log(
```
#### 1

#### 8

#### ) = 3 (2.15)

34 2 Fondasi Matematis

Sekarang mari kita ambil contoh dari [16]. Misalkan sebuah _random variable_ xmemiliki
8 kemungkinan kejadian{a,b,c,d,...,h}dengan peluang
1
2 ,

```
1
4 ,
```
```
1
8 ,
```
```
1
16 ,
```
```
1
64 ,
```
```
1
64 ,
```
```
1
64 ,
```
1
64
Maka _entropy_ -nya adalah 2. Dari contoh ini, kita tahu bahwa distribusi yang
_uniform_  memiliki _entropy_ yang lebih besar dibanding distribusi yang tidak
_uniform_. Banyaknya informasi sebanding denganturunnyanilai _entropy_.
Seperti yang telah diceritakan sebelumnya, _event_ yang memiliki “efek
kaget” memiliki banyak informasi. Dari sisi _information transmission_, dapat
diinterpretasikan kita dapat mengirimkan data sebuah distribusi dengan
jumlah bit lebih sedikit untuk distribusi yang uniform. Distribusi yang memberikan
nilai _entropy_ maksimal adalah distribusi Gaussian [8]. Nilai _entropy_
bertambah seiring _variance_ distribusi bertambah. Dari sisi fisika, kamu dapat
mempelajari _entropy_ pada _statistical mechanics_ ( _microstate_, _macrostate_ ).
Perhatikan, _entropy_ (persamaan 2.14) dan _cross entropy_ (persamaan 2.13)
memiliki persamaan agak berbeda (adanya distribusi asliq). Tetapi interpretasi
kedua formula adalah sama. Distribusi yang memiliki nilai cukup uniform
memiliki nilai _entropy_ / _cross entropy_ yang tinggi, sementara memiliki nilai
rendah untuk distribusi yang condong ke nilai tertentu ( _skewed_ ).

2.9.2 Relative Entropy dan Mutual Information

Kami harap kamu masih ingat materi bab 1, karena materi bagian ini juga
menyinggung kembali materi tersebut. Misalkan kita mempunyai data dengan
_probability density function_ q(x). Sebuah _learning machine_ mengaproksimasi
_data_  tersebut dengan _probability density function_ p(x). Ingat! _Machine learning_ adalah
pendekatan ( _approximation_ ). Ketika kita melakukan aproksimasi,
seringkali aproksimasi yang dilakukan tidaklah tepat seperti pada Gambar 2.6.
Tentunya kita ingin tahu seberapa bagus aproksimasi kita, untuk mengukurnya
terdapat sebuah perhitungan yang bernamaKullback-Leibler
Divergence(KL- _divergen_ ce). Secara konseptual, dirumuskan sebagai persamaan
2.16. Perlu diperhatikanKL(q||p) 6 =KL(p||q) (kecualip=q).

```
KL(q||p) =−
```
#### ∫

```
q(x)log
```
#### (

```
q(x)
p(x)
```
#### )

```
dx (2.16)
```
Persamaan 2.16 dapat diminimalkan jika dan hanya jikaq(x) =p(x). Kita
dapat menganggap KL- _divergen_ ce sebagai ukuran seberapa jauh aproksimasi
dan distribusi populasi. Akan tetapi, kita tidak mengetahuiq(x). Karena itu,
kita harus mengaproksimasi KL- _divergen_ ce. Misalkan kita diberikan _training_
_data_ x={x 1 ,x 2 ,...xn}yang kita asumsikan diambil ( _drawn_ ) dari suatu
distribusiq(x). Lalu kita membuat _learning machine_ p(x|w). Ekspektasi
terhadapq(x) dapat diaproksimasi dengan menggunakan data sampel ini, dituangkan
menjadi persamaan 2.17 [8].

```
KL(q||p)≈
```
#### 1

#### N

#### ∑N

```
i=1
```
```
(−log(p(xi|w)) + log(q(xi))) (2.17)
```

```
2.10 Matriks 35
```
```
Gambar 2.6: Information source vs learning machine.
```
KL- _divergen_ ce disebut juga sebagai _relative entropy_.^3 Dari sisi pemrosesan
informasi, KL- _divergen_ ce dapat diinterpretasikan sebagai berapa informasi
tambahan rata-rata untuk mengirimkan data distribusi dengan menggunakan
fungsi aproksimasi dibanding menggunakan distribusi sebenarnya,
seberapa pengurangan ketidakyakinan terhadap _posterior_ seiring diberikannya
_data_  observasi yang baru. Dengan kata lain,seiring diberikan observasi
yang baru, kita semakin yakin terhadap nilai posterior(semakin
banyak jumlah sampel yang kita miliki maka model lebih dapat dipercaya).
KL-Divergence = Cross Entropy - Entropy (buktikan!).^4


### Soal Latihan

14.1. Cold Start Problem

(a) Jelaskan apa itu _cold start problem_ pada sistem rekomendasi, serta bagaimana
cara menangani permasalahan tersebut!
(b) Pada teknik sistem rekomendasi manakah ( _content-based filtering_ atau
_collaborative filtering_ ) _cold start problem_ mungkin muncul? Mengapa?

14.2. Eksplorasi Sistem Rekomendasi
Bangunlah suatu sistem rekomendasi dengan teknik _collaborative filtering_
pada dataset MovieLens dengan memanfaatkan libraryrecommenderlab^5!

14.3. Peringkasan Dokumen

(a) Presentasikanlah di kelasmu, _paper_ sistem peringkasan dokumen otomatis
oleh Kupiec et al. (1995) [116]!^6 yang menggunakan _pipelined approach_ !
(b) Presentasikanlah di kelasmu, _paper_ sistem peringkasan dokumen otomatis
oleh Cheng and Lapata [121]!^7 yang menggunakan _single-view approach_ !
(c) Jelaskan perbedaan, kelebihan, dan kelemahan pendekatan-pendekatan
sistem peringkasan dokumen!

(^5) https://cran.r-project.org/web/packages/recommenderlab/index.html
(^6) https://dl.acm.org/citation.cfm?id=215333
(^7) [http://www.aclweb.org/anthology/P16-1046](http://www.aclweb.org/anthology/P16-1046)


### 14.4 Saran Buku Lanjutan

Penulis ingin memberikan beberapa rekomendasi bacaan pembelajaran mesin
selanjutnya (teoritis). Buku-buku berikut (diurutkan secara subjektif berdasarkan
kualitas konten dan kemudahan dimengerti):

1. _Deep Learning_ oleh Ian Goodfellow et al. [11]. Banyak yang mengganggap
buku ini sebagai “kitab” _deep learning_ modern. Buku ini juga mencakup
materi matematika dasar (e.g., aljabar linier) yang dibutuhkan untuk
mengerti _deep learning_.
2. _Neural Network Methods in Natural Language Processing_ oleh Goldberg
[1]. Buku ini ditujukan sebagai bahan transisi bagi peneliti bidang
pemrosesan bahasa alami untuk menggunakan metode _neural network_.
Apabila kamu tidak tertarik dengan pemrosesan bahasa alami, kamu bisa
membaca bab 1-5 pada buku ini sebagai pengenalan _neural network_.
3. _Pattern Recognition and Machine Learning_ oleh Bishop [8]. Menurut
penulis, banyak yang tahu buku ini karena dianggap sebagai “kitab”. Penjelasan
buku ini sangat matematis dan relatif berat untuk dimengerti.
Tetapi, kamu dapat menjadi _master_ apabila memahami seluruh materi
pada buku ini. Algoritma _machine learning_ yang disajikan juga relatif
lebih “klasik” dibanding rekomendasi pertama.
4. _Machine Learning_ oleh Tom Mitchel [4]. Buku ini memuat materimachine
_learning_ yang cukup “klasik”. Buku ini cocok sebagai materi pengenalan,
tapi relatif kurang dalam.
Sedikit tambahan pesan sponsor karena penulis berlatar belakang dari
bidang pemrosesan bahasa alami, penulis menya _rank_ an membaca buku-buku
(teoritis) berikut sebagai dasar pengetahuan pemrosesan bahasa alami (diurutkan
dari konten paling dasar):

```
1. _Foundations of Statistical Natural Language Processing_ oleh Christopher
D. Mannning dan Hinrich Schutze [64]. Buku ini dapat dideskripsikan
dengan satu kata,TOP. Buku ini memuat materi pemrosesan bahasa
alami dengan sudut pandang matematis, dapat dianggap sebagai _framework_ berpikir
yang modern.
2. _Speech and Language Processing_ oleh Daniel Jurafsky dan James H. Martin
[12]. Buku ini jauh lebih tebal dari buku pertama dan memuat materi
yang lebih luas. Penulis merekomendasikan buku ini untuk mengetahui
permasalahan-permasalahan pemrosesan bahasa alami.
3. _An introduction to Information Retrieval_ oleh Manning et al. [65]. Walaupun
berjududul _information retrieval_, penulis pertama kali mengenal konsep _embedding_ dari
buku ini. Buku ini ditulis dengan apik.
4. _Neural Network Methods in Natural Language Processing_ oleh Goldberg
[1]. Apabila kamu telah membaca buku-buku yang disebutkan sebelumnya,
kamu dapat membaca buku ini untuk transisi ke metode _neural_
_network_.
```

```
14.4 Saran Buku Lanjutan 225
```
Pada saat menulis buku ini, penulis berharap bisa menulis pada level diantara
buku Tom Mitchel [4] dan Bishop [8] yaitu cukup matematis, lumayan
mudah dipahami, dan lumayan dalam. Mudah-mudahan pembaca merasa tujuan
ini tercapai dan menikmati membaca buku ini. Sebagai kalimat penutup,
terimakasih sudah membaca sampai tahap ini.


### 14.2 Peringkasan Dokumen

Meringkas dokumen berarti mengerti keseluruhan isi teks/dokumen, kemudian
mampu menyampaikan kembalisebanyak/seakurat mungkinmaksud
dokumen asli, ke dalam bentuk yang lebih singkat [105, 106, 57]. Suatu
ringkasan harus lebih pendek dibanding dokumen asli. Dengan demikian, sulit
untuk dikatakan bahwa suatu ringkasan dapat memuat keseluruhan isi dokumen.
Karena itu, ringkasan hanya memuatsebanyak/seakurat mungkin
maksud dokumen asli, diberikan _constraint_ jumlah kata maksimum pada
ringkasan. Ada beberapa jenis peringkasan dokumen dilihat dari berbagai
sudut pandang, misal:

1. Banyaknya dokumen yang diringkas, meringkas satu dokumen (single-
    document summarization) [107] atau banyak dokumen (multi-document
    summarization) [108] menjadi satu ringkasan.
2. Indikatif atau Informatif. Indikatif berarti menyediakan _pointer_ ke bagian
    dokumen (misal membuat daftar isi). Informatif berarti meyampaikan se-
    banyak/seakurat mungkin maksud dokumen asli ke dalam bentuk lebih
    singkat. Pada masa sekarang, hampir seluruh riset peringkasan dokumen
    mengacu untuk menyediakan ringkasan yang informatif.
3. Domain. Hasil ringkasan bergantung pada domain dokumen, misalkan
    berita atau novel. Pada domain berita, hal yang penting untuk dimuat

220 14 Penerapan Pembelajaran Mesin

```
dalam ringkasan adalah 5W1H (what, who, when, whom, where, how) [109],
sementara pada novel mungkin kita ingin tahu kejadian-kejadian yang ada
(beserta urutannya).
```
4. Generik, _query-based_, atau _tailored_. Generik berarti menghasilkan ringkasan
    untuk umum, dalam artian tidak ada _target user_ secara spesifik, e.g.,re-
    viewbuku [105]. _Query-based_ artinya menghasilkan ringkasan dokumen
    berdasarkan _query_ yang diberikan _user_, i.e., ringkasan adalah informasi
    spesifik yang dibutuhkan oleh _user_ [110]. _Tailored_ berarti menyajikan
    informasi dengan tipe spesifik. Misalkan pada berita terdapat informasi
    5W1H, kita hanya ingin mencari tahu informasihow.
5. Ekstraktif [111] atau abstraktif [57]. Ekstraktif berarti ringkasan hanya
    memuat unit informasi yang ada di dokumen asli. Analoginya seperti
    memilih potongan dari dokumen asli sebagai ringkasan ( _copy_ ). Abstraktif
    berarti ringkasan dapat memuat unit informasi yang mungkin tidak ada
    di dokumen asli. Analoginya seperti mengerti dokumen kemudian menulis
    ulang (parafrase).
Hal terpenting untuk diingat adalah peringkasan dokumen (apa yang
diringkas, ringkasan harus memuat apa, dsb) sangat bergantung padatujuan
ringkasan(siapa pembaca ringkasan, untuk apa ringkasan dihasilkan).
Diktat ini akan membahas _framework_ (kerangka kerja/berpikir) peringkasan
dokumen dan bagaimana _machine learning_ membantu peringkasan dokumen.
Secara umum, ada beberapa tahap pada proses peringkasan dokumen secara
otomatis, terlepas dari tipe peringkasan dokumen yang dijabarkan [105,
112, 113, 106, 114, 109, 108, 107, 57, 115]:

1.Representation– Melakukan pemisahan dan representasi unit informasi;
pada umumnya adalah kalimat, kata, atau frase. Dalam artian, kita menganggap
dokumen tersusun atas sekuens kalimat, kata, atau frase. Kita
potong-potong unit informasi pada dokumen lalu, unit informasi dapat direpresentasikan
sebagai vektor untuk tiap unitnya [116]. Kita pun dapat
menggali hubungan antara unit informasi (misal direpresentasikan sebagai
graf) untuk kemudian mencari unit mana yang sentral [109, 117].
2.Filtering– Menyaring informasi. Unit manakah yang penting/tidak penting.
Unit mana yang dibutuhkan/tidak dibutuhkan. Unit mana yang
relevan/tidak relevan. Unit mana yang representatif/tidak representatif.
Teknik menyaring informasi sangat bergantung pada representasi unit
pada tahap sebelumnya (e.g., vektor atau graf). Secara singkat, tahap ini
memilih unit informasi berdasarkan tujuan. Model pembelajaran mesin
_bias_ anya paling sering digunakan pada tahap ini.
3.Gene _ratio_ n – Menghasilkan ( _generate_ ) ringkasan. Bagian ini membutuhkan
pengetahuan mengenai bidang pemrosesan bahasa alami (natural
language processing) (NLP). Pada diktat ini, tidak akan dibahas.
Teknik _machine learning_ dapat berperan penting pada keseluruhan tahapan
diatas, khususnya tahap kedua ( _filtering_ ). Kami akan memberikan studi

```
14.2 Peringkasan Dokumen 221
```
kasus pada subbab 14.2.1 agar lebih jelas. Sistem peringkasan dokumen yang
membagi-bagi proses menjadi tahapan-tahapan tersebut disebut _pipelined approach_.
Artinya kita melakukan proses diatas sebagai tahap-tahap berbeda
(independen satu sama lain). Selain _pipelined approach_, kita juga dapat memandang
peringkasan dokumen dengan _single-view approach_ (subbab 14.2.2),
artinya keseluruhan proses tersebut terjadi bersamaan.

14.2.1 Pipelined Approach

Subbab ini akan memuat cerita singkat tentang peringkasan _paper_ [112, 115].
Berdasarkan teori _argumentative zoning_ [112], _paper_ terdiri dari zona-zona
dengan tujuan komunikatif yang berbeda. Dengan bahasa yang lebih mudah,
tiap kalimat (unit informasi) pada _paper_ memiliki tujuan komunikasi yang
berbeda. Misalnya ada kalimat yang menyatakan tujuan penelitian, latar belakang
penelitian, atau hasil penelitian. Tujuan komunikasi kalimat disebut
_rhetorical categories_ [118].
Ringkasan, dalam bentuk abstrak atau judul _paper_ memiliki pola [119,
115]. Dalam artian, suatu ringkasan bisa jadi hanya memuat informasi denganrhetorical
categoriestertentu ( _tailored summary_ ). _Machine learning_ dapat
digunakan untuk mengklasifikasikan kalimat (unit informasi) ke kelas
masing-masing [118, 115]. Pertama-tama setiap kalimat direpresentasikan
menjadi _feature vector_ (ingat kembali materi bab 3 dan bab 4). Sebagai contoh, _paper_ [115]
merepresentasikan kalimat pada _paper_ sebagai _feature vector_
berdasarkan fitur-fitur sebagai berikut:

1. Posisi. Lokasi kalimat dibagi dengan panjang teks (numerik).
2. Kata kunci ( _lexicon_ ). Apakah kalimat memuat kata kunci yang eksklusif
    untuk _rhetorical category_ tertentu ( _binary_ – ya atau tidak).
3. Bobot kalimat, i.e., seberapa “penting” kalimat tersebut. Hal ini dapat
    dihitung menggunakan TF-IDF (ingat bab 12) kata pada kalimat (nu-
    merik).
4. Kategori sebelumnya. _Rhetorical category_ kalimat sebelumnya (nominal).
    Setelah diubah menjadi _feature vector_, teknik _machine learning_ digunakan
untuk mengklasifikasikan kalimat menjadi kelas _rhetorical categories_ yang
sesuai. Dengan demikian, kita dapat menyaring kalimat berdasarkan tipe informasi
mana yang kita inginkan, berdasarkan tujuan peringkasan. Selanjutnya,
teknik NLP digunakan untuk memproses informasi yang disaring untuk
menghasilkan ringkasan. Materi tersebut diluar bahasan diktat ini.

14.2.2 Single-view Approach

Pada _pipelined approach_, setiap tahapan peringkasan dokumen ( _representation_, _filtering_,
dan _generation_ ) dianggap sebagai tahap yang independen satu
sama lain. Permasalahannya adalah kesalahan pada suatu tahap akan mempengaruhi
tahap berikutnya. Opsi lain adalah dengan melakukan keseluruhan

222 14 Penerapan Pembelajaran Mesin

proses sebagai satu tahapan yang utuh ( _end-to-end_ ). Metode ini memiliki kaitan
yang erat dengan teknik _machine translation_, yang pada masa sekarang
populer didekati dengan teknik _deep learning_ ( _sequence to sequence_ encoder–
_decoder_ ) [57, 81, 80, 89, 120, 121]. Dokumen tersusun atas sejumlahTsekuens
unit informasi (e.g., kata, frase)u=u 1 ,u 2 ,...,uT. Sebuah ringkasan adalah
M buah sekuens unit informasir =r 1 ,r 2 ,...,rM dimana M < T. Tujuan
peringkasan adalah untuk mencarirterbaik, sedemikian sehingga dapat
memenuhi persamaan 14.1.

```
arg max
r
```
```
p(r|u) (14.1)
```
Pada umumnya, terdapat suatu variabel tambahanθyang mengendalikan
( _govern_ ) probabilitas tersebut. Sehingga secara lebih tepat, persamaan 14.1
diubah menjadi persamaan 14.2.

```
arg max
r
```
```
p(r|u,θ) (14.2)
```
Perhatikan, persamaan 14.2 adalah bentuk yang dapat di _model_ kan menggunakansequence
to sequence encoder– _decoder_. Selain peringkasan dokumen,
banyak permasalahan pada bidang _natural language processing_ memiliki bentuk
yang “mirip”, seperti: _part-of-speech tagging_ [122], _named entity recognition_ [123],
mesin translasi [81] dan rekonstruksi paragraf [124].


### 14.3 Konklusi

Teknik _machine learning_ sangatlah berguna untuk berbagai macam permasalahan.
Tetapi perlu dipahami bahwa teknik yang ada belum mampu
me _model_ kan proses berpikir manusia dengan benar. Proses berpikir manusia
sangatlah kompleks, dan model yang ada sekarang ini adalah bentuk simplifikasi.
Sebagai contoh, seorang bayi sekali melihat kucing mungkin akan
mengetahui kucing lainnya walaupun tidak memiliki rupa yang sama persis.
Sementara itu, model _machine learning_ harus diberikan banyak sampel.
Manusia memiliki otak yang luar biasa hebat karena mampu belajar dengan
sedikit contoh.
Persoalan-persoalan yang diberikan pada buku ini secara umum mencakup _supervised_
dan _unsupervised learning_ saja. Terdapat satu pe _model_ an
masalah penting lainnya yaitu _reinforcement learning_ dimana kita ingin
memaksimalkan hasil untuk sekuens aksi (sekuens keputusan). Setiap keputusan
dapat diberikan bobot yang berbeda. Kemudian, agen memaksimalkan
nilai untuk sekuens keputusan ( _cummulative reward_ ).^2 Pada _supervised learning_,
kita hanya perlu membuat satu keputusan saja (menggolongkan data ke
kelas mana). Pada konferensi-konferensi, para _master_ banyak menyebutkan

(^2) https://en.wikipedia.org/wiki/Reinforcement_ _learning_

```
14.3 Konklusi 223
```
masa depan _machine learning_ berada pada _unsupervised_ ataureinforcement
_learning_. Aplikasi mutakhir yang ada sekarang ini didominasi oleh _supervised_
_learning_. Pada kenyataannya, sebagian besar (hampir semua) data yang ada
di dunia ini tidak berlabel. Karena itu, representasi data secara _unsupervised_
menjadi topik riset hangat ( _representation learning_ ).
Buku ini telah menjelaskan berbagai macam teknik, tetapi perlu diketahui
bahwa materi yang diberikan adalah simplifikasi agar mampu dipahami secara
intuitif. Selain itu, buku ini di desain sebagai materi pengantar saja. Untuk
memahami teknik _machine learning_ secara lebih jauh dan sempurna, penulis
menya _rank_ an untuk membaca buku referensi [8, 11].
Materi yang disajikan pada buku ini adalah persoalan-persoalanmachine
_learning_ dari sudut pandang optimisasi. Yaitu mencari himpunan ( _set of_ ) parameter
agar model pembelajaran yang dibangun mampu memberi keputusan
yang optimal. Kami menya _rank_ an pembaca untuk mencari referensi lebih jauh
tentang _machine learning_ dari sudut pandang eksplorasi, yaitu mencariconcept
_space_ dimana model dapat bekerja dengan “baik”. Sebagai contoh, kita
memiliki sebuah mesin (fisik) dengan berbagai macam konfigurasi (parameter).
Apabila kita menjalankan mesin dengan konfigurasi parameter tertentu,
mesin akan rusak. Tugas kita adalah mencari _parameters space_ dimana mesin
dapat berjalan dengan optimal dan tidak rusak. Sedangkan, pada persoalan
optimisasi, kita mencari satu konfigurasi terbaik.
_Machine learning_ adalah bidang yang sangat luas (lebih luas dari apa
yang diceritakan pada buku ini) dan berkembang pesat. Penulis menya _rank_ an
pembaca untuk membaca makalah dari konferensi^3 top-tieruntuk mengetahui
perkembangan terkini. Sebagai contoh (diurutkan berdasarkan abjad):^4

- AAAI. AAAI Conference on Artificial Intelligence
- ACL. Annual Meeting of Association for Computational Linguistics
- CVPR. IEEE Conference on Computer Vision and Pattern Recognition
- EMNLP. Empirical Methods in Natural Language Processing
- ICCV. IEEE International Conference on Computer Vision
- ICLR. International Conference on Learning Representation
- ICML. International Conference on Machine Learning
- IJCAI. International Conference on Artificial Intelligence
- INTERSPEECH. Conference of the International Speech Association
- NeurIPS (dahulu disebut NIPS). Neural Information Processing System
- SIGIR. ACM Special Interest Group in Information Retrieval
- SIGKDD. ACM Special Interest Group in Knowl _edge_ Discovery and Data
    Mining

(^3) Kamu lebih mudah mengetahui informasi terkini dari konferensi dibanding jurnal
karena proses _peer-review_ yang lebih cepat. Pada bidang keilmuan ilmu komputer/teknik
informatika, konferensi internasional lebih penting dibanding jurnal.
(^4) Konferensi penting untuk bidang pemrosesan bahasa alami terdaftar padahttps:
//aclanthology.coli.uni-saarland.de/

224 14 Penerapan Pembelajaran Mesin


### 14.1 Sistem Rekomendasi

Bagian sistem rekomendasi ditulis olehCandy Olivia Mawalim(Japan
Advanced Institute of Science and Technology). Penulis ingin berterima kasih
atas sumbangsih yang diberikan.
Salah satu penerapan pembelajaran mesin adalah sistem rekomendasi. Sistem
rekomendasi dimotivasi oleh keinginan pemilik usaha untuk meningkatkan
penjualan dengan cara mengerti pola pembelian pengguna. Aplikasi yang memanfaatkan
sistem rekomendasi dapat kita temukan dalam kehidupan seharihari,
misalnya Youtube yang memberikan rekomendasi video berdasarkan riwayat
video yang telah kita lihat sebelumnya dan Amazon yang merekomendasikan
produknya dengan cara menawarkan produk yang sering dibeli pengguna
lain yang memiliki karakteristik yang “mirip” dengan kita. Ada dua
komponen penting pada sistem rekomendasi yaitu: pengguna dan _item_. Pengguna
adalah sang pengguna sistem, sementara _item_ dapat berupa video, buku,
dan lain sebagainya (produk/layanan yang ditawarkan sistem).
Secara umum, terdapat dua teknik untuk membangun sistem rekomendasi
yaitu: (1) _content-based filtering_ dan (2) _collaborative filtering_. Teknik
pertama berfokus pada karakteristik pengguna secara spesifik. Teknik kedua
berfokus pada selera terhadap suatu _item_. Dalam sistem rekomendasi, teknik
_machine learning_ dapat digunakan untuk memprediksi _item_ yang mungkin
disukai pengguna. Dua subbab berikutnya memuat aplikasi teknikmachine
_learning_ untuk kedua teknik sistem rekomendasi(14.1.1 dan 14.1.2). Setelah
proses _filtering_ (memprediksi _item_ yang mungkin disukai pengguna), biasanya
ada tahapan _post-processing_. Misalnya menampilkan _item_ yang bersesuaian
dengan usia pengguna. Contoh lain adalah _post-processing_ untuk memberikan
rekomendasi yang cukup beranekaragam [100].

14.1.1 Content-based Filtering

Teknik membangun sistem rekomendasi berdasarkan _content-based filtering_
memanfaatkan informasi mengenai profil seorang pengguna beserta uraian
_item_  yang sangat menarik bagi pengguna tersebut [101]. Profil pengguna diartikan
sebagai karakteristik (atribut dan _behavior_ ) yang dimiliki pengguna.
Atribut pengguna misalnya _gender_, kewarganegaraan, umur, dan lain-lain. Informasi
mengenai _behavior_ mencakup karakteristik _item_ yang seorang pengguna
sukai. Misalkan _item_ adalah film, karakteristik film dapat ditentukan
dari aktor yang terlibat dalam film, pembuat film, tahun pembuatan film,
dan _genre_ dari film (misalnya _action_, _horror_, _comedy_ ). Dengan ka _rate_ ristik
ini, kita dapat menentukan kemiripan antar-film.
Kedua informasi ini dapat direpresentasikan sebagai vektor (ekuivalen denganfeature
vector) agar mudah untuk dilakukan operasi aritmatika, dikenal
dengan istilah _user embedding_ dan _item embedding_. Cara melakukan _embedding_ untuk
profil pengguna dan uraian item mirip dengan cara _word embedding_ yang
telah dijelaskan pada subbab 12.5.3, _one-hot encoding_.

```
14.1 Sistem Rekomendasi 217
```
Rekomendasi _item_ yang diberikan pada pengguna adalah _item_ yang paling
mungkin disukai pengguna berdasarkan karakteristiknya. Agar mendapat
gambaran lebih jelas, penulis mengajak pembaca untuk mengikuti tutorial
pembuatan sistem rekomendasi film sangat sederhana menggunakan dataset
MovieLens^1 berukuran kecil (100K). Dataset ini memuat berbagai informasi
sebagai berikut:

1. Informasi _rating_ pengguna untuk masing-masing film.
2. Informasi film, misalkan berupa _genre_ dan tanggal _release_.
3. Demografik pengguna, misal usia, _gender_, pekerjaan, dan lain lain.

Untuk menyederhanakan tutorial, kami hanya akan menjelaskan contoh penggunaan _genre_ film
untuk membuat sistem rekomendasi. Pertama-tama, kita
bangun representasi _item embedding_, yaitu _genre_ untuk masing-masing film
(Tabel 14.1). Setiap baris pada tabel tersebut merepresentasikan _item embedding_ untuk
suatu film. Perhatikan! Setiap sel pada tabel diisi nilai “1” apabila
film memiliki _genre_ yang tertera pada kolom bersesuaian, “0” apabila tidak.

```
MovieId Adventure Animation Children Comedy
6 1 1 1 1
22 1 0 1 0
50 0 0 0 1
```
```
Tabel 14.1: Representasi _item embedding_ untuk film berdasarkan _genre_.
```
Kedua, kita bangun representasi _user embedding_, yaitu apakah pengguna
menyukai suatu film atau tidak ( _binary_ ). Suka atau tidaknya pengguna terhadap
suatu film dapat dilihat berdasarkan _rating_ yang ia berikan. Sebagai
contoh sederhana, kita anggap apabila pengguna menyukai suatu film apabila
memberi nilai _rating_ lebih dari atau sama dengan 4. Sebagai contoh, perhatikan
Tabel 14.2. Apabila user menyukai suatu film, nilai “1” diisi pada
kolom “Like or Not”, dan “0” apabila sebaliknya.

```
UserId MovieId Like or Not
1 6 0
1 22 0
1 50 1
```
Tabel 14.2: Representasi _user embedding_ berdasarkan _rating_ yang diberikan
pengguna.

(^1) https://grouplens.org/ _dataset_ s/movielens/

218 14 Penerapan Pembelajaran Mesin

Berdasarkan _item embedding_ dan _user embedding_ yang kita punya, kita
ganti kolom MovieId pada Tabel 14.2 menggunakan baris pada _item embedding_.
Sekarang, kita memiliki dataset _behavior_ pengguna dengan UserId=1
(Tabel 14.3). Perhatikan! Tabel tersebut seperti dataset _machine learning_
yang sudah kamu pelajari pada bab-bab sebelumnya. Diberikan _feature vector_ dan
kelas (Like or Not) yang berkorespondensi. Menggunakan data seperti

```
MovieId Adventure Animation Children Comedy Like or Not
6 1 1 1 1 0
22 1 0 1 0 0
50 0 0 0 1 1
```
```
Tabel 14.3: Dataset _behavior_ pengguna dengan UserId=1.
```
pada Tabel 14.3 yang dirata-ratakan, kita dapat menggunakan teknikmachine
_learning_ untuk memprediksi apakah suatu pengguna akan menyukai film tertentu,
berdasarkan _genre_ yang dimuat oleh film tersebut. Sederhananya, bisa
menggunakan K-nearest-neighbordengan menghitung _cosine similarity_ antara _item_
_embedding_ dan _user embedding_.
Teknik _content-based filtering_ memiliki keunggulan dimana kita tidak
memerlukan banyak informasi tentang pengguna lain. Kita hanya memerlukan
informasi uraian _item_ dan informasi karakteristik suatu pengguna. Hal ini
mengakibatkan rekomendasi yang diberikan sangat bergantung pada kepribadian
pengguna. Apabila pengguna tidak konsisten, sistem rekomendasi juga
bingung.

14.1.2 Collaborative Filtering

Teknik ini diperkenalkan oleh Paul Resnick dan Hal Varian pada 1997 [102].
Prinsip _collaborative filtering_ adalah asumsi bahwa selera penggunaan terhadap
suatu _item_ cenderung sama dari waktu ke waktu [103]. Pada contoh
kasus sederhana untuk sistem rekomendasi film, teknik ini memanfaatkan informasi _rating_ dari
banyak pengguna. Kita dapat merepresentasikan tingkah
laku ( _behaviour_ ) semua pengguna menggunakan matriks utilitas dimana baris
merepresentasikan profil pengguna dan kolom merepresentasikan _item_. Sebagai
contoh, perhatikanlah Tabel 14.4.
Ada dua metode varian _collaborative filtering_ yaitu: (1)neighborhood-based
_collaborative filtering_ ( _memory-based method_ ) dan (2) _model_ -based collaborative
_filtering_. Metode _neighborhood-based collaborative filtering_ bekerja dengan
fakta bahwa pengguna yang “mirip” memiliki pola yang “mirip” dalam
memberikan _rating_ untuk _item_ [104] (pada Tabel 14.4, pengguna yang mirip
memiliki baris yang mirip). Selain itu, _item_ yang memiliki kemiripan, akan
memiliki pola _rating_ yang mirip (pada Tabel 14.4, _item_ yang mirip memiliki

```
14.2 Peringkasan Dokumen 219
```
```
_item_  1 item 2 ... itemN
_user_  1 2 3 ... 4
_user_  2 5 3 ... 1
```
```
_user_  3 4 1 ... 2
```
```
Tabel 14.4: Matriks utilitas.
```
kolom yang mirip). Dengan itu, kita dapat menggunakan perhitungan kemiripan
_vektor_  untuk menghitung pengguna mana yang mirip dengan suatu penggunap.
Saat memberikan rekomendasi film bagi penggunap, kita tunjukkan
film-film yang pernah ditonton pengguna yang mirip dengannya, atau kita
tunjukkan film-film yang mirip dengan film-film yang pernah ditonton oleh
penggunap.
Untuk _model-based collaborative filtering_, prediksi dibangun dengan menggunakan
teknik _machine learning_ [104]. Untuk suatu sistem dengan data yang
_sparse_, matriks utilitas seperti Tabel 14.4 tidaklah efisien secara memori. Kita
dapat memanfaatkan teknik-tenik sepertimatrix factorization/principal component
analysisdan _autoencoder_ untuk mengurangi ukuran matriks. Silakan
membaca lebih lanjut materi-materi tersebut (ingat kembali materi bab 12).


# Table of Contents

- [Pengenalan Konsep](<./Pengenalan-Konsep.md>)
- [Pembelajaran Mesin dan Deep](<./Pembelajaran-Mesin-dan-Deep.md>)
- [Learning](<./Learning.md>)
  - [Edisi1.4 ( 17 Agustus2020)](<./Learning/Edisi1.4--17-Agustus2020.md>)
  - [Jan Wira Gotama Putra](<./Learning/Jan-Wira-Gotama-Putra.md>)
    - [Untuk Tuhan, Bangsa, dan Almamater](<./Learning/Jan-Wira-Gotama-Putra/Untuk-Tuhan-Bangsa-dan-Almamater.md>)
  - [Kata Pengantar](<./Learning/Kata-Pengantar.md>)
  - [Daftar Isi](<./Learning/Daftar-Isi.md>)
  - [Bagian I Pengetahuan Dasar](<./Learning/Bagian-I-Pengetahuan-Dasar.md>)
  - [1 Pengenalan](<./Learning/1-Pengenalan.md>)
    - [1.1 Kecerdasan Buatan](<./Learning/1-Pengenalan/1.1-Kecerdasan-Buatan.md>)
    - [1.2 Intelligent Agent](<./Learning/1-Pengenalan/1.2-Intelligent-Agent.md>)
    - [1.3 Konsep Belajar](<./Learning/1-Pengenalan/1.3-Konsep-Belajar.md>)
    - [1.4 Statistical Learning Theory](<./Learning/1-Pengenalan/1.4-Statistical-Learning-Theory.md>)
    - [1.5 Training, Validation, Testing Set](<./Learning/1-Pengenalan/1.5-Training-Validation-Testing-Set.md>)
    - [1.6 Supervised Learning](<./Learning/1-Pengenalan/1.6-Supervised-Learning.md>)
    - [1.7 Regresi](<./Learning/1-Pengenalan/1.7-Regresi.md>)
    - [1.8 Semi- _supervised_ Learning](<./Learning/1-Pengenalan/1.8-Semi--_supervised_-Learning.md>)
    - [1.9 Un _supervised_ Learning](<./Learning/1-Pengenalan/1.9-Un-_supervised_-Learning.md>)
    - [1.10 Proses Belajar](<./Learning/1-Pengenalan/1.10-Proses-Belajar.md>)
    - [1.11 Tips](<./Learning/1-Pengenalan/1.11-Tips.md>)
    - [1.12 Contoh Aplikasi](<./Learning/1-Pengenalan/1.12-Contoh-Aplikasi.md>)
    - [Soal Latihan](<./Learning/1-Pengenalan/Soal-Latihan.md>)
  - [2 Fondasi Matematis](<./Learning/2-Fondasi-Matematis.md>)
    - [2.1 Probabilitas](<./Learning/2-Fondasi-Matematis/2.1-Probabilitas.md>)
    - [2.2 Probability Density Function](<./Learning/2-Fondasi-Matematis/2.2-Probability-Density-Function.md>)
    - [2.3 Expectation dan Variance](<./Learning/2-Fondasi-Matematis/2.3-Expectation-dan-Variance.md>)
    - [2.4 Bayesian Probability](<./Learning/2-Fondasi-Matematis/2.4-Bayesian-Probability.md>)
    - [2.5 Gaussian Distribution](<./Learning/2-Fondasi-Matematis/2.5-Gaussian-Distribution.md>)
    - [2.6 Apakah Karakteristik Sampel Mencerminkan Populasi?](<./Learning/2-Fondasi-Matematis/2.6-Apakah-Karakteristik-Sampel-Mencerminkan-Populasi.md>)
    - [2.7 Teori Keputusan](<./Learning/2-Fondasi-Matematis/2.7-Teori-Keputusan.md>)
    - [2.8 Hypothesis Testing](<./Learning/2-Fondasi-Matematis/2.8-Hypothesis-Testing.md>)
    - [2.9 Teori Informasi](<./Learning/2-Fondasi-Matematis/2.9-Teori-Informasi.md>)
    - [2.10 Matriks](<./Learning/2-Fondasi-Matematis/2.10-Matriks.md>)
    - [2.11 Bacaan Lanjutan](<./Learning/2-Fondasi-Matematis/2.11-Bacaan-Lanjutan.md>)
    - [Soal Latihan](<./Learning/2-Fondasi-Matematis/Soal-Latihan.md>)
  - [3 Data Analytics](<./Learning/3-Data-Analytics.md>)
    - [3.1 Pengenalan Data Analytics](<./Learning/3-Data-Analytics/3.1-Pengenalan-Data-Analytics.md>)
    - [3.2 Nilai Atribut dan Transformasi](<./Learning/3-Data-Analytics/3.2-Nilai-Atribut-dan-Transformasi.md>)
    - [3.3 Ruang Konsep](<./Learning/3-Data-Analytics/3.3-Ruang-Konsep.md>)
    - [3.4 Linear Separability](<./Learning/3-Data-Analytics/3.4-Linear-Separability.md>)
    - [3.5 Seleksi Fitur](<./Learning/3-Data-Analytics/3.5-Seleksi-Fitur.md>)
    - [3.6 Classification, Association, Clustering](<./Learning/3-Data-Analytics/3.6-Classification-Association-Clustering.md>)
    - [3.7 Mengukur Kinerja](<./Learning/3-Data-Analytics/3.7-Mengukur-Kinerja.md>)
    - [3.8 Evaluasi Model](<./Learning/3-Data-Analytics/3.8-Evaluasi-Model.md>)
    - [3.9 Kategori Jenis Algoritma](<./Learning/3-Data-Analytics/3.9-Kategori-Jenis-Algoritma.md>)
    - [3.10 Tahapan Analisis](<./Learning/3-Data-Analytics/3.10-Tahapan-Analisis.md>)
    - [Soal Latihan](<./Learning/3-Data-Analytics/Soal-Latihan.md>)
  - [Bagian II Algoritma Pembelajaran Mesin](<./Learning/Bagian-II-Algoritma-Pembelajaran-Mesin.md>)
  - [4 Algoritma Dasar](<./Learning/4-Algoritma-Dasar.md>)
    - [4.1 Naive Bayes](<./Learning/4-Algoritma-Dasar/4.1-Naive-Bayes.md>)
    - [4.2 K- _mean_ s](<./Learning/4-Algoritma-Dasar/4.2-K--_mean_-s.md>)
    - [4.3 K-nearest-neighbor](<./Learning/4-Algoritma-Dasar/4.3-K-nearest-neighbor.md>)
    - [Soal Latihan](<./Learning/4-Algoritma-Dasar/Soal-Latihan.md>)
  - [5 Model Linear](<./Learning/5-Model-Linear.md>)
    - [5.1 Curve Fitting dan Error Function](<./Learning/5-Model-Linear/5.1-Curve-Fitting-dan-Error-Function.md>)
    - [5.2 Binary Classification](<./Learning/5-Model-Linear/5.2-Binary-Classification.md>)
    - [5.3 Log-linear Binary Classification](<./Learning/5-Model-Linear/5.3-Log-linear-Binary-Classification.md>)
    - [5.4 Multi- _class_ Classification](<./Learning/5-Model-Linear/5.4-Multi--_class_-Classification.md>)
    - [5.5 Multi-label Classification](<./Learning/5-Model-Linear/5.5-Multi-label-Classification.md>)
    - [5.6 Pembelajaran sebagai Permasalahan Optimisasi](<./Learning/5-Model-Linear/5.6-Pembelajaran-sebagai-Permasalahan-Optimisasi.md>)
    - [5.7 Batasan Model Linear](<./Learning/5-Model-Linear/5.7-Batasan-Model-Linear.md>)
    - [5.8 Overfitting dan Underfitting](<./Learning/5-Model-Linear/5.8-Overfitting-dan-Underfitting.md>)
    - [5.9 Regularization](<./Learning/5-Model-Linear/5.9-Regularization.md>)
    - [5.10 Transformasi Data](<./Learning/5-Model-Linear/5.10-Transformasi-Data.md>)
    - [5.11 Bacaan Lanjutan](<./Learning/5-Model-Linear/5.11-Bacaan-Lanjutan.md>)
    - [Soal Latihan](<./Learning/5-Model-Linear/Soal-Latihan.md>)
  - [6 Pohon Keputusan](<./Learning/6-Pohon-Keputusan.md>)
    - [6.1 Inductive Learning](<./Learning/6-Pohon-Keputusan/6.1-Inductive-Learning.md>)
    - [6.2 ID3](<./Learning/6-Pohon-Keputusan/6.2-ID3.md>)
    - [6.3 Isu pada ID3](<./Learning/6-Pohon-Keputusan/6.3-Isu-pada-ID3.md>)
    - [6.4 Pembagian Ruang Konsep](<./Learning/6-Pohon-Keputusan/6.4-Pembagian-Ruang-Konsep.md>)
    - [Soal Latihan](<./Learning/6-Pohon-Keputusan/Soal-Latihan.md>)
  - [7 Support Vector Classifier](<./Learning/7-Support-Vector-Classifier.md>)
    - [7.1 Maximal Margin Classifier](<./Learning/7-Support-Vector-Classifier/7.1-Maximal-Margin-Classifier.md>)
    - [7.2 Support Vector Classifier](<./Learning/7-Support-Vector-Classifier/7.2-Support-Vector-Classifier.md>)
    - [7.3 Support Vector Machine](<./Learning/7-Support-Vector-Classifier/7.3-Support-Vector-Machine.md>)
    - [7.4 Klasifikasi lebih dari dua kelas](<./Learning/7-Support-Vector-Classifier/7.4-Klasifikasi-lebih-dari-dua-kelas.md>)
    - [7.5 Tips](<./Learning/7-Support-Vector-Classifier/7.5-Tips.md>)
    - [Soal Latihan](<./Learning/7-Support-Vector-Classifier/Soal-Latihan.md>)
  - [8 Hidden Markov Model](<./Learning/8-Hidden-Markov-Model.md>)
    - [8.1 Probabilistic Reasoning](<./Learning/8-Hidden-Markov-Model/8.1-Probabilistic-Reasoning.md>)
    - [8.2 Generative Model](<./Learning/8-Hidden-Markov-Model/8.2-Generative-Model.md>)
    - [8.3 Part-of-speech Tagging](<./Learning/8-Hidden-Markov-Model/8.3-Part-of-speech-Tagging.md>)
    - [8.4 Hidden Markov Model Tagger](<./Learning/8-Hidden-Markov-Model/8.4-Hidden-Markov-Model-Tagger.md>)
    - [8.5 Algoritma Viterbi](<./Learning/8-Hidden-Markov-Model/8.5-Algoritma-Viterbi.md>)
    - [8.6 Proses Training Hidden Markov Model](<./Learning/8-Hidden-Markov-Model/8.6-Proses-Training-Hidden-Markov-Model.md>)
    - [Soal Latihan](<./Learning/8-Hidden-Markov-Model/Soal-Latihan.md>)
  - [9 Seleksi Fitur dan Metode Evaluasi](<./Learning/9-Seleksi-Fitur-dan-Metode-Evaluasi.md>)
    - [9.1 Feature Engineering](<./Learning/9-Seleksi-Fitur-dan-Metode-Evaluasi/9.1-Feature-Engineering.md>)
    - [9.2 High Dimensional Data](<./Learning/9-Seleksi-Fitur-dan-Metode-Evaluasi/9.2-High-Dimensional-Data.md>)
    - [9.3 Feature Selection](<./Learning/9-Seleksi-Fitur-dan-Metode-Evaluasi/9.3-Feature-Selection.md>)
    - [9.4 Evaluasi Kinerja Model](<./Learning/9-Seleksi-Fitur-dan-Metode-Evaluasi/9.4-Evaluasi-Kinerja-Model.md>)
    - [9.5 Cross Validation](<./Learning/9-Seleksi-Fitur-dan-Metode-Evaluasi/9.5-Cross-Validation.md>)
    - [9.6 Replicability, Overclaiming dan Domain Dependence](<./Learning/9-Seleksi-Fitur-dan-Metode-Evaluasi/9.6-Replicability-Overclaiming-dan-Domain-Dependence.md>)
    - [Soal Latihan](<./Learning/9-Seleksi-Fitur-dan-Metode-Evaluasi/Soal-Latihan.md>)
  - [10 Clustering](<./Learning/10-Clustering.md>)
    - [10.1 K- _mean_ s, Pemilihan Centroid, Kemiripan Data](<./Learning/10-Clustering/10.1-K--_mean_-s-Pemilihan-Centroid-Kemiripan-Data.md>)
    - [10.2 Hierarchical Clustering](<./Learning/10-Clustering/10.2-Hierarchical-Clustering.md>)
    - [10.3 Evaluasi](<./Learning/10-Clustering/10.3-Evaluasi.md>)
    - [Soal Latihan](<./Learning/10-Clustering/Soal-Latihan.md>)
  - [Bagian III Artificial Neural Network](<./Learning/Bagian-III-Artificial-Neural-Network.md>)
  - [11 Feed _forward_ Neural Network](<./Learning/11-Feed-_forward_-Neural-Network.md>)
    - [11.1 Definisi Artificial Neural Network](<./Learning/11-Feed-_forward_-Neural-Network/11.1-Definisi-Artificial-Neural-Network.md>)
    - [11.2 Single Perceptron](<./Learning/11-Feed-_forward_-Neural-Network/11.2-Single-Perceptron.md>)
    - [11.3 Permasalahan XOR](<./Learning/11-Feed-_forward_-Neural-Network/11.3-Permasalahan-XOR.md>)
    - [11.4 Multi _layer_ Perceptron](<./Learning/11-Feed-_forward_-Neural-Network/11.4-Multi-_layer_-Perceptron.md>)
    - [11.5 Interpretability](<./Learning/11-Feed-_forward_-Neural-Network/11.5-Interpretability.md>)
    - [11.6 Binary Classification](<./Learning/11-Feed-_forward_-Neural-Network/11.6-Binary-Classification.md>)
    - [11.7 Multi- _class_ Classification](<./Learning/11-Feed-_forward_-Neural-Network/11.7-Multi--_class_-Classification.md>)
    - [11.8 Multi-label Classification](<./Learning/11-Feed-_forward_-Neural-Network/11.8-Multi-label-Classification.md>)
    - [1 0](<./Learning/11-Feed-_forward_-Neural-Network/1-0.md>)
    - [0 1](<./Learning/11-Feed-_forward_-Neural-Network/0-1.md>)
    - [0 0](<./Learning/11-Feed-_forward_-Neural-Network/0-0.md>)
    - [1 1](<./Learning/11-Feed-_forward_-Neural-Network/1-1.md>)
    - [11.9 Deep Neural Network](<./Learning/11-Feed-_forward_-Neural-Network/11.9-Deep-Neural-Network.md>)
    - [11.10 Tips](<./Learning/11-Feed-_forward_-Neural-Network/11.10-Tips.md>)
    - [11.11 Regularization and Dropout](<./Learning/11-Feed-_forward_-Neural-Network/11.11-Regularization-and-Dropout.md>)
    - [11.12 Vanishing and Exploding Gradients](<./Learning/11-Feed-_forward_-Neural-Network/11.12-Vanishing-and-Exploding-Gradients.md>)
    - [11.13 Rangkuman](<./Learning/11-Feed-_forward_-Neural-Network/11.13-Rangkuman.md>)
    - [Soal Latihan](<./Learning/11-Feed-_forward_-Neural-Network/Soal-Latihan.md>)
  - [12 Auto _encoder_](<./Learning/12-Auto-_encoder_.md>)
    - [12.1 Representation Learning](<./Learning/12-Auto-_encoder_/12.1-Representation-Learning.md>)
    - [12.2 Singular Value Decomposition](<./Learning/12-Auto-_encoder_/12.2-Singular-Value-Decomposition.md>)
    - [12.3 Ide Dasar Auto _encoder_](<./Learning/12-Auto-_encoder_/12.3-Ide-Dasar-Auto-_encoder_.md>)
  - [𝐗 Encoder Decoder](<./Learning/𝐗-Encoder-Decoder.md>)
  - [𝐔#𝐕# 𝐔#𝐕#𝐖#𝑻](<./Learning/𝐔𝐕-𝐔𝐕𝐖𝑻.md>)
  - [𝐄 𝐗](<./Learning/𝐄-𝐗.md>)
    - [12.4 Resisting Perturbation](<./Learning/𝐄-𝐗/12.4-Resisting-Perturbation.md>)
    - [12.5 Representing Context: Word Embedding](<./Learning/𝐄-𝐗/12.5-Representing-Context-Word-Embedding.md>)
    - [CBOW Skip-gram](<./Learning/𝐄-𝐗/CBOW-Skip-gram.md>)
    - [12.6 Tips](<./Learning/𝐄-𝐗/12.6-Tips.md>)
    - [Soal Latihan](<./Learning/𝐄-𝐗/Soal-Latihan.md>)
  - [13 Arsitektur Neural Network](<./Learning/13-Arsitektur-Neural-Network.md>)
    - [13.1 Convolutional Neural Network](<./Learning/13-Arsitektur-Neural-Network/13.1-Convolutional-Neural-Network.md>)
    - [13.2 Recurrent Neural Network](<./Learning/13-Arsitektur-Neural-Network/13.2-Recurrent-Neural-Network.md>)
    - [13.3 Part-of-speech Tagging Revisited](<./Learning/13-Arsitektur-Neural-Network/13.3-Part-of-speech-Tagging-Revisited.md>)
    - [13.4 Sequence to Sequence](<./Learning/13-Arsitektur-Neural-Network/13.4-Sequence-to-Sequence.md>)
    - [13.5 Arsitektur Lainnya](<./Learning/13-Arsitektur-Neural-Network/13.5-Arsitektur-Lainnya.md>)
    - [13.6 Architecture Ablation](<./Learning/13-Arsitektur-Neural-Network/13.6-Architecture-Ablation.md>)
    - [13.7 Transfer Learning](<./Learning/13-Arsitektur-Neural-Network/13.7-Transfer-Learning.md>)
    - [13.8 Multi- _task_ Learning](<./Learning/13-Arsitektur-Neural-Network/13.8-Multi--_task_-Learning.md>)
    - [Soal Latihan](<./Learning/13-Arsitektur-Neural-Network/Soal-Latihan.md>)
  - [Bagian IV Aplikasi dan Topik Tambahan](<./Learning/Bagian-IV-Aplikasi-dan-Topik-Tambahan.md>)
  - [14 Penerapan Pembelajaran Mesin](<./Learning/14-Penerapan-Pembelajaran-Mesin.md>)
    - [14.1 Sistem Rekomendasi](<./Learning/14-Penerapan-Pembelajaran-Mesin/14.1-Sistem-Rekomendasi.md>)
    - [14.2 Peringkasan Dokumen](<./Learning/14-Penerapan-Pembelajaran-Mesin/14.2-Peringkasan-Dokumen.md>)
    - [14.3 Konklusi](<./Learning/14-Penerapan-Pembelajaran-Mesin/14.3-Konklusi.md>)
    - [14.4 Saran Buku Lanjutan](<./Learning/14-Penerapan-Pembelajaran-Mesin/14.4-Saran-Buku-Lanjutan.md>)
    - [Soal Latihan](<./Learning/14-Penerapan-Pembelajaran-Mesin/Soal-Latihan.md>)
  - [Referensi](<./Learning/Referensi.md>)
  - [Biografi Penulis](<./Learning/Biografi-Penulis.md>)


# Pengenalan Konsep


# Pembelajaran Mesin dan Deep


# Learning