ระบุป่าชายเลนโดยใช้คุณสมบัติภาพถ่ายดาวเทียมโดยใช้ Amazon SageMaker Studio และ Amazon SageMaker Autopilot – ส่วนที่ 2 PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI.

ระบุป่าชายเลนโดยใช้คุณสมบัติภาพถ่ายดาวเทียมโดยใช้ Amazon SageMaker Studio และ Amazon SageMaker Autopilot – ตอนที่ 2

ป่าชายเลนเป็นส่วนนำเข้าของระบบนิเวศที่ดี และกิจกรรมของมนุษย์เป็นหนึ่งในสาเหตุหลักที่ทำให้ป่าเหล่านี้ค่อยๆ หายไปจากแนวชายฝั่งทั่วโลก การใช้แบบจำลองแมชชีนเลิร์นนิง (ML) เพื่อระบุพื้นที่ป่าชายเลนจากภาพถ่ายดาวเทียมช่วยให้นักวิจัยสามารถตรวจสอบขนาดของป่าได้อย่างมีประสิทธิภาพเมื่อเวลาผ่านไป ใน 1 หมายเลข ของชุดนี้ เราแสดงวิธีการรวบรวมข้อมูลดาวเทียมในแบบอัตโนมัติและวิเคราะห์ใน สตูดิโอ Amazon SageMaker ด้วยการแสดงภาพแบบโต้ตอบ ในโพสต์นี้เราจะแสดงวิธีการใช้งาน ระบบนำร่องอัตโนมัติของ Amazon SageMaker เพื่อทำให้กระบวนการสร้างตัวแยกประเภทป่าชายเลนเป็นไปโดยอัตโนมัติ

ฝึกโมเดลด้วย Autopilot

Autopilot ให้วิธีที่สมดุลในการสร้างหลายรุ่นและเลือกรุ่นที่ดีที่สุด ขณะสร้างการผสมผสานเทคนิคการประมวลผลข้อมูลล่วงหน้าและโมเดล ML ที่หลากหลายโดยใช้ความพยายามเพียงเล็กน้อย Autopilot ให้การควบคุมขั้นตอนส่วนประกอบเหล่านี้อย่างสมบูรณ์แก่นักวิทยาศาสตร์ข้อมูล หากต้องการ

