Գրադիենտ ծագում գծային ռեգրեսիայում


Գծային ռեգրեսիայի օգտագործումը օգտակար տեխնիկա է փոփոխականների միջև կապը պարզելու և ուսումնասիրելու համար: Կանխատեսող մոդելավորումը հենվում է դրա վրա և այն օգտագործում է որպես մեքենայական ուսուցման շատ տեխնիկայի հիմնաքար: Մեքենայական ուսուցումը պահանջում է մեծ օպտիմիզացում: Այն համեմատելի է մոդելի կատարելագործման հետ՝ այն լավագույն կատարումն ապահովելու համար: Գրադիենտ անկումը, որն օպտիմալացման հիմնական տեխնիկան է, այս պահին մտնում է պատկերի մեջ: Համարեք այն որպես վստահելի դաշնակից, որը կօգնի մեզ նավարկելու պոտենցիալ մոդելի պարամետրերի հսկայական զանգվածը՝ գտնելու օպտիմալները:

Գրադիենտ վայրէջքը մեզ թույլ է տալիս կրկնվող կերպով փոխել այս պարամետրերը՝ մի փոքր շարժվելով ամենազառ անկման ուղղությամբ, ժամանակի ընթացքում նվազագույնի հասցնելով սխալը և առաջացնելով կոնվերգենցիա: Գրադիենտ վայրէջքը մեքենայական ուսուցման հիմնական տեխնիկան է, քանի որ այն թույլ է տալիս մեզ արդյունավետորեն օպտիմալացնել գծային ռեգրեսիայի մոդելների կատարումը: Այս գրառման մեջ մենք ուշադիր կանդրադառնանք Gradient Descent-ին գծային ռեգրեսիայում:

Հասկանալով գծային ռեգրեսիան

Կախված փոփոխականի և մեկ կամ ավելի անկախ փոփոխականների միջև կապը մոդելավորելու կարևոր վիճակագրական մեթոդ գծային ռեգրեսիան է: Փոփոխականների միջև կապը պատկերելու համար համապատասխան գիծ գտնելը ենթադրում է գծային հավասարում նախապես գոյություն ունեցող տվյալների բազայի վրա: Պարզ գծային ռեգրեսիայի հավասարումը ձևակերպված է հետևյալ կերպ.

Որտեղ

  • Կախյալ փոփոխականը y է:

  • Անկախ փոփոխականը x է:

  • y−հատվածը (y-ի արժեքը, երբ x-ը 0 է) $\mathrm{\beta_{0}}$է

  • Թեքությունը (y-ի փոփոխությունը x-ի մեկ միավոր աճի համար) $\mathrm{\beta_{1}}$է

  • Պատահական սխալը ներկայացված է $\mathrm{\varepsilon}$-ով

Գծային ռեգրեսիայի նպատակն է նվազագույնի հասցնել կանխատեսված արժեքների() և իրական արժեքների (y) տարբերությունը, որը հաճախ հայտնի է որպես ծախս, կորուստ կամ սխալ: Միջին քառակուսի սխալը (MSE), որը ուրվագծվում է հետևյալ կերպ, այն օբյեկտիվ ֆունկցիան է, որն առավել հաճախ օգտագործվում է:

Որտեղ,

  • Դիտարկումների ընդհանուր թիվը n է:

  • y-ը կախված փոփոխականի իրական արժեքն է:

  • ŷ կախված փոփոխականի ակնկալվող արժեքն է:

Հասկանալով գրադիենտ ծագումը

