सामग्री पर जाएं

Ultralytics YOLO हाइपरपॅरामीटर ट्यूनिंग मार्गदर्शक

परिचय

हाइपरपैरामीटर ट्यूनिंग केवल एक बार का सेट-अप नहीं है, बल्कि मशीन लर्निंग मॉडल के प्रदर्शन मेट्रिक्स, जैसे सटीकता, सटीकता और याद को अनुकूलित करने के उद्देश्य से एक पुनरावृत्ति प्रक्रिया है। के संदर्भ में Ultralytics YOLO, ये हाइपरपैरामीटर सीखने की दर से लेकर वास्तुशिल्प विवरण तक हो सकते हैं, जैसे कि परतों की संख्या या उपयोग किए जाने वाले सक्रियण कार्यों के प्रकार।

हाइपरपैरामीटर क्या हैं?

हाइपरपैरामीटर एल्गोरिथ्म के लिए उच्च-स्तरीय, संरचनात्मक सेटिंग्स हैं। वे प्रशिक्षण चरण से पहले सेट किए जाते हैं और इसके दौरान स्थिर रहते हैं। यहाँ कुछ सामान्य रूप से ट्यून किए गए हाइपरपैरामीटर हैं Ultralytics YOLO:

  • सीखने की दर lr0: नुकसान फ़ंक्शन में न्यूनतम की ओर बढ़ते हुए प्रत्येक पुनरावृत्ति पर चरण आकार निर्धारित करता है।
  • बैच का आकार batch: फॉरवर्ड पास में एक साथ संसाधित छवियों की संख्या।
  • युगों की संख्या epochs: एक युग सभी प्रशिक्षण उदाहरणों में से एक पूर्ण आगे और पीछे का पास है।
  • वास्तुकला विशिष्टता: जैसे चैनल गणना, परतों की संख्या, सक्रियण कार्यों के प्रकार आदि।

हाइपरपैरामीटर ट्यूनिंग विजुअल

में प्रयुक्त वृद्धि हाइपरपैरामीटर की पूरी सूची के लिए YOLOv8 कृपया कॉन्फ़िगरेशन पृष्ठ देखें।

आनुवंशिक विकास और उत्परिवर्तन

Ultralytics YOLO हाइपरपैरामीटर को अनुकूलित करने के लिए आनुवंशिक एल्गोरिदम का उपयोग करता है। आनुवंशिक एल्गोरिदम प्राकृतिक चयन और आनुवंशिकी के तंत्र से प्रेरित हैं।

  • उत्परिवर्तन: के संदर्भ में Ultralytics YOLO, उत्परिवर्तन मौजूदा हाइपरपैरामीटर में छोटे, यादृच्छिक परिवर्तनों को लागू करके हाइपरपैरामीटर स्पेस को स्थानीय रूप से खोजने में मदद करता है, मूल्यांकन के लिए नए उम्मीदवारों का उत्पादन करता है।
  • क्रॉसओवर: हालांकि क्रॉसओवर एक लोकप्रिय आनुवंशिक एल्गोरिथ्म तकनीक है, लेकिन वर्तमान में इसका उपयोग नहीं किया जाता है Ultralytics YOLO हाइपरपेरामीटर ट्यूनिंग के लिए। मुख्य रूप से नए हाइपरपैरामीटर सेट उत्पन्न करने के लिए उत्परिवर्तन पर ध्यान केंद्रित किया गया है।

हाइपरपॅरामीटरची ट्यूनिंग तयारी

ट्यूनिंग प्रक्रिया शुरू करने से पहले, यह महत्वपूर्ण है:

  1. मेट्रिक्स की पहचान करें: उन मेट्रिक्स का निर्धारण करें जिनका उपयोग आप मॉडल के प्रदर्शन का मूल्यांकन करने के लिए करेंगे। यह AP50, F1-स्कोर, या अन्य हो सकता है।
  2. ट्यूनिंग बजट सेट करें: परिभाषित करें कि आप कितने कम्प्यूटेशनल संसाधन आवंटित करना चाहते हैं। हाइपरपैरामीटर ट्यूनिंग कम्प्यूटेशनल रूप से गहन हो सकती है।

शामिल कदम

हाइपरपैरामीटर प्रारंभ करें

प्रारंभिक हाइपरपैरामीटर के उचित सेट के साथ शुरू करें। यह या तो डिफ़ॉल्ट हाइपरपैरामीटर द्वारा सेट किया जा सकता है Ultralytics YOLO या आपके डोमेन ज्ञान या पिछले प्रयोगों के आधार पर कुछ।

हाइपरपैरामीटर को म्यूटेट करें

का उपयोग करें _mutate मौजूदा सेट के आधार पर हाइपरपैरामीटर का एक नया सेट बनाने की विधि।

ट्रेन मॉडल

हाइपरपैरामीटर के उत्परिवर्तित सेट का उपयोग करके प्रशिक्षण किया जाता है। फिर प्रशिक्षण प्रदर्शन का आकलन किया जाता है।