คุณสามารถใช้ Autopilot ได้โดยใช้หนึ่งใน AWS SDK (รายละเอียดอยู่ใน คู่มืออ้างอิง API สำหรับ Autopilot) หรือผ่าน Studio เราใช้ Autopilot ในโซลูชัน Studio โดยทำตามขั้นตอนที่อธิบายไว้ในส่วนนี้:

  1. ในหน้า Studio Launcher ให้เลือกเครื่องหมายบวกสำหรับ การทดลอง Autopilot ใหม่.
    ระบุป่าชายเลนโดยใช้คุณสมบัติภาพถ่ายดาวเทียมโดยใช้ Amazon SageMaker Studio และ Amazon SageMaker Autopilot – ส่วนที่ 2 PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI.
  2. สำหรับ เชื่อมต่อข้อมูลของคุณให้เลือก ค้นหาถัง S3และป้อนชื่อบัคเก็ตที่คุณเก็บชุดข้อมูลการฝึกอบรมและทดสอบไว้
  3. สำหรับ ชื่อไฟล์ชุดข้อมูล, ป้อนชื่อไฟล์ข้อมูลการฝึกที่คุณสร้างใน เตรียมข้อมูลการอบรม ส่วนเข้า 1 หมายเลข.
  4. สำหรับ ตำแหน่งข้อมูลเอาต์พุต (บัคเก็ต S3)ป้อนชื่อที่เก็บข้อมูลเดียวกันกับที่คุณใช้ในขั้นตอนที่ 2
  5. สำหรับ ชื่อไดเร็กทอรีชุดข้อมูลให้ป้อนชื่อโฟลเดอร์ใต้ที่เก็บข้อมูลที่คุณต้องการให้ Autopilot จัดเก็บสิ่งประดิษฐ์
  6. สำหรับ อินพุต S3 ของคุณเป็นไฟล์รายการหรือไม่เลือก Off.
  7. สำหรับ เป้าเลือก ฉลาก.
  8. สำหรับ ปรับใช้อัตโนมัติเลือก Off.
    ระบุป่าชายเลนโดยใช้คุณสมบัติภาพถ่ายดาวเทียมโดยใช้ Amazon SageMaker Studio และ Amazon SageMaker Autopilot – ส่วนที่ 2 PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI.
  9. ภายใต้ ตั้งค่าขั้นสูงสำหรับ ประเภทปัญหาการเรียนรู้ของเครื่องเลือก การจำแนกไบนารี.
  10. สำหรับ ตัวชี้วัดวัตถุประสงค์เลือก AUC.
  11. สำหรับ เลือกวิธีเรียกใช้การทดสอบของคุณเลือก ไม่ เรียกใช้โครงการนำร่องเพื่อสร้างสมุดบันทึกที่มีคำจำกัดความของผู้สมัคร.
  12. Choose สร้างการทดสอบ.
    ระบุป่าชายเลนโดยใช้คุณสมบัติภาพถ่ายดาวเทียมโดยใช้ Amazon SageMaker Studio และ Amazon SageMaker Autopilot – ส่วนที่ 2 PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI.
    สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการสร้างการทดสอบ โปรดดูที่ สร้างการทดลอง Amazon SageMaker Autopilot. อาจใช้เวลาประมาณ 15 นาทีในการรันขั้นตอนนี้
  13. เมื่อเสร็จแล้วให้เลือก เปิดสมุดบันทึกการสร้างผู้สมัครซึ่งเปิดสมุดบันทึกใหม่ในโหมดอ่านอย่างเดียว
    ระบุป่าชายเลนโดยใช้คุณสมบัติภาพถ่ายดาวเทียมโดยใช้ Amazon SageMaker Studio และ Amazon SageMaker Autopilot – ส่วนที่ 2 PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI.
  14. Choose นำเข้าโน๊ตบุ๊ค เพื่อให้สมุดบันทึกสามารถแก้ไขได้
    ระบุป่าชายเลนโดยใช้คุณสมบัติภาพถ่ายดาวเทียมโดยใช้ Amazon SageMaker Studio และ Amazon SageMaker Autopilot – ส่วนที่ 2 PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI.
  15. สำหรับรูปภาพ เลือก ข้อมูลวิทยาศาสตร์.
  16. สำหรับ เมล็ดเลือก งูหลาม 3.
  17. Choose เลือก.
    ระบุป่าชายเลนโดยใช้คุณสมบัติภาพถ่ายดาวเทียมโดยใช้ Amazon SageMaker Studio และ Amazon SageMaker Autopilot – ส่วนที่ 2 PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI.

สมุดบันทึกที่สร้างขึ้นโดยอัตโนมัตินี้มีคำอธิบายโดยละเอียดและให้การควบคุมที่สมบูรณ์สำหรับงานสร้างแบบจำลองจริงที่จะปฏิบัติตาม เวอร์ชันที่กำหนดเองของ สมุดบันทึกซึ่งตัวจำแนกประเภทได้รับการฝึกอบรมโดยใช้คลื่นความถี่ Landsat จากปี 2013 มีอยู่ในที่เก็บรหัสภายใต้ notebooks/mangrove-2013.ipynb.

กรอบงานการสร้างแบบจำลองประกอบด้วยสองส่วน: การแปลงคุณลักษณะซึ่งเป็นส่วนหนึ่งของขั้นตอนการประมวลผลข้อมูล และการปรับให้เหมาะสมของพารามิเตอร์ไฮเปอร์พารามิเตอร์ (HPO) ซึ่งเป็นส่วนหนึ่งของขั้นตอนการเลือกแบบจำลอง สิ่งประดิษฐ์ที่จำเป็นสำหรับงานเหล่านี้ทั้งหมดถูกสร้างขึ้นระหว่างการทดลอง Autopilot และบันทึกไว้ใน บริการจัดเก็บข้อมูลอย่างง่ายของ Amazon (อเมซอน เอส3). เซลล์โน้ตบุ๊กเครื่องแรกดาวน์โหลดสิ่งประดิษฐ์เหล่านั้นจาก Amazon S3 ลงในเครื่อง อเมซอน SageMaker ระบบไฟล์สำหรับการตรวจสอบและการแก้ไขที่จำเป็น มีสองโฟลเดอร์: generated_module และ sagemaker_automlที่ซึ่งโมดูลและสคริปต์ Python ทั้งหมดที่จำเป็นต่อการเรียกใช้โน้ตบุ๊กจะถูกจัดเก็บไว้ ขั้นตอนการแปลงคุณลักษณะต่างๆ เช่น การใส่แทน การปรับสเกล และ PCA จะถูกบันทึกเป็น generated_modules/candidate_data_processors/dpp*.py.

