مضى على الشبكة و يوم من العطاء.

ضبط النموذج وتحسين الاداء (Hyperparameter Tuning) :


السمعة:

بسم الله الرحمن الرحيم والصلاة والسلام على أشرف المرسلين
السلام عليكم ورحمة الله
تحية طيبة


اليوم إن شاء الله سنبدأ في سلسلة شرح المفاهيم المتقدمة في تعلم الآلة حيث أننا سننطلق بأول مفهوم ألا وهو ضبط المعاملات الفائقة (Hyperparameter Tuning) والذي يعتبر أحد أهم المفاهيم التي لها دور كبير جدًا في زيادة دقة النموذج, سنحاول فهم ما هذا المفهوم ولماذا نحتاجه وما الأساليب المستعملة . فلنبدأ على بركة الله ..

1️⃣ضبط المعاملات الفائقة (Hyperparameter Tuning) :
يعرف نموذج التعلم الآلي بأنه نموذج رياضي يتضمن عدة معلمات يجب تعلمها من البيانات من خلال التدريب ومع ذلك هنا نوع آخر من المعلمات وهو ما يسمى بالمعلمات الفائقة والتي لا يمكن تعلمها مباشرة من عملية التدريب عادة ماتضبط قبل عملية التدريب الفعلية حيث أنها تؤثر على كل من أداء وتعقيد وسرعة النموذج إذًا

ماهي المعاملات الفائقة؟
تعريف : هو عملية اختيار القيم المثلى لنموذج التعلم الآلي فعلى سبيل المثال خورازمية knn التي رأيناها في الدرس السابق قمنا بتحديد عدد الجيران الذي يساعدنا في تصنيف البيانات هذا الاختيار قد يكون عشوائيًا وغير مستند إلى منهجية دقيقة لذا هذا قد يؤثر سلبًا على نموذجنا بالإضافة إلى أن هذه الخوارزمية لاتقتصر فقط على عدد الجيران فهي تمتلك العديد من المدخلات مثل طريقة حساب المسافة (Euclidean, Manhatta ) , وطريقة التصويت (Uniform vs. Distance-based) هذه المعاملات يصعب تحديد القيم المثلى لها يدويا ولهذا نستعمل ضبط المعلمات الفائقة .

لماذا نحتاج لضبط المعلمات الفائقة؟
كما ذكرنا مسبقًا اختيار القيم المثلى للنموذج تؤثر على العديد من الأشياء منها:
1- سرعة النموذج فهي تجعل النموذج يتعلم بسرعة دون فقدان الدقة
2- أداء النموذج فهي تحسن الدقة وتقلل نسبة الخطأ إضافةً إلى أنها تتجنب أحد أهم المشاكل في تعلم الآلة ألا وهي underfiting و overfiting والتي سنتعمق فيها بشكل أكبر في الدروس القادمة.


2️⃣ طرق ضبط المعلمات الفائقة (Hyperparameter Tuning) :

في هذه الجزئية سنرى الطرق المشهورة المستخدمة في ضبط المعلمات الفائقة ,يوجد العديد والعديد من الطرق أشهرهما RandomSearch وGridSearch واللذان سنشرحهما الآن:
1- طريقة البحث الشبكي GridSearch :
تعتمد هذه الطريقة على ملائمة النموذج باستخدام جميع التراكيب الممكنة لقيم المعاملات الفائقة المحددة مسبقًا حيث يٌنشىء شبكة من القيم المنفصلة المحتملة لكل معامل فائق ويدرب النموذج على كل تركيبة ممكنة وتختار التركيبة التي تعطي أفضل النتائج ,تعتبر هذه الطريقة فعالة جدًا في إيجاد القيم المثلى إلا أن لها العديد من العيوب أكبرها جعل النموذج بطئ جدًا كما أنه مكلف حسابيًا


2.1 : تطبيق الطريقة على خوارزمية knn باستعمال python :
ستلاحظون أنني لم أقارن النتائج وهذا لكون البيانات الخاصة بنا كبيرة جدًا وتستغرق وقت طويل جدًا لقد قمت بتجربتها إلا أنه لم ينتهي من المعالجة

كود:
from sklearn.model_selection import GridSearchCV #هنا نقوم باستيراد الخوارزمية
from sklearn.metrics import classification_report
from sklearn.neighbors import KNeighborsClassifier

