រាល់ពេលដែល Neural Network រៀន វាតែងតែសួរខ្លួនឯងនូវសំណួរដដែលៗថា: "ប្រសិនបើខ្ញុំកែប្រែ parameter នេះបន្តិច តើ error នឹងកើនឡើង ឬថយចុះ — ហើយប៉ុន្មាន?" សំណួរនេះត្រូវបានឆ្លើយដោយ ដេរីវេ (Derivative)។ មុននឹងយើងនិយាយអំពី gradient ឬ optimizer យើងត្រូវយល់ derivative ពីដំបូងបង្អស់។

ផ្នែកទី ១ — បន្ទាត់ និងមេគុណប្រាប់ទិស (Lines and Slopes)
សមីការបន្ទាត់
ទំនាក់ទំនងងាយបំផុតរវាងតម្លៃពីរ គឺបន្ទាត់ត្រង់៖
ក្នុងនោះ៖
- គឺជា ទិន្នន័យចូល (input)
- គឺជា លទ្ធផល (output)
- គឺជា មេគុណប្រាប់ទិស ឬចំណោត (slope) — បញ្ជាក់ថាបន្ទាត់នោះងើបឡើង ឬចុះក្រោមខ្លាំងកម្រិតណា
- គឺជា ចំណុចប្រសព្វអ័ក្ស y — ជាកន្លែងដែលបន្ទាត់កាត់អ័ក្សឈរ
ឧទាហរណ៍៖
| 0 | 1 |
| 1 | 3 |
| 2 | 5 |
| 3 | 7 |
រាល់ពេលដែល កើនឡើង ១ នោះ នឹងកើនឡើង ២ ជានិច្ច។ មេគុណប្រាប់ទិស គឺជាអ្នកកំណត់អត្រាកំណើនថេរនេះ។
ការគណនាមេគុណប្រាប់ទិសរវាងចំណុចពីរ
ប្រសិនបើយើងមានពីរចំណុច និង នៅលើបន្ទាត់ មេគុណប្រាប់ទិសគឺ៖
នេះគឺជាការគណនា បំរែបំរួលកម្ពស់ ធៀបនឹងបំរែបំរួលចម្ងាយដេក — ពោលគឺ ប្រែប្រួលប៉ុន្មាន នៅពេល ផ្លាស់ប្តូរមួយឯកតា។
ហេតុអ្វីបានជាមេគុណប្រាប់ទិសមានសារៈសំខាន់?
មេគុណប្រាប់ទិសប្រាប់អ្នកអំពី អត្រាបម្រែបម្រួល។ បើវាស្មើ ២ មានន័យថា "រាល់ពេលដើរទៅមុខ ១ ជំហានក្នុងទិសដៅ x, តម្លៃ y នឹងឡើង ២"។ បើស្មើ −3 មានន័យថា y នឹងចុះ ៣។ បើស្មើ ០ មានន័យថា y មិនប្រែប្រួលទេ (បន្ទាត់ដេករាបស្មើ)។
ផ្នែកទី ២ — នៅពេលបន្ទាត់ក្លាយជាខ្សែកោង
បន្ទាត់ត្រង់មានមេគុណប្រាប់ទិស ថេរ នៅគ្រប់កន្លែង។ ប៉ុន្តែក្នុងគណិតវិទ្យា និង machine learning ភាគច្រើនយើងជួបនឹង ខ្សែកោង ដែលមានចំណោតប្រែប្រួលនៅគ្រប់ចំណុច។
សូមពិនិត្យមើលអនុគមន៍ប៉ារ៉ាបូល៖
| −3 | 9 |
| −1 | 1 |
| 0 | 0 |
| 1 | 1 |
| 3 | 9 |
នៅក្បែរ ខ្សែកោងនេះស្ទើរតែរាបស្មើ។ ប៉ុន្តែនៅក្បែរ វាហក់ឡើងយ៉ាងខ្លាំង។ ចំណោតរបស់វា ខុសៗគ្នានៅគ្រប់ចំណុច — នេះមានន័យថារូបមន្ត រវាងចំណុចពីរដែលនៅឆ្ងាយគ្នា អាចប្រាប់យើងបានត្រឹមតែ អត្រាបម្រែបម្រួលមធ្យម ប៉ុណ្ណោះ។
អត្រាបម្រែបម្រួលមធ្យម
សម្រាប់ចំណុចពីរ និង នៅលើខ្សែកោង អត្រាបម្រែបម្រួលមធ្យមគឺ៖
នេះគឺជាចំណោតនៃ បន្ទាត់កាត់ (secant line) ដែលភ្ជាប់ចំណុចពីរនៅលើខ្សែកោង។
ឧទាហរណ៍ នៅលើ ចន្លោះ និង :
នោះគឺជាភាពចោតមធ្យមចន្លោះ និង ប៉ុន្តែវាមិនប្រាប់យើងពីចំណោតនៅ ចំណុចជាក់លាក់ ណាមួយឡើយ។
ផ្នែកទី ៣ — លីមីត៖ ការពង្រីកមើលចំណុចតែមួយ
ដើម្បីរកចំណោត នៅត្រង់ចំណុចជាក់លាក់មួយ យើងត្រូវបង្រួមចម្ងាយ ឱ្យខិតទៅជិតសូន្យបំផុត។ នៅពេល កាន់តែតូចទៅៗ បន្ទាត់កាត់នឹងរំកិលខ្លួនរហូតក្លាយជា បន្ទាត់ប៉ះ (tangent line) — ដែលប៉ះខ្សែកោងត្រង់ចំណុចតែមួយគត់ និងបង្ហាញពីចំណោតពិតប្រាកដនៅត្រង់នោះ។
ជាផ្លូវការ អត្រាបម្រែបម្រួលខណៈ (ភ្លាមៗ) នៅត្រង់ គឺជា លីមីត (limit)៖
នេះគឺជាគំនិតស្នូលនៃ ដេរីវេ។
លីមីតតាមរយៈការយល់ដឹង
លីមីតសួរថា: "តើប្រាតិបត្តិការណ៍នោះខិតទៅតម្លៃអ្វី នៅពេលអថេរខិតទៅជិតលេខណាមួយ — ទោះបីជាមិនដល់ចំណុចនោះក៏ដោយ?"
ពង្រីក numerator (ចំនួននៅខាងលើ):
នៅពេល :
ចំណោតនៃ នៅចំណុចណាមួយ គឺ ពិតប្រាកដ។
ផ្នែកទី ៤ — ដេរីវេ (The Derivative)
និយមន័យ
ដេរីវេ នៃអនុគមន៍ នៅត្រង់ចំណុច សរសេរថា ឬ គឺ៖
វាប្រាប់យើងអំពី អត្រាបម្រែបម្រួលភ្លាមៗ ឬចំណោតនៃបន្ទាត់ប៉ះនៅគ្រប់ចំណុច។
អត្ថន័យតាមរូបធរណីមាត្រ
| តម្លៃដេរីវេ | អត្ថន័យ |
|---|---|
| អនុគមន៍កំពុង កើនឡើង នៅត្រង់ | |
| អនុគមន៍កំពុង ថយចុះ នៅត្រង់ | |
| អនុគមន៍ រាបស្មើ (អាចជាចំណុចទាបបំផុត ឬខ្ពស់បំផុត) | |
| ធំ | អនុគមន៍ប្រែប្រួល យ៉ាងលឿន |
| តូច | អនុគមន៍ប្រែប្រួល យឺតៗ |
ផ្នែកទី ៥ — ច្បាប់នៃការគណនាដេរីវេ (Rules)
ការគណនាលីមីតដោយដៃរាល់ពេលគឺហត់នឿយណាស់។ អ្នកគណិតវិទ្យាបានបង្កើត ច្បាប់កាត់ (shortcut rules) ជាច្រើន ដែលគ្របដណ្ដប់អនុគមន៍ស្ទើរតែទាំងអស់ដែលអ្នកនឹងជួប។
ច្បាប់ស្វ័យគុណ (Power Rule)
សម្រាប់ :
ឧទាហរណ៍:
| អនុគមន៍ | ដេរីវេ |
|---|---|
| (ពោលគឺ ) | |
| (ថេរ, ) |
ច្បាប់គុណនឹងថេរ (Constant Multiple Rule)
ប្រសិនបើ នោះ ។
ច្បាប់ផលបូក (Sum Rule)
ប្រសិនបើ គណនាដេរីវេម្តងមួយតេប:
ច្បាប់បណ្តាក់ (Chain Rule)
សម្រាប់ ការផ្សំ នៃអនុគមន៍ :
អានថា: "ដេរីវេនៃ outer function គណនានៅ inner function — គុណ (times) ដេរីវេនៃ inner function"
ឧទាហរណ៍:
ឱ្យ និង :
ច្បាប់បណ្តាក់ (Chain Rule) មាននៅគ្រប់ទីកន្លែងក្នុង machine learning — Backpropagation គឺជាការអនុវត្តច្បាប់នេះម្តងហើយម្តងទៀតឆ្លងកាត់ layer នៃ neural network។
តារាងសង្ខេបដេរីវេទូទៅ
| អនុគមន៍ | ដេរីវេ |
|---|---|
| (sigmoid) |
ធ្វើចលនា x₀ តាមខ្សែកោង ហើយមើល h ប្រែតូចទៅ 0 — បន្ទាត់កាត់ (ក្រហម) រំកិលខ្លួនក្លាយជាបន្ទាត់ប៉ះ (បៃតង) ដែលបង្ហាញពីដេរីវេជា slope ភ្លាមៗ។
ការកំណត់
ការគណនាផ្ទាល់
ខ្សែកោង និង ដេរីវេ
អត្ថន័យ ដេរីវេ តាមរូបធរណីមាត្រ
ផ្នែកដែលភ្លឺ បង្ហាញស្ថានភាពបច្ចុប្បន្ននៃ f′(x₀)។
f′(x) > 0 — កំពុងកើន
អនុគមន៍កើនឡើង នៅពេល x ដើរទៅស្ដាំ។ Gradient Descent ត្រូវដើរទៅឆ្វេង ដើម្បីចុះ Loss។
← ទីតាំងបច្ចុប្បន្ន
f′(x) = 0 — រាបស្មើ
បន្ទាត់ប៉ះ (tangent line) រាបត្រង់ — ចំណុចនេះ (critical point) អាចជា minimum, maximum, ឬ saddle point។
f′(x) < 0 — កំពុងចុះ
អនុគមន៍ចុះ នៅពេល x ដើរទៅស្ដាំ។ Gradient Descent ត្រូវដើរទៅស្ដាំ ដើម្បីចុះ Loss។
ផ្នែកទី ៦ — ការប្រើប្រាស់ដេរីវេក្នុងអនុវត្តជាក់ស្តែង
ការស្វែងរកចំណុចទាបបំផុត និងខ្ពស់បំផុត
ប្រសិនបើ នោះអនុគមន៍គឺរាបស្មើ។ ចំណុចនេះហៅថា ចំណុចវិបាក (critical point) ដែលអាចជា៖
- ចំណុចអប្បបរមា (Local minimum): អនុគមន៍ចុះក្រោម ហើយឡើងវិញ → ប្រែពីអវិជ្ជមានទៅជ្ជមាន
- ចំណុចអតិបរមា (Local maximum): អនុគមន៍ឡើង ហើយចុះក្រោម → ប្រែពីជ្ជមានទៅអវិជ្ជមាន
- ចំណុចបន្ទោះ (Saddle point): អនុគមន៍រាបស្មើ ប៉ុន្តែបន្តដំណើរក្នុងទិសដៅទូទៅដដែល
ឧទាហរណ៍: រករចំណុចអប្បបរមានៃ
នៅ : — នេះជាចំណុចអប្បបរមា។
def f(x):
return x**2 - 4*x + 5
def f_prime(x):
return 2*x - 4
# ស្វែងរកកន្លែងដែលដេរីវេ = 0
# 2x - 4 = 0 => x = 2
x_min = 2
print(f"ចំណុចអប្បបរមានៅ x={x_min}, f(x)={f(x_min)}") # x=2, f(x)=1
ដេរីវេជាសញ្ញាណទិស
នេះគឺជាអត្ថន័យសំខាន់ដែលភ្ជាប់ calculus ទៅ machine learning:
ប្រសិនបើ នៅចំណុចណាមួយ ការដើរ ទៅស្តាំធ្វើឱ្យ កើន។ ការដើរ ទៅឆ្វេងធ្វើឱ្យ ចុះ។
ប្រសិនបើ ផ្ទុយពីខាងលើ។
ដើម្បី កាត់បន្ថយ យើងគួរតែដើរ ក្នុងទិសដៅ ផ្ទុយ ពីដេរីវេ:
(ថ្មី = new, ចាស់ = old)
ត្រង់ គឺជាជំហានតូច (step size)។ ត្រូវចំណាំទេ? នេះគឺ ច្បាប់អាប់ដែតនៃ gradient descent ពិតប្រាកដ។
ផ្នែកទី ៧ — ពីអថេរមួយទៅអថេរច្រើន៖ ហ្ក្រាដ្យង់ (The Gradient)
ម៉ូឌែល Machine learning មិនមែនមានប៉ារ៉ាម៉ែត្រតែមួយទេ គឺវាមានរាប់លាន។ យើងត្រូវការរកដេរីវេធៀបនឹងប៉ារ៉ាម៉ែត្រ នីមួយៗ ក្នុងពេលតែមួយ។
ដេរីវេដោយផ្នែក (Partial Derivatives)
ដេរីវេដោយផ្នែក គឺការគណនាដេរីវេធៀបនឹងអថេរមួយ ដោយទុកអថេរផ្សេងទៀតឱ្យនៅថេរ (មិនប្រែប្រួល)។
= "តើ J ប្រែប្រួលប៉ុន្មាន ប្រសិនបើយើងកែ តែម្នាក់ឯង?"
ឧទាហរណ៍:
វ៉ិចទ័រហ្ក្រាដ្យង់ (The Gradient Vector)
នៅពេលយើងប្រមូលដេរីវេដោយផ្នែកទាំងអស់មកដាក់ក្នុងវ៉ិចទ័រតែមួយ យើងហៅវាថា ហ្ក្រាដ្យង់ ():
ហ្ក្រាដ្យង់គឺជាដេរីវេច្រើនឯករណ៍ (multi-dimensional equivalent of the derivative)។ វាចង្អុលបង្ហាញទិសដៅ ឡើងខ្លាំងបំផុត ក្នុង loss landscape។ ដើម្បីកាត់បន្ថយ error យើងត្រូវដើរក្នុង ទិសដៅផ្ទុយ ពីហ្ក្រាដ្យង់ — នេះជាមូលដ្ឋាននៃ gradient descent ពិតប្រាកដ។
ស្ពានទៅកាន់ Machine Learning
ក្នុង ML, អនុគមន៍ខាតបង់ (loss function) វាស់វែងថា តើម៉ូឌែលទស្សន៍ទាយខុសកម្រិតណា។ ហ្ក្រាដ្យង់ប្រាប់យើងថា តើត្រូវកែតម្រូវទម្ងន់ (weights) ទៅទិសដៅណាដើម្បីឱ្យកំហុសនោះថយចុះ។
ផ្នែកទី ៨ — ឧទាហរណ៍ពេញលេញ៖ Linear Regression
សូមមើលការអនុវត្តជាក់ស្ដែងនៃគំនិតទាំងអស់នេះ។
ការតំរុង: យើងមានទិន្នន័យ ហើយចង់ Fit បន្ទាត់ ។
អនុគមន៍ខាតបង់ (Loss function) (Mean Squared Error):
ដេរីវេដោយផ្នែក ធៀបនឹង (ប្រើ chain rule — ដេរីវេនៃ squared term ខាងក្រៅ គុណ ដេរីវេនៃ ខាងក្នុង):
ដេរីវេដោយផ្នែក ធៀបនឹង :
ការអាប់ដែត gradient descent — ដើរក្នុងទិសដៅផ្ទុយពី gradient:
import numpy as np
# ទិន្នន័យ: ទំនាក់ទំនងពិត y = 3x + 2
X = np.array([1.0, 2.0, 3.0, 4.0, 5.0])
y = np.array([5.0, 8.0, 11.0, 14.0, 17.0])
w, b = 0.0, 0.0 # ចាប់ផ្ដើមពីសូន្យ
alpha = 0.01
m = len(y)
for epoch in range(500):
y_pred = w * X + b # forward pass
error = y_pred - y # residuals: ŷ - y
# ដេរីវេដោយផ្នែក (the gradient)
dw = (2 / m) * np.dot(error, X) # ∂J/∂w
db = (2 / m) * np.sum(error) # ∂J/∂b
# ជំហាន gradient descent
w = w - alpha * dw
b = b - alpha * db
print(f"Fitted: ŷ = {w:.4f}·x + {b:.4f}")
# Output: ŷ = 3.0000·x + 2.0000
ដេរីវេ — គណនាតាមការវិភាគ calculus ហើយប្រើប្រាស់ម្ដងហើយម្ដងទៀត — គឺជាអ្វីដែលដំណើរការដំណើររៀនទាំងមូល។
សេចក្តីសង្ខេប
| គំនិត | និយមន័យខ្លីៗ |
|---|---|
| ចំណោត (Slope) | — អត្រាបម្រែបម្រួលថេរ |
| អត្រាបម្រែបម្រួលមធ្យម | — ចំណោតនៃ secant ចន្លោះ |
| លីមីត (Limit) | តម្លៃដែលប្រាតិបត្តិការណ៍ខិតទៅ នៅពេល |
| ដេរីវេ (Derivative) | — អត្រាបម្រែបម្រួលភ្លាមៗ |
| ច្បាប់ស្វ័យគុណ (Power rule) | |
| ច្បាប់បណ្តាក់ (Chain rule) | — ចំបាច់សម្រាប់ backprop |
| ដេរីវេដោយផ្នែក (Partial derivative) | ដេរីវេ ដោយទុកអថេរផ្សេងទៀតនៅថេរ |
| ហ្ក្រាដ្យង់ (Gradient) | វ៉ិចទ័រនៃដេរីវេដោយផ្នែកទាំងអស់ — ចង្អុលទៅទិសដៅឡើងខ្លាំងបំផុត |
ដេរីវេគឺជាចម្លើយគណិតវិទ្យាចំពោះសំណួរថា "តើផ្លូវណាជាផ្លូវឡើងទួល?"។ ក្នុង machine learning យើងប្រើសញ្ញាផ្ទុយរបស់វាដើម្បីរក "ផ្លូវចុះទួល" ដើម្បីបង្ហាត់ម៉ូឌែលឱ្យកាន់តែឆ្លាតវៃ។
តើត្រូវរៀនអ្វីបន្ត?
ឥឡូវនេះអ្នកមានមូលដ្ឋានគ្រឹះ calculus ហើយ។ ជំហានបន្ទាប់គឺ Gradient Descent ដែលជាអាល់ហ្គោរីតយកគំនិតដេរីវេនេះ មកបង្កើតជាម៉ាស៊ីនសម្រាប់រៀនដោយស្វ័យប្រវត្តិ។
បន្ទប់បន្ទាប់: Gradient Descent
See how the derivative becomes an optimization algorithm — with interactive experiments, full Python code, and a walk through every step of the math.
ចូលបន្ទប់ Gradient Descent →