Autopilot สร้างโมเดลที่แตกต่างกันสามแบบตามอัลกอริทึม XGBoost, ผู้เรียนเชิงเส้นตรง และอัลกอริธึม Perceptron หลายชั้น (MLP) ไปป์ไลน์ผู้สมัครประกอบด้วยหนึ่งในตัวเลือกการแปลงคุณลักษณะที่เรียกว่า data_transformerและอัลกอริทึม ไปป์ไลน์คือพจนานุกรม Python และสามารถกำหนดได้ดังนี้:

candidate1 = { "data_transformer": { "name": "dpp5", "training_resource_config": { "instance_type": "ml.m5.4xlarge", "instance_count": 1, "volume_size_in_gb": 50 }, "transform_resource_config": { "instance_type": "ml.m5.4xlarge", "instance_count": 1, }, "transforms_label": True, "transformed_data_format": "application/x-recordio-protobuf", "sparse_encoding": True }, "algorithm": { "name": "xgboost", "training_resource_config": { "instance_type": "ml.m5.4xlarge", "instance_count": 1, }, }
}

ในตัวอย่างนี้ ไปป์ไลน์แปลงข้อมูลการฝึกตามสคริปต์ใน generated_modules/candidate_data_processors/dpp5.py และสร้างโมเดล XGBoost นี่คือที่ที่ Autopilot ให้การควบคุมอย่างสมบูรณ์แก่นักวิทยาศาสตร์ข้อมูล ซึ่งสามารถเลือกการแปลงคุณลักษณะที่สร้างขึ้นโดยอัตโนมัติและขั้นตอนการเลือกแบบจำลอง หรือสร้างชุดค่าผสมของตนเอง

คุณสามารถเพิ่มไปป์ไลน์ไปยังพูลเพื่อให้ Autopilot ทำการทดสอบได้ดังนี้:

from sagemaker_automl import AutoMLInteractiveRunner, AutoMLLocalCandidate automl_interactive_runner = AutoMLInteractiveRunner(AUTOML_LOCAL_RUN_CONFIG)
automl_interactive_runner.select_candidate(candidate1)

นี่เป็นขั้นตอนสำคัญที่คุณสามารถเลือกเก็บเฉพาะชุดย่อยของผู้สมัครที่แนะนำโดย Autopilot ตามความเชี่ยวชาญในหัวข้อนั้นๆ เพื่อลดรันไทม์ทั้งหมด ในตอนนี้ ให้เก็บคำแนะนำ Autopilot ไว้ทั้งหมด ซึ่งคุณสามารถระบุได้ดังนี้:

automl_interactive_runner.display_candidates()

ชื่อผู้สมัคร ขั้นตอนวิธี คุณสมบัติ Transformer
dpp0-xgboost xgboost dpp0.py
dpp1-xgboost xgboost dpp1.py
dpp2-linear-ผู้เรียน ผู้เรียนเชิงเส้น dpp2.py
dpp3-xgboost xgboost dpp3.py
dpp4-xgboost xgboost dpp4.py
dpp5-xgboost xgboost dpp5.py
dpp6-มล MLP dpp6.py

การทดสอบ Autopilot ฉบับสมบูรณ์นั้นทำในสองส่วน ก่อนอื่น คุณต้องรันงานการแปลงข้อมูล:

automl_interactive_runner.fit_data_transformers(parallel_jobs=7)

ขั้นตอนนี้ควรเสร็จสิ้นภายใน 30 นาทีสำหรับผู้สมัครทั้งหมด หากคุณไม่ได้ทำการแก้ไขเพิ่มเติมใน dpp*.py ไฟล์

ขั้นตอนต่อไปคือการสร้างชุดโมเดลที่ดีที่สุดโดยการปรับไฮเปอร์พารามิเตอร์สำหรับอัลกอริธึมที่เกี่ยวข้อง พารามิเตอร์ไฮเปอร์มักจะแบ่งออกเป็นสองส่วน: แบบคงที่และแบบปรับได้ พารามิเตอร์ไฮเปอร์พารามิเตอร์แบบคงที่ยังคงไม่เปลี่ยนแปลงตลอดการทดสอบสำหรับตัวเลือกทั้งหมดที่ใช้อัลกอริทึมเดียวกัน ไฮเปอร์พารามิเตอร์เหล่านี้ถูกส่งไปยังการทดลองเป็นพจนานุกรม หากคุณเลือกเลือกโมเดล XGBoost ที่ดีที่สุดโดยเพิ่ม AUC ให้สูงสุดจากแผนการตรวจสอบข้ามห้าเท่าสามรอบ พจนานุกรมจะมีลักษณะดังนี้:

