Kursus
Saat kita membahas optimasi, pelatihan model, atau memahami kelengkungan permukaan loss, biasanya yang terlintas adalah fungsi biaya dan gradien. Fungsi biaya menjelaskan seberapa baik kinerja model kita, sedangkan gradien—turunan pertamanya—menunjukkan arah perubahan paling curam untuk mengurangi loss. Namun gradien hanya memberi tahu kita kemiringan, bukan bagaimana kemiringan itu sendiri berubah.
Di sinilah matriks Hessian yang sering terabaikan menjadi penting. Ini adalah matriks persegi dari turunan parsial orde dua dari sebuah fungsi bernilai skalar yang menangkap bagaimana gradien berkembang, mengungkap kelengkungan permukaan loss. Dalam data science, Hessian penting dalam tugas-tugas yang melibatkan algoritma optimasi tingkat lanjut, diagnosis model, serta untuk menilai stabilitas dan konvergensi model machine learning.
Matriks Hessian menggeneralisasi konsep turunan kedua dari fungsi satu variabel ke konteks multivariabel. Ia mengodekan informasi tentang kelengkungan lokal suatu fungsi untuk mengkuantifikasi bagaimana fungsi tersebut menekuk atau melengkung di sekitar suatu titik. Ini membantu menganalisis titik-titik kritis, seperti minimum, maksimum, dan titik pelana, serta memandu teknik optimasi numerik tingkat lanjut.
Fokus artikel ini adalah memahami matriks Hessian yang membantu menjelaskan bagaimana algoritma optimasi berperilaku dan seberapa cepat konvergen. Ini sangat berguna saat berhadapan dengan model kompleks yang melibatkan banyak variabel. Bagi yang familiar dengan vektor gradien dan matriks Jacobian, Hessian adalah langkah berikutnya. Ia memberi tahu Anda bagaimana fungsi berperilaku dalam ruang berdimensi tinggi.
Apa Itu Matriks Hessian?
Perhatikan persamaan ini sebagai fungsi bernilai skalar yang dapat diturunkan dua kali:
![]()
Artinya fungsi ini dapat diturunkan dua kali, dan mengembalikan sebuah angka tunggal. Matriks Hessian dari f, dinotasikan Hf(x), adalah matriks persegi n x n yang memuat semua turunan parsial orde dua dari f.
Secara formal, setiap elemen matriks Hessian didefinisikan sebagai:

Ini berarti Hessian memberi tahu kita bagaimana gradien (turunan pertama) suatu fungsi berubah terhadap setiap variabel masukan.
Jika semua turunan parsial kedua dari f kontinu di suatu lingkungan sekitar suatu titik, teorema Clairaut (juga disebut teorema Schwarz) menyatakan bahwa turunan campuran adalah sama, yaitu urutan diferensiasi tidak berpengaruh:

Sifat simetri ini berarti matriks Hessian bersifat simetris dalam kasus-kasus tersebut.
Penting untuk dicatat, matriks Hessian hanya didefinisikan untuk fungsi bernilai skalar, yaitu fungsi yang mengembalikan satu angka. Saat berurusan dengan fungsi bernilai vektor, seperti:
![]()
maka konsep turunan kedua meluas menjadi sebuah tensor ordo tiga alih-alih matriks. Tensor ini menangkap bagaimana setiap komponen keluaran dari F berubah terhadap tiap pasangan masukan.
Misalkan Rn -> R adalah fungsi bernilai skalar yang dapat diturunkan dua kali. Matriks Hessian dari f adalah matriks n x n yang didefinisikan sebagai:

Setiap elemen Hij adalah turunan parsial kedua:

Contoh Matriks Hessian
Pertimbangkan fungsi berikut:

Turunan parsial orde pertama:

Turunan parsial orde kedua:



Matriks Hessian

Evaluasi pada (x,y) = (1,1)