# تحديد القيم المراد تجربتها
بما اننا في knn فنقوم بتحديد القيم التي نريد تجربتها على سبيل مثال عدد الجيران هو من 1 الى 21 ونفس الشيئ الى باقي مدخلات knn
param_grid = {
    'n_neighbors': range(1, 21),  # تجربة القيم من 1 إلى 20
    'weights': ['uniform', 'distance'],  # مقارنة طريقتي التصويت
    'metric': ['euclidean', 'manhattan', 'minkowski']  # أنواع المسافة
}

# إنشاء النموذج و البحث الشبكي
knn = KNeighborsClassifier()
grid_search = GridSearchCV(knn, param_grid, cv=5, scoring='accuracy')# انشاء خوارزمية البحث الشبكي  وادخال الكائن الدي انشئناه

grid_search.fit(X_train, y_train) # تدريب النموذج

# عرض أفضل القيم
print("أفضل المعاملات:", grid_search.best_params_) هنا سيمنحنا افضل قيم تم اختيارها من قبل الخوارزمية

# اختبار النموذج الأمثل
y_pred = grid_search.best_estimator_.predict(X_test)
print(classification_report(y_test, y_pred)) اما هنا سنتحصل على تقرير دقة النموذج وغيره


2- طريقة البحث العشوائي Random Search :

Randomized Search هو طريقة لتحسين أداء نموذج تعلم الآلة عن طريق البحث العشوائي عن القيم المثلى للمعاملات الفائقة (Hyperparameters) بدلًا من تجربة كل القيم الممكنة كما يحدث في Grid Search،يقوم Randomized Search باختيار مجموعة عشوائية من القيم من النطاق المحدد مما يجعله أسرع وأكثر كفاءة خاصة مع مجموعات البيانات الكبيرة



1.2 : تطبيق الطريقة على خوارزمية knn باستعمال python :

كود:
from sklearn.model_selection import RandomizedSearchCV
from sklearn.neighbors import KNeighborsClassifier
from sklearn.metrics import classification_report
from scipy.stats import randint

# تحديد القيم الممكنة للمعاملات الفائقة
param_dist = {
    'n_neighbors': randint(1, 21),  # اختيار عدد الجيران من 1 إلى 20 بشكل عشوائي
    'weights': ['uniform', 'distance'],  # تجربة نوعين من الأوزان
    'metric': ['euclidean', 'manhattan', 'minkowski']  # تجربة أنواع مختلفة من المسافة
}

# إنشاء نموذج KNN
knn = KNeighborsClassifier()

# إنشاء البحث العشوائي مع عدد محدد من التكرارات
random_search = RandomizedSearchCV(
    knn, param_distributions=param_dist,
    n_iter=10,  # عدد القيم العشوائية التي سيتم تجربتها
    cv=5,  # عدد الطيات في التحقق المتقاطع
    scoring='accuracy',  # مقياس التقييم
    random_state=42  # لضمان تكرار نفس النتائج
)

# تدريب البحث العشوائي
random_search.fit(X_train, y_train)

# عرض أفضل القيم المختارة
print("أفضل المعاملات:", random_search.best_params_)

# اختبار النموذج الأفضل على بيانات الاختبار
y_pred = random_search.best_estimator_.predict(X_test)
print(classification_report(y_test, y_pred))

لنقارن نتائج الاختيار اليدوي مع استعمال طريقة البحث العشوائي
النتيجة السابقة :

Capture.webp

النتيجة الحالية :
Capture.webp


كما تلاحظون الفرق عند استعمال خورازمية البحث العشوائي نلاحظ أولًا أنه قام بطباعة النتائج المثلى لنا كما هو مبين إضافةً إلى أننا نلاحظ ارتفاع في بعض النتائج كدقة الفئة 1 أصبحت نوعًا ما معادلة للفئة 0

الفرق بين الطريقتين :
الطريقةالمبدأالمزاياالعيوب
البحث الشبكي Grid Searchتجربة جميع التراكيب الممكنة للمعلمات الفائقةيعطي أفضل نتيجة ممكنةمكلف حسابياً وبطئ
البحث العشوائي Random Searchاختيار قيم عشوائيةأسرع وأقل تكلفة حسابياًقد لايجد أفضل القيم

الخلاصة :
ضبط المعاملات الفائقة خطوة مهمة في تحسين أداء النماذج كما أن استخدام الطريقة المناسبة يعتمد على الموارد والوقت المتاح وهذا هو التحدي الذي ستواجهه