{ 'objective': 'binary:logistic', 'eval_metric': 'auc', '_kfold': 5, '_num_cv_round': 3,
} 

สำหรับไฮเปอร์พารามิเตอร์ที่ปรับได้ คุณต้องส่งพจนานุกรมอื่นที่มีช่วงและประเภทการปรับขนาด:

{ 'num_round': IntegerParameter(64, 1024, scaling_type='Logarithmic'), 'max_depth': IntegerParameter(2, 8, scaling_type='Logarithmic'), 'eta': ContinuousParameter(1e-3, 1.0, scaling_type='Logarithmic'),
... }

มีไฮเปอร์พารามิเตอร์ครบชุดใน mangrove-2013.ipynb สมุดบันทึก.

ในการสร้างการทดสอบที่สามารถทดสอบผู้สมัครทั้งเจ็ดพร้อมกันได้ ให้สร้างเครื่องรับ HPO แบบหลายอัลกอริทึม:

multi_algo_tuning_parameters = automl_interactive_runner.prepare_multi_algo_parameters( objective_metrics=ALGORITHM_OBJECTIVE_METRICS, static_hyperparameters=STATIC_HYPERPARAMETERS, hyperparameters_search_ranges=ALGORITHM_TUNABLE_HYPERPARAMETER_RANGES)

ตัวชี้วัดวัตถุประสงค์ถูกกำหนดอย่างอิสระสำหรับแต่ละอัลกอริทึม:

ALGORITHM_OBJECTIVE_METRICS = { 'xgboost': 'validation:auc', 'linear-learner': 'validation:roc_auc_score', 'mlp': 'validation:roc_auc',
}

การลองใช้ค่าไฮเปอร์พารามิเตอร์ที่เป็นไปได้ทั้งหมดสำหรับการทดลองทั้งหมดนั้นเป็นการสิ้นเปลือง คุณสามารถใช้กลยุทธ์ Bayesian เพื่อสร้างเครื่องรับ HPO:

multi_algo_tuning_inputs = automl_interactive_runner.prepare_multi_algo_inputs()
ase_tuning_job_name = "{}-tuning".format(AUTOML_LOCAL_RUN_CONFIG.local_automl_job_name) tuner = HyperparameterTuner.create( base_tuning_job_name=base_tuning_job_name, strategy='Bayesian', objective_type='Maximize', max_parallel_jobs=10, max_jobs=50, **multi_algo_tuning_parameters,
)

ในการตั้งค่าเริ่มต้น Autopilot จะเลือกงาน 250 งานในเครื่องรับสัญญาณเพื่อเลือกรุ่นที่ดีที่สุด สำหรับกรณีการใช้งานนี้ก็เพียงพอแล้วที่จะตั้งค่า max_jobs=50 เพื่อประหยัดเวลาและทรัพยากร โดยไม่มีการลงโทษที่สำคัญในแง่ของการเลือกชุดไฮเปอร์พารามิเตอร์ที่ดีที่สุด สุดท้าย ส่งงาน HPO ดังนี้:

tuner.fit(inputs=multi_algo_tuning_inputs, include_cls_metadata=None)

กระบวนการนี้ใช้เวลาประมาณ 80 นาทีบนอินสแตนซ์ ml.m5.4xlarge คุณสามารถติดตามความคืบหน้าบนคอนโซล SageMaker ได้โดยเลือก งานปรับแต่งไฮเปอร์พารามิเตอร์ ภายใต้ การฝึกอบรม ในบานหน้าต่างนำทาง

ระบุป่าชายเลนโดยใช้คุณสมบัติภาพถ่ายดาวเทียมโดยใช้ Amazon SageMaker Studio และ Amazon SageMaker Autopilot – ส่วนที่ 2 PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI.

คุณสามารถเห็นภาพข้อมูลที่เป็นประโยชน์มากมาย รวมถึงประสิทธิภาพของผู้สมัครแต่ละคน โดยเลือกชื่อของงานที่อยู่ระหว่างดำเนินการ

ระบุป่าชายเลนโดยใช้คุณสมบัติภาพถ่ายดาวเทียมโดยใช้ Amazon SageMaker Studio และ Amazon SageMaker Autopilot – ส่วนที่ 2 PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI.

สุดท้าย เปรียบเทียบประสิทธิภาพของแบบจำลองของผู้สมัครที่ดีที่สุดดังนี้

