Kursus Matematika untuk AI · Pelajaran 42 dari 180

Perkalian Titik Mengubah Fitur Menjadi Skor

Uraikan perkalian titik menjadi kontribusi fitur, bangun skor pengklasifikasi linear, dan periksa kekeliruan tentang urutan serta probabilitas dengan NumPy.

Bagikan artikel ini

Model AI dapat mencetak skor seperti 1.51.5 tanpa menunjukkan fitur masukan mana yang membuat angka itu naik atau turun. Perkalian titik membuka perhitungan tersebut sedikit demi sedikit: kalikan setiap fitur dengan bobot yang diberikan pada koordinat yang sama, lalu jumlahkan hasil kalinya.

Pada akhir pelajaran ini, kamu akan dapat menguraikan perkalian titik menjadi kontribusi fitur bertanda, mengimplementasikannya dengan NumPy, dan membaca skor mentah di dalam pengklasifikasi linear biner tanpa mengiranya sebagai probabilitas.

Hasil belajar: Menafsirkan perkalian titik sebagai skor fitur berbobot.

Pelajaran ini dibangun di atas Pelajaran 041: Inner Products Measure Alignment, tempat operasi yang sama menjelaskan bagaimana dua vektor mengarah relatif satu sama lain. Bagian 3.2 dari Mathematics for Machine Learning menyediakan rujukan matematisnya. Nama fitur, angka, kode, visual, penelusuran pengklasifikasi, dan soal evaluasi di sini adalah karya orisinal.

Perkalian titik memasangkan fitur dengan bobot

Misalkan x=(x1,…,xn)x=(x_1,\ldots,x_n) adalah vektor fitur: satu daftar angka berurutan tetap yang merepresentasikan sebuah masukan. Misalkan w=(w1,…,wn)w=(w_1,\ldots,w_n) adalah vektor bobot: satu daftar parameter berurutan tetap yang menyatakan bagaimana model menggabungkan fitur-fitur tersebut. Kedua vektor memiliki nn koordinat, dan koordinat ii harus bermakna sama pada kedua daftar.

Notasi transpose membuat pemeriksaan bentuk terlihat jelas. Jika ww dianggap sebagai kolom n×1n\times1, maka wTw^{\mathsf T} berukuran 1×n1\times n dan wTxw^{\mathsf T}x menghasilkan nilai 1×11\times1—sebuah skor skalar. Notasi penjumlahan menyatakan hal yang sama dalam bentuk yang lebih mudah diperiksa: ada satu perkalian untuk setiap koordinat, lalu satu rangkaian penjumlahan.

Urutan adalah bagian dari kontrak data. Jika x2x_2 adalah tingkat kesalahan, maka w2w_2 harus menjadi bobot tingkat kesalahan. Dua larik dapat memiliki panjang yang sama tetapi tetap menggambarkan model yang salah jika koordinatnya ditukar.

Perkalian titik juga merupakan inner product real standar dari pelajaran sebelumnya, tetapi perannya berbeda di sini. Satu vektor adalah representasi masukan; vektor lainnya adalah sekumpulan parameter penilaian yang dipelajari atau dipilih. Penetapan peran ini membuat setiap hasil kali wixiw_i x_i berguna untuk diperiksa.

Contoh skor yang dikerjakan membuat setiap kontribusi terlihat

Gunakan vektor fitur dan vektor bobot kecil berikut:

x=(2.0, 0.5, 4.0, 3.0),w=(1.2, −0.8, 0.0, 0.4).x=(2.0,\ 0.5,\ 4.0,\ 3.0),\qquad w=(1.2,\ -0.8,\ 0.0,\ 0.4).

Keempat koordinat sudah berupa masukan numerik untuk model. Namanya hanya label untuk contoh ini; dalam pipeline nyata, prapemrosesan menentukan apa arti setiap angka dan skala yang digunakannya.

Kontribusi koordinat ii adalah wixiw_i x_i. Nilainya positif ketika fitur dan bobot memiliki tanda yang sama, negatif ketika tandanya berbeda, dan nol ketika salah satunya nol. Kontribusi positif mendorong skor ke atas; kontribusi negatif menariknya ke bawah. Besarnya ∣wixi∣\lvert w_i x_i\rvert menunjukkan seberapa besar pengaruh langsung koordinat tersebut pada skor khusus ini.

Telusuri setiap hasil kali fitur hingga total perkalian titik