Diskriminan
![]()
Diskriminan negatif menunjukkan bahwa titik kritis adalah titik pelana. Silakan lihat teknik titik pelana dalam kursus kami, Introduction to Optimization in Python, untuk mempelajari penerapan praktis Hessian.
Berikut contoh yang sama diimplementasikan dalam Python:
import sympy as sp
x, y = sp.symbols('x y')
f = x**3 - 2*x*y - y**6
# Compute gradient
grad_f = [sp.diff(f, var) for var in (x, y)]
# Compute Hessian
hessian_f = sp.hessian(f, (x, y))
# Evaluate at point (1,1)
eval_hessian = hessian_f.subs({x: 1, y: 1})
determinant = eval_hessian.det()
print("Gradient:")
sp.pprint(grad_f)
print("")
print("Hessian matrix:")
sp.pprint(hessian_f)
print("")
print("Hessian at (1,1):")
sp.pprint(eval_hessian)
print("")
print("Discriminant:", determinant)

Kode ini menggunakan diferensiasi simbolik untuk menghitung matriks Hessian dan mengevaluasinya pada titik tertentu. Alat seperti SymPy berfungsi sebagai "kalkulator matriks Hessian" yang praktis untuk tujuan edukasi maupun riset terapan.
Diskriminan dan Uji Turunan Kedua
Uji turunan kedua dalam dimensi jamak mengklasifikasikan titik kritis menggunakan matriks Hessian:
Misalkan X0 adalah titik kritis di mana hal berikut berlaku.
![]()
Misalkan Hessian
![]()
Interpretasi bergantung pada definiteness dari Hessian:
- Definit positif (semua nilai eigen > 0): X0 adalah minimum lokal.
- Definit negatif (semua nilai eigen < 0): X0 adalah maksimum lokal.
- Tak definit (tanda nilai eigen campuran): X0 adalah titik pelana.
- Singular (determinan nol): Uji ini tidak konklusif.
Mari pahami ini dengan contoh untuk keempat kasus tersebut:
import numpy as np
import matplotlib.pyplot as plt
from sympy import symbols, diff, hessian, lambdify
# Define symbols
x, y = symbols('x y')
# List of 4 functions for different discriminant cases
functions = [
("x**2 + y**2", "Positive definite (local minimum)"),
("-x**2 - y**2", "Negative definite (local maximum)"),
("x**2 - y**2", "Indefinite (saddle point)"),
("x**4 + y**4", "Zero determinant (inconclusive)")
]
# Prepare plots
fig, axes = plt.subplots(2, 2, figsize=(12, 10))
axes = axes.ravel()
for i, (func_str, title) in enumerate(functions):
f = eval(func_str)
# Compute gradients and Hessian
fx = diff(f, x)
fy = diff(f, y)
H = hessian(f, (x, y))
# Evaluate Hessian at (0,0) (critical point for all these functions)
H0 = H.subs({x: 0, y: 0})
det_H0 = H0.det()
fxx0 = H0[0, 0]
# Classification
if det_H0 > 0 and fxx0 > 0:
classification = "Local Minimum"
elif det_H0 > 0 and fxx0 < 0:
classification = "Local Maximum"
elif det_H0 < 0:
classification = "Saddle Point"
else:
classification = "Inconclusive"
# Prepare function for plotting
f_lamb = lambdify((x, y), f, 'numpy')
X, Y = np.meshgrid(np.linspace(-2, 2, 100), np.linspace(-2, 2, 100))
Z = f_lamb(X, Y)
# Plot
ax = axes[i]
cp = ax.contourf(X, Y, Z, levels=50, cmap='coolwarm')
ax.set_title(f"{title}\n{func_str}\nDet(H)={det_H0}, fxx={fxx0} → {classification}")
ax.plot(0, 0, 'ko') # critical point
fig.colorbar(cp, ax=ax)
plt.tight_layout()
plt.show()

Pada plot kontur di atas, ketinggian meningkat dari “Biru” sebagai yang terendah hingga “Merah” sebagai yang tertinggi.
Uji ini merupakan perluasan dari uji turunan kedua untuk fungsi satu variabel dan dibahas bersama topik seperti deret Taylor dan optimasi konveks.
Matriks Hessian dalam Optimasi
Matriks Hessian muncul secara alami dalam ekspansi Taylor orde dua dari sebuah fungsi skalar:

Pendekatan kuadratik ini memungkinkan metode tipe Newton menemukan titik kritis secara efisien. Metode Newton memperbarui variabel menurut:

Dalam pengaturan berdimensi tinggi, menghitung dan menyimpan Hessian penuh bisa sangat mahal secara komputasi. Karena itu, metode kuasi-Newton seperti BFGS dan L-BFGS mendekati Hessian secara iteratif menggunakan perbedaan gradien.
Selain itu, hasil kali vektor-Hessian Hv dapat diaproksimasi tanpa menghitung matriks penuh menggunakan beda hingga:

Aproksimasi ini sangat berguna dalam kerangka deep learning yang memanfaatkan diferensiasi otomatis.
Penerapan dalam Machine Learning dan Data Science
Dalam machine learning, matriks Hessian memberikan wawasan tentang kelengkungan lanskap loss:
- Pada jaringan saraf, analisis Hessian dapat mengungkap keberadaan titik pelana dan wilayah datar.
- Dalam masalah optimasi konveks, Hessian membantu memverifikasi kekonveksan dan memandu solver orde dua.
- Dalam fine-tuning model, pengetahuan tentang Hessian membantu menyesuaikan laju pembelajaran berdasarkan kelengkungan lokal.
Di luar optimasi, Hessian digunakan dalam:
- Diagnostik statistik (misalnya matriks informasi Fisher dalam estimasi kemungkinan maksimum).
- Computer vision, seperti detektor blob Determinant of Hessian (DoH), digunakan untuk deteksi fitur.
- Dinamika molekuler, khususnya dalam analisis mode normal untuk spektrum vibrasi.
Memahami Hessian memungkinkan praktisi melampaui gradient descent dan menerapkan algoritma yang lebih canggih seperti BFGS, yang digunakan dalam kursus seperti Machine Learning Fundamentals in Python. Teknik-teknik ini bergantung pada topik kalkulus lanjutan seperti deret Taylor dan aljabar matriks.
Kesimpulan
Matriks Hessian merangkum informasi orde dua tentang fungsi bernilai skalar dan menyediakan kerangka kerja yang kaya untuk menganalisis kelengkungan, mengidentifikasi titik kritis, dan menyelesaikan masalah optimasi. Sementara gradien memandu arah, Hessian memperhalus pemahaman tentang bentuk dan ketajaman, terutama pada masalah berdimensi tinggi yang umum dalam machine learning.
Bagi praktisi yang sudah terbiasa dengan Jacobian dan gradien, menguasai Hessian menawarkan pandangan yang lebih lengkap tentang perilaku algoritma dan struktur masalah.
Saya adalah Penasihat dan Etikus AI yang bekerja di persimpangan ilmu data, produk, dan rekayasa untuk membangun sistem pembelajaran mesin yang dapat diskalakan. Masuk dalam daftar "200 Inovator Bisnis dan Teknologi Teratas" di dunia, saya memiliki misi untuk mendemokratisasi pembelajaran mesin dan menyederhanakan jargon agar semua orang dapat menjadi bagian dari transformasi ini.
FAQ
Apa itu matriks Hessian, dan mengapa penting dalam optimasi?
Matriks Hessian adalah matriks persegi dari turunan parsial orde dua dari sebuah fungsi bernilai skalar. Ia menangkap kelengkungan fungsi, membantu menentukan sifat titik kritis dan memandu algoritma optimasi untuk konvergensi yang lebih baik.
Apa perbedaan Hessian dengan gradien dan Jacobian?
Sementara gradien menyediakan turunan pertama (arah kenaikan paling curam), dan Jacobian memperluas ini ke fungsi bernilai vektor, Hessian melangkah lebih jauh dengan menggambarkan bagaimana gradien itu sendiri berubah, memberikan wawasan tentang kelengkungan fungsi dalam banyak dimensi.
Kapan matriks Hessian bersifat simetris?
Matriks Hessian bersifat simetris ketika semua turunan parsial kedua kontinu di sekitar suatu titik, menurut teorema Clairaut (atau Schwarz). Simetri ini membantu menyederhanakan analisis teoretis dan komputasi.
Bagaimana Hessian digunakan untuk mengklasifikasikan titik kritis?
Menggunakan uji turunan kedua:
- Hessian definit positif → minimum lokal
- Hessian definit negatif → maksimum lokal
- Hessian tak definit → titik pelana
- Determinan nol → uji tidak konklusif
Dapatkah Hessian dihitung dan divisualisasikan menggunakan Python?
Ya, pustaka matematika simbolik seperti SymPy memungkinkan perhitungan dan evaluasi matriks Hessian pada titik tertentu. Alat ini berguna untuk pembelajaran maupun tugas optimasi praktis dalam data science dan machine learning.