from sagemaker.analytics import HyperparameterTuningJobAnalytics SAGEMAKER_SESSION = AUTOML_LOCAL_RUN_CONFIG.sagemaker_session
SAGEMAKER_ROLE = AUTOML_LOCAL_RUN_CONFIG.role tuner_analytics = HyperparameterTuningJobAnalytics( tuner.latest_tuning_job.name, sagemaker_session=SAGEMAKER_SESSION) df_tuning_job_analytics = tuner_analytics.dataframe() df_tuning_job_analytics.sort_values( by=['FinalObjectiveValue'], inplace=True, ascending=False if tuner.objective_type == "Maximize" else True) # select the columns to display and rename
select_columns = ["TrainingJobDefinitionName", "FinalObjectiveValue", "TrainingElapsedTimeSeconds"]
rename_columns = { "TrainingJobDefinitionName": "candidate", "FinalObjectiveValue": "AUC", "TrainingElapsedTimeSeconds": "run_time" } # Show top 5 model performances
df_tuning_job_analytics.rename(columns=rename_columns)[rename_columns.values()].set_index("candidate").head(5)

ผู้สมัคร AUC run_time (วินาที)
dpp6-มล 0.96008 2711.0
dpp4-xgboost 0.95236 385.0
dpp3-xgboost 0.95095 202.0
dpp4-xgboost 0.95069 458.0
dpp3-xgboost 0.95015 361.0

โมเดลที่มีประสิทธิภาพสูงสุดตาม MLP ในขณะที่ดีกว่ารุ่น XGBoost เล็กน้อยที่มีขั้นตอนการประมวลผลข้อมูลให้เลือกมากมาย แต่ก็ใช้เวลาในการฝึกนานกว่ามาก คุณสามารถดูรายละเอียดที่สำคัญเกี่ยวกับการฝึกโมเดล MLP ซึ่งรวมถึงการใช้ไฮเปอร์พารามิเตอร์ร่วมกันดังนี้:

df_tuning_job_analytics.loc[df_tuning_job_analytics.TrainingJobName==best_training_job].T.dropna() 

การฝึกอบรมชื่องาน mangrove-2-notebook–211021-2016-012-500271c8
การฝึกอบรมสถานะงาน เสร็จ
สุดท้ายObjectiveValue 0.96008
การฝึกอบรมStartTime 2021-10-21 20:22:55+00:00
การฝึกอบรมEndTime 2021-10-21 21:08:06+00:00
การฝึกอบรมElapsedTimeSeconds 2711
การฝึกอบรมJobDefinitionName dpp6-มล
dropout_prob 0.415778
การฝัง_ขนาด_ปัจจัย 0.849226
ชั้น 256
อัตราการเรียนรู้ 0.00013862
mini_batch_size 317
เครือข่าย_ประเภท ฟีดไปข้างหน้า
น้ำหนัก_สลาย 1.29323st-12

สร้างไปป์ไลน์การอนุมาน

ในการสร้างการอนุมานข้อมูลใหม่ คุณต้องสร้างไปป์ไลน์การอนุมานบน SageMaker เพื่อโฮสต์โมเดลที่ดีที่สุดที่สามารถเรียกได้ในภายหลังเพื่อสร้างการอนุมาน โมเดลไปป์ไลน์ SageMaker ต้องใช้คอนเทนเนอร์สามตัวเป็นส่วนประกอบ: การแปลงข้อมูล อัลกอริธึม และการแปลงฉลากผกผัน (หากจำเป็นต้องจับคู่การคาดการณ์เชิงตัวเลขกับป้ายกำกับที่ไม่ใช่ตัวเลข) เพื่อความกระชับ จะแสดงเพียงส่วนหนึ่งของรหัสที่จำเป็นในตัวอย่างต่อไปนี้ รหัสที่สมบูรณ์มีอยู่ใน mangrove-2013.ipynb สมุดบันทึก:

from sagemaker.estimator import Estimator
from sagemaker import PipelineModel
from sagemaker_automl import select_inference_output …
# Final pipeline model model_containers = [best_data_transformer_model, best_algo_model]
if best_candidate.transforms_label: model_containers.append(best_candidate.get_data_transformer_model( transform_mode="inverse-label-transform", role=SAGEMAKER_ROLE, sagemaker_session=SAGEMAKER_SESSION)) # select the output type
model_containers = select_inference_output("BinaryClassification", model_containers, output_keys=['predicted_label'])

หลังจากสร้างคอนเทนเนอร์แบบจำลองแล้ว คุณสามารถสร้างและปรับใช้ไปป์ไลน์ได้ดังนี้:

from sagemaker import PipelineModel pipeline_model = PipelineModel( name=f"mangrove-automl-2013", role=SAGEMAKER_ROLE, models=model_containers, vpc_config=AUTOML_LOCAL_RUN_CONFIG.vpc_config) pipeline_model.deploy(initial_instance_count=1, instance_type='ml.m5.2xlarge', endpoint_name=pipeline_model.name, wait=True)

การปรับใช้ปลายทางจะใช้เวลาประมาณ 10 นาทีจึงจะเสร็จสมบูรณ์

รับการอนุมานชุดข้อมูลทดสอบโดยใช้จุดปลาย

หลังจากปรับใช้จุดปลายแล้ว คุณสามารถเรียกใช้ด้วยเพย์โหลดของฟีเจอร์ B1–B7 เพื่อจำแนกแต่ละพิกเซลในภาพเป็นป่าชายเลน (1) หรืออื่นๆ (0):

import boto3
sm_runtime = boto3.client('runtime.sagemaker') pred_labels = []
with open(local_download, 'r') as f: for i, row in enumerate(f): payload = row.rstrip('n') x = sm_runtime.invoke_endpoint(EndpointName=inf_endpt, ContentType="text/csv", Body=payload) pred_labels.append(int(x['Body'].read().decode().strip()))

รายละเอียดที่สมบูรณ์เกี่ยวกับการประมวลผลภายหลังการทำนายแบบจำลองสำหรับการประเมินและการวางแผนมีอยู่ใน notebooks/model_performance.ipynb.

รับการอนุมานในชุดข้อมูลทดสอบโดยใช้การแปลงแบบแบตช์

ตอนนี้คุณได้สร้างแบบจำลองที่มีประสิทธิภาพดีที่สุดด้วย Autopilot แล้ว เราก็สามารถใช้แบบจำลองนี้ในการอนุมานได้ ในการอนุมานชุดข้อมูลขนาดใหญ่ การใช้การแปลงแบบแบตช์จะมีประสิทธิภาพมากกว่า มาสร้างการคาดคะเนบนชุดข้อมูลทั้งหมด (การฝึกอบรมและการทดสอบ) และผนวกผลลัพธ์เข้ากับคุณสมบัติ เพื่อให้เราสามารถทำการวิเคราะห์เพิ่มเติม เช่น ตรวจสอบการคาดการณ์เทียบกับข้อมูลจริง และการกระจายของคุณสมบัติระหว่างคลาสที่คาดการณ์ไว้

ขั้นแรก เราสร้างไฟล์รายการใน Amazon S3 ที่ชี้ไปยังตำแหน่งของการฝึกอบรมและทดสอบข้อมูลจากขั้นตอนการประมวลผลข้อมูลก่อนหน้านี้:

import boto3
data_bucket = <Name of the S3 bucket that has the training data>
prefix = "LANDSAT_LC08_C01_T1_SR/Year2013"
manifest = "[{{"prefix": "s3://{}/{}/"}},n"train.csv",n"test.csv"n]".format(data_bucket, prefix)
s3_client = boto3.client('s3')
s3_client.put_object(Body=manifest, Bucket=data_bucket, Key=f"{prefix}/data.manifest")

ตอนนี้ เราสามารถสร้างงานการแปลงแบบแบตช์ได้ เนื่องจากอินพุทเทรนและชุดข้อมูลทดสอบของเรามี label เป็นคอลัมน์สุดท้าย เราต้องวางมันระหว่างการอนุมาน ในการทำเช่นนั้นเราผ่าน InputFilter ใน DataProcessing การโต้แย้ง. รหัส "$[:-2]" ระบุว่าจะดรอปคอลัมน์สุดท้าย ผลลัพธ์ที่คาดการณ์ไว้จะถูกรวมเข้ากับข้อมูลต้นฉบับสำหรับการวิเคราะห์เพิ่มเติม

ในโค้ดต่อไปนี้ เราสร้างอาร์กิวเมนต์สำหรับงานการแปลงแบตช์แล้วส่งต่อไปยัง create_transform_job ฟังก์ชั่น:

from time import gmtime, strftime batch_job_name = "Batch-Transform-" + strftime("%Y-%m-%d-%H-%M-%S", gmtime())
output_location = "s3://{}/{}/batch_output/{}".format(data_bucket, prefix, batch_job_name)
input_location = "s3://{}/{}/data.manifest".format(data_bucket, prefix) request = { "TransformJobName": batch_job_name, "ModelName": pipeline_model.name, "TransformOutput": { "S3OutputPath": output_location, "Accept": "text/csv", "AssembleWith": "Line", }, "TransformInput": { "DataSource": {"S3DataSource": {"S3DataType": "ManifestFile", "S3Uri": input_location}}, "ContentType": "text/csv", "SplitType": "Line", "CompressionType": "None", }, "TransformResources": {"InstanceType": "ml.m4.xlarge", "InstanceCount": 1}, "DataProcessing": {"InputFilter": "$[:-2]", "JoinSource": "Input"}
} sagemaker = boto3.client("sagemaker")
sagemaker.create_transform_job(**request)
print("Created Transform job with name: ", batch_job_name)

คุณสามารถตรวจสอบสถานะของงานได้บนคอนโซล SageMaker

ระบุป่าชายเลนโดยใช้คุณสมบัติภาพถ่ายดาวเทียมโดยใช้ Amazon SageMaker Studio และ Amazon SageMaker Autopilot – ส่วนที่ 2 PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI.

เห็นภาพประสิทธิภาพของแบบจำลอง

ตอนนี้คุณสามารถเห็นภาพประสิทธิภาพของแบบจำลองที่ดีที่สุดในชุดข้อมูลการทดสอบ ซึ่งประกอบด้วยภูมิภาคต่างๆ จากอินเดีย เมียนมาร์ คิวบา และเวียดนาม เป็นเมทริกซ์ความสับสน โมเดลนี้มีค่าการเรียกคืนสูงสำหรับพิกเซลที่เป็นตัวแทนของป่าชายเลน แต่มีความแม่นยำประมาณ 75% เท่านั้น ความแม่นยำของพิกเซลที่ไม่ใช่ป่าชายเลนหรือพิกเซลอื่นๆ อยู่ที่ 99% โดยมีการเรียกคืน 85% คุณสามารถปรับการตัดความน่าจะเป็นของการคาดคะเนแบบจำลองเพื่อปรับค่าที่เกี่ยวข้องโดยขึ้นอยู่กับกรณีการใช้งานเฉพาะ

ระบุป่าชายเลนโดยใช้คุณสมบัติภาพถ่ายดาวเทียมโดยใช้ Amazon SageMaker Studio และ Amazon SageMaker Autopilot – ส่วนที่ 2 PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI.

ระบุป่าชายเลนโดยใช้คุณสมบัติภาพถ่ายดาวเทียมโดยใช้ Amazon SageMaker Studio และ Amazon SageMaker Autopilot – ส่วนที่ 2 PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI.

เป็นที่น่าสังเกตว่าผลลัพธ์ที่ได้คือการปรับปรุงที่สำคัญกว่าโมเดล smileCart ในตัว

เห็นภาพการทำนายแบบจำลอง

สุดท้าย การสังเกตประสิทธิภาพของแบบจำลองในพื้นที่เฉพาะบนแผนที่จะเป็นประโยชน์ ในภาพต่อไปนี้ พื้นที่ป่าชายเลนในชายแดนอินเดีย-บังกลาเทศเป็นสีแดง จุดที่สุ่มตัวอย่างจากแพตช์ภาพ Landsat ที่เป็นของชุดข้อมูลทดสอบจะถูกซ้อนทับบนภูมิภาค โดยที่แต่ละจุดเป็นพิกเซลที่ตัวแบบกำหนดไว้เพื่อเป็นตัวแทนของป่าชายเลน จุดสีน้ำเงินจัดประเภทอย่างถูกต้องตามแบบจำลอง ในขณะที่จุดสีดำแสดงถึงข้อผิดพลาดของแบบจำลอง

ระบุป่าชายเลนโดยใช้คุณสมบัติภาพถ่ายดาวเทียมโดยใช้ Amazon SageMaker Studio และ Amazon SageMaker Autopilot – ส่วนที่ 2 PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI.

รูปภาพต่อไปนี้แสดงเฉพาะจุดที่แบบจำลองคาดการณ์ว่าจะไม่เป็นตัวแทนของป่าชายเลน โดยใช้โทนสีเดียวกับตัวอย่างก่อนหน้านี้ โครงร่างสีเทาเป็นส่วนหนึ่งของแพทช์ Landsat ที่ไม่มีป่าชายเลน ดังที่เห็นได้ชัดจากภาพ นางแบบไม่ได้ทำผิดพลาดในการจำแนกจุดบนน้ำ แต่ต้องเผชิญกับความท้าทายเมื่อแยกแยะพิกเซลที่เป็นตัวแทนของป่าชายเลนจากส่วนที่เป็นตัวแทนของใบไม้ปกติ