Tabel ini adalah cadangan numerik lengkap untuk diagram kontribusi.
FiturNilai xᵢBobot wᵢKontribusi wᵢxᵢ
Cakupan2.001.20positif +2.40
Indikator kesalahan0.50−0.80negatif −0.40
Deviasi referensi4.000.00nol 0.00
Sinyal terverifikasi3.000.40positif +1.20
Total perkalian titik3.20
Air terjun kontribusi untuk satu perkalian titikEmpat langkah berlabel menjumlahkan kontribusi positif 2.40, negatif −0.40, nol 0.00, dan positif 1.20. Total perkalian titik akhirnya adalah 3.20. Langkah positif, negatif, dan nol juga ditandai dengan teks dan gaya garis.skor berjalan0.0003.20Cakupan+2.40Indikator kesalahan−0.40Deviasi referensi0.00Sinyal terverifikasi+1.20Total perkalian titik3.20

Baca tabel dari atas ke bawah untuk mengikuti setiap nilai, bobot, tanda, dan kontribusi tanpa bergantung pada warna atau geometri diagram.

Tanda garis utuh, putus-putus, dan berkerangka adalah petunjuk redundan: tabel serta label positif, negatif, atau nol sudah menyampaikan maknanya sendiri.

Tabel tersebut adalah cadangan yang menjadi sumber kebenaran: diagram kontribusi memberi jejak visual singkat tentang total berjalan, tetapi tidak menyembunyikan angka apa pun dalam warna, teks saat diarahkan, atau state sisi klien. Fitur berbobot nol tidak berkontribusi pada skor model ini meskipun nilai fiturnya 4.04.0.

Jika model juga memiliki bias bb, pisahkan offset tersebut dari hasil kali fitur. Dengan b=−1.7b=-1.7, skor afin menjadi

s=wTx+b=3.2−1.7=1.5.s=w^{\mathsf T}x+b=3.2-1.7=1.5.

Bias menggeser skor setiap masukan dengan jumlah yang sama. Bias bukan bukti bahwa salah satu dari empat fitur menyumbang −1.7-1.7.

Mengapa hasil kali koordinat berguna—tetapi terbatas

Jumlah ini benar-benar aditif. Jika hanya fitur ii yang berubah sebesar Δ\Delta, maka

wT(x+Δei)=wTx+wiΔ,w^{\mathsf T}(x+\Delta e_i)=w^{\mathsf T}x+w_i\Delta,

di mana eie_i adalah vektor yang bernilai 11 pada posisi ii dan 00 di tempat lain. Jadi, skor linear tetap berubah sebesar wiΔw_i\Delta—tidak ada istilah interaksi tersembunyi antara perubahan itu dan koordinat lain.

Itulah yang membuat wixiw_i x_i berguna untuk menjelaskan satu perhitungan linear ini. Namun, hal itu tidak menjadikan hasil kali tersebut atribusi kausal yang lengkap. Sistem yang dilatih mungkin memiliki fitur berkorelasi, langkah prapemrosesan, atau lapisan nonlinear setelahnya. Selain itu, besar suatu bobot tidak dapat dibandingkan begitu saja antarfitur dengan satuan atau skala berbeda. Standardisasi fitur dapat mengubah bobot numerik sementara prediksi model tetap ekuivalen setelah pembaruan parameter yang sesuai.

Pengklasifikasi linear menerapkan ambang pada skor

Pengklasifikasi linear biner menggunakan skor afin

g(x)=wTx+bg(x)=w^{\mathsf T}x+b

dan kemudian menerapkan aturan keputusan seperti

