If you're seeing this message, it means we're having trouble loading external resources on our website.

Ако си зад уеб филтър, моля, увери се, че домейните *. kastatic.org и *. kasandbox.org са разрешени.

Основно съдържание

Апроксимация по метода на най-малките квадрати

Използване на метода на най-малките квадрати за решаване на уравнения, които нямат решение. Създадено от Сал Кан.

Искаш ли да се присъединиш към разговора?

Все още няма публикации.
Разбираш ли английски? Натисни тук, за да видиш още дискусии в английския сайт на Кан Академия.

Видео транскрипция

Дадена е някаква матрица А. Да кажем, че е с размери n x k, и имаме уравнението А по х равно на b. В този случай вектор х трябва да принадлежи на Rk, защото има k стълба, а вектор b принадлежи на Rn. Да кажем, че уравнението А по х равно на b няма решение. Какво означава това? Да запишем подробно матрицата А. Мисля, че се досещаш какво означава това. Ако я запишем като а1, а2... ако я запиша чрез нейните вектор-стълбове, а1, а2 и така нататък до ak, а после я умножа по вектор [х1; х2;... хk], това е същото като това уравнение ето тук. Просто представих множителите като две матрици. Това е равно на х1 по а1, плюс х2 по а2, и така нататък до плюс xk по ak, равно на вектор b. Ако това уравнение няма решение, това означава, че не съществува множество от коефициенти на вектор-стълбовете на А, такива, че да получим вектор b. Друг начин да го формулираме е, че няма линейни комбинации на тези вектор-стълбове, които да са равни на вектор b. Даже може да кажем, че вектор b не принадлежи на векторното пространство на матрицата А. Никоя линейна комбинация на тези стълбове не е равна на този вектор. Да видим можем ли да го представим графично. Ще начертая векторното пространство на матрицата А. Може би векторното пространство на матрицата А изглежда ето така. Да предположим, че това е равнина в Rn. Не е задължително да бъде равнина. Нещата може да са много по-общи, но да кажем, че това е векторното пространство на матрицата А. Ако това е векторното пространство и вектор b не принадлежи на него, може би можем да начертаем вектор b ето така. Може би вектор b, да кажем, че началото е ето тук, и вектор b излиза ето тук. Значи това е нулевият вектор. Това е нашият вектор b, очевидно не е във векторното пространство, очевидно не е в тази равнина. Досега, ако имаме едно такова уравнение, ще направим разширена матрица, ще я преобразуваме в ешелонна форма, и ще получим нещо, което казва 0 равно на 1, като ще кажем, че няма решение, нищо не може да се направи. Но дали наистина не можем да направим нищо? Досещаш се, очевидно не можем да намерим решение. Но ако намерим решение, което е доста близо до това? Ако искам да намеря някакъв вектор х, ще го означа като х* засега, като... искам да намеря х звезда, такъв че А по х* равно на... това е вектор – да е максимално близо – ще го запиша по следния начин – да е възможно най-близо до вектор b. Друг начин да разглеждаме това е – когато казвам близо, имам предвид дължината, така че искам да минимизирам дължината на... ще го запиша. Искам да минимизирам дължината на b минус А по х*. Може би вече се досещаш накъде отива това. Когато вземем разликата между двете и после измерим дължината ѝ, какво ще получим? Ще нарека това просто А по х. А по х ще принадлежи на нашето векторно пространство. Ще го нарека просто V. А по х равно на V. Умножаваме произволен вектор в Rk по нашата матрица А, и ще получим член на нашето векторно пространство. Значи всяко произведение А по х ще принадлежи на векторното ни пространство. Може би това е вектор v равен на А по х*. Искаме този вектор да бъде възможно най-близко до този, стига да остава... искам да кажа, че той трябва да принадлежи на векторното пространство. Искаме разстоянието между този вектор и този вектор да е възможно най-малко. Искам само да ти покажа откъде идват термините, свързани с това. Аз все още не съм използвал точното понятие. Ако трябва да вземем този вектор – ще го нарека просто вектор v за простота – това е еквивалентно на дължината на този вектор... Взимаме разликата между всеки от елементите. Значи b1 минус v1, b2 минус v2, и така нататък до bn минус vn. Ако вземем дължината на този вектор, това е същото като ето това. Това ще е равно на квадратен корен. Ще повдигна дължината на квадрат. Дължината на квадрат на това е равна на (b1 – v1) на квадрат, плюс (b2 – v2)^2, плюс... и така нататък, до (bn – vn)^2. Искам да минимизирам това. Искам тази стойност да бъде възможно най-малката, или искам да получа оценка по метода на най-малките квадрати. Ето защо през последните една-две минути, когато просто обяснявах това, това е обяснението защо това тук се нарича оценка по метода на най-малките квадрати, или апроксимация по метода на най-малките квадрати на уравнението А по х равно на b. Тук няма решение на уравнението, но може би можем да намерим някакъв вектор х звезда, такъв, че като умножа матрицата А по х*, полученото ще принадлежи на векторното пространство, като искам този вектор да е възможно най-близко до b. Вече видяхме в няколко урока – кой е най-близкият вектор в едно подпространство до някакъв вектор, който не е в това подпространство? Най-близкият вектор до него е неговата проекция. Най-близкият вектор до b, който е в подпространството, е проекцията на b в това векторно пространство. Това е най-близкият вектор ето тук. Ако искам да минимизирам това разстояние, значи искам да намеря вектор х звезда, такъв че А по х* да е равно на проекцията на вектор b в нашето подпространство или във векторното пространство на А. Спомни си какво правим тук. Казахме, че А по х = b няма решение, но може би можем да намерим някакво х, което е възможно най-близко. Наричам това решение оценка по метода на най-малките квадрати или апроксимация по метода на най-малките квадрати. Този вектор ето тук определено ще принадлежи на векторното ни пространство, защото умножаваме някакъв вектор х по А, което е линейна комбинация на тези вектор-стълбове, значи ще принадлежи на векторното подпространство. Искам този вектор да е възможно най-близо до този вектор. Най-близкият вектор до този във векторното пространство е неговата проекция. Значи А по х трябва да е равно на проекцията на вектор b в нашето векторно пространство. Това трябва да е равно на това. Но това все още е твърде трудно да бъде определено. Видя как, спомняш си, умножихме А по обратната матрица на произведението на А транспонирана по А, и после умножено с А транспонирана. Доста трудно е да се намери тази трансформационна матрица. Да видим можем ли да намерим по-лесен начин да получим решението по метода на най-малките квадрати, или един вид най-доброто решение. Това не е РЕШЕНИЕТО. Това е нашето НАЙ-ДОБРО решение на това уравнение. Затова го наричаме приблизителна оценка по метода на най-малките квадрати. Да извадим вектор b от двете на страни на уравнението и може да получим нещо интересно. Какво ще стане, ако извадим А по х минус вектор b от двете страни на уравнението? Ще го направя тук горе вдясно. Отляво получаваме А по х*. Трудно е да се напише х и после индекс звезда, защото те много си приличат. Изваждаме b от него. Изваждаме нашия вектор b. Това става равно на проекцията на вектор b във векторното пространство минус вектор b. Просто извадих вектор b от двете страни на това уравнение. Какво представлява проекцията на вектор b минус самия вектор b? Ако го начертая ето тук, това ще бъде ето този вектор – ще го направя в оранжево. Това ще бъде това тук. Това ще е ето този вектор тук, нали? Ако взема проекцията на вектор b, която е ето това, минус вектор b, ще получа този вектор, като можем да кажем, че вектор b плюс този вектор е равно на проекцията на вектор b в нашето подпространство. Значи този вектор ето тук е ортогонален. Това всъщност е част от определението за проекция, че този вектор тук ще е ортогонален на нашето подпространство, или на нашето векторно пространство. Значи този вектор е ортогонален на векторното ни пространство. Така че мога да напиша, че А по х* минус вектор b е ортогонален на векторното пространство, или можем да кажем, че принадлежи на ортогоналното допълнение на векторното пространство. Ортогоналното допълнение е просто множеството на всички вектори, които са ортогонални на всички вектори в нашето подпространство, в нашето векторно пространство ето тук. Значи този вектор ето тук, който един вид сочи право надолу към равнината очевидно принадлежи на ортогоналното допълнение на векторното пространство. Това може би ти се струва познато. Кое е ортогоналното допълнение на векторното пространство, определено чрез вектор-стълбовете? Ортогоналното допълнение на векторното пространство, определено чрез вектор-стълбовете, е равно на нулевото пространство на матрицата А транспонирана или на лявото нулево пространство на матрицата А. Видяхме това преди доста уроци. Можем да кажем, че матрицата А по решението по метода на най-малките квадрати на уравнението А по х = b... аз го написах. Значи х* е решението по метода на най-малките квадрати на А по х = b. Значи А по х* минус b принадлежи на нулевото пространство на матрицата А транспонирана. Какво означава това? Това означава, че ако умножа матрицата А транспонирана по това тук, по А по х* – искам само... не, не искам да пропускам знака за вектор върху х. Това е вектор. Не искам да забравям знака за вектор. А по х* минус b. Ако умножа А транспонирана по това ето тук, тогава това е същото като това, и какво получаваме? Този вектор принадлежи на нулевото пространство на А транспонирана, значи това по А транспонирана трябва да е равно на нула. Това е решението на А транспонирана по нещо, равно на нулевия вектор. Сега. Да видим можем ли да опростим малко това. Получаваме А транспонирана по А по х* минус А транспонирана по b равно на нула, и тогава, ако прибавя този член към двете страни на уравнението, ще ни остане само А транспонирана по А по решението по метода на най-малките квадрати на А по х = b, равно на А транспонирана по b. Това получаваме. Но защо свършихме цялата тази работа? Спомни си с какво започнахме. Казахме, че ще опитаме да намерим решение на А по х = b, но уравнението няма решение. Затова казахме, че искаме да намерим поне вектор х*, за който отклонението от b е минимално, при който се минимизира разстоянието между b и А по х*. Нарекохме х* решение по метода на най-малките квадрати. Нарекохме го решение по метода на най-малките квадрати защото когато вземем тази дължина, или когато минимизираме дължината, минимизираме квадратите на тези разлики ето тук. Така че х* е решението по метода на най-малките квадрати. За да намерим това, ние знаехме, че това трябва да е най-близкият вектор до вектор b в нашето подпространство. Знаехме, че най-близкият вектор до вектор b в подпространството е проекцията на вектор b в нашето подпространство, във векторното пространство на матрицата А. Така знаехме, че А – ще сменя цветовете. Знаехме, че А по х* (решението по метода на най-малките квадрати) трябва да е равно на проекцията на вектор b във векторното пространство на А. Ако намерим някакъв вектор х в Rk, който удовлетворява това уравнение, това е решението по метода на най-малките квадрати. Но ние сме виждали вече, че проекцията на b е трудно да се намери. Спомняш си, че това е много трудоемко решение. Затова потърсихме по-лесен начин. И това беше нашият по-лесен начин. Ако намерим това, алтернативно, можем просто да намерим решение на това уравнение. Така, даваш ми уравнението А по х = B, което няма решение. Но сега аз просто ще умножа двете страни на уравнението по матрицата А транспонирана. Ако умножа двете страни на уравнението по А транспонирана, ще получа А транспонирана по А по х равно на А транспонирана по – искам същия син цвят, не това не е същото синьо – А транспонирана по вектор b. Просто умножих двете страни на уравнението по това. Но решението на това модифицирано уравнение няма да е същото като решението на първоначалното уравнение. Това уравнение винаги ще има решение и това е решението по метода на най-малките квадрати. Значи това тук е нашето решение по метода на най-малките квадрати. Обърни внимание, това е някаква матрица, а това тук е просто някакъв вектор. Това тук е вектор. Но щом можем да намерим решение тук, това е най-добрият ни шанс да намерим решение на А по х = b. Минимизирахме грешката. Ще получим А по x*, и разликата между А по х* и b ще бъде минимизирана. Това е нашето решение по метода на най-малките квадрати. В момента нещата изглеждат доста абстрактни, но в следващото видео се надявам да покажа, че реално това е една много полезна концепция.