شكرًا على حسن الاستماع أراكم إن شاء الله في الدروس القادمة والسلام عليكم
بالتوفيق للجميع
 
التعديل الأخير بواسطة المشرف:
بسم الله الرحمان الرحيم والصلاة والسلام على اشرف المرسلين
السلام عليكم ورحمة الله
تحية طيبة
اليوم انشاء الله سنبدا في سلسلة شرح المفاهيم المتقدمة في تعلم الالة حيث اننا سننطلق باول مفهوم الا وهو ضبط المعلمات الفائقة (Hyperparameter Tuning) والذي يعتبر احد اهم المفاهيم التي لها دور كبير جدا في زيادة دقة النموذج , سنحاول فهم ماهذا المفهوم ولماذا نحتاجه وما الاساليب المتسعملة . فلنبدا على بركة الله
1️⃣ضبط المعلمات الفائقة (Hyperparameter Tuning) :
يعرف نموذج التعلم الالي بانه نموذج رياضي يتضمن عدة معلمات يجب تعلمها من البيانات من خلال التدريب ومع ذالك هنا نوع اخر من المعلمات وهو مايسمى بالمعلمات الفائقة والتي لايمكن تعلمها مباشرة من عملية التدريب عادة ماتضبط قبل عملية التدريب الفعلية حيث انها تؤثر على كل من اداء وتعقيد وسرعة النموذج اذا
ماهي المعاملات الفائقة ? :
تعريف : هو عملية اختيار القيم المثلى لنموذج التعلم الالي فعلى سبيل المثال خورازمية knn التي رايناها في الدرس السابق قمنا بتحديد عدد الجيران الذي يساعدنا في تصنيف البيانات هذا الاختيار قد يكون عشوائيا وغير مستند إلى منهجية دقيقة لذا هذا قد يؤثر سلبا على نموذجنا بالاضافة الى ان هذه الخوارزمية لاتقتصر فقط على عدد الجيران فهي تمتلك العديد من المدخلات مثل مثل طريقة حساب المسافة (Euclidean, Manhatta ) وطريقة التصويت (Uniform vs. Distance-based) هذه المعاملات يصعب تحديد القيم المثلى لها يدويا ولهذا نستعمل ضبط المعلمات الفائقة .
لماذا نحتاج لضبط المعلمات الفائقة ? :
كما ذكرنا مسبقا اختيار القيم المثلى للنموذج تؤثر على العديد من الاشياء منها
سرعة النموذج فهي تجعل النموذج يتعلم بسرعة دون فقدان الدقة
اداء النموذج فهي تحسن الدقة وتقلل نسبة الخطا اضافة الى انها تتجنب احد اهم المشاكل في تعلم الالة الا وهي underfiting وoverfiting والتي سنتعمق فيها بشكل اكبر في الدروس القادمة

2️⃣ طرق ضبط المعلمات الفائقة (Hyperparameter Tuning) :
في هذه الجزئية سنرى الطرق المشهورة المستخدمة في ضبط المعلمات الفائقة ,يوجد العديد والعديد من الطرق اشهرهما RandomSearch وGridSearch واللذان سنشرحهما الان
1- طريقة البحث الشبكي GridSearch :
تعتمد هذه الطريقة على ملائمة النموذج باستخدام جميع التراكيب الممكنة لقيم المعاملات الفائقة المحددة مسبقا حيث ينشا شبكة من القيم المنفصلة المحتملة لكل معامل فائق ويدرب النموذج على كل تركيبة ممكنة وتختار التركيبة التي تعطي افضل النتائج ,تعتبر هذه الطريقة فعالة جدا في ايجاد القيم المثلى الا ان لها العديد من العيوب اكبرها جعل النموذج بطئ جدا كما انه مكلف حسابيا

2.1 : تطبيق الطريقة على خوارزمية knn باستعمال python :
ستلاحظون انني لم اقارن النتائج وهذا لكون البيانات الخاصة بنا كبيرة جدا وتستغرق وقت طويل جدا لقد قمت بتجربتها الا انه لم ينتهي من المعالجة
كود:
from sklearn.model_selection import GridSearchCV #هنا نقوم باستيراد الخوارزمية
from sklearn.metrics import classification_report
from sklearn.neighbors import KNeighborsClassifier