y^={1if g(x)≥0,0if g(x)<0.\hat y= \begin{cases} 1 & \text{if }g(x)\ge 0,\\ 0 & \text{if }g(x)<0. \end{cases}

Untuk masukan contoh, g(x)=1.5g(x)=1.5, sehingga ambang nol menetapkannya ke kelas 11. Ambang adalah langkah kedua; perkalian titik sendiri hanya menyediakan skor berbobot. Mengubah ambang mengubah keputusan tanpa mengubah hasil kali fitur.

Himpunan titik dengan g(x)=0g(x)=0 adalah garis dalam dua dimensi dan hyperplane dalam dimensi yang lebih tinggi. Vektor bobot ww tegak lurus terhadap batas tersebut dalam geometri Euclidean standar. Menggerakkan masukan ke arah yang sejajar dengan ww menaikkan skor; menggerakkannya berlawanan arah menurunkan skor. Inilah alasan perkalian titik mengubah daftar fitur menjadi posisi relatif terhadap batas pengklasifikasi.

Perbedaan ini juga muncul di scikit-learn. Panduan linear-model-nya menuliskan prediksi sebagai intersep ditambah kombinasi fitur berbobot (linear models), sedangkan LogisticRegression.decision_function mengembalikan skor kepercayaan yang berkaitan dengan jarak bertanda dari hyperplane (dokumentasi LogisticRegression). Skor tersebut bukan probabilitas. Model logistik dapat menerapkan sigmoid,

σ(g)=11+e−g,\sigma(g)=\frac{1}{1+e^{-g}},

yang memetakan g=1.5g=1.5 menjadi sekitar 0.8180.818. Nilai itu adalah perkiraan probabilitas yang dihasilkan fungsi link model; itu bukan makna perkalian titik dengan sendirinya, dan apakah suatu perkiraan terkalibrasi dengan baik adalah pertanyaan terpisah. Dalam dokumentasi yang sama, API yang mengembalikan perkiraan probabilitas adalah predict_proba.

Operasi yang sama dapat berarti kompatibilitas dalam attention

Dalam perhitungan attention, query qq dan key kk sama-sama merupakan vektor representasi. Perkalian titiknya, qTkq^{\mathsf T}k, adalah skor kompatibilitas yang digunakan untuk membandingkan key tersebut dengan key lain bagi query itu. Aritmetikanya tidak berubah: pasangkan koordinat yang sesuai, kalikan, lalu jumlahkan.

Interpretasinya berbeda dari contoh fitur. Dalam wTxw^{\mathsf T}x, ww berperan sebagai parameter dan xx sebagai masukan, sehingga wixiw_i x_i merupakan kontribusi koordinat terhadap satu skor model. Dalam qTkq^{\mathsf T}k, kedua vektor berasal dari representasi, sehingga satu hasil kali hanyalah bagian dari perhitungan kompatibilitas—bukan otomatis penjelasan kausal tentang mengapa sebuah token penting. Pelajaran 041 mengikuti skor ini melalui penskalaan dan softmax; perkalian titik mentah tetap muncul lebih dahulu.

NumPy menjaga implementasi tetap dekat dengan aljabar

Untuk larik satu dimensi, numpy.dot menghitung inner product kedua vektor dan mengembalikan skalar. Perkalian elemen demi elemen berguna ketika tujuannya adalah memeriksa kontribusi sebelum menjumlahkannya:

import numpy as np

x = np.array([2.0, 0.5, 4.0, 3.0])
w = np.array([1.2, -0.8, 0.0, 0.4])
b = -1.7

contributions = w * x
raw_score = np.dot(w, x)
classifier_score = raw_score + b

assert np.allclose(contributions.sum(), raw_score)
print(contributions)
print(raw_score)
print(classifier_score)

Outputnya adalah:

[ 2.4 -0.4  0.   1.2]
3.2
1.5

assert memeriksa identitas utama: penjumlahan hasil kali koordinat yang terlihat harus sama dengan pemanggilan perkalian titik yang ringkas. Menyimpan kedua bentuk ini dalam notebook debugging membuat skor lebih mudah diaudit daripada memperlakukan dot sebagai kotak hitam.

Kasus batas menangkap kesalahan yang tampak masuk akal

Empat pemeriksaan mencegah sebagian besar kesalahan pemula:

  • Bentuk yang sama bukan berarti makna yang sama. Jika urutan fitur diubah tetapi urutan bobot tidak, NumPy masih dapat mengalikan larik berbentuk (4,)(4,). Misalnya, memasangkan bobot di atas dengan x′=(2.0,4.0,0.5,3.0)x'=(2.0,4.0,0.5,3.0) menghasilkan 2.4−3.2+0.0+1.2=0.42.4-3.2+0.0+1.2=0.4, bukan 3.23.2. Kodenya berjalan; masukan modelnya salah.
  • Vektor nol menghasilkan perkalian titik nol. Jika setiap fitur nol, maka wTx=0w^{\mathsf T}x=0 untuk setiap ww. Dengan bias, skor pengklasifikasi tetap bb. Jadi, skor nol tidak membuktikan bahwa semua fitur saling meniadakan, dan vektor nol tidak memiliki arah untuk interpretasi berbasis sudut.
  • Negatif tidak otomatis berarti buruk. Fitur negatif dan bobot negatif menghasilkan kontribusi positif. Misalnya, (−2)(−0.7)=+1.4(-2)(-0.7)=+1.4. Tanda tersebut menjelaskan hasil kali dalam model ini, bukan label moral untuk fitur.
  • Skor bukan probabilitas. Nilai mentah dapat berupa −4-4, 00, atau 1212. Hanya aturan keluaran yang dipilih secara eksplisit—seperti ambang, sigmoid, atau softmax—yang mengubah skor itu menjadi keputusan atau perkiraan ternormalisasi.

Pelajaran berikutnya berpindah dari satu skor berbobot ke pertanyaan geometris yang berbeda: seberapa jauh dua titik ketika gagasan ukuran yang dipilih berubah? Halaman kursus Math for AI mencantumkan Pelajaran 043: Distance depends on the chosen geometry sebagai langkah berikutnya.

Uji pemahamanmu

Question 1

Show the step-by-step solution

Misalkan x=(2,−1,3)x=(2,-1,3) dan w=(0.5,2,−1)w=(0.5,2,-1). Hitung ketiga kontribusi koordinat dan perkalian titiknya. Suku mana yang menurunkan skor?

Hasil kali yang berpasangan adalah

0.5(2)=1,2(−1)=−2,(−1)(3)=−3.0.5(2)=1,\qquad 2(-1)=-2,\qquad (-1)(3)=-3.

Jumlahkan dalam urutan koordinat:

wTx=1+(−2)+(−3)=−4.w^{\mathsf T}x=1+(-2)+(-3)=-4.

Suku kedua dan ketiga menurunkan total karena keduanya negatif. Suku ketiga memiliki besar penurunan yang lebih besar, yaitu 33 bukannya 22.

Question 2

Show the step-by-step solution

Untuk x=(3,2,−4)x=(3,2,-4) dan w=(−2,0.5,0)w=(-2,0.5,0), hitung skor dan jelaskan mengapa fitur ketiga tidak mengubahnya.

Kalikan koordinat demi koordinat:

(−2)(3)=−6,0.5(2)=1,0(−4)=0.(-2)(3)=-6,\qquad 0.5(2)=1,\qquad 0(-4)=0.

Jadi, skornya adalah

wTx=−6+1+0=−5.w^{\mathsf T}x=-6+1+0=-5.

Fitur ketiga bernilai −4-4, tetapi bobotnya nol, sehingga hasil kalinya nol. Untuk skor hasil fitting ini, koordinat tersebut diabaikan; ini tidak berarti sinyal dasarnya tidak akan pernah penting dalam model lain atau setelah pelatihan ulang.

Question 3

Show the step-by-step solution

Sebuah pengklasifikasi memiliki x=(2,−1)x=(2,-1), w=(1,−2)w=(1,-2), dan b=−4b=-4. Hitung skor afinnya dan terapkan ambang nol.

Pertama hitung perkalian titik:

wTx=1(2)+(−2)(−1)=2+2=4.w^{\mathsf T}x=1(2)+(-2)(-1)=2+2=4.

Kemudian tambahkan bias:

g(x)=4+(−4)=0.g(x)=4+(-4)=0.

Skornya tepat berada di ambang. Dengan aturan g(x)≥0⇒y^=1g(x)\ge 0\Rightarrow \hat y=1, masukan ini ditetapkan ke kelas 11. Aturan yang menggunakan >> ketat akan membuat konvensi batas lebih jelas dan dapat menetapkan kelas yang berbeda.

Question 4

Show the step-by-step solution

Urutan fitur yang benar adalah x=(2,1,4)x=(2,1,4) dengan bobot w=(1,−3,2)w=(1,-3,2). Sebuah bug meneruskan x′=(2,4,1)x'=(2,4,1). Hitung kedua skor dan identifikasi kegagalannya.

Dengan urutan yang dimaksud,

wTx=1(2)+(−3)(1)+2(4)=2−3+8=7.w^{\mathsf T}x=1(2)+(-3)(1)+2(4)=2-3+8=7.

Dengan vektor fitur yang diubah urutannya,

wTx′=1(2)+(−3)(4)+2(1)=2−12+2=−8.w^{\mathsf T}x'=1(2)+(-3)(4)+2(1)=2-12+2=-8.

Kedua larik memiliki bentuk (3,)(3,), sehingga pemeriksaan bentuk saja tidak akan menangkap kesalahan ini. Hasil kali memasangkan bobot dengan makna fitur yang salah; skema data harus mempertahankan urutan koordinat sekaligus bentuk larik.

Question 5

Show the step-by-step solution

Sebuah fitur yang telah dipusatkan bernilai xi=−2x_i=-2 dan bobot yang dipelajarinya adalah wi=−0.7w_i=-0.7. Apakah koordinat ini menurunkan skor?

Hitung hasil kalinya, jangan menilainya hanya dari tanda fitur:

wixi=(−0.7)(−2)=+1.4.w_i x_i=(-0.7)(-2)=+1.4.

Koordinat itu menaikkan skor sebesar 1.41.4. Kedua tanda negatif saling meniadakan. Dalam ruang fitur yang dipusatkan atau diubah dengan cara lain, nilai fitur negatif adalah angka biasa, bukan kesalahan.

Question 6

Show the step-by-step solution

Skor pengklasifikasi mentah adalah g(x)=1.5g(x)=1.5. Apakah 1.51.5 merupakan probabilitas? Jika model secara eksplisit menggunakan link sigmoid, angka berapa yang dihasilkannya sebelum membahas kalibrasi?

Skor mentah bukan probabilitas: nilainya dapat berada di luar interval [0,1][0,1]. Sigmoid menghasilkan

σ(1.5)=11+e−1.5≈0.8176.\sigma(1.5)=\frac{1}{1+e^{-1.5}}\approx0.8176.

Jadi, fungsi link menghasilkan sekitar 0.8180.818. Menyebutnya sebagai perkiraan probabilitas yang berguna memerlukan model dan asumsi kalibrasinya; perkalian titik saja hanya menghasilkan skor 1.51.5.

Question 7

Show the step-by-step solution

Di NumPy, x.shape == (4,) dan w.shape == (4,), tetapi skor tiba-tiba berubah setelah refaktor pipeline data. Berikan satu pemeriksaan numerik yang dapat mengungkap bug urutan koordinat dengan menggunakan contoh yang dikerjakan.

Hitung ulang hasil kali elemen demi elemen dan bandingkan jumlahnya dengan skor berurutan yang diharapkan:

w∗x=(2.4,−0.4,0.0,1.2),∑iwixi=3.2.w*x=(2.4,-0.4,0.0,1.2),\qquad \sum_i w_i x_i=3.2.

Kemudian cetak nama fitur di samping nilainya sebelum perkalian titik. Jika pipeline menghasilkan (2.0,4.0,0.5,3.0)(2.0,4.0,0.5,3.0) sementara bobot tetap dalam urutan semula, hasil kali yang terlihat menjadi (2.4,−3.2,0.0,1.2)(2.4,-3.2,0.0,1.2) dan berjumlah 0.40.4. Bentuk larik tetap kompatibel, sehingga selain pemeriksaan bentuk diperlukan tabel kontribusi atau assertion urutan fitur bernama.

Question 8

Show the step-by-step solution

Perbandingan bergaya attention menggunakan q=(1,2,−1)q=(1,2,-1) dan k=(2,0,1)k=(2,0,1). Hitung qTkq^{\mathsf T}k dan jelaskan satu perbedaan interpretasi dari wTxw^{\mathsf T}x dalam pengklasifikasi.

Pasangkan lalu jumlahkan:

qTk=1(2)+2(0)+(−1)(1)=2+0−1=1.q^{\mathsf T}k=1(2)+2(0)+(-1)(1)=2+0-1=1.

Hasilnya adalah skor kompatibilitas antara query dan key. Dalam pengklasifikasi, ww adalah vektor parameter dan xx adalah masukan, sehingga setiap wixiw_i x_i merupakan kontribusi koordinat terhadap skor fitur. Dalam attention, qq dan kk sama-sama merupakan representasi; hasil kali koordinat berkontribusi pada perbandingan keduanya tetapi tidak otomatis menjadi atribusi fitur kausal.

Sumber

  1. Mathematics for Machine Learning book PDF, Section 3.2
  2. NumPy documentation: numpy.dot
  3. scikit-learn documentation: Linear Models
  4. scikit-learn documentation: LogisticRegression