Magic Ensemble сурах

Хөөе Хабр! Бид өгөгдлийн инженерүүд болон машин сургалтын мэргэжилтнүүдийг үнэ төлбөргүй Демо хичээлд урьж байна "Онлайн зөвлөмжийн жишээг ашиглан ML загварыг үйлдвэрлэлийн орчинд нэвтрүүлэх". Мөн бид CDP SpA-ийн Санхүүгийн шинжилгээний албаны дарга Лука Монногийн нийтлэлийг нийтэлдэг.

Машин сургалтын хамгийн ашигтай бөгөөд энгийн аргуудын нэг бол Ensemble Learning юм. Ensemble Learning нь XGBoost, Bagging, Random Forest болон бусад олон алгоритмуудын үндсэн техник юм.

Өгөгдлийн шинжлэх ухааны талаар олон сайхан нийтлэл байдаг, гэхдээ би хоёр түүхийг сонгосон (Эхнийх нь и хоёрдугаарт) надад хамгийн их таалагдсан. Тэгвэл яагаад EL-ийн тухай өөр нийтлэл бичих болов? Учир нь би чамд үзүүлэхийг хүсч байна энгийн жишээн дээр хэрхэн ажилладаг вэ Энэ нь энд ид шид байхгүй гэдгийг надад ойлгуулсан.

Би анх EL-ийг ажиллаж байгааг хараад (маш энгийн регрессийн загварууд дээр ажиллаж байсан) нүдэндээ ч итгэсэнгүй, надад энэ аргыг зааж өгсөн профессорыг одоо ч санаж байна.

Би илтгэгчтэй хоёр өөр загвартай (хоёр сул сурах алгоритм) байсан дээжээс гадуур R² нь 0,90 ба 0,93-тай тэнцүү. Үр дүнг харахын өмнө би анхны хоёр утгын хооронд R²-г авна гэж бодсон. Өөрөөр хэлбэл, EL-ийг ашиглан загвар нь хамгийн муу загвар шиг муу ажиллахгүй, харин шилдэг загвар өмсөгч шиг тийм ч сайн биш байх боломжтой гэж би бодсон.

Урьдчилан таамагласан энгийн дундаж үнэлгээний үр дүнд R² 0,95 гарсан нь намайг гайхшруулсан. 

Эхлээд би алдаа хайж эхэлсэн боловч дараа нь энд ямар нэгэн ид шид нуугдаж магадгүй гэж бодсон!

Ansemble Learning гэж юу вэ

EL-ийн тусламжтайгаар та хоёр ба түүнээс дээш загварын таамаглалыг нэгтгэж, илүү найдвартай, гүйцэтгэлтэй загварыг авах боломжтой. Загварын чуулгатай ажиллах олон арга зүй байдаг. Энд би танд санаа өгөхийн тулд хамгийн хэрэгтэй хоёрыг хөндөх болно.

Тусламжийн тусламжтайгаар регресс Та боломжтой загваруудын гүйцэтгэлийг дундажлаж болно.

Тусламжийн тусламжтайгаар ангилал та загвар өмсөгчдөд шошго сонгохыг зөвшөөрч болно. Хамгийн олон удаа сонгосон шошго нь шинэ загвараар сонгогдох шошго юм.

EL яагаад илүү сайн ажилладаг вэ?

EL илүү сайн ажилладаг гол шалтгаан нь таамаглал бүр алдаатай байдаг (бид үүнийг магадлалын онолоор мэддэг) хоёр таамаглалыг нэгтгэснээр алдааг багасгах, улмаар гүйцэтгэлийн үзүүлэлтүүдийг (RMSE, R² гэх мэт) сайжруулахад тусалдаг. d.).

Дараах диаграмм нь өгөгдлийн багц дээр хоёр сул алгоритм хэрхэн ажилладагийг харуулж байна. Эхний алгоритм нь шаардлагатай хэмжээнээс их налуутай, хоёр дахь нь бараг тэгтэй (хэтэрхий зохицуулалттай холбоотой байж магадгүй). Гэхдээ чуулга илүү сайн үр дүнг харуулж байна. 

Хэрэв та R²-г харвал эхний болон хоёр дахь сургалтын алгоритм нь -0.01¹, 0.22, харин чуулгын хувьд 0.73-тай тэнцүү байх болно.

Magic Ensemble сурах

