این یک پست وبلاگ مهمان است که با همکاری Ben Veasey، Jeremy Anderson، Jordan Knight و June Li از Travelers نوشته شده است.
تصاویر ماهواره ای و هوایی بینشی از طیف گسترده ای از مشکلات، از جمله کشاورزی دقیق، ارزیابی ریسک بیمه، توسعه شهری و واکنش به بلایا را ارائه می دهند. با این حال، آموزش مدلهای یادگیری ماشین (ML) برای تفسیر این دادهها، با تلاشهای پرهزینه و زمانبر حاشیهنویسی انسانی با تنگنا مواجه شده است. یکی از راه های غلبه بر این چالش از طریق آن است یادگیری خود نظارتی (SSL). با آموزش مقادیر زیادی از دادههای تصویر بدون برچسب، مدلهای تحت نظارت خود بازنماییهای تصویری را میآموزند که میتوانند به کارهای پایین دستی مانند طبقهبندی یا تقسیمبندی تصویر منتقل شوند. این رویکرد نمایشهای تصویری را تولید میکند که به خوبی به دادههای دیده نشده تعمیم مییابد و میزان دادههای برچسبگذاری شده مورد نیاز برای ساخت مدلهای پاییندستی کارآمد را کاهش میدهد.
در این پست، نحوه آموزش ترانسفورماتورهای بینایی با نظارت خود را در تصاویر بالای سر نشان می دهیم آمازون SageMaker. مسافران با آزمایشگاه راهحلهای یادگیری ماشین آمازون (که اکنون به آن معروف است) همکاری کردند مرکز نوآوری هوش مصنوعی) برای توسعه این چارچوب برای پشتیبانی و بهبود موارد استفاده از مدل تصاویر هوایی. راه حل ما بر اساس دینو الگوریتم و استفاده می کند SageMaker کتابخانه موازی داده را توزیع کرد (SMDDP) برای تقسیم داده ها بر روی چندین نمونه GPU. هنگامی که پیشآموزش کامل شد، نمایشهای تصویر DINO را میتوان به انواع وظایف پاییندستی منتقل کرد. این ابتکار منجر به بهبود عملکرد مدل در فضای Travelers Data & Analytics شد.
بررسی اجمالی راه حل
فرآیند دو مرحلهای برای پیشآموزش ترانسفورماتورهای بینایی و انتقال آنها به وظایف تحت نظارت پایین دست در نمودار زیر نشان داده شده است.
در بخشهای بعدی، با استفاده از تصاویر ماهوارهای از این راهحل، توضیحی ارائه میکنیم مجموعه داده BigEarthNet-S2. ما بر اساس کد ارائه شده در مخزن DINO.
پیش نیازها
قبل از شروع، باید به a دسترسی داشته باشید نمونه نوت بوک SageMaker و سرویس ذخیره سازی ساده آمازون (آمازون S3) سطل.
مجموعه داده BigEarthNet-S2 را آماده کنید
BigEarthNet-S2 یک آرشیو معیار است که حاوی 590,325 تصویر چند طیفی است که توسط ماهواره Sentinel-2 جمع آوری شده است. این تصاویر پوشش زمین یا ویژگیهای سطح فیزیکی ده کشور اروپایی را بین ژوئن 2017 تا مه 2018 مستند میکنند. انواع پوشش زمین در هر تصویر، مانند مراتع یا جنگلها، طبق 19 برچسب حاشیهنویسی شدهاند. در زیر چند نمونه از تصاویر RGB و برچسب های آنها آورده شده است.
اولین گام در گردش کار ما آماده کردن مجموعه داده BigEarthNet-S2 برای آموزش و ارزیابی DINO است. ما با دانلود مجموعه داده از ترمینال نمونه نوت بوک SageMaker شروع می کنیم:
حجم مجموعه داده حدود 109 گیگابایت است. هر تصویر در پوشه خود ذخیره می شود و شامل 12 کانال طیفی است. سه باند با وضوح فضایی 60 متر (60 متر ارتفاع/عرض پیکسل) برای شناسایی ذرات معلق در هوا (B01)، بخار آب (B09) و ابرها (B10) طراحی شدهاند. شش نوار با وضوح فضایی 20 متر برای شناسایی پوشش گیاهی (B05، B06، B07، B8A) و تمایز بین برف، یخ و ابرها (B11، B12) استفاده می شود. سه باند با وضوح فضایی 10 متر به گرفتن نور مرئی و نزدیک به مادون قرمز کمک می کند (B02، B03، B04، B8/B8A). علاوه بر این، هر پوشه حاوی یک فایل JSON با ابرداده تصویر است. شرح مفصلی از داده ها در ارائه شده است راهنمای BigEarthNet.
برای انجام تحلیلهای آماری دادهها و بارگذاری تصاویر در طول آموزش DINO، فایلهای فراداده فردی را در یک فایل پارکت geopandas مشترک پردازش میکنیم. این را می توان با استفاده از BigEarthNet Common و BigEarthNet GDF Builder انجام داد. بسته های کمکی:
فایل فراداده به دست آمده شامل مجموعه تصویر توصیه شده است که 71,042 تصویر را که به طور کامل توسط برف فصلی، ابرها و سایه های ابر پوشانده شده اند، حذف می کند. همچنین حاوی اطلاعاتی در مورد تاریخ دریافت، مکان، پوشش زمین، و قطار، اعتبار سنجی و تقسیم آزمایشی برای هر تصویر است.
ما تصاویر و فایل ابرداده BigEarthNet-S2 را در یک سطل S3 ذخیره می کنیم. از آنجایی که در طول آموزش DINO از تصاویر رنگی واقعی استفاده می کنیم، فقط نوارهای قرمز (B04)، سبز (B03) و آبی (B02) را آپلود می کنیم:
حجم مجموعه داده تقریباً 48 گیگابایت است و ساختار زیر را دارد:
آموزش مدل های DINO با SageMaker
اکنون که مجموعه داده های ما در آمازون S3 آپلود شده است، به آموزش مدل های DINO در BigEarthNet-S2 می رویم. همانطور که در شکل زیر نشان داده شده است، الگوریتم DINO برش های سراسری و محلی مختلف یک تصویر ورودی را به شبکه های دانش آموز و معلم ارسال می کند. به شبکه دانشآموز آموزش داده میشود که با به حداقل رساندن تلفات آنتروپی متقابل، با خروجی شبکه معلم مطابقت کند. وزن دانش آموز و معلم توسط میانگین متحرک نمایی (EMA) به هم متصل می شوند.
ما دو تغییر در کد DINO اصلی انجام می دهیم. ابتدا یک کلاس مجموعه داده PyTorch سفارشی برای بارگذاری تصاویر BigEarthNet-S2 ایجاد می کنیم. این کد ابتدا برای پردازش داده های ImageNet نوشته شده بود و انتظار می رود تصاویر توسط کلاس ذخیره شوند. با این حال، BigEarthNet-S2 یک مجموعه داده چند برچسبی است که هر تصویر در زیر پوشه خود قرار دارد. کلاس مجموعه داده ما هر تصویر را با استفاده از مسیر فایل ذخیره شده در ابرداده بارگیری می کند:
این کلاس مجموعه داده in فراخوانی می شود main_dino.py
در طول آموزش اگرچه این کد شامل تابعی برای رمزگذاری یک داغ برچسب های پوشش زمین است، اما این برچسب ها توسط الگوریتم DINO استفاده نمی شوند.
دومین تغییری که در کد DINO ایجاد می کنیم، اضافه کردن پشتیبانی از SMDDP است. کد زیر را به آن اضافه می کنیم init_distributed_mode
عملکرد در util.py
فایل:
با این تنظیمات، ما آماده آموزش مدل های DINO در BigEarthNet-S2 با استفاده از SageMaker هستیم. برای آموزش روی پردازندههای گرافیکی یا نمونههای متعدد، a ایجاد میکنیم SageMaker PyTorch Estimator که اسکریپت آموزشی DINO، مسیرهای فایل تصویر و ابرداده، و هایپرپارامترهای آموزشی را جذب می کند:
این کد مشخص می کند که ما یک مدل ترانسفورماتور بینایی کوچک (21 میلیون پارامتر) با اندازه پچ 16 برای 100 دوره آموزش خواهیم داد. بهترین تمرین ایجاد یک جدید است checkpoint_s3_uri
برای هر کار آموزشی به منظور کاهش زمان دانلود اولیه داده ها. از آنجایی که ما از SMDDP استفاده می کنیم، باید روی نمونه ml.p3.16xlarge، ml.p3dn.24xlarge یا ml.p4d.24xlarge آموزش دهیم. این به این دلیل است که SMDDP فقط برای بزرگترین نمونه های چند GPU فعال است. برای آموزش انواع نمونه های کوچکتر بدون SMDDP، باید آن را حذف کنید distribution
و debugger_hook_config
استدلال از برآوردگر
پس از ایجاد تخمینگر SageMaker PyTorch، کار آموزشی را با فراخوانی راهاندازی میکنیم fit
روش. ما داده های آموزشی ورودی را با استفاده از URI های آمازون S3 برای ابرداده ها و تصاویر BigEarthNet-S2 مشخص می کنیم:
SageMaker نمونه را چرخش می کند، اسکریپت آموزشی و وابستگی ها را کپی می کند و آموزش DINO را آغاز می کند. با استفاده از دستورات زیر می توانیم پیشرفت کار آموزشی را از نوت بوک Jupyter خود نظارت کنیم:
همچنین میتوانیم معیارهای نمونه را نظارت کنیم و فایلهای گزارش را در کنسول SageMaker در زیر مشاهده کنیم مشاغل آموزشی. در شکلهای زیر، تابع استفاده و از دست دادن GPU را برای یک مدل DINO آموزشدیده بر روی نمونه ml.p3.16xlarge با اندازه دستهای 128 ترسیم میکنیم.
در طول آموزش، استفاده از GPU 83٪ از ظرفیت ml.p3.16xlarge (8 GPU NVIDIA Tesla V100) و استفاده از VRAM 85٪ است. تابع ضرر به طور پیوسته با هر دوره کاهش می یابد، که نشان می دهد خروجی های شبکه های دانش آموز و معلم شبیه تر می شوند. در مجموع، آموزش حدود 11 ساعت طول می کشد.
انتقال یادگیری به وظایف پایین دست
مدل DINO آموزش دیده ما را می توان به کارهای پایین دستی مانند طبقه بندی یا تقسیم بندی تصویر منتقل کرد. در این بخش، ما از ویژگی های DINO از پیش آموزش دیده برای پیش بینی کلاس های پوشش زمین برای تصاویر در مجموعه داده BigEarthNet-S2 استفاده می کنیم. همانطور که در نمودار زیر نشان داده شده است، ما یک طبقهبندی خطی چند برچسبی را در بالای ویژگیهای DINO منجمد آموزش میدهیم. در این مثال، تصویر ورودی با پوشش زمین زراعی و مرتع مرتبط است.
بیشتر کد طبقهبندیکننده خطی از قبل در مخزن اصلی DINO موجود است. ما برای کار خاص خود چند تنظیم انجام می دهیم. مانند قبل، ما از مجموعه داده سفارشی BigEarthNet برای بارگذاری تصاویر در طول آموزش و ارزیابی استفاده می کنیم. برچسبهای تصاویر به صورت بردارهای دودویی 19 بعدی کدگذاری میشوند. ما استفاده می کنیم آنتروپی متقاطع باینری برای تابع ضرر و محاسبه دقت متوسط برای ارزیابی عملکرد مدل
برای آموزش طبقه بندی کننده، ما یک تخمینگر PyTorch SageMaker ایجاد می کنیم که اسکریپت آموزشی را اجرا می کند. eval_linear.py
. فراپارامترهای آموزشی شامل جزئیات معماری مدل DINO و مسیر فایل برای چک پوینت مدل است:
ما کار آموزشی را با استفاده از fit
روش، تامین مکانهای Amazon S3 متادیتای BigEarthNet-S2 و تصاویر آموزشی و ایست بازرسی مدل DINO:
وقتی آموزش کامل شد، میتوانیم با استفاده از مجموعه آزمایشی BigEarthNet-S2 استنتاج کنیم تبدیل دسته ای SageMaker or پردازش SageMaker. در جدول زیر، میانگین دقت مدل خطی را در تصاویر مجموعه آزمایشی با استفاده از دو نمایش تصویر DINO مختلف مقایسه میکنیم. اولین مدل، ViT-S/16 (ImageNet)، نقطه بازرسی ترانسفورماتور بینایی کوچک موجود در مخزن DINO است که با استفاده از تصاویر روبرو در مجموعه داده ImageNet از قبل آموزش داده شده است. مدل دوم، ViT-S/16 (BigEarthNet-S2)، مدلی است که ما با پیش آموزش تصویربرداری از روی سر تولید کردیم.
مدل | دقت متوسط |
---|---|
ViT-S/16 (ImageNet) | 0.685 |
ViT-S/16 (BigEarthNet-S2) | 0.732 |
ما متوجه شدیم که مدل DINO از قبل آموزشدیده شده در BigEarthNet-S2 بهتر از مدل DINO آموزشدیدهشده در ImageNet به وظیفه طبقهبندی پوشش زمین منتقل میشود و منجر به افزایش ۶.۷ درصدی در دقت متوسط میشود.
پاک کردن
پس از تکمیل آموزش DINO و آموزش انتقال، میتوانیم منابع خود را برای جلوگیری از تحمیل هزینه پاکسازی کنیم. ما نمونه نوت بوک ما را متوقف یا حذف کنید و داده های ناخواسته یا مصنوعات مدل را حذف کنید از آمازون S3.
نتیجه
این پست نحوه آموزش مدلهای DINO را در تصاویر بالای سر با استفاده از SageMaker نشان میدهد. ما از SageMaker PyTorch Estimators و SMDDP برای تولید نمایش تصاویر BigEarthNet-S2 بدون نیاز به برچسبهای واضح استفاده کردیم. سپس ویژگیهای DINO را به یک کار طبقهبندی تصویر پاییندست، که شامل پیشبینی کلاس پوشش زمین تصاویر BigEarthNet-S2 بود، منتقل کردیم. برای این کار، پیشآموزش تصاویر ماهوارهای باعث افزایش 6.7 درصدی میانگین دقت نسبت به قبل از آموزش در ImageNet شد.
میتوانید از این راهحل بهعنوان الگویی برای آموزش مدلهای DINO در مجموعه دادههای تصویری هوایی و ماهوارهای بدون برچسب استفاده کنید. برای کسب اطلاعات بیشتر در مورد DINO و ساخت مدل ها در SageMaker، منابع زیر را بررسی کنید:
درباره نویسنده
بن ویسی دانشمند ارشد داده در Travelers است که در تیم شتابدهنده هوش مصنوعی و اتوماسیون کار می کند. بن با درک عمیق از فناوریهای نوآورانه هوش مصنوعی، از جمله بینایی کامپیوتر، پردازش زبان طبیعی، و هوش مصنوعی مولد، به تسریع پذیرش این فناوریها برای بهینهسازی فرآیندهای تجاری و افزایش کارایی در مسافران اختصاص دارد.
جرمی اندرسون مدیر و دانشمند داده در Travelers در تیم شتابدهنده هوش مصنوعی و اتوماسیون است. او علاقه مند به حل مشکلات تجاری با جدیدترین هوش مصنوعی و تکنیک های یادگیری عمیق از جمله مدل های زبان بزرگ، مدل های تصویرسازی بنیادی و هوش مصنوعی مولد است. قبل از سفر، جرمی مدرک دکترای خود را در بیوفیزیک مولکولی از دانشگاه جان هاپکینز گرفت و همچنین بیوشیمی تکاملی را مطالعه کرد. در خارج از محل کار می توانید او را در حال دویدن، نجاری و یا چرخاندن حیاط خود بیابید.
جردن نایت یک دانشمند ارشد داده است که برای مسافران در بخش تجزیه و تحلیل و تحقیقات بیمه تجاری کار می کند. اشتیاق او حل مسائل چالش برانگیز بینایی کامپیوتری در دنیای واقعی و کشف روش های جدید و پیشرفته برای انجام این کار است. او علاقه خاصی به تأثیر اجتماعی مدلهای ML دارد و اینکه چگونه میتوانیم به بهبود فرآیندهای مدلسازی برای توسعه راهحلهای ML که برای همه عادلانه است ادامه دهیم. جردن از MIT با مدرک کارشناسی ارشد در تجزیه و تحلیل تجاری فارغ التحصیل شد. در اوقات فراغت میتوانید او را در حال صخرهنوردی، پیادهروی، یا ادامه رشد مهارتهای آشپزی ابتداییاش بیابید.
جون لی یک دانشمند داده در تیم هوش مصنوعی Travelers's Business Insurance است، جایی که او رهبری و هماهنگی کار در مجموعه تصاویر هوش مصنوعی را بر عهده دارد. او مشتاق پیاده سازی راه حل های خلاقانه هوش مصنوعی است که ارزش قابل توجهی برای شرکای تجاری و سهامداران به ارمغان می آورد. کار او در تبدیل چالش های پیچیده تجاری به فرصت ها با استفاده از فناوری های پیشرفته هوش مصنوعی یکپارچه بوده است.
سوراو بابش یک دانشمند ارشد کاربردی در آزمایشگاه AWS Titan است که در آنجا قابلیت ها و ویژگی های مدل بنیادی (FM) را ایجاد می کند. تخصص او پردازش زبان طبیعی (NLP) است و علاقه زیادی به یادگیری عمیق دارد. در خارج از محل کار از خواندن کتاب و مسافرت لذت می برد.
لورا کولوفسکی یک دانشمند کاربردی در مرکز نوآوری هوش مصنوعی آمازون است، جایی که با مشتریان برای ساخت راهحلهای هوش مصنوعی مولد کار میکند. لورا در اوقات فراغت خود از کاوش در مکان های جدید با دوچرخه لذت می برد.
اندرو آنگ مهندس Sr. Machine Learning در AWS است. او علاوه بر کمک به مشتریان در ساخت راهحلهای AI/ML، از ورزشهای آبی، اسکواش و تماشای ویدیوهای سفر و غذا لذت میبرد.
مهدی نوری مدیر علوم کاربردی در مرکز نوآوری هوش مصنوعی مولد است. او با اشتیاق به پل زدن فناوری و نوآوری، به مشتریان AWS در بازگشایی پتانسیل هوش مصنوعی مولد، تبدیل چالشهای بالقوه به فرصتهایی برای آزمایش و نوآوری سریع با تمرکز بر استفادههای مقیاسپذیر، قابل اندازهگیری و تأثیرگذار از فناوریهای هوش مصنوعی پیشرفته و سادهسازی مسیر کمک میکند. به تولید.
- محتوای مبتنی بر SEO و توزیع روابط عمومی. امروز تقویت شوید.
- PlatoData.Network Vertical Generative Ai. به خودت قدرت بده دسترسی به اینجا.
- PlatoAiStream. هوش وب 3 دانش تقویت شده دسترسی به اینجا.
- PlatoESG. خودرو / خودروهای الکتریکی، کربن ، CleanTech، انرژی، محیط، خورشیدی، مدیریت پسماند دسترسی به اینجا.
- PlatoHealth. هوش بیوتکنولوژی و آزمایشات بالینی. دسترسی به اینجا.
- ChartPrime. بازی معاملاتی خود را با ChartPrime ارتقا دهید. دسترسی به اینجا.
- BlockOffsets. نوسازی مالکیت افست زیست محیطی. دسترسی به اینجا.
- منبع: https://aws.amazon.com/blogs/machine-learning/train-self-supervised-vision-transformers-on-overhead-imagery-with-amazon-sagemaker/