Hutan bakau adalah bagian penting dari ekosistem yang sehat, dan aktivitas manusia adalah salah satu alasan utama hilangnya mereka secara bertahap dari garis pantai di seluruh dunia. Menggunakan model pembelajaran mesin (ML) untuk mengidentifikasi kawasan bakau dari citra satelit memberi peneliti cara yang efektif untuk memantau ukuran hutan dari waktu ke waktu. Di bagian 1 dari seri ini, kami menunjukkan cara mengumpulkan data satelit secara otomatis dan menganalisisnya dalam Studio Amazon SageMaker dengan visualisasi interaktif. Dalam posting ini, kami menunjukkan cara menggunakan Autopilot Amazon SageMaker untuk mengotomatisasi proses pembuatan pengklasifikasi bakau khusus.
Latih model dengan Autopilot
Autopilot menyediakan cara yang seimbang untuk membangun beberapa model dan memilih yang terbaik. Saat membuat beberapa kombinasi dari berbagai teknik prapemrosesan data dan model ML dengan sedikit usaha, Autopilot memberikan kontrol penuh atas langkah-langkah komponen ini kepada ilmuwan data, jika diinginkan.
Anda dapat menggunakan Autopilot menggunakan salah satu AWS SDK (detail tersedia di Panduan referensi API untuk Autopilot) atau melalui Studio. Kami menggunakan Autopilot dalam solusi Studio kami mengikuti langkah-langkah yang diuraikan di bagian ini:
- Di halaman Studio Launcher, pilih tanda plus untuk Eksperimen Autopilot baru.
- Untuk Hubungkan data Anda, pilih Temukan ember S3, dan masukkan nama bucket tempat Anda menyimpan set data pelatihan dan pengujian.
- Untuk Nama file kumpulan data, masukkan nama file data pelatihan yang Anda buat di Siapkan data pelatihan bagian dalam bagian 1.
- Untuk Lokasi data keluaran (ember S3), masukkan nama bucket yang sama dengan yang Anda gunakan di langkah 2.
- Untuk Nama direktori kumpulan data, masukkan nama folder di bawah keranjang tempat Anda ingin Autopilot menyimpan artefak.
- Untuk Apakah input S3 Anda adalah file manifes?, pilih Off.
- Untuk target, pilih label.
- Untuk Penyebaran otomatis, pilih Off.
- Di bawah pengaturan lanjutan, Untuk Jenis masalah pembelajaran mesin, pilih Klasifikasi Biner.
- Untuk Metrik objektif, pilih AUC.
- Untuk Pilih cara menjalankan eksperimen Anda, pilih Tidak, jalankan uji coba untuk membuat buku catatan dengan definisi kandidat.
- Pilih Buat Eksperimen.
Untuk informasi lebih lanjut tentang membuat eksperimen, lihat Buat eksperimen Autopilot Amazon SageMaker.Mungkin diperlukan waktu sekitar 15 menit untuk menjalankan langkah ini. - Setelah selesai, pilih Buka notebook generasi kandidat, yang membuka buku catatan baru dalam mode baca-saja.
- Pilih Impor buku catatan untuk membuat buku catatan dapat diedit.
- Untuk Gambar, pilih Ilmu Data.
- Untuk Inti, pilih Python 3.
- Pilih Pilih.
Notebook yang dibuat secara otomatis ini memiliki penjelasan terperinci dan memberikan kontrol penuh atas tugas pembuatan model yang sebenarnya untuk diikuti. Versi yang disesuaikan dari buku catatan, di mana pengklasifikasi dilatih menggunakan pita satelit Landsat dari 2013, tersedia di repositori kode di bawah notebooks/mangrove-2013.ipynb
.
Kerangka pembangunan model terdiri dari dua bagian: transformasi fitur sebagai bagian dari langkah pemrosesan data, dan optimasi hiperparameter (HPO) sebagai bagian dari langkah pemilihan model. Semua artefak yang diperlukan untuk tugas ini dibuat selama eksperimen Autopilot dan disimpan di Layanan Penyimpanan Sederhana Amazon (Amazon S3). Sel notebook pertama mengunduh artefak tersebut dari Amazon S3 ke lokal Amazon SageMaker sistem file untuk pemeriksaan dan modifikasi yang diperlukan. Ada dua folder: generated_module
dan sagemaker_automl
, tempat semua modul dan skrip Python yang diperlukan untuk menjalankan notebook disimpan. Berbagai langkah transformasi fitur seperti imputasi, penskalaan, dan PCA disimpan sebagai generated_modules/candidate_data_processors/dpp*.py.
Autopilot membuat tiga model berbeda berdasarkan algoritma XGBoost, linear learner, dan multi-layer perceptron (MLP). Kandidat pipeline terdiri dari salah satu opsi transformasi fitur, yang dikenal sebagai data_transformer
, dan sebuah algoritma. Pipeline adalah kamus Python dan dapat didefinisikan sebagai berikut:
Dalam contoh ini, pipeline mengubah data pelatihan sesuai dengan skrip di generated_modules/candidate_data_processors/dpp5.py
dan membangun model XGBoost. Di sinilah Autopilot memberikan kontrol penuh kepada ilmuwan data, yang dapat memilih transformasi fitur yang dihasilkan secara otomatis dan langkah pemilihan model atau membangun kombinasi mereka sendiri.
Sekarang Anda dapat menambahkan pipeline ke kumpulan untuk Autopilot untuk menjalankan eksperimen sebagai berikut:
Ini adalah langkah penting di mana Anda dapat memutuskan untuk menyimpan hanya sebagian kandidat yang disarankan oleh Autopilot, berdasarkan keahlian materi pelajaran, untuk mengurangi total waktu proses. Untuk saat ini, simpan semua saran Autopilot, yang dapat Anda daftarkan sebagai berikut:
nama kandidat | Algoritma | Fitur Transformer |
dpp0-xgboost.dll | xgboost | dpp0.py |
dpp1-xgboost.dll | xgboost | dpp1.py |
dpp2-linear-pelajar | linear-pelajar | dpp2.py |
dpp3-xgboost.dll | xgboost | dpp3.py |
dpp4-xgboost.dll | xgboost | dpp4.py |
dpp5-xgboost.dll | xgboost | dpp5.py |
dpp6-mlp | mLP | dpp6.py |
Eksperimen Autopilot penuh dilakukan dalam dua bagian. Pertama, Anda perlu menjalankan tugas transformasi data:
Langkah ini akan selesai dalam waktu sekitar 30 menit untuk semua kandidat, jika Anda tidak melakukan modifikasi lebih lanjut pada dpp*.py
file.
Langkah selanjutnya adalah membangun set model terbaik dengan menyetel hyperparameter untuk masing-masing algoritma. Hyperparameter biasanya dibagi menjadi dua bagian: statis dan merdu. Hyperparameter statis tetap tidak berubah selama eksperimen untuk semua kandidat yang memiliki algoritme yang sama. Hyperparameter ini diteruskan ke eksperimen sebagai kamus. Jika Anda memilih untuk memilih model XGBoost terbaik dengan memaksimalkan AUC dari tiga putaran skema validasi silang lima kali lipat, kamus akan terlihat seperti kode berikut:
Untuk hyperparameter yang dapat disetel, Anda harus melewati kamus lain dengan rentang dan jenis penskalaan:
Set lengkap hyperparameters tersedia di mangrove-2013.ipynb
buku catatan.
Untuk membuat eksperimen di mana ketujuh kandidat dapat diuji secara paralel, buat tuner HPO multi-algoritma:
Metrik objektif didefinisikan secara independen untuk setiap algoritme:
Mencoba semua kemungkinan nilai hyperparameters untuk semua eksperimen adalah pemborosan; Anda dapat mengadopsi strategi Bayesian untuk membuat tuner HPO:
Dalam pengaturan default, Autopilot memilih 250 pekerjaan di tuner untuk memilih model terbaik. Untuk kasus penggunaan ini, cukup untuk mengatur max_jobs=50
untuk menghemat waktu dan sumber daya, tanpa penalti yang signifikan dalam hal memilih kumpulan hyperparameter terbaik. Terakhir, kirimkan pekerjaan HPO sebagai berikut:
Proses ini memakan waktu sekitar 80 menit pada instans ml.m5.4xlarge. Anda dapat memantau kemajuan di konsol SageMaker dengan memilih Pekerjaan penyetelan hyperparameter bawah Pelatihan di panel navigasi.
Anda dapat memvisualisasikan sejumlah informasi berguna, termasuk kinerja setiap kandidat, dengan memilih nama pekerjaan yang sedang berlangsung.
Terakhir, bandingkan kinerja model kandidat terbaik sebagai berikut:
calon | AUC | run_time (s) |
dpp6-mlp | 0.96008 | 2711.0 |
dpp4-xgboost.dll | 0.95236 | 385.0 |
dpp3-xgboost.dll | 0.95095 | 202.0 |
dpp4-xgboost.dll | 0.95069 | 458.0 |
dpp3-xgboost.dll | 0.95015 | 361.0 |
Model berperforma terbaik berdasarkan MLP, meskipun sedikit lebih baik daripada model XGBoost dengan berbagai pilihan langkah pemrosesan data, juga membutuhkan waktu lebih lama untuk dilatih. Anda dapat menemukan detail penting tentang pelatihan model MLP, termasuk kombinasi hyperparameter yang digunakan, sebagai berikut:
PelatihanNamaPekerjaan | mangrove-2-notebook–211021-2016-012-500271c8 |
PelatihanJobStatus | Lengkap |
Nilai Tujuan Akhir | 0.96008 |
Waktu Mulai Pelatihan | 2021-10-21 20:22:55+00:00 |
PelatihanEndTime | 2021-10-21 21:08:06+00:00 |
PelatihanElapsedTimeSeconds | 2711 |
PelatihanNamaDefinisiPekerjaan | dpp6-mlp |
putus_prob | 0.415778 |
embedding_size_factor | 0.849226 |
lapisan | 256 |
tingkat_belajar | 0.00013862 |
mini_batch_size | 317 |
tipe jaringan | umpan maju |
berat_peluruhan | 1.29323e-12 |
Buat saluran inferensi
Untuk menghasilkan inferensi pada data baru, Anda harus membuat saluran inferensi di SageMaker untuk meng-host model terbaik yang dapat dipanggil nanti untuk menghasilkan inferensi. Model pipeline SageMaker memerlukan tiga wadah sebagai komponennya: transformasi data, algoritme, dan transformasi label terbalik (jika prediksi numerik perlu dipetakan ke label non-numerik). Untuk singkatnya, hanya sebagian dari kode yang diperlukan yang ditampilkan dalam cuplikan berikut; kode lengkapnya ada di mangrove-2013.ipynb
buku catatan:
Setelah container model dibuat, Anda dapat membangun dan men-deploy pipeline sebagai berikut:
Penyebaran titik akhir membutuhkan waktu sekitar 10 menit untuk diselesaikan.
Dapatkan inferensi pada dataset pengujian menggunakan titik akhir
Setelah endpoint di-deploy, Anda dapat memanggilnya dengan payload fitur B1–B7 untuk mengklasifikasikan setiap piksel dalam gambar sebagai mangrove (1) atau lainnya (0):
Detail lengkap tentang pascapemrosesan prediksi model untuk evaluasi dan plot tersedia di notebooks/model_performance.ipynb
.
Dapatkan inferensi pada dataset pengujian menggunakan transformasi batch
Sekarang setelah Anda membuat model berperforma terbaik dengan Autopilot, kita dapat menggunakan model tersebut untuk inferensi. Untuk mendapatkan inferensi pada kumpulan data besar, lebih efisien menggunakan transformasi batch. Mari buat prediksi pada seluruh kumpulan data (pelatihan dan pengujian) dan tambahkan hasilnya ke fitur, sehingga kita dapat melakukan analisis lebih lanjut untuk, misalnya, memeriksa prediksi vs. aktual dan distribusi fitur di antara kelas yang diprediksi.
Pertama, kami membuat file manifes di Amazon S3 yang menunjuk ke lokasi data pelatihan dan pengujian dari langkah pemrosesan data sebelumnya:
Sekarang kita dapat membuat pekerjaan transformasi batch. Karena dataset kereta input dan pengujian kami memiliki label
sebagai kolom terakhir, kita perlu menjatuhkannya selama inferensi. Untuk melakukan itu, kita lulus InputFilter
dalam DataProcessing
argumen. Kode "$[:-2]"
menunjukkan untuk menjatuhkan kolom terakhir. Output yang diprediksi kemudian digabungkan dengan data sumber untuk analisis lebih lanjut.
Dalam kode berikut, kami membangun argumen untuk pekerjaan transformasi batch dan kemudian meneruskan ke: create_transform_job
fungsi:
Anda dapat memantau status pekerjaan di konsol SageMaker.
Visualisasikan performa model
Anda sekarang dapat memvisualisasikan performa model terbaik pada kumpulan data pengujian, yang terdiri dari wilayah dari India, Myanmar, Kuba, dan Vietnam, sebagai matriks konfusi. Model ini memiliki nilai recall yang tinggi untuk piksel yang mewakili hutan bakau, tetapi hanya sekitar 75% presisi. Ketepatan non-mangrove atau piksel lainnya mencapai 99% dengan penarikan 85%. Anda dapat menyetel batas probabilitas dari prediksi model untuk menyesuaikan nilai masing-masing tergantung pada kasus penggunaan tertentu.
Perlu dicatat bahwa hasilnya adalah peningkatan yang signifikan dibandingkan model smileCart bawaan.
Visualisasikan prediksi model
Terakhir, sangat berguna untuk mengamati kinerja model pada wilayah tertentu di peta. Pada gambar berikut, kawasan mangrove di perbatasan India-Bangladesh digambarkan dengan warna merah. Titik sampel dari patch citra Landsat milik dataset uji ditumpangkan pada wilayah, di mana setiap titik adalah piksel yang ditentukan model untuk mewakili hutan bakau. Titik biru diklasifikasikan dengan benar oleh model, sedangkan titik hitam mewakili kesalahan model.
Gambar berikut hanya menunjukkan titik-titik yang diprediksi model tidak mewakili hutan bakau, dengan skema warna yang sama seperti contoh sebelumnya. Garis abu-abu adalah bagian dari petak Landsat yang tidak termasuk hutan bakau. Seperti yang terlihat dari gambar, model tidak membuat kesalahan dalam mengklasifikasikan titik di air, tetapi menghadapi tantangan saat membedakan piksel yang mewakili hutan bakau dari yang mewakili dedaunan biasa.
Gambar berikut menunjukkan kinerja model pada kawasan mangrove Myanmar.
Pada gambar berikut, model melakukan pekerjaan yang lebih baik dalam mengidentifikasi piksel mangrove.
Membersihkan
Titik akhir inferensi SageMaker terus dikenakan biaya jika dibiarkan berjalan. Hapus titik akhir sebagai berikut setelah selesai:
Kesimpulan
Serangkaian posting ini memberikan kerangka kerja ujung ke ujung bagi para ilmuwan data untuk memecahkan masalah GIS. bagian 1 menunjukkan proses ETL dan cara mudah untuk berinteraksi secara visual dengan data. Bagian 2 menunjukkan cara menggunakan Autopilot untuk mengotomatiskan pembuatan pengklasifikasi bakau khusus.
Anda dapat menggunakan kerangka kerja ini untuk menjelajahi kumpulan data satelit baru yang berisi kumpulan pita yang lebih kaya yang berguna untuk klasifikasi mangrove dan menjelajahi rekayasa fitur dengan memasukkan pengetahuan domain.
Tentang Penulis
Andrei Ivanović adalah mahasiswa Magister Ilmu Komputer yang masuk di Universitas Toronto dan lulusan baru dari program Ilmu Teknik di Universitas Toronto, jurusan Kecerdasan Mesin dengan minor Robotika/Mekatronik. Dia tertarik pada visi komputer, pembelajaran mendalam, dan robotika. Dia melakukan pekerjaan yang disajikan dalam posting ini selama magang musim panasnya di Amazon.
David Dong adalah Ilmuwan Data di Amazon Web Services.
Arkajyoti Misra adalah Ilmuwan Data di Amazon LastMile Transportation. Dia bersemangat menerapkan teknik Computer Vision untuk memecahkan masalah yang membantu bumi. Dia suka bekerja dengan organisasi nirlaba dan merupakan anggota pendiri ekipi.org.
- Coinsmart. Pertukaran Bitcoin dan Crypto Terbaik Eropa.
- Platoblockchain. Intelijen Metaverse Web3. Pengetahuan Diperkuat. AKSES GRATIS.
- CryptoHawk. Radar Altcoin. Uji Coba Gratis.
- Sumber: https://aws.amazon.com/blogs/machine-learning/part-2-identify-mangrove-forests-using-satellite-image-features-using-amazon-sagemaker-studio-and-amazon-sagemaker- pilot otomatis/
- "
- 10
- 100
- a
- Tentang Kami
- Menurut
- kegiatan
- algoritma
- algoritma
- Semua
- Amazon
- Amazon Web Services
- diantara
- analisis
- analisis
- menganalisa
- Lain
- Menerapkan
- DAERAH
- argumen
- sekitar
- mengotomatisasikan
- Otomatis
- secara otomatis
- tersedia
- AWS
- karena
- TERBAIK
- Black
- tubuh
- batas
- membangun
- Bangunan
- membangun
- built-in
- calon
- calon
- kasus
- menantang
- pilihan
- Pilih
- kelas-kelas
- klasifikasi
- tergolong
- kode
- Kolom
- kombinasi
- kombinasi
- lengkap
- komponen
- komponen
- komputer
- Komputer Ilmu
- kebingungan
- konsul
- Wadah
- terus
- kontrol
- Mudah
- membuat
- dibuat
- menciptakan
- membuat
- Kuba
- adat
- data
- pengolahan data
- ilmuwan data
- mendalam
- Tergantung
- menyebarkan
- dikerahkan
- penyebaran
- terperinci
- rincian
- MELAKUKAN
- berbeda
- Display
- distribusi
- Tidak
- domain
- download
- Menjatuhkan
- selama
- setiap
- bumi
- ekosistem
- Efektif
- efisien
- usaha
- ujung ke ujung
- Titik akhir
- Teknik
- Enter
- evaluasi
- contoh
- eksperimen
- keahlian
- menyelidiki
- wajah
- Fashion
- Fitur
- Fitur
- Akhirnya
- Pertama
- mengikuti
- berikut
- berikut
- pembinaan
- Kerangka
- dari
- penuh
- fungsi
- lebih lanjut
- menghasilkan
- dihasilkan
- generasi
- lulus
- abu-abu
- membimbing
- tinggi
- membantu
- High
- Seterpercayaapakah Olymp Trade? Kesimpulan
- How To
- HTTPS
- manusia
- mengenali
- mengidentifikasi
- gambar
- penting
- perbaikan
- memasukkan
- Termasuk
- secara mandiri
- India
- informasi
- memasukkan
- contoh
- Intelijen
- interaktif
- tertarik
- IT
- Pekerjaan
- Jobs
- bergabung
- Menjaga
- pengetahuan
- dikenal
- label
- Label
- besar
- pengetahuan
- baris
- Daftar
- lokal
- tempat
- lokasi
- mesin
- Mesin belajar
- utama
- membuat
- peta
- tuan
- Matriks
- hal
- anggota
- Metrik
- kesalahan
- ML
- model
- model
- Memantau
- lebih
- beberapa
- Myanmar
- Navigasi
- perlu
- berikutnya
- nirlaba
- buku catatan
- membuka
- optimasi
- Opsi
- organisasi
- Lainnya
- sendiri
- bagian
- tertentu
- bergairah
- tambalan
- prestasi
- pertunjukan
- melakukan
- pilot
- Titik
- poin
- kolam
- mungkin
- Posts
- Prediksi
- sebelumnya
- Masalah
- masalah
- proses
- pengolahan
- program
- disediakan
- menyediakan
- alasan
- baru
- menurunkan
- wilayah
- reguler
- tinggal
- gudang
- mewakili
- mewakili
- permintaan
- wajib
- membutuhkan
- peneliti
- Sumber
- Hasil
- robotika
- Peran
- putaran
- Run
- berjalan
- sama
- satelit
- Save
- skala
- skema
- Ilmu
- ilmuwan
- ilmuwan
- seleksi
- Seri
- Layanan
- set
- pengaturan
- beberapa
- Share
- Menunjukkan
- ditunjukkan
- menandatangani
- penting
- Sederhana
- Ukuran
- So
- padat
- larutan
- MEMECAHKAN
- tertentu
- berdiri
- Status
- penyimpanan
- menyimpan
- Penyelarasan
- mahasiswa
- studio
- subyek
- musim panas
- sistem
- tugas
- teknik
- istilah
- uji
- Grafik
- Sumber
- Dunia
- tiga
- Melalui
- di seluruh
- waktu
- puncak
- top 5
- toronto
- Pelatihan
- Mengubah
- Transformasi
- transformasi
- angkutan
- bawah
- universitas
- menggunakan
- biasanya
- pengesahan
- nilai
- berbagai
- versi
- penglihatan
- visualisasi
- air
- jaringan
- layanan web
- sementara
- SIAPA
- tanpa
- Kerja
- dunia
- bernilai
- X
- Anda