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

โหนดต้นทาง: 1497327

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

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

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

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

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

    สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการสร้างการทดสอบ โปรดดูที่ สร้างการทดลอง Amazon SageMaker Autopilot. อาจใช้เวลาประมาณ 15 นาทีในการรันขั้นตอนนี้
  13. เมื่อเสร็จแล้วให้เลือก เปิดสมุดบันทึกการสร้างผู้สมัครซึ่งเปิดสมุดบันทึกใหม่ในโหมดอ่านอย่างเดียว
  14. Choose นำเข้าโน๊ตบุ๊ค เพื่อให้สมุดบันทึกสามารถแก้ไขได้
  15. สำหรับรูปภาพ เลือก ข้อมูลวิทยาศาสตร์.
  16. สำหรับ เมล็ดเลือก งูหลาม 3.
  17. Choose เลือก.

สมุดบันทึกที่สร้างขึ้นโดยอัตโนมัตินี้มีคำอธิบายโดยละเอียดและให้การควบคุมที่สมบูรณ์สำหรับงานสร้างแบบจำลองจริงที่จะปฏิบัติตาม เวอร์ชันที่กำหนดเองของ สมุดบันทึกซึ่งตัวจำแนกประเภทได้รับการฝึกอบรมโดยใช้คลื่นความถี่ 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 ได้โดยเลือก งานปรับแต่งไฮเปอร์พารามิเตอร์ ภายใต้ การฝึกอบรม ในบานหน้าต่างนำทาง

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

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

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

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

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

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

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

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

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

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

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

ทำความสะอาด

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

sagemaker.delete_endpoint(EndpointName=pipeline_model.name)

สรุป

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

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


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

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

เดวิด ดอง เป็นนักวิทยาศาสตร์ข้อมูลที่ Amazon Web Services

อัครโยติ มิสเราะห์ เป็นนักวิทยาศาสตร์ข้อมูลที่ Amazon LastMile Transportation เขาหลงใหลในการใช้เทคนิค Computer Vision เพื่อแก้ปัญหาที่ช่วยโลก เขาชอบทำงานกับองค์กรไม่แสวงหาผลกำไรและเป็นสมาชิกผู้ก่อตั้งของ ekipi.org.

ประทับเวลา:

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