يعد التقدير الصحيح لعدم اليقين التنبئي أمرًا أساسيًا في التطبيقات التي تنطوي على قرارات حرجة. يمكن استخدام عدم اليقين لتقييم موثوقية التنبؤات النموذجية ، أو تشغيل التدخل البشري ، أو تحديد ما إذا كان يمكن نشر نموذج بأمان في البرية.
Fortuna هي مكتبة لتقدير عدم اليقين مما يجعل من السهل على المستخدمين تشغيل المعايير وتقديم عدم اليقين لأنظمة الإنتاج. يوفر Fortuna أساليب معايرة وطرق مطابقة تبدأ من نماذج مدربة مسبقًا مكتوبة في أي إطار ، ويدعم أيضًا العديد من أساليب الاستدلال البايزي بدءًا من نماذج التعلم العميقة المكتوبة في الكتان. تم تصميم اللغة لتكون بديهية للممارسين غير المألوفين بتقدير عدم اليقين ، ويمكن تكوينه بشكل كبير.
تحقق من الوثائق للحصول على QuickStart و Amormples and References.
تقدم Fortuna ثلاثة أوضاع مختلفة للاستخدام: من تقديرات عدم اليقين ، من مخرجات النماذج ومن نماذج الكتان. هذه تخدم المستخدمين وفقًا للقيود التي تمليها تطبيقاتهم الخاصة. يتم تصوير خطوط الأنابيب الخاصة بهم في الشكل التالي ، يبدأ كل منها من إحدى الألواح الخضراء.