# تحديد القيم المراد تجربتها
بما اننا في knn فنقوم بتحديد القيم التي نريد تجربتها على سبيل مثال عدد الجيران هو من 1 الى 21 ونفس الشيئ الى باقي مدخلات knn
param_grid = {
    'n_neighbors': range(1, 21),  # تجربة القيم من 1 إلى 20
    'weights': ['uniform', 'distance'],  # مقارنة طريقتي التصويت
    'metric': ['euclidean', 'manhattan', 'minkowski']  # أنواع المسافة
}

# إنشاء النموذج و البحث الشبكي
knn = KNeighborsClassifier()
grid_search = GridSearchCV(knn, param_grid, cv=5, scoring='accuracy')# انشاء خوارزمية البحث الشبكي  وادخال الكائن الدي انشئناه

grid_search.fit(X_train, y_train) # تدريب النموذج

# عرض أفضل القيم
print("أفضل المعاملات:", grid_search.best_params_) هنا سيمنحنا افضل قيم تم اختيارها من قبل الخوارزمية

# اختبار النموذج الأمثل
y_pred = grid_search.best_estimator_.predict(X_test)
print(classification_report(y_test, y_pred)) اما هنا سنتحصل على تقرير دقة النموذج وغيره


2- طريقة البحث العشوائي Random Search :
Randomized Search هو طريقة لتحسين أداء نموذج تعلم الالة عن طريق البحث العشوائي عن القيم المثلى للمعاملات الفائقة (Hyperparameters) بدلا من تجربة كل القيم الممكنة كما يحدث في Grid Search،يقوم Randomized Search باختيار مجموعة عشوائية من القيم من النطاق المحدد مما يجعله اسرع واكثر كفاءة خاصة مع مجموعات البيانات الكبيرة


1.2 : تطبيق الطريقة على خوارزمية knn باستعمال python :


كود:
from sklearn.model_selection import RandomizedSearchCV
from sklearn.neighbors import KNeighborsClassifier
from sklearn.metrics import classification_report
from scipy.stats import randint

# تحديد القيم الممكنة للمعاملات الفائقة
param_dist = {
    'n_neighbors': randint(1, 21),  # اختيار عدد الجيران من 1 إلى 20 بشكل عشوائي
    'weights': ['uniform', 'distance'],  # تجربة نوعين من الأوزان
    'metric': ['euclidean', 'manhattan', 'minkowski']  # تجربة أنواع مختلفة من المسافة
}

# إنشاء نموذج KNN
knn = KNeighborsClassifier()

# إنشاء البحث العشوائي مع عدد محدد من التكرارات
random_search = RandomizedSearchCV(
    knn, param_distributions=param_dist,
    n_iter=10,  # عدد القيم العشوائية التي سيتم تجربتها
    cv=5,  # عدد الطيات في التحقق المتقاطع
    scoring='accuracy',  # مقياس التقييم
    random_state=42  # لضمان تكرار نفس النتائج
)

# تدريب البحث العشوائي
random_search.fit(X_train, y_train)

# عرض أفضل القيم المختارة
print("أفضل المعاملات:", random_search.best_params_)

# اختبار النموذج الأفضل على بيانات الاختبار
y_pred = random_search.best_estimator_.predict(X_test)
print(classification_report(y_test, y_pred))
لنقارن نتائج الاختيار اليدوي مع استعمال طريقة البحث العشوائي
النتيجة السابقة :

النتيجة الحالية :
مشاهدة المرفق 17093

كما تلاحظون الفرق عند استعمال خورازمية البحث العشوائي نلاحظ اولا انه قام بطباعة النتائج المثلى لنا كما هو مبين اضافة لا اننا نلاحظ ارتفاع في بعض النتائج كدقة الفئة 1 اصبحت نوعا ما معادلة للفئة 0
الفرق بين الطريقتين :
الطريقةالمبداالمزاياالعيوب
البحث الشبكي Grid Searchتجربة جميع التراكيب الممكنة للمعلمات الفائقةيعطي افضل نتيجة ممكنةمكلف حسابيا وبطئ
البحث العشوائي Random Searchاختيار قيم عشوائيةاسرع واقل تكلفة حسابياقد لايجد افضل القيم

الخلاصة :
ضبط المعاملات الفائقة خطوة مهمة في تحسين أداء النماذج كما ان استخدام الطريقة المناسبة يعتمد على الموارد والوقت المتاح وهذا هو التحدي الذي ستواجهه


شكرا على حسن الاستماع اراكم انشاء الله في الدروس القادمة والسلام عليكم
بالتوفيق للجميع
الله يعطيك العافية أخوي ❤️
ننتظر جديدك إن شاء الله
 
