Informed Search: Coarse to Fine

Python में Hyperparameter Tuning

Alex Scriven

Data Scientist

Informed बनाम Uninformed Search

 

अब तक जो कुछ किया है वह uninformed search रहा है:

Uninformed search: जहाँ hyperparameter tuning का हर iteration पिछले से कुछ नहीं सीखता।

इसी से हम काम को parallelize कर पाते हैं। पर क्या यह बहुत कुशल लगता है?

Python में Hyperparameter Tuning

Informed बनाम Uninformed

अब तक की प्रक्रिया:

uninformed process map

एक वैकल्पिक तरीका:

informed process map

Python में Hyperparameter Tuning

Coarse to Fine Tuning

एक बुनियादी informed search विधि:

पहले मोटे, random तरीके से शुरू करें और खोज को क्रमिक रूप से परिष्कृत करें.

प्रक्रिया यह है:

  1. Random search
  2. संभावित क्षेत्र पहचानें
  3. छोटे क्षेत्र में grid search करें
  4. इष्टतम स्कोर मिलने तक जारी रखें

आप (3) से पहले कुछ और random searches भी कर सकते हैं

Python में Hyperparameter Tuning

Why Coarse to Fine?

Coarse to fine tuning के फायदे:

  • Grid और random search दोनों के लाभ लेता है.
    • शुरुआत में चौड़ी खोज
    • जहाँ अच्छा स्पॉट दिखे, वहाँ गहराई से खोजें
  • समय और compute का बेहतर उपयोग, इसलिए तेज़ iteration

खराब परिणाम वाले search space पर समय न गवाएँ!

नोट: यह एक मॉडल पर नहीं, बैचों पर informed होता है

Python में Hyperparameter Tuning

Undertaking Coarse to Fine

इन hyperparameter रेंज के साथ एक उदाहरण देखें:

  • max_depth_list 1 से 65 के बीच
  • min_sample_list 3 से 17 के बीच
  • learn_rate_list 0.01 से 150 के बीच 150 मान

हमारे पास कुल कितने संभावित मॉडल हैं?

combinations_list = [list(x) for x in product(max_depth_list, min_sample_list, learn_rate_list)]
print(len(combinations_list))
134400
Python में Hyperparameter Tuning

Visualizing Coarse to Fine

आइए केवल 500 संयोजनों पर random search करें।

यहाँ हम accuracy स्कोर प्लॉट करते हैं:

accuracy density plot of models

कौन से मॉडल अच्छे रहे?

Python में Hyperparameter Tuning

Visualizing Coarse to Fine

शीर्ष परिणाम:

max_depth min_samples_leaf learn_rate accuracy
10 7 0.01 96
19 7 0.023355705 96
30 6 1.038389262 93
27 7 1.11852349 91
16 7 0.597651007 91
Python में Hyperparameter Tuning

Visualizing Coarse to Fine

max_depth बनाम accuracy स्कोर को visualize करें:

max depth vs accuracy score scatter plot

Python में Hyperparameter Tuning

Visualizing coarse to Fine

min_samples_leaf 8 से कम पर बेहतर

min samples leaf vs accuracy score scatter plot

learn_rate 1.3 से ऊपर खराब

learn rate vs accuracy score scatter plot

Python में Hyperparameter Tuning

अगले कदम

पहले iteration से क्या पता चला:

  • max_depth 8 से 30 के बीच
  • learn_rate 1.3 से कम
  • min_samples_leaf शायद 8 से कम

अब आगे क्या? जो पता है उसके साथ एक और random या grid search!

नोट: यह केवल bivariate विश्लेषण था। आप एक ही ग्राफ पर कई hyperparameters (3, 4 या अधिक!) भी जाँच सकते हैं, पर वह इस कोर्स के दायरे से बाहर है।

Python में Hyperparameter Tuning

अभ्यास करते हैं!

Python में Hyperparameter Tuning

Preparing Video For Download...