|
Mashinali o’qitishga kirish fanidan
|
Sana | 20.12.2023 | Hajmi | 326,77 Kb. | | #125294 |
Bog'liq mashinali 3
O`ZBEKISTON RESPUBLIKASI RAQAMLI TEXNOLOGIYALAR VAZIRLIGI
MUHAMMAD AL-XORAZMIY NOMIDAGI
TOSHKENT AXBOROT TEXNOLOGIYALARI UNIVERSITETI
Mashinali o’qitishga kirish fanidan
3-amaliy ish
Guruh: IML003-2
Bajardi: Rahmonov Adhamjon
Tekshirdi: G'ofurjonovMuxammadali .
Toshkent-2023
Gradient tushish
Gradient tushish - bu mashinani o’qitish modelini diversifikatsiya qilish uchun ishlatiladigan optimallashtirish algoritmi. U mashinani o’qitish modeli xotirasiga sig'maydigan ko'p sonli funksiyalar va juda ko'p namunalarga ega bo'lgan muammolar uchun eng mos keladi.
Gradient tushish usuli cheksiz o'lchamli fazolarda optimallashtirish masalalari uchun, masalan, optimal boshqarish masalalarini sonli echish uchun ishlatilishi mumkin.
So'nggi yillarda gradient usullariga katta qiziqish uyg'otdi, chunki gradient tushishlari va ularning stokastik/tasodifiy variantlari ma'lumotlar tahlilida ishlab chiqilgan deyarli barcha zamonaviy o'rganish algoritmlari asosida yotadi.Bu tushuncha funktsiya gradienti har doim eng katta mahalliy o'sish yoki pasayish yo'nalishini ko'rsatishidan kelib chiqadi. Gradient tushish algoritmining maqsadi berilgan ma'lumotlarga eng mos keladigan modelga mos keladigan yo'qotish funktsiyasining minimal nuqtasini topishdir.
Algoritm model parametrlarini ixtiyoriy qiymatlarga ishga tushirishdan boshlanadi, so'ngra konvergentsiyaga erishilgunga qadar ularni gradientning teskari yo'nalishi bo'yicha moslashtirish orqali iterativ ravishda moslashtiradi.
Har bir iteratsiyada joriy parametrlar to'plami uchun gradient baholanadi va parametrlar quyidagi formula yordamida yangilanadi:
i = i - a * ∇ thi J(th)
Bu yerda i parametrning joriy qiymatini ifodalaydi, a o‘rganish tezligi (yaqinlashish tezligiga ta’sir etuvchi giperparametr), ∇ thi J(th) esa i parametrga nisbatan xarajat funksiyasining qisman hosilasidir. O'rganish tezligi ehtiyotkorlik bilan tanlanishi kerak, chunki juda kichik qiymat sekin konvergentsiyaga olib kelishi mumkin va juda katta qiymat algoritmning tebranishiga yoki haqiqiy minimal nuqtadan chetga chiqishiga olib kelishi mumkin.
import matplotlib.pyplotas plt
import math
from sympyimport var, sympify
defsigmoid(x):
return 1 / (1 + math.exp(-x))
f = input("f(x) = ")
n = int(input("n = "))
x_list = [1, 2, 3]
w_list = []
loss_list = []
a = 0.001
w = 1
x = var('x')
expr = sympify(f)
for iin range(n):
summa = 0.0
for x1 in x_list:
res = expr.subs(x, x1)
loss = (sigmoid(w * x1) - res) ** 2
summa += loss
loss = summa / 3
loss_list.append(loss)
print(f"loss({i}) = {loss}")
print(f"w({i}) = {w}")
new_loss = 0
for x1 in x_list:
new_loss += (sigmoid(w * x1) - expr.subs(x, x1)) * x1
w_list.append(w)
w = abs(w - a * (1 / 3) * new_loss)
plt.plot(w_list, loss_list)
plt.xlabel('w - axis')
plt.ylabel('loss - axis')
plt.title('Logistic Regression with Sigmoid Function')
plt.show()
1-rasm.Kodning umumiy ko’rinishi
2-rasm. Loss o’rtacha qiymatlarining grafigi
Xulosa
Gradient tushish - bu mashinani o’qitish modelini diversifikatsiya qilish uchun ishlatiladigan optimallashtirish algoritmi hisoblanadi va mashinani o’qitish modeli xotirasiga sig'maydigan ko'p sonli funksiyalar va juda ko'p namunalarga ega bo'lgan muammolar uchun eng mos keladi.
Biz bu amaliy mashg’ulotni bajarish jarayonida gradient tushish haqida qisman ma’lumotga ega bo’ldik, chizgan grafiklarimizda aniqlik har doim birinchi o’rinda ekanligini o’rgandik.
|
| |