بسم الله الرحمن الرحيم والصلاة والسلام على اشرف المرسلين
السلام عليكم ورحمة الله
تحية طيبة

اليوم ان شاء الله سنبدأ في سلسلة شرح المفاهيم المتقدمة في تعلم الآلة حيث اننا سننطلق بأول مفهوم الا وهو ضبط المعاملات الفائقة (Hyperparameter Tuning) والذي يعتبر احد اهم المفاهيم التي لها دور كبير جدا في زيادة دقة النموذج, سنحاول فهم ما هذا المفهوم ولماذا نحتاجه وما الاساليب المستعملة . فلنبدا على بركة الله ..

1️⃣ضبط المعاملات الفائقة (Hyperparameter Tuning) :
يعرف نموذج التعلم الالي بانه نموذج رياضي يتضمن عدة معلمات يجب تعلمها من البيانات من خلال التدريب ومع ذلك هنا نوع اخر من المعلمات وهو ما يسمى بالمعلمات الفائقة والتي لا يمكن تعلمها مباشرة من عملية التدريب عادة ماتضبط قبل عملية التدريب الفعلية حيث انها تؤثر على كل من اداء وتعقيد وسرعة النموذج اذا

ماهي المعاملات الفائقة ? :
تعريف : هو عملية اختيار القيم المثلى لنموذج التعلم الالي فعلى سبيل المثال خورازمية knn التي رايناها في الدرس السابق قمنا بتحديد عدد الجيران الذي يساعدنا في تصنيف البيانات هذا الاختيار قد يكون عشوائيا وغير مستند إلى منهجية دقيقة لذا هذا قد يؤثر سلبا على نموذجنا بالاضافة الى ان هذه الخوارزمية لاتقتصر فقط على عدد الجيران فهي تمتلك العديد من المدخلات مثل مثل طريقة حساب المسافة (Euclidean, Manhatta ) وطريقة التصويت (Uniform vs. Distance-based) هذه المعاملات يصعب تحديد القيم المثلى لها يدويا ولهذا نستعمل ضبط المعلمات الفائقة .
لماذا نحتاج لضبط المعلمات الفائقة ? :
كما ذكرنا مسبقا اختيار القيم المثلى للنموذج تؤثر على العديد من الاشياء منها
سرعة النموذج فهي تجعل النموذج يتعلم بسرعة دون فقدان الدقة
اداء النموذج فهي تحسن الدقة وتقلل نسبة الخطا اضافة الى انها تتجنب احد اهم المشاكل في تعلم الالة الا وهي underfiting و overfiting والتي سنتعمق فيها بشكل اكبر في الدروس القادمة


2️⃣ طرق ضبط المعلمات الفائقة (Hyperparameter Tuning) :

في هذه الجزئية سنرى الطرق المشهورة المستخدمة في ضبط المعلمات الفائقة ,يوجد العديد والعديد من الطرق اشهرهما RandomSearch وGridSearch واللذان سنشرحهما الان
1- طريقة البحث الشبكي GridSearch :
تعتمد هذه الطريقة على ملائمة النموذج باستخدام جميع التراكيب الممكنة لقيم المعاملات الفائقة المحددة مسبقا حيث ينشا شبكة من القيم المنفصلة المحتملة لكل معامل فائق ويدرب النموذج على كل تركيبة ممكنة وتختار التركيبة التي تعطي افضل النتائج ,تعتبر هذه الطريقة فعالة جدا في ايجاد القيم المثلى الا ان لها العديد من العيوب اكبرها جعل النموذج بطئ جدا كما انه مكلف حسابيا


2.1 : تطبيق الطريقة على خوارزمية knn باستعمال python :
ستلاحظون انني لم اقارن النتائج وهذا لكون البيانات الخاصة بنا كبيرة جدا وتستغرق وقت طويل جدا لقد قمت بتجربتها الا انه لم ينتهي من المعالجة
كود:
from sklearn.model_selection import GridSearchCV #هنا نقوم باستيراد الخوارزمية
from sklearn.metrics import classification_report
from sklearn.neighbors import KNeighborsClassifier

# تحديد القيم المراد تجربتها
بما اننا في knn فنقوم بتحديد القيم التي نريد تجربتها على سبيل مثال عدد الجيران هو من 1 الى 21 ونفس الشيئ الى باقي مدخلات knn
param_grid = {
    'n_neighbors': range(1, 21),  # تجربة القيم من 1 إلى 20
    'weights': ['uniform', 'distance'],  # مقارنة طريقتي التصويت
    'metric': ['euclidean', 'manhattan', 'minkowski']  # أنواع المسافة
}

