Знакомимся с вектором
Знакомимся с вектором
Операции с векторами

Вы навер­ня­ка слы­ша­ли мно­го исто­рий о про­грам­ми­стах, кото­рые учи­лись в тех­ни­че­ских вузах, изу­ча­ли выс­шую мате­ма­ти­ку и теперь поль­зу­ют­ся эти­ми зна­ни­я­ми в про­грам­ми­ро­ва­нии. И если кого-то это не кос­ну­лось, может быть ощу­ще­ние, что он про­пу­стил в жиз­ни что-то важное. 

Будем это исправ­лять. Попро­бу­ем разо­брать неко­то­рые базо­вые поня­тия из мате­ма­ти­ки за пре­де­ла­ми школь­ной про­грам­мы. И заод­но пока­жем, как оно свя­за­но с про­грам­ми­ро­ва­ни­ем и для каких задач полезно. 

⚠️ Мате­ма­ти­ки, помо­гай­те. Мы тут мно­гое упро­сти­ли, поэто­му будем рады уви­деть ваши уточ­не­ния и заме­ча­ния в комментариях. 

Линейная алгебра

Есть мате­ма­ти­ка: она изу­ча­ет абстракт­ные объ­ек­ты и их вза­и­мо­свя­зи. Бла­го­да­ря мате­ма­ти­ке мы зна­ем, что если сло­жить два объ­ек­та с ещё дву­мя таки­ми же объ­ек­та­ми, то полу­чит­ся четы­ре объ­ек­та. И неваж­но, что это были за объ­ек­ты: ябло­ки, козы или раке­ты. Мате­ма­ти­ка берёт наш веще­ствен­ный мир и изу­ча­ет его более абстракт­ные свойства. 

Внут­ри мате­ма­ти­ки есть алгеб­ра: если совсем при­ми­тив­но, то в алгеб­ре мы вме­сто чисел начи­на­ем под­став­лять бук­вы и изу­чать ещё более абстракт­ные свой­ства объектов.

Напри­мер, мы зна­ем, что если a + b = c, то a = c − b. Мы не зна­ем, что сто­ит на местах a, b или c, но для нас это такой абстракт­ный закон, кото­рый под­твер­жда­ет­ся практикой. 

Внут­ри алгеб­ры есть линей­ная алгеб­ра — она изу­ча­ет век­то­ры, век­тор­ные про­стран­ства и дру­гие абстракт­ные поня­тия, кото­рые в целом отно­сят­ся к некой упо­ря­до­чен­ной инфор­ма­ции. Напри­мер, коор­ди­на­ты раке­ты в кос­мо­се, бир­же­вые коти­ров­ки, рас­по­ло­же­ние пик­се­лей в изоб­ра­же­нии — всё это при­ме­ры упо­ря­до­чен­ной инфор­ма­ции, кото­рую мож­но опи­сы­вать век­то­ра­ми. И вот их изу­ча­ет линей­ная алгебра. 

В про­грам­ми­ро­ва­нии линей­ная алгеб­ра нуж­на в дата-сайенс, где из упо­ря­до­чен­ной инфор­ма­ции созда­ют­ся алго­рит­мы машин­но­го обучения. 

Если пред­ста­вить линей­ную алгеб­ру в виде дома, то век­тор — это кир­пич, из кото­ро­го всё состо­ит. Сего­дня раз­бе­рём­ся, что такое век­тор и как его понимать. 

Что такое вектор

Вы навер­ня­ка помни­те век­тор из школь­ной про­грам­мы — это такая стре­лоч­ка. Она направ­ле­на в про­стран­ство и изме­ря­ет­ся дву­мя пара­мет­ра­ми: дли­ной и направ­ле­ни­ем. Пока дли­на и направ­ле­ние не меня­ют­ся, век­тор может пере­ме­щать­ся в пространстве.

Линейная алгебра: векторы Физи­че­ское пред­став­ле­ние век­то­ра: есть дли­на, направ­ле­ние и нет началь­ной точ­ки отсчё­та. Такой век­тор мож­но как угод­но дви­гать в пространстве 

У ана­ли­ти­ков век­тор пред­став­ля­ет­ся в виде упо­ря­до­чен­но­го спис­ка чисел: это может быть любая инфор­ма­ция, кото­рую мож­но изме­рить и после­до­ва­тель­но запи­сать. Для при­ме­ра возь­мём рынок недви­жи­мо­сти, кото­рый нуж­но про­ана­ли­зи­ро­вать по пло­ща­ди и цене домов — полу­ча­ем век­тор, где пер­вая циф­ра отве­ча­ет за пло­щадь, а вто­рая — за цену. Ана­ло­гич­но мож­но сор­ти­ро­вать любые данные.

Линейная алгебра: векторы Ана­ли­ти­че­ское пред­став­ле­ние век­то­ра: дан­ные мож­но пере­ве­сти в числа 