Алгоритм яагаад ийм энгийн жишээний хувьд ч муу загвар байж болох олон шалтгаан бий: магадгүй та хэт тохируулахаас зайлсхийхийн тулд зохицуулалтыг ашиглахаар шийдсэн, эсвэл зарим гажигийг арилгахгүй гэж шийдсэн, эсвэл олон гишүүнт регресс ашиглаж, буруу зэрэг сонгосон байж магадгүй. (жишээлбэл, хоёр дахь зэрэглэлийн олон гишүүнт ашигласан бөгөөд туршилтын өгөгдөл нь тодорхой тэгш бус байдлыг харуулж байгаа бөгөөд үүнд гуравдугаар зэрэг нь илүү тохиромжтой).

EL хамгийн сайн ажилладаг үед

Нэг өгөгдөл дээр ажилладаг сургалтын хоёр алгоритмыг авч үзье.

Magic Ensemble сурах

Эндээс та хоёр загварыг хослуулсан нь гүйцэтгэлийг төдийлөн сайжруулаагүй болохыг харж болно. Эхэндээ сургалтын хоёр алгоритмын хувьд R² утга нь -0,37 ба 0,22 байсан бөгөөд чуулгын хувьд -0,04 болсон. Өөрөөр хэлбэл, EL загвар нь үзүүлэлтүүдийн дундаж утгыг хүлээн авсан.

Гэсэн хэдий ч эдгээр хоёр жишээний хооронд маш том ялгаа бий: эхний жишээнд загваруудын алдаа нь сөрөг хамааралтай байсан бол хоёр дахь нь эерэг (гурван загварын коэффициентийг тооцоолоогүй, харин зүгээр л зохиогч сонгосон). жишээ болгон.)

Тиймээс Ensemble Learning нь хэвийх/тархалтын тэнцвэрийг сайжруулахын тулд бүх тохиолдолд ашиглаж болно, гэхдээ хэзээ Загварын алдаа нь эерэг хамааралгүй тул EL ашиглах нь илүү сайн гүйцэтгэлд хүргэдэг.

Нэг төрлийн ба гетероген загварууд

Ихэнхдээ EL-ийг нэгэн төрлийн загварт ашигладаг (энэ жишээнд эсвэл санамсаргүй ойд байдаг шиг), гэхдээ үнэн хэрэгтээ та янз бүрийн загваруудыг (шугаман регресс + мэдрэлийн сүлжээ + XGBoost) янз бүрийн тайлбарлагч хувьсагчтай нэгтгэж болно. Энэ нь харилцан хамааралгүй алдаа гаргаж, гүйцэтгэлийг сайжруулах магадлалтай.

Багцын төрөлжилттэй харьцуулах

EL нь багцын онолын төрөлжүүлэхтэй ижил төстэй байдлаар ажилладаг боловч бидний хувьд илүү дээр юм. 

Та төрөлжүүлэхдээ хамааралгүй хувьцаанд хөрөнгө оруулалт хийх замаар гүйцэтгэлийнхээ зөрүүг багасгахыг хичээдэг. Сайн төрөлжүүлсэн хувьцааны багц нь хамгийн муу ганц хувьцаанаас илүү сайн гүйцэтгэлтэй байх боловч хамгийн сайнаас хэзээ ч илүү сайн ажиллахгүй.

Уоррен Баффетын ишлэлээс: 

"Төрөлжүүлэх нь мунхгийн эсрэг хамгаалалт бөгөөд юу хийж байгаагаа мэдэхгүй хүнд энэ нь маш бага ач холбогдолтой юм."

Машины сургалтын хувьд EL нь таны загварын зөрүүг багасгахад тусалдаг боловч энэ нь хамгийн сайн анхны загвараас илүү сайн гүйцэтгэлтэй загвар гаргахад хүргэдэг.

Үр дүнг нэгтгэн үзье

Олон загварыг нэг загварт нэгтгэх нь харьцангуй энгийн арга бөгөөд хэлбэлзлийн хазайлтын асуудлыг шийдэж, гүйцэтгэлийг сайжруулахад хүргэдэг.

Хэрэв танд сайн ажилладаг хоёр ба түүнээс дээш загвар байгаа бол тэдгээрийн аль нэгийг нь сонгох хэрэггүй: бүгдийг нь ашиглаарай (гэхдээ болгоомжтой байгаарай)!

Та энэ чиглэлээр хөгжих сонирхолтой байна уу? Үнэгүй демо хичээлд бүртгүүлнэ үү "Онлайн зөвлөмжийн жишээг ашиглан ML загварыг үйлдвэрлэлийн орчинд нэвтрүүлэх" болон оролцох Андрей Кузнецовтой онлайн уулзалт — Mail.ru группын машин сургалтын инженер.

Эх сурвалж: www.habr.com

сэтгэгдэл нэмэх