# إنشاء النموذج و البحث الشبكي
knn = KNeighborsClassifier()
grid_search = GridSearchCV(knn, param_grid, cv=5, scoring='accuracy')# انشاء خوارزمية البحث الشبكي  وادخال الكائن الدي انشئناه

grid_search.fit(X_train, y_train) # تدريب النموذج

# عرض أفضل القيم
print("أفضل المعاملات:", grid_search.best_params_) هنا سيمنحنا افضل قيم تم اختيارها من قبل الخوارزمية

# اختبار النموذج الأمثل
y_pred = grid_search.best_estimator_.predict(X_test)
print(classification_report(y_test, y_pred)) اما هنا سنتحصل على تقرير دقة النموذج وغيره


2- طريقة البحث العشوائي Random Search :

Randomized Search هو طريقة لتحسين أداء نموذج تعلم الالة عن طريق البحث العشوائي عن القيم المثلى للمعاملات الفائقة (Hyperparameters) بدلا من تجربة كل القيم الممكنة كما يحدث في Grid Search،يقوم Randomized Search باختيار مجموعة عشوائية من القيم من النطاق المحدد مما يجعله اسرع واكثر كفاءة خاصة مع مجموعات البيانات الكبيرة



1.2 : تطبيق الطريقة على خوارزمية knn باستعمال python :

كود:
from sklearn.model_selection import RandomizedSearchCV
from sklearn.neighbors import KNeighborsClassifier
from sklearn.metrics import classification_report
from scipy.stats import randint

# تحديد القيم الممكنة للمعاملات الفائقة
param_dist = {
    'n_neighbors': randint(1, 21),  # اختيار عدد الجيران من 1 إلى 20 بشكل عشوائي
    'weights': ['uniform', 'distance'],  # تجربة نوعين من الأوزان
    'metric': ['euclidean', 'manhattan', 'minkowski']  # تجربة أنواع مختلفة من المسافة
}

# إنشاء نموذج KNN
knn = KNeighborsClassifier()

# إنشاء البحث العشوائي مع عدد محدد من التكرارات
random_search = RandomizedSearchCV(
    knn, param_distributions=param_dist,
    n_iter=10,  # عدد القيم العشوائية التي سيتم تجربتها
    cv=5,  # عدد الطيات في التحقق المتقاطع
    scoring='accuracy',  # مقياس التقييم
    random_state=42  # لضمان تكرار نفس النتائج
)

# تدريب البحث العشوائي
random_search.fit(X_train, y_train)

# عرض أفضل القيم المختارة
print("أفضل المعاملات:", random_search.best_params_)

# اختبار النموذج الأفضل على بيانات الاختبار
y_pred = random_search.best_estimator_.predict(X_test)
print(classification_report(y_test, y_pred))

لنقارن نتائج الاختيار اليدوي مع استعمال طريقة البحث العشوائي
النتيجة السابقة :


النتيجة الحالية :
مشاهدة المرفق 17093

كما تلاحظون الفرق عند استعمال خورازمية البحث العشوائي نلاحظ اولا انه قام بطباعة النتائج المثلى لنا كما هو مبين اضافة لا اننا نلاحظ ارتفاع في بعض النتائج كدقة الفئة 1 اصبحت نوعا ما معادلة للفئة 0

الفرق بين الطريقتين :
الطريقةالمبداالمزاياالعيوب
البحث الشبكي Grid Searchتجربة جميع التراكيب الممكنة للمعلمات الفائقةيعطي افضل نتيجة ممكنةمكلف حسابيا وبطئ
البحث العشوائي Random Searchاختيار قيم عشوائيةاسرع واقل تكلفة حسابياقد لايجد افضل القيم

الخلاصة :
ضبط المعاملات الفائقة خطوة مهمة في تحسين أداء النماذج كما ان استخدام الطريقة المناسبة يعتمد على الموارد والوقت المتاح وهذا هو التحدي الذي ستواجهه


شكرا على حسن الاستماع اراكم ان شاء الله في الدروس القادمة والسلام عليكم
بالتوفيق للجميع
درس كثير مهم 👏
يعطيك العافية والله يكتب أجرك
 

آخر المشاركات

فانوس

رمضان
عودة
أعلى