मॉडल का मूल्यांकन करें

मॉडल के प्रदर्शन का मूल्यांकन करने के लिए AP50, F1-स्कोर, या कस्टम मीट्रिक जैसे मीट्रिक का उपयोग करें।

लॉग परिणाम

भविष्य के संदर्भ के लिए प्रदर्शन मीट्रिक और संबंधित हाइपरपैरामीटर दोनों को लॉग करना महत्वपूर्ण है।

दोहराना

प्रक्रिया को तब तक दोहराया जाता है जब तक कि या तो पुनरावृत्तियों की निर्धारित संख्या तक नहीं पहुंच जाती है या प्रदर्शन मीट्रिक संतोषजनक नहीं होती है।

उपयोग उदाहरण

यहां बताया गया है कि इसका उपयोग कैसे करें model.tune() उपयोग करने की विधि Tuner की hyperparameter ट्यूनिंग के लिए वर्ग YOLOv8n एक AdamW अनुकूलक के साथ 30 युगों के लिए COCO8 पर और तेजी से ट्यूनिंग के लिए अंतिम युग के अलावा साजिश रचने, चेकपॉइंटिंग और सत्यापन को छोड़ना।

उदाहरण

from ultralytics import YOLO

# Initialize the YOLO model
model = YOLO('yolov8n.pt')

# Tune hyperparameters on COCO8 for 30 epochs
model.tune(data='coco8.yaml', epochs=30, iterations=300, optimizer='AdamW', plots=False, save=False, val=False)

परिणाम

हाइपरपैरामीटर ट्यूनिंग प्रक्रिया को सफलतापूर्वक पूरा करने के बाद, आपको कई फाइलें और निर्देशिकाएं प्राप्त होंगी जो ट्यूनिंग के परिणामों को समाहित करती हैं। निम्नलिखित प्रत्येक का वर्णन करता है:

फ़ाइल संरचना

यहां बताया गया है कि परिणामों की निर्देशिका संरचना कैसी दिखेगी। प्रशिक्षण निर्देशिकाएं जैसे train1/ व्यक्तिगत ट्यूनिंग पुनरावृत्तियों में शामिल हैं, यानी हाइपरपैरामीटर के एक सेट के साथ प्रशिक्षित एक मॉडल। वही tune/ निर्देशिका में सभी व्यक्तिगत मॉडल प्रशिक्षणों से ट्यूनिंग परिणाम शामिल हैं:

runs/
└── detect/
    ├── train1/
    ├── train2/
    ├── ...
    └── tune/
        ├── best_hyperparameters.yaml
        ├── best_fitness.png
        ├── tune_results.csv
        ├── tune_scatter_plots.png
        └── weights/
            ├── last.pt
            └── best.pt

फ़ाइल विवरण

best_hyperparameters.yaml

इस YAML फ़ाइल में ट्यूनिंग प्रक्रिया के दौरान पाए जाने वाले सबसे अच्छा प्रदर्शन करने वाले हाइपरपैरामीटर हैं। आप इन अनुकूलित सेटिंग्स के साथ भविष्य के प्रशिक्षणों को प्रारंभ करने के लिए इस फ़ाइल का उपयोग कर सकते हैं।

  • प्रारूप: वाईएएमएल
  • प्रयोग: हाइपरपैरामीटर परिणाम
  • उदाहरण:
      # 558/900 iterations complete ✅ (45536.81s)
      # Results saved to /usr/src/ultralytics/runs/detect/tune
      # Best fitness=0.64297 observed at iteration 498
      # Best fitness metrics are {'metrics/precision(B)': 0.87247, 'metrics/recall(B)': 0.71387, 'metrics/mAP50(B)': 0.79106, 'metrics/mAP50-95(B)': 0.62651, 'val/box_loss': 2.79884, 'val/cls_loss': 2.72386, 'val/dfl_loss': 0.68503, 'fitness': 0.64297}
      # Best fitness model is /usr/src/ultralytics/runs/detect/train498
      # Best fitness hyperparameters are printed below.
    
      lr0: 0.00269
      lrf: 0.00288
      momentum: 0.73375
      weight_decay: 0.00015
      warmup_epochs: 1.22935
      warmup_momentum: 0.1525
      box: 18.27875
      cls: 1.32899
      dfl: 0.56016
      hsv_h: 0.01148
      hsv_s: 0.53554
      hsv_v: 0.13636
      degrees: 0.0
      translate: 0.12431
      scale: 0.07643
      shear: 0.0
      perspective: 0.0
      flipud: 0.0
      fliplr: 0.08631
      mosaic: 0.42551
      mixup: 0.0
      copy_paste: 0.0
    

best_fitness.png

यह पुनरावृत्तियों की संख्या के खिलाफ फिटनेस (आमतौर पर AP50 की तरह एक प्रदर्शन मैट्रिक) प्रदर्शित करने वाला एक प्लॉट है। यह आपको यह कल्पना करने में मदद करता है कि समय के साथ आनुवंशिक एल्गोरिथ्म ने कितना अच्छा प्रदर्शन किया।

  • प्रारूप: पीएनजी
  • प्रयोग: प्रदर्शन दृश्य

हाइपरपैरामीटर ट्यूनिंग फिटनेस बनाम पुनरावृत्ति

tune_results.csv

एक CSV फ़ाइल जिसमें ट्यूनिंग के दौरान प्रत्येक पुनरावृत्ति के विस्तृत परिणाम होते हैं। फ़ाइल में प्रत्येक पंक्ति एक पुनरावृत्ति का प्रतिनिधित्व करती है, और इसमें फिटनेस स्कोर, सटीकता, याद, साथ ही उपयोग किए जाने वाले हाइपरपैरामीटर जैसे मैट्रिक्स शामिल हैं।

  • प्रारूप: सीएसवी
  • उपयोग: प्रति-पुनरावृत्ति परिणाम ट्रैकिंग।
  • उदाहरण:
      fitness,lr0,lrf,momentum,weight_decay,warmup_epochs,warmup_momentum,box,cls,dfl,hsv_h,hsv_s,hsv_v,degrees,translate,scale,shear,perspective,flipud,fliplr,mosaic,mixup,copy_paste
      0.05021,0.01,0.01,0.937,0.0005,3.0,0.8,7.5,0.5,1.5,0.015,0.7,0.4,0.0,0.1,0.5,0.0,0.0,0.0,0.5,1.0,0.0,0.0
      0.07217,0.01003,0.00967,0.93897,0.00049,2.79757,0.81075,7.5,0.50746,1.44826,0.01503,0.72948,0.40658,0.0,0.0987,0.4922,0.0,0.0,0.0,0.49729,1.0,0.0,0.0
      0.06584,0.01003,0.00855,0.91009,0.00073,3.42176,0.95,8.64301,0.54594,1.72261,0.01503,0.59179,0.40658,0.0,0.0987,0.46955,0.0,0.0,0.0,0.49729,0.80187,0.0,0.0
    

tune_scatter_plots.png

इस फ़ाइल में से उत्पन्न स्कैटर प्लॉट हैं tune_results.csv, आपको विभिन्न हाइपरपैरामीटर और प्रदर्शन मैट्रिक्स के बीच संबंधों की कल्पना करने में मदद करता है। ध्यान दें कि 0 पर प्रारंभ किए गए हाइपरपैरामीटर को ट्यून नहीं किया जाएगा, जैसे degrees और shear नीचे।

  • प्रारूप: पीएनजी
  • प्रयोग: खोजपूर्ण डेटा विश्लेषण

हाइपरपॅरामीटर ट्यूनिंग स्कैटर प्लॉट्स

वजन/

इस निर्देशिका में सहेजी गई है PyTorch हाइपरपैरामीटर ट्यूनिंग प्रक्रिया के दौरान अंतिम और सर्वोत्तम पुनरावृत्तियों के लिए मॉडल।

  • last.pt: last.pt प्रशिक्षण के अंतिम युग से वजन हैं।
  • best.pt: पुनरावृत्ति के लिए best.pt वजन जिसने सर्वश्रेष्ठ फिटनेस स्कोर हासिल किया।

इन परिणामों का उपयोग करके, आप अपने भविष्य के मॉडल प्रशिक्षण और विश्लेषण के लिए अधिक सूचित निर्णय ले सकते हैं। यह समझने के लिए बेझिझक इन कलाकृतियों से परामर्श करें कि आपके मॉडल ने कितना अच्छा प्रदर्शन किया और आप इसे और कैसे सुधार सकते हैं।

समाप्ति

में hyperparameter ट्यूनिंग प्रक्रिया Ultralytics YOLO सरल अभी तक शक्तिशाली है, उत्परिवर्तन पर केंद्रित इसके आनुवंशिक एल्गोरिथ्म-आधारित दृष्टिकोण के लिए धन्यवाद। इस गाइड में उल्लिखित चरणों का पालन करने से आपको बेहतर प्रदर्शन प्राप्त करने के लिए अपने मॉडल को व्यवस्थित रूप से ट्यून करने में सहायता मिलेगी।

अग्रिम पठन

  1. विकिपीडिया में हाइपरपैरामीटर अनुकूलन
  2. YOLOv5 हाइपरपॅरामीटर इवोल्यूशन मार्गदर्शक
  3. रे ट्यून के साथ कुशल हाइपरपैरामीटर ट्यूनिंग और YOLOv8

गहरी अंतर्दृष्टि के लिए, आप Tuner वर्ग स्रोत कोड और साथ में प्रलेखन। यदि आपके कोई प्रश्न, सुविधा अनुरोध, या अधिक सहायता की आवश्यकता है, तो बेझिझक हमसे संपर्क करें गिटहब नहीं तो झगड़ा.



2023-11-12 बनाया गया, अपडेट किया गया 2024-01-07
लेखक: ग्लेन-जोचर (6)

टिप्पणियाँ