ระบุป่าชายเลนโดยใช้คุณสมบัติภาพถ่ายดาวเทียมโดยใช้ Amazon SageMaker Studio และ Amazon SageMaker Autopilot – ส่วนที่ 2 PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI.

ภาพต่อไปนี้แสดงการแสดงแบบจำลองพื้นที่ป่าชายเลนเมียนมาร์

ระบุป่าชายเลนโดยใช้คุณสมบัติภาพถ่ายดาวเทียมโดยใช้ Amazon SageMaker Studio และ Amazon SageMaker Autopilot – ส่วนที่ 2 PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI.

ในภาพต่อไปนี้ ตัวแบบสามารถระบุพิกเซลของป่าชายเลนได้ดีกว่า

ระบุป่าชายเลนโดยใช้คุณสมบัติภาพถ่ายดาวเทียมโดยใช้ Amazon SageMaker Studio และ Amazon SageMaker Autopilot – ส่วนที่ 2 PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI.

ทำความสะอาด

จุดสิ้นสุดการอนุมานของ SageMaker ยังคงมีค่าใช้จ่ายหากยังทำงานอยู่ ลบปลายทางดังต่อไปนี้เมื่อคุณทำเสร็จแล้ว:

sagemaker.delete_endpoint(EndpointName=pipeline_model.name)

สรุป

บทความชุดนี้เป็นกรอบการทำงานแบบ end-to-end สำหรับนักวิทยาศาสตร์ข้อมูลในการแก้ปัญหา GIS 1 หมายเลข แสดงให้เห็นกระบวนการ ETL และวิธีที่สะดวกในการโต้ตอบกับข้อมูลด้วยสายตา ส่วนที่ 2 แสดงวิธีใช้ Autopilot เพื่อสร้างตัวแยกประเภทป่าชายเลนแบบกำหนดเองโดยอัตโนมัติ

คุณสามารถใช้เฟรมเวิร์กนี้เพื่อสำรวจชุดข้อมูลดาวเทียมใหม่ที่มีกลุ่มแบนด์ที่สมบูรณ์ยิ่งขึ้นซึ่งมีประโยชน์สำหรับการจำแนกประเภทป่าชายเลนและสำรวจวิศวกรรมคุณลักษณะโดยผสมผสานความรู้โดเมน


เกี่ยวกับผู้เขียน

ระบุป่าชายเลนโดยใช้คุณสมบัติภาพถ่ายดาวเทียมโดยใช้ Amazon SageMaker Studio และ Amazon SageMaker Autopilot – ส่วนที่ 2 PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI. อังเดร อิวาโนวิช เป็นนักศึกษาปริญญาโทสาขาวิทยาการคอมพิวเตอร์ที่มหาวิทยาลัยโตรอนโต และเพิ่งสำเร็จการศึกษาจากหลักสูตรวิศวกรรมศาสตร์ที่มหาวิทยาลัยโตรอนโต สาขาวิชา Machine Intelligence กับผู้เยาว์ด้านวิทยาการหุ่นยนต์/เมคคาทรอนิกส์ เขาสนใจคอมพิวเตอร์วิทัศน์ การเรียนรู้เชิงลึก และวิทยาการหุ่นยนต์ เขาทำงานที่นำเสนอในโพสต์นี้ระหว่างการฝึกงานภาคฤดูร้อนที่ Amazon

ระบุป่าชายเลนโดยใช้คุณสมบัติภาพถ่ายดาวเทียมโดยใช้ Amazon SageMaker Studio และ Amazon SageMaker Autopilot – ส่วนที่ 2 PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI.เดวิด ดอง เป็นนักวิทยาศาสตร์ข้อมูลที่ Amazon Web Services

ระบุป่าชายเลนโดยใช้คุณสมบัติภาพถ่ายดาวเทียมโดยใช้ Amazon SageMaker Studio และ Amazon SageMaker Autopilot – ส่วนที่ 2 PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI.อัครโยติ มิสเราะห์ เป็นนักวิทยาศาสตร์ข้อมูลที่ Amazon LastMile Transportation เขาหลงใหลในการใช้เทคนิค Computer Vision เพื่อแก้ปัญหาที่ช่วยโลก เขาชอบทำงานกับองค์กรไม่แสวงหาผลกำไรและเป็นสมาชิกผู้ก่อตั้งของ ekipi.org.

ประทับเวลา:

เพิ่มเติมจาก AWS Machine Learning AWS