Մեքենայական ուսուցման մոդելներում ծախսերի գործառույթը կրկնվող նվազագույնի է հասցվում՝ օգտագործելով հզոր օպտիմալացման գործընթացը, որը հայտնի է որպես գրադիենտ ծագում: Այն սովորաբար օգտագործվում է մի քանի ոլորտներում, ներառյալ գծային ռեգրեսիան: Մի խոսքով, գրադիենտ անկումը զուգակցվում է դեպի լավագույն լուծումը` բազմիցս փոփոխելով մոդելի պարամետրերը ծախսերի ֆունկցիայի ամենադաժան անկման ուղղությամբ:

Գրադիենտ ծագումը մաթեմատիկորեն կարելի է ներկայացնել հետևյալ կերպ.

Այստեղ մոդելի պարամետրերը ներկայացված են $\mathrm{\theta}$-ով, ուսուցման արագությունը ցույց է տրված $\mathrm{\alpha}$-ով, ծախսերի ֆունկցիայի գրադիենտը պարամետրերի նկատմամբ նշվում է $\mathrm{\bigtriangledown-ով: J(\theta)}$, իսկ բազմապատկման գործողությունը ցուցադրվում է *-ով: Մոդելը ավելի է մոտենում պարամետրերի իդեալական արժեքներին, որոնք նվազագույնի են հասցնում ծախսերի գործառույթը, քանի որ այն թարմացնում է պարամետրերը այս բանաձևի համաձայն:

Լավագույն պիտանի գիծը գծային ռեգրեսիայի համատեքստում գտնելը, որը նվազագույնի է հասցնում կանխատեսված և իրական արժեքների միջև եղած բացը, խիստ կախված է գրադիենտ անկումից: Միջին քառակուսի սխալը (MSE) հաճախ օգտագործվում է որպես ծախսերի ֆունկցիա գծային ռեգրեսիայում: Գրադիենտ անկումը մոդելին թույլ է տալիս փոփոխել իր կանխատեսումները՝ նվազեցնելով ընդհանուր սխալը և մեծացնելով ռեգրեսիայի գծի ճշգրտությունը: Դա արվում է պարամետրերի (թեք և ընդհատում) պարբերական թարմացմամբ՝ օգտագործելով MSE-ի գրադիենտը:

Գրադիենտ անկման իրականացում գծային ռեգրեսիայում

Ֆունկցիոնալ Python կոդի օրինակ, որն օգտագործում է գրադիենտ ծագում գծային ռեգրեսիա կատարելու համար, ներկայացված է ստորև.

import numpy as np
import matplotlib.pyplot as plt

# Generate sample data for demonstration
np.random.seed(42)
X = 2 * np.random.rand(100, 1)
y = 4 + 3 * X + np.random.randn(100, 1)

# Add bias term to X
X_b = np.c_[np.ones((100, 1)), X]

# Set hyperparameters
learning_rate = 0.01
num_iterations = 1000

# Initialize parameters randomly
theta = np.random.randn(2, 1)

# Perform gradient descent
for iteration in range(num_iterations):
   gradients = 2 / 100 * X_b.T.dot(X_b.dot(theta) - y)
   theta = theta - learning_rate * gradients

# Print the final parameter values
print("Intercept:", theta[0][0])
print("Slope:", theta[1][0])

# Plot the data points and the regression line
plt.scatter(X, y)
plt.plot(X, X_b.dot(theta), color='red')
plt.xlabel('X')
plt.ylabel('y')
plt.title('Linear Regression with Gradient Descent')
plt.show()

Արդյունք

Intercept: 4.158093763822134
Slope: 2.8204434017416244

Մենք սկսում ենք այս կոդը՝ արտադրելով որոշ օրինակային տվյալներ: Հետագայում կողմնակալության տերմինը ներառվում է մուտքագրման X մատրիցում՝ գծային ռեգրեսիայի հավասարման մեջ ընդհատումը հաշվի առնելու համար: Այնուհետև սահմանվում են գրադիենտ ծագման ալգորիթմի ուսուցման արագությունը և կրկնությունները: Այնուհետև գրադիենտ իջնելը կատարվում է՝ կրկնելով կանխորոշված թվով կրկնություններ՝ թետա պարամետրերի պատահական սկզբնավորումից հետո: Մենք հաշվարկում ենք գրադիենտները՝ օգտագործելով միջին քառակուսի սխալի կորստի ֆունկցիան յուրաքանչյուր կրկնության մեջ և համապատասխան կերպով կարգավորում ենք պարամետրերը: Վերջապես, մենք օգտագործում ենք Matplotlib-ը տպելու վերջնական հատման և թեքության արժեքները և ցուցադրելու տվյալների կետերը և համապատասխան ռեգրեսիոն գծերը:

Եզրակացություն

Գծային ռեգրեսիայի էֆեկտները շատ դուրս են գալիս կանխատեսող մոդելավորման ոլորտից: Գծային ռեգրեսիան հնարավորություն է տալիս տվյալների վրա հիմնված որոշումներ կայացնել տարբեր առարկաների վրա՝ բացահայտելով փոփոխականների միջև փոխկապակցվածությունը: Կազմակերպությունները կարող են պատկերացում կազմել սպառողների վարքագծի վերաբերյալ, օպտիմալացնել ռեսուրսների բաշխումը, գնահատել պահանջարկը և կայացնել իմաստուն ռազմավարական որոշումներ՝ օգտագործելով գծային ռեգրեսիան ոլորտներում, ներառյալ ֆինանսները, տնտեսագիտությունը, մարքեթինգը և առողջապահությունը: