Сызыктуу регрессия жана аны калыбына келтирүү ыкмалары

Сызыктуу регрессия жана аны калыбына келтирүү ыкмалары
Source: xkcd

Сызыктуу регрессия маалыматтарды талдоо менен байланышкан көптөгөн аймактар ​​үчүн негизги алгоритмдердин бири болуп саналат. Мунун себеби айдан ачык. Бул абдан жөнөкөй жана түшүнүктүү алгоритм, анын көптөгөн ондогон, болбосо жүздөгөн жылдар бою кеңири колдонулушуна салым кошкон. Идея бир өзгөрмөнүн башка өзгөрмөлөрдүн жыйындысына сызыктуу көз карандылыгын кабыл алып, андан кийин бул көз карандылыкты калыбына келтирүүгө аракет кылууда.

Бирок бул макала практикалык маселелерди чечүү үчүн сызыктуу регрессияны колдонуу жөнүндө эмес. Бул жерде биз аны калыбына келтирүү үчүн бөлүштүрүлгөн алгоритмдерди ишке ашыруунун кызыктуу өзгөчөлүктөрүн карап чыгабыз, алар машинаны үйрөнүү модулун жазууда кездешкен. Apache Ignite. Бир аз негизги математика, машина үйрөнүү жана бөлүштүрүлгөн эсептөө маалыматтарыңыз миңдеген түйүндөр боюнча бөлүштүрүлгөндө да сызыктуу регрессияны кантип аткарууга болорун аныктоого жардам берет.

Биз эмне жөнүндө сүйлөшүп жатабыз?

Биздин алдыбызда сызыктуу көз карандылыкты калыбына келтирүү милдети турат. Киргизилген маалыматтар катары ар бири көз каранды өзгөрмөнүн белгилүү бир мааниси менен байланышкан болжолдуу көз карандысыз өзгөрмөлөрдүн векторлорунун жыйындысы берилет. Бул маалыматтар эки матрица түрүндө берилиши мүмкүн:

Сызыктуу регрессия жана аны калыбына келтирүү ыкмалары

Эми, көз карандылык кабыл алынгандыктан, жана, андан тышкары, сызыктуу, биз өз божомолубузду матрицалардын көбөйтүндүсү түрүндө жазабыз (жазууну жөнөкөйлөтүү үчүн, бул жерде жана ылдыйда теңдеменин эркин мүчөсү артында катылган деп болжолдонууда) Сызыктуу регрессия жана аны калыбына келтирүү ыкмалары, жана матрицанын акыркы тилкеси Сызыктуу регрессия жана аны калыбына келтирүү ыкмалары бирдиктерди камтыйт):

Сызыктуу регрессия жана аны калыбына келтирүү ыкмалары

Сызыктуу теңдемелер системасына абдан окшош, туурабы? Кыязы, бирок, сыягы, мындай теңдемелер системасынын чечимдери жок болот. Мунун себеби ызы-чуу болуп саналат, ал дээрлик бардык реалдуу маалыматтарда бар. Дагы бир себеп сызыктуу көз карандылыктын жоктугу болушу мүмкүн, аны менен сызыктуу эмес көз каранды болгон кошумча өзгөрмөлөрдү киргизүү аркылуу күрөшүүгө болот. Төмөнкү мисалды карап көрөлү:
Сызыктуу регрессия жана аны калыбына келтирүү ыкмалары
Source: Wikipedia

Бул бир өзгөрмөнүн байланышын көрсөткөн сызыктуу регрессиянын жөнөкөй мисалы (ок боюнча Сызыктуу регрессия жана аны калыбына келтирүү ыкмалары) башка өзгөрмөдөн (октун боюнда Сызыктуу регрессия жана аны калыбына келтирүү ыкмалары). Бул мисалга туура келген сызыктуу теңдемелер системасы чечимге ээ болушу үчүн бардык чекиттер так бир түз сызыкта жатышы керек. Бирок бул андай эмес. Бирок алар бир түз сызыкта так ызы-чуунун (же сызыктуу байланышты болжолдоо жаңылыш болгондугу үчүн) так эмес. Ошентип, реалдуу маалыматтардан сызыктуу байланышты калыбына келтирүү үчүн, адатта, дагы бир божомолду киргизүү керек: киргизилген маалыматтарда ызы-чуу бар жана бул ызы-чуу бар нормалдуу бөлүштүрүү. Сиз ызы-чууну бөлүштүрүүнүн башка түрлөрү жөнүндө божомолдорду жасай аласыз, бирок көпчүлүк учурларда бул нормалдуу бөлүштүрүү болуп саналат, ал мындан ары талкууланат.

Максималдуу ыктымалдык ыкмасы

Ошентип, биз кокустук, нормалдуу бөлүштүрүлгөн ызы-чуунун болушун болжолдодук. Мындай кырдаалда эмне кылуу керек? Бул үчүн математикада бар жана кеңири колдонулат максималдуу ыктымалдык ыкмасы. Кыскасы, анын маңызы тандоодо ыктымалдык функциялары жана андан кийинки максималдуу.

Биз кадимки ызы-чуу менен маалыматтардан сызыктуу байланышты калыбына келтирүүгө кайтып келебиз. Болжолдонгон сызыктуу байланыш математикалык күтүү экенин эске алыңыз Сызыктуу регрессия жана аны калыбына келтирүү ыкмалары учурдагы нормалдуу бөлүштүрүү. Ошол эле учурда, ыктымалдыгы Сызыктуу регрессия жана аны калыбына келтирүү ыкмалары байкала турган нерселердин болушуна жараша тигил же бул мааниге ээ болот Сызыктуу регрессия жана аны калыбына келтирүү ыкмалары, төмөнкүдөй:

Сызыктуу регрессия жана аны калыбына келтирүү ыкмалары

Эми анын ордуна алмаштыралы Сызыктуу регрессия жана аны калыбына келтирүү ыкмалары и Сызыктуу регрессия жана аны калыбына келтирүү ыкмалары Бизге керек болгон өзгөрмөлөр:

Сызыктуу регрессия жана аны калыбына келтирүү ыкмалары

Болгону векторду табуу гана калды Сызыктуу регрессия жана аны калыбына келтирүү ыкмалары, бул ыктымалдык максималдуу болуп саналат. Мындай функцияны максималдаштыруу үчүн адегенде анын логарифмасын алуу ыңгайлуу (функциянын логарифминин максимумуна функциянын өзү менен бирдей чекитте жетет):

Сызыктуу регрессия жана аны калыбына келтирүү ыкмалары

Бул, өз кезегинде, төмөнкү функцияны минималдаштырууга алып келет:

Сызыктуу регрессия жана аны калыбына келтирүү ыкмалары

Айтмакчы, бул ыкма деп аталат эң аз квадраттар. Көбүнчө жогоруда айтылгандардын бардыгы эске алынбай, бул ыкма жөн гана колдонулат.

QR ажыратуу

Жогорудагы функциянын минимумун бул функциянын градиенти нөлгө барабар болгон чекитти табуу менен табууга болот. Жана градиент төмөнкүчө жазылат:

Сызыктуу регрессия жана аны калыбына келтирүү ыкмалары

QR ажыратуу эң аз квадраттар методунда колдонулган минимизациялоо маселесин чечүүнүн матрицалык ыкмасы. Ушуга байланыштуу теңдемени матрица түрүндө кайра жазабыз:

Сызыктуу регрессия жана аны калыбына келтирүү ыкмалары

Ошентип, биз матрицаны ажыратабыз Сызыктуу регрессия жана аны калыбына келтирүү ыкмалары матрицаларга Сызыктуу регрессия жана аны калыбына келтирүү ыкмалары и Сызыктуу регрессия жана аны калыбына келтирүү ыкмалары жана бир катар трансформацияларды аткарыңыз (бул жерде QR декомпозиция алгоритминин өзү каралбайт, анын тапшырмага карата колдонулушу гана):

Сызыктуу регрессия жана аны калыбына келтирүү ыкмалары

Булакта Сызыктуу регрессия жана аны калыбына келтирүү ыкмалары ортогоналдык болуп саналат. Бул бизге иштен кутулууга мумкундук берет Сызыктуу регрессия жана аны калыбына келтирүү ыкмалары:

Сызыктуу регрессия жана аны калыбына келтирүү ыкмалары

Жана алмаштырсаңыз Сызыктуу регрессия жана аны калыбына келтирүү ыкмалары боюнча Сызыктуу регрессия жана аны калыбына келтирүү ыкмалары, анда ал иштейт Сызыктуу регрессия жана аны калыбына келтирүү ыкмалары. Ошону эске алып Сызыктуу регрессия жана аны калыбына келтирүү ыкмалары жогорку үч бурчтук матрица болуп саналат, ал төмөнкүдөй көрүнөт:

Сызыктуу регрессия жана аны калыбына келтирүү ыкмалары

Бул алмаштыруу ыкмасын колдонуу менен чечсе болот. Элемент Сызыктуу регрессия жана аны калыбына келтирүү ыкмалары катары жайгашкан Сызыктуу регрессия жана аны калыбына келтирүү ыкмалары, мурунку элемент Сызыктуу регрессия жана аны калыбына келтирүү ыкмалары катары жайгашкан Сызыктуу регрессия жана аны калыбына келтирүү ыкмалары жана башкалар.

Бул жерде белгилей кетүү керек, QR декомпозициясын колдонуудан улам пайда болгон алгоритмдин татаалдыгы Сызыктуу регрессия жана аны калыбына келтирүү ыкмалары. Анын үстүнө, матрицаны көбөйтүү операциясы жакшы параллелдүү болгонуна карабастан, бул алгоритмдин эффективдүү бөлүштүрүлгөн версиясын жазуу мүмкүн эмес.

Градиенттин түшүүсү

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

Сызыктуу регрессия жана аны калыбына келтирүү ыкмалары

Бул ыкма да градиент операторунун сызыктуу касиеттеринен улам жакшы параллелдештирилген жана бөлүштүрүлгөн. Жогорудагы формулада сумма белгисинин астында өз алдынча терминдер бар экенине көңүл буруңуз. Башкача айтканда, биз бардык индекстер үчүн градиентти өз алдынча эсептей алабыз Сызыктуу регрессия жана аны калыбына келтирүү ыкмалары биринчиден Сызыктуу регрессия жана аны калыбына келтирүү ыкмалары, муну менен катар индекстер үчүн градиентти эсептеңиз Сызыктуу регрессия жана аны калыбына келтирүү ыкмалары үчүн Сызыктуу регрессия жана аны калыбына келтирүү ыкмалары. Андан кийин пайда болгон градиенттерди кошуңуз. Кошуунун натыйжасы биз дароо эле биринчиден баштап индекстер үчүн градиентти эсептегендей болот Сызыктуу регрессия жана аны калыбына келтирүү ыкмалары. Ошентип, эгерде маалыматтар бир нече маалыматтардын арасында бөлүштүрүлсө, анда градиент ар бир бөлүк боюнча өз алдынча эсептелип, андан кийин бул эсептөөлөрдүн натыйжалары жыйынтыкталган жыйынтыкты алуу үчүн жыйынтыкталышы мүмкүн:

Сызыктуу регрессия жана аны калыбына келтирүү ыкмалары

Ишке ашыруу көз карашынан алганда, бул парадигмага туура келет MapReduce. Градиенттин түшүүсүнүн ар бир кадамында градиентти эсептөө үчүн ар бир маалымат түйүнүнө тапшырма жөнөтүлөт, андан кийин эсептелген градиенттер чогуу чогултулат жана натыйжаны жакшыртуу үчүн алардын суммасынын натыйжасы колдонулат.

Ишке ашыруунун жөнөкөйлүгүнө жана MapReduce парадигмасында аткаруу мүмкүнчүлүгүнө карабастан, градиенттин түшүүсүнүн да кемчиликтери бар. Атап айтканда, конвергенцияга жетишүү үчүн зарыл болгон кадамдардын саны башка адистештирилген методдорго салыштырмалуу кыйла жогору.

LSQR

LSQR сызыктуу регрессияны калыбына келтирүү үчүн да, сызыктуу теңдемелер системасын чечүү үчүн да ылайыктуу болгон маселени чечүүнүн дагы бир ыкмасы. Анын негизги өзгөчөлүгү матрицалык ыкмалардын артыкчылыктарын жана итеративдик ыкманы айкалыштырганында. Бул ыкманын ишке ашырылышын эки китепканадан тапса болот SciPyжана MATLAB. Бул ыкманын сүрөттөлүшү бул жерде берилбейт (ал макалада тапса болот LSQR: сейрек сызыктуу теңдемелердин жана сейрек эң кичине квадраттардын алгоритми). Анын ордуна, LSQRди бөлүштүрүлгөн чөйрөдө аткарууга ылайыкташтыруу ыкмасы көрсөтүлөт.

LSQR ыкмасы негизделген бидиагоналдаштыруу процедурасы. Бул кайталануучу процедура, ар бир итерация төмөнкү кадамдардан турат:
Сызыктуу регрессия жана аны калыбына келтирүү ыкмалары

Бирок матрица деп ойлосок Сызыктуу регрессия жана аны калыбына келтирүү ыкмалары горизонталдуу түрдө бөлүнгөн болсо, анда ар бир итерация эки MapReduce кадамы катары көрсөтүлүшү мүмкүн. Мына ушундай жол менен ар бир итерация учурунда берилиштерди өткөрүп берүүнү минималдаштырууга болот (узундугу белгисиздердин санына барабар болгон векторлор гана):

Сызыктуу регрессия жана аны калыбына келтирүү ыкмалары

Дал ушул ыкма сызыктуу регрессияны ишке ашырууда колдонулат Apache Ignite ML.

жыйынтыктоо

Көптөгөн сызыктуу регрессияны калыбына келтирүү алгоритмдери бар, бирок алардын бардыгын бардык шарттарда колдонууга болбойт. Ошентип, QR декомпозициясы кичинекей маалымат топтомдорун так чечүү үчүн эң сонун. Градиенттин түшүүсүн ишке ашыруу оңой жана болжолдуу чечимди тез табууга мүмкүндүк берет. Ал эми LSQR мурунку эки алгоритмдин эң жакшы касиеттерин айкалыштырат, анткени ал бөлүштүрүлүшү мүмкүн, градиенттин түшүүсүнө салыштырмалуу тезирээк биригет, ошондой эле QR декомпозициясынан айырмаланып, болжолдуу чечимди табуу үчүн алгоритмди эрте токтотууга мүмкүндүк берет.

Source: www.habr.com

Комментарий кошуу