بدءًا من تقديرات عدم اليقين لديه الحد الأدنى من متطلبات التوافق وهو أسرع مستوى من التفاعل مع المكتبة. يوفر وضع الاستخدام هذا طرق تنبؤات مطابقة لكل من التصنيف والانحدار. هذه تأخذ تقديرات عدم اليقين في المدخلات ، وإرجاع مجموعات صارمة من التنبؤات التي تحتفظ بمستوى الاحتمال الذي وهب المستخدم. في مهام الانحدار أحادي البعد ، يمكن اعتبار المجموعات المطابقة كإصدارات معايرة من الثقة أو الفواصل الزمنية الموثوقة.
ضع في اعتبارك أنه إذا كانت تقديرات عدم اليقين التي تقدمها في المدخلات غير دقيقة ، فقد تكون مجموعات مطابقة كبيرة وغير صالحة للاستعمال. لهذا السبب ، إذا كان التطبيق الخاص بك يسمح بذلك ، فيرجى مراعاة مخرجات النموذج ومن أوضاع استخدام نماذج الكتان.
مثال. لنفترض أنك تريد معايرة فترات ذات مصداقية مع error خطأ في التغطية ، كل منهما يتوافق مع متغير إدخال اختبار مختلف. نحن نفترض أنه يتم تمرير الفواصل الزمنية الموثوقة كصفائف من الحدود السفلية والعليا ، على التوالي test_lower_bounds و test_upper_bounds . لديك أيضًا حدود منخفضة وأعلى لفترات ذات مصداقية محسوبة لعدة مدخلات التحقق من الصحة ، على التوالي val_lower_bounds و val_upper_bounds . يشار إلى مجموعة أهداف التحقق من الصحة المقابلة بواسطة val_targets . الكود التالي ينتج فترات تنبؤ مطابقة ، أي الإصدارات التي تمت معايرتها من فترات ذات مصداقية.
from fortuna . conformal import QuantileConformalRegressor
conformal_intervals = QuantileConformalRegressor (). conformal_interval (
val_lower_bounds = val_lower_bounds , val_upper_bounds = val_upper_bounds ,
test_lower_bounds = test_lower_bounds , test_upper_bounds = test_upper_bounds ,
val_targets = val_targets , error = error ) بدءًا من مخرجات النموذج يفترض أنك قمت بالفعل بتدريب نموذج في بعض الإطار ، والوصول إلى Fortuna مع مخرجات النموذج بتنسيق numpy.ndarray لكل نقطة بيانات الإدخال. يتيح لك وضع الاستخدام هذا معايرة مخرجات النموذج الخاصة بك ، وتقدير عدم اليقين ، وحساب المقاييس والحصول على مجموعات مطابقة.
مقارنةً بوضع استخدام تقديرات عدم اليقين ، يوفر هذا السيطرة تحكمًا أفضل ، حيث يمكن أن يتأكد من معايرة تقديرات عدم اليقين بشكل مناسب. ومع ذلك ، إذا تم تدريب النموذج بطرق كلاسيكية ، فقد يكون عدم اليقين الناتج عن النموذج (المعروف أيضًا باسم المعرفي) ضعيفًا. للتخفيف من هذه المشكلة ، يرجى النظر في وضع استخدام نماذج الكتان.
مثال. افترض أن لديك مخرجات نماذج التحقق من الصحة واختبار ، على التوالي val_outputs و test_outputs . علاوة على ذلك ، لديك بعض صفائف التحقق من الصحة والمتغيرات المستهدفة ، على التوالي val_targets و test_targets . يوفر الرمز التالي مثالًا الحد الأدنى من التصنيف للحصول على تقديرات إنتروبيا تنبؤية معايرة.
from fortuna . output_calib_model import OutputCalibClassifier
calib_model = OutputCalibClassifier ()
status = calib_model . calibrate ( outputs = val_outputs , targets = val_targets )
test_entropies = calib_model . predictive . entropy ( outputs = test_outputs )بدءًا من نماذج الكتان لديه متطلبات توافق أعلى من تقديرات عدم اليقين ومن أوضاع استخدام النموذج ، لأنها تتطلب نماذج تعليمية عميقة مكتوبة في الكتان. ومع ذلك ، فإنه يمكّنك من استبدال التدريب على النماذج القياسية بإجراءات الاستدلال البايزي القابلة للتطوير ، والتي قد تحسن بشكل كبير من القياس الكمي لعدم اليقين التنبئي.
مثال. لنفترض أن لديك model نموذج التعلم العميق لتصنيف الكتان من المدخلات إلى سجلات ، مع أبعاد الإخراج المعطى بواسطة output_dim . علاوة على ذلك ، لديك بعض التدريب والتحقق من صحة ومعايرة TensorFlow Data Loader train_data_loader و val_data_loader و test_data_loader ، على التوالي. يوفر الرمز التالي مثالًا على تصنيف الحد الأدنى للحصول على تقديرات الاحتمال المعايرة.
from fortuna . data import DataLoader
train_data_loader = DataLoader . from_tensorflow_data_loader ( train_data_loader )
calib_data_loader = DataLoader . from_tensorflow_data_loader ( val_data_loader )
test_data_loader = DataLoader . from_tensorflow_data_loader ( test_data_loader )
from fortuna . prob_model import ProbClassifier
prob_model = ProbClassifier ( model = model )
status = prob_model . train ( train_data_loader = train_data_loader , calib_data_loader = calib_data_loader )
test_means = prob_model . predictive . mean ( inputs_loader = test_data_loader . to_inputs_loader ())ملاحظة: قبل تثبيت Fortuna ، يتعين عليك تثبيت Jax في بيئتك الافتراضية.
يمكنك تثبيت Fortuna عن طريق الكتابة
PIP تثبيت AWS-Fortuna
بدلاً من ذلك ، يمكنك إنشاء الحزمة باستخدام الشعر. إذا اخترت متابعة بهذه الطريقة ، فقم أولاً بتثبيت الشعر وأضفه إلى مسارك (انظر هنا). ثم اكتب
تثبيت الشعر
سيتم تثبيت جميع التبعيات في إصداراتها المطلوبة. فكر في إضافة الأعلام التالية إلى الأمر أعلاه:
-E transformers إذا كنت ترغب في استخدام النماذج ومجموعات البيانات من الوجه المعانقة.-E sagemaker إذا كنت ترغب في تثبيت التبعيات اللازمة لتشغيل Fortuna على Amazon Sagemaker.-E docs إذا كنت ترغب في تثبيت تبعيات sphinx لبناء الوثائق.-E notebooks إذا كنت ترغب في العمل مع دفاتر Jupyter. أخيرًا ، يمكنك إما الوصول إلى VirtualEnv هذا الشعر الذي تم إنشاؤه عن طريق كتابة poetry shell ، أو تنفيذ الأوامر داخل VirtualEnV باستخدام أمر run ، على سبيل المثال poetry run python .
تم العثور على العديد من أمثلة الاستخدام في دليل /أمثلة.
نحن نقدم خط أنابيب بسيط يتيح لك تشغيل Fortuna على Amazon Sagemaker بأقل جهد.
config_dir ، هذا هو المسار المطلق إلى دليل التكوين الرئيسي ، و config_filename ، وهذا هو اسم ملف التكوين الرئيسي (بدون امتداد .yaml) ، أدخل Python وقم بتشغيل ما يلي: from fortuna . sagemaker import run_training_job
run_training_job ( config_dir = config_dir , config_filename = config_filename )للاستشهاد فورتونا:
article {detommaso2023 فور ،
العنوان = {Fortuna: مكتبة لتقدير عدم اليقين في التعلم العميق} ،
المؤلف = {Detommaso ، Gianluca و Gasparin ، Alberto و Donini ، Michele and Seeger ، Matthias و Wilson ، Andrew Gordon و Archambeau ، Cedric} ،
Journal = {arxiv preprint arxiv: 2302.04019} ،
السنة = {2023}
}
إذا كنت ترغب في المساهمة في المشروع ، فيرجى الرجوع إلى إرشادات المساهمة الخاصة بنا.
هذا المشروع مرخص بموجب ترخيص Apache-2.0. انظر الترخيص لمزيد من المعلومات.