Мате­ма­ти­ки обоб­ща­ют оба под­хо­да и счи­та­ют век­тор одно­вре­мен­но стрел­кой и чис­лом — это свя­зан­ные поня­тия, пере­те­ка­ю­щие друг в дру­га в зави­си­мо­сти от зада­чи. В одних слу­ча­ях удоб­ней счи­тать, а в дру­гих — пока­зать всё гра­фи­че­ски. В обо­их слу­ча­ях перед нами вектор.

Линейная алгебра: векторы Мате­ма­ти­че­ское пред­став­ле­ние век­то­ра: дан­ные мож­но пере­ве­сти в чис­ла или график 

В дата-сайенс исполь­зу­ет­ся мате­ма­ти­че­ское пред­став­ле­ние век­то­ра — про­грам­мист может обра­бо­тать дан­ные и визу­а­ли­зи­ро­вать резуль­тат. В отли­чие от физи­че­ско­го пред­став­ле­ния, стрел­ки век­то­ров в мате­ма­ти­ке при­вя­за­ны к систе­ме коор­ди­нат Х и У — они не блуж­да­ют в про­стран­стве, а исхо­дят из нуле­вой точки.

Линейная алгебра: векторы Век­тор­ная систе­ма коор­ди­нат с базо­вы­ми ося­ми Х и Y. Место их пере­се­че­ния — нача­ло коор­ди­нат и корень любо­го век­то­ра. Засеч­ки на осях — это отрез­ки одной дли­ны, кото­рые мы будем исполь­зо­вать для опре­де­ле­ния век­тор­ных координат 

👉 Полу­ча­ет­ся, век­тор – это такой спо­соб запи­сы­вать, хра­нить и обра­ба­ты­вать не одно чис­ло, а какое-то орга­ни­зо­ван­ное мно­же­ство чисел. Бла­го­да­ря век­то­рам мы можем пред­ста­вить это мно­же­ство как еди­ный объ­ект и изу­чать его вза­и­мо­дей­ствие с дру­ги­ми объектами. 

Напри­мер, мож­но взять мно­го век­то­ров с цена­ми на недви­жи­мость, как-то их про­ана­ли­зи­ро­вать, усред­нить и обу­чить на них алго­ритм. Без век­то­ров это были бы про­сто «рас­сы­пан­ные» дан­ные, а с век­то­ра­ми — порядок. 

Как записывать

Век­тор мож­но запи­сать в стро­ку или в стол­бец. Для строч­ной запи­си век­тор обо­зна­ча­ют одной бук­вой, ста­вят над ней чер­ту, откры­ва­ют круг­лые скоб­ки и через запя­тую запи­сы­ва­ют коор­ди­на­ты век­то­ра. Для запи­си в стол­бец коор­ди­на­ты век­то­ра нуж­но взять в круг­лые или квад­рат­ные скоб­ки — допу­стим любой вариант. 

Стро­гий поря­док запи­си дела­ет так, что каж­дый набор чисел созда­ёт толь­ко один век­тор, а каж­дый век­тор ассо­ци­и­ру­ет­ся толь­ко с одним набо­ром чисел. Это зна­чит, что если у нас есть коор­ди­на­ты век­то­ра, то мы их не смо­жем перепутать.

Основы линейной алгебры Спо­со­бы запи­си вектора 

Скаляр

Поми­мо поня­тия век­то­ра есть поня­тие ска­ля­ра. Ска­ляр — это про­сто одно чис­ло. Мож­но ска­зать, что ска­ляр — это век­тор, кото­рый состо­ит из одной координаты.

Помни­те физи­ку? Есть ска­ляр­ные вели­чи­ны и есть век­тор­ные. Ска­ляр­ные как бы опи­сы­ва­ют про­сто состо­я­ние, напри­мер, тем­пе­ра­ту­ру. Век­тор­ные вели­чи­ны ещё и опи­сы­ва­ют направление.

Как изображать 

Век­тор из одно­го чис­ла (ска­ляр) отоб­ра­жа­ет­ся в виде точ­ки на чис­ло­вой прямой.

Основы линейной алгебры Гра­фи­че­ское пред­став­ле­ние ска­ля­ра. Запи­сы­ва­ет­ся в круг­лых скобках 

Век­тор из двух чисел отоб­ра­жа­ет­ся в виде точ­ки на плос­ко­сти осей Х и Y. Чис­ла зада­ют коор­ди­на­ты век­то­ра в про­стран­стве — это такая инструк­ция, по кото­рой нуж­но пере­ме­щать­ся от хво­ста к стрел­ке век­то­ра. Пер­вое чис­ло пока­зы­ва­ет рас­сто­я­ние, кото­рое нуж­но прой­ти вдоль оси Х; вто­рое — рас­сто­я­ние по оси Y. Поло­жи­тель­ные чис­ла на оси Х обо­зна­ча­ют дви­же­ние впра­во; отри­ца­тель­ные — вле­во. Поло­жи­тель­ные чис­ла на оси Y — идём вверх; отри­ца­тель­ные — вниз. 

Пред­ста­вим век­тор с чис­ла­ми −5 и 4. Для поис­ка нуж­ной точ­ки нам необ­хо­ди­мо прой­ти вле­во пять шагов по оси Х, а затем под­нять­ся на четы­ре эта­жа по оси Y.

Основы линейной алгебры Гра­фи­че­ское пред­став­ле­ние чис­ло­во­го век­то­ра в двух измерениях 

Век­тор из трёх чисел отоб­ра­жа­ет­ся в виде точ­ки на плос­ко­сти осей Х, Y и Z. Ось Z про­во­дит­ся пер­пен­ди­ку­ляр­но осям Х и У — это трёх­мер­ное изме­ре­ние, где век­тор с упо­ря­до­чен­ным три­пле­том чисел: пер­вые два чис­ла ука­зы­ва­ют на дви­же­ние по осям Х и У, тре­тье — куда нуж­но дви­гать­ся вдоль оси Z. Каж­дый три­плет созда­ёт уни­каль­ный век­тор в про­стран­стве, а у каж­до­го век­то­ра есть толь­ко один триплет.

Если век­тор состо­ит из четы­рёх и более чисел, то в тео­рии он стро­ит­ся по похо­же­му прин­ци­пу: вы берё­те коор­ди­на­ты, стро­и­те N-мерное про­стран­ство и нахо­ди­те нуж­ную точ­ку. Это слож­но пред­ста­вить и для обу­че­ния не понадобится.

Основы линейной алгебры Гра­фи­че­ское пред­став­ле­ние чис­ло­во­го век­то­ра в трёх изме­ре­ни­ях. Для при­ме­ра мы взя­ли коор­ди­на­ты −5, 2, 4 

Помни­те, что все эти запи­си и изоб­ра­же­ния с точ­ки зре­ния алгеб­ры не име­ют отно­ше­ния к наше­му реаль­но­му трёх­мер­но­му про­стран­ству. Век­тор — это про­сто какое-то коли­че­ство абстракт­ных чисел, собран­ных в стро­гом поряд­ке. Век­то­ру неваж­но, сколь­ко там чисел и как их изоб­ра­жа­ют люди. Мы же их изоб­ра­жа­ем про­сто для нагляд­но­сти и удобства.

Напри­мер, в век­то­ре спо­кой­но может быть 99 коор­ди­нат. Для его изоб­ра­же­ния нам пона­до­би­лось бы 99 изме­ре­ний, что очень про­бле­ма­тич­но на бума­ге. Но с точ­ки зре­ния век­то­ра это не про­бле­ма: пере­мно­жать и скла­ды­вать век­то­ры из двух коор­ди­нат мож­но так же, как и век­то­ры из 9999999 коор­ди­нат, прин­ци­пы те же. 

И зачем нам это всё

Век­тор — это «кир­пи­чик», из кото­ро­го стро­ит­ся дата-сайенс и машин­ное обу­че­ние. Например: 

  • На осно­ва­нии век­то­ров полу­ча­ют­ся мат­ри­цы. Если век­тор — это как бы линия, то мат­ри­ца — это как бы плос­кость или таблица. 
  • Машин­ное обу­че­ние в сво­ей осно­ве — это пере­мно­же­ние мат­риц. У тебя есть мат­ри­ца с дан­ны­ми, кото­рые маши­на зна­ет сей­час; и тебе нуж­но эту мат­ри­цу «дообу­чить». Ты умно­жа­ешь суще­ству­ю­щую мат­ри­цу на какую-то дру­гую мат­ри­цу и полу­ча­ешь новую мат­ри­цу. Дела­ешь так мно­го раз по опре­де­лён­ным зако­нам, и у тебя обу­чен­ная модель, кото­рую на быто­вом язы­ке назы­ва­ют искус­ствен­ным интеллектом. 

Кро­ме того, век­то­ры исполь­зу­ют­ся в ком­пью­тер­ной гра­фи­ке, рабо­те со зву­ком, инже­нер­ном и про­сто любом вычис­ли­тель­ном софте. 

И давай­те пом­нить, что век­тор — это не какая-то слож­ная абстракт­ная шту­ка, а про­сто сум­ка, в кото­рой лежат чис­ла в опре­де­лён­ном поряд­ке. То, что мы назы­ва­ем это век­то­ром, — про­сто нюанс терминологии.

Что дальше

В сле­ду­ю­щий раз раз­бе­рём опе­ра­ции с век­то­ра­ми. Пока мы гото­вим мате­ри­ал — реко­мен­ду­ем почи­тать интер­вью с Ана­ста­си­ей Нику­ли­ной. Ана­ста­сия ведёт ютуб-канал по дата-сайнс и рабо­та­ет сеньо­ром дата-сайентистом в Росбанке.

Текст:
Алек­сандр Бабаскин

Редак­тор:
Мак­сим Ильяхов

Худож­ник:
Даня Бер­ков­ский

Кор­рек­тор:
Ири­на Михеева

Вёрст­ка:
Мария Дро­но­ва

Соц­се­ти:
Олег Веш­кур­цев