การประมาณค่าที่เหมาะสมของความไม่แน่นอนในการทำนายเป็นพื้นฐานในการใช้งานที่เกี่ยวข้องกับการตัดสินใจที่สำคัญ ความไม่แน่นอนสามารถใช้ในการประเมินความน่าเชื่อถือของการทำนายแบบจำลองกระตุ้นการแทรกแซงของมนุษย์หรือตัดสินใจว่าแบบจำลองสามารถนำไปใช้อย่างปลอดภัยในป่าหรือไม่
Fortuna เป็นห้องสมุดสำหรับการหาปริมาณที่ไม่แน่นอนซึ่งทำให้ผู้ใช้ใช้งานได้ง่ายและนำความไม่แน่นอนมาสู่ระบบการผลิต Fortuna ให้วิธีการสอบเทียบและวิธีการที่สอดคล้องกันเริ่มต้นจากโมเดลที่ผ่านการฝึกอบรมมาก่อนที่เขียนไว้ในกรอบใด ๆ และสนับสนุนวิธีการอนุมานแบบเบย์หลายวิธีที่เริ่มต้นจากรูปแบบการเรียนรู้ลึกที่เขียนด้วยผ้าลินิน ภาษาได้รับการออกแบบให้ใช้งานง่ายสำหรับผู้ปฏิบัติงานที่ไม่คุ้นเคยกับปริมาณที่ไม่แน่นอนและสามารถกำหนดค่าได้สูง
ตรวจสอบเอกสารสำหรับการเริ่มต้นตัวอย่างและการอ้างอิง
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 สำหรับแต่ละจุดข้อมูลอินพุต โหมดการใช้งานนี้ช่วยให้คุณสามารถสอบเทียบโมเดลเอาต์พุตของคุณประเมินความไม่แน่นอนการคำนวณตัวชี้วัดและรับชุดที่สอดคล้องกัน
เมื่อเปรียบเทียบกับโหมดการใช้งานจากความไม่แน่นอนจากการประมาณการการใช้งานนี้มีการควบคุมที่ดีขึ้นเนื่องจากสามารถตรวจสอบให้แน่ใจว่าการประเมินความไม่แน่นอนได้รับการสอบเทียบอย่างเหมาะสม อย่างไรก็ตามหากแบบจำลองได้รับการฝึกฝนด้วยวิธีการแบบคลาสสิกการหาปริมาณที่เกิดขึ้นของแบบจำลอง (aka epistemic) อาจไม่ดี เพื่อลดปัญหานี้โปรดพิจารณาโหมดการใช้งานแบบจำลอง Flax Models
ตัวอย่าง. สมมติว่าคุณมีเอาต์พุตการตรวจสอบและทดสอบโมเดลตามลำดับ 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 การจำแนกประเภทการเรียนรู้แบบลินินจากอินพุตไปยัง logits โดยมีมิติเอาต์พุตที่กำหนดโดย 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 หากคุณต้องการติดตั้งการพึ่งพาสฟิงซ์เพื่อสร้างเอกสาร-E notebooks หากคุณต้องการทำงานกับ Jupyter Notebook ในที่สุดคุณสามารถเข้าถึง 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 )เพื่ออ้างถึง Fortuna:
@article {detommaso2023 ความโชคดี
title = {Fortuna: ห้องสมุดสำหรับปริมาณที่ไม่แน่นอนในการเรียนรู้ลึก}
ผู้แต่ง = {Detommaso, Gianluca และ Gasparin, Alberto และ Donini, Michele และ Seeger, Matthias และ Wilson, Andrew Gordon และ Archambeau, Cedric},
journal = {arxiv preprint arxiv: 2302.04019},
ปี = {2023}
-
หากคุณต้องการมีส่วนร่วมในโครงการโปรดดูแนวทางการสนับสนุนของเรา
โครงการนี้ได้รับใบอนุญาตภายใต้ใบอนุญาต Apache-2.0 ดูใบอนุญาตสำหรับข้อมูลเพิ่มเติม