LINUX.ORG.RU

Матан для программиста. Поясните формулу.

 


1

3

Читаю википедию по всяким ML-разделам, дифф. анализу или как там его, Calculus...
Хочу задавать тупые вопросы.
Могу читать EN-вариант, (говорят он понятнее).
Кто хочет со мной чатик в jabber или скайпе?

https://ru.wikipedia.org/wiki/Градиентный_спуск

В первом параграфе «Оптимизация»: «Пусть целевая функция имеет вид».

У функции аргумент - вектор. Как это понимать? Я привык, что вектор - это типа кортеж скаляров. Ну типа std::vector<int>.

Какой физический смысл у той функции, что там приведена? Функция от нескольких переменных, которая «мапит» (отображает) переданный ей вектор (несколько чисел) в одно скалярное значение (число)?

В английской статье на этом месте стоит «multi-variable function», т.е. всё-таки русская функция от вектора - это функция нескольких аргументов? Ну т.е. речь про int function(int a, int b, int c) ?



Последнее исправление: hlamotron (всего исправлений: 3)

Функция от нескольких переменных, которая «мапит» (отображает) переданный ей вектор (несколько чисел) в одно скалярное значение (число)?

Да

Leron ★★
()

что-то там -> R означает отображения в множество действительных чисел(одно число, не вектор)

что-то там -> R^n в n действительных чисел

Leron ★★
()
Последнее исправление: Leron (всего исправлений: 1)

std::vector - это контейнер, вектор в матане суть - точка в n-мерном пространстве. При этом точки достаточно, чтобы она имела направление и длину относительно нулевой координаты, откуда и идет школьная формулировка про направленный отрезок. Можно и правильнее определить, через понятие пространства, но это будет забивать голову, если совсем не понимаешь, что это. А ты путаешь обычный вектор в матане с кортежем (последовательность однородных элементов), откуда и проблемы.

peregrine ★★★★★
()

Суть же алгоритма градиентного спуска, насколько я помню, примерно такая. Представь, что у тебя есть источник шума и 2 уха. Ты идешь в темноте к источнику шума, шум идет плавно (без полностью тихих участков) и постоянно, не меняя громкости самого источника во все стороны. Ты поворачиваешься так, чтобы оба уха слышали одинаковую громкость и делаешь шаг по направлению к источнику звука. Затем опять смотришь, чтобы уши слышали одну и ту же громкость и делаешь шаг.

peregrine ★★★★★
()
Последнее исправление: peregrine (всего исправлений: 1)
Ответ на: комментарий от peregrine

Во, отлично, спасибо. Кое-что прояснило!

hlamotron
() автор топика
Ответ на: комментарий от peregrine

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

hlamotron
() автор топика
Ответ на: комментарий от hlamotron

Ты можешь использовать какие угодно координаты чтобы различать точки, но обычно введение координат это только первый шаг перед наведением более сложной геометрии. Люди хотят складывать вектора, умножать на «число» и вообще по-всякому вертеть, для этого желательно чтобы координаты были из какого-то одного класса «чисел».

Zeta_Gundam
()

У функции аргумент - вектор. Как это понимать? Я привык, что вектор - это типа кортеж скаляров. Ну типа std::vector<int>.

Где vsl?

awesomelackware
()
Ответ на: комментарий от awesomelackware

где vsl?

Два чаю! ML потом станет deep learning, потом все deeper и deeper...
Автор! Начни с решения задачи коммивояжера, сразу поймешь, что такое оптимизация.

Shadow ★★★★★
()
Ответ на: комментарий от hlamotron

Кортеж это более общее понятие + имеет и другие смыслы, например, кортежем в реляционных базах данных называют отношения (понятия из теории реляционных баз данных). То что в нем хранится не обязательно координаты, даже упорядоченный граф может быть кортежем.

peregrine ★★★★★
()
Ответ на: комментарий от Shadow

Задача коммивояжера не имеет красивого решения (если оно и есть оно не известно людям, как и факт того есть оно или нет), она NP полна. Для начала лучше ознакомиться с разными вещами из этого списка.

peregrine ★★★★★
()

Ты пишешь на языке, в котором принципиальна разница между функцией нескольких скалярных аргументов и одного векторного? Если да, советую взять другой язык.

buddhist ★★★★★
()
Ответ на: комментарий от peregrine

При этом точки достаточно, чтобы она имела направление и длину относительно нулевой координаты, откуда и идет школьная формулировка про направленный отрезок. Можно и правильнее определить, через понятие пространства, но это будет забивать голову, если совсем не понимаешь, что это. А ты путаешь обычный вектор в матане с кортежем (последовательность однородных элементов), откуда и проблемы.

  • Точка не имеет ни длины, ни ширины, ни даже направления.
  • Нулевой координаты, в известной мне математике, не существует.
  • Для отрезка необходимо иметь 2 точки (начало и окончание).
  • Обычно пространство определяется, через векторы и операции над ними, а не наоборот.
  • Вектор в матане и есть кортеж чисел
anonymous
()
Ответ на: комментарий от anonymous

придрался к чепухе, ещё и так коряво

в широко известной математике наличие нуля входит в определение векторного пространства

отождествление векторного пространства с направленными отрезками происходит через фиксирование «точки отсчета» о чем и написали выше

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

alpha ★★★★★
()
Ответ на: комментарий от alpha

в широко известной математике наличие нуля входит в определение векторного пространства

Там речь идёт не о нуле, а о нулевой координате. К сожалению, такое понятие мне не известно.

вектор в матане - это элемент векторного пространства

А векторное пространство это совкупность всех векторов ;-) Все становиться предельно понятно.

anonymous
()
Ответ на: комментарий от anonymous

А векторное пространство это совкупность всех векторов ;-)

И опять мимо.

Векторное пространство - это не множество объектов, а структура на этом множестве.

alpha ★★★★★
()

А какая разница, передать функции набор из n переменных или отождествить этот набор с некой одной переменной, которая является n-мерным вектором и передать функции одну переменную?

В математике часто пользуются таким понятием, как изоморфизм. Если простыми словами, то это выделение одинаковой сути в различных объектах и дальнейшее их отождествление (с сохранением операций над ними).

В линейном n-мерном пространстве можно ввести базис, а значит и координаты. Каждый вектор можно отождествить с его координатами, значит можно считать, что вектор и упорядоченный набор чисел (его координат в некотором базисе) суть одно и то же.

Если функция принимает несколько не однотипных аргументов (которые даже не обязаны быть элементами «хорошего» пространства), то снова можно считать, что она принимает «на вход» один элемент из специального множества (man декартово произведение множеств).

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

aquadon ★★★★★
()
Ответ на: комментарий от anonymous

А векторное пространство это совкупность всех векторов ;-)

Это Вы описали носитель пространства.

На некотором некотором множестве (и ассоциированном с ним числовом поле) вводят две операции, удовлетворяющие разумным требованиям (аксиомы линейного пространства). «Пространством» после этого называют совокупность из множества, числового поля и этих самых операций.

aquadon ★★★★★
()
Ответ на: комментарий от anonymous

К сожалению, такое понятие мне не известно.

Почему это должно быть проблемой для кого-то, кроме тебя?

anonymous
()
Ответ на: комментарий от aquadon

А какая разница, передать функции набор из n переменных или отождествить этот набор с некой одной переменной, которая является n-мерным вектором и передать функции одну переменную?

Это функции на разных множествах. Детские статьи оставь себе.

anonymous
()
Ответ на: комментарий от aquadon

Это Вы описали носитель пространства.

Польностью с Вами согласен, и благодарен за внятные формулировки, которых так не хватало ранее.

anonymous
()

Воспринимай функцию как отображение элементов одного множества на другое. И все тогда станет просто. Вообще, математика - простая штука. В том числе, и упомянутое тобою математическое программирование. Но нужны годы, чтобы это понять ;)

dave ★★★★★
()

Может кто-нибудь для деблов объяснить, что такое линнейное многообразие? Желательно так, чтобы понял не-матанщик. На простых примерах, желательно не на математических, так чтобы имея все эти примеры я смог обобщить их и понять весь абстрактный замысел понятия.

hlamotron
() автор топика
Ответ на: комментарий от hlamotron

Пусть уже имеется некоторое линейное пространство (векторное пространство), которое, как я уже написал выше, есть совокупность некоторого множества (векторов), числового поля и двух операций над векторами (как правило, их называют сложением и умножением на число из данного поля).

Само множество векторов называют носителем пространства. В носителе пространства можно выделить некоторое подмножество. Если это множество замкнуто относительно сложения и умножения на скаляр, то его называют линейным многообразием (совр. линеал, линейное подмножество, lineal) в данном пространстве.

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

P.S. В любом конечномерном векторном пространстве термины линейное многообразие и подпространство эквивалентны. Например, в трехмерном пространстве (xyz) плоскость (например, xy) образует подпространство. Если мы умножаем вектор на число, то он остается в той же плоскости. Складывая два вектора из некоторой плоскости, мы получаем снова вектор в этой плоскости. Т.е. плоскость (2-мерное пространство) замкнута относительно операций сложения и умножения на скаляр из числового поля. Иначе говоря, она является подпространством.

aquadon ★★★★★
()
Последнее исправление: aquadon (всего исправлений: 1)
Ответ на: комментарий от anonymous

Нулевой координаты, в известной мне математике, не существует.

В ней существует начало координат. Вектор определяется через него и с его участием.

Для отрезка необходимо иметь 2 точки (начало и окончание).

Направленный отрезок это не простой отрезок, слово направленный должно что-то говорить о нем на интуитивном уровне восприятия. У ТС-а развит только такой, иначе он не путался бы в таких простых вопросах. А рассказывать ему первые 2-3 курса математической специальности, где начинается нормальное определение градиентного спуска как-то очень долго. Но он чувака из Питера ищет, если я его не путаю с кем-то другим, кто за деньги будет с ним возиться, вот он пусть и рассказывает. Мне из замкадья в Питер кататься как-то не хочется.

Обычно пространство определяется, через векторы и операции над ними, а не наоборот.

Не суть важно что через что определять. Определяют через то что изучалось ранее и что интуитивно понятнее. Вне пространства понятие вектора не несет смысла. Тем более почитай вики, там не плохо определено. Понятие векторов входит в определение пространства, как элементы непустого множества.

Вектор в матане и есть кортеж чисел

Вот только вектор=кортеж, а кортеж!=вектор. Надеюсь не будешь спорить, что ориентированный граф (по смыслу) это не вектор, а записать этот граф в виде кортежа плевое дело?

Ну и нигде я не писал, что даю строгие и формальные определения, скорее для общего понимания, чтобы было проще понять, что важно в формальных, а что не очень.

peregrine ★★★★★
()
Последнее исправление: peregrine (всего исправлений: 1)
Ответ на: комментарий от peregrine

Вот только вектор=кортеж, а кортеж!=вектор.

Об этом можно судить только имея перед глазами определение кортежа. Я, к сожалению, в математических книгах такого не видел, а слово кортеж (tuple) встречал в книгах по программированию.

Если принять за определение «кортеж есть конечный упорядоченный набор произвольных элементов», то Вы совершенно правы, вектор является кортежем, а кортеж, вообще говоря, вектором не обязан быть, т.к. для него не обязаны быть определенными операции.

Но я не люблю заниматься буквоедством, когда все и так понимают, о чем идет речь.

aquadon ★★★★★
()

Может кто доступным языком объяснить метод имитации отжига?

hlamotron
() автор топика
Ответ на: комментарий от anonymous

Вектор в матане и есть кортеж чисел

well.. no

Waterlaz ★★★★★
()

Так это ж одна фигня, что функция от n-мерного вектора, что функция n переменных с точки зрения математики. Это при реализации в коде уже надо выбирать представление

cobold ★★★★★
()
Ответ на: комментарий от no-such-file

где морфизмы? я люблю морфизмы, изоморфизмы, эндоморфизмы, гомоморфизмы и особенно гомеоморфизмы!

robotron5
()
Ответ на: комментарий от peregrine

Надеюсь не будешь спорить, что ориентированный граф (по смыслу) это не вектор, а записать этот граф в виде кортежа плевое дело?

Ну попробуй. Существенным свойством кортежа является его упорядоченность, что в частности отличает его от простого множества. Если записать граф как (ребра,вершины), то должна быть допустима запись (вершины,ребра) что для графа не будет иметь смысла.

А для вектора запись (точка1, точка2) и (точка2, точка1) имеет смысл.

no-such-file ★★★★★
()
Последнее исправление: no-such-file (всего исправлений: 1)

Я привык, что вектор - это типа кортеж скаляров.

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

ados ★★★★★
()
Ответ на: комментарий от peregrine

Тыц

Ссылка на переводную работу, где наверняка использовался термин tuple в том виде как он принят в языках программирования, т.е. как структура данных. К математике это не имеет отношения. (К слову о качестве статей в русской википедии).

А теперь найди этот тупняк тут https://en.wikipedia.org/wiki/Tuple

no-such-file ★★★★★
()
Ответ на: комментарий от Waterlaz

Вектор предполагает определение операции умножения вектора на число и сложение векторов

И что из нельзя определить в координатной форме?

no-such-file ★★★★★
()
Ответ на: комментарий от no-such-file

И что из нельзя определить в координатной форме?

Что такое умножение графа на число? Что такое сумма двух графов?

Waterlaz ★★★★★
()
Ответ на: комментарий от Waterlaz

Что такое умножение графа на число?

Это ты спроси тех кто графы кортежами представляет. Зачем они так делают и почему им не хватает простого множества.

no-such-file ★★★★★
()
Последнее исправление: no-such-file (всего исправлений: 1)
Ответ на: комментарий от aquadon

Сорян, тупой уточняющий вопрос.

линейное пространство (векторное пространство)

Линейное пространство - это обязательно векторное? Какое пространство будет НЕлинейным? А может быть нелинейное векторное пространство? Что такое линейное пространство - в котором получение любого другого элемента этого пространства возможно через линейную операцию?

hlamotron
() автор топика
Ответ на: комментарий от hlamotron

Линейное пространство - это обязательно векторное?

И наоборот.

Какое пространство будет НЕлинейным?

Которое не является линейным, внезапно

aedeph_ ★★
()
Ответ на: комментарий от hlamotron

линейное и векторное - синонимы

нелинейное пространство - это например аффинное (точки нельзя складывать друг с другом, но можно к точке прибавлять вектор), или вообще топологическое, или ещё какое-нибудь.

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

alpha ★★★★★
()
Ответ на: комментарий от alpha

линейное и векторное - синонимы

Круто, не знал.

hlamotron
() автор топика

Хочу уметь понимать фразу:

Аффинное пространство, ассоциированное с векторным пространством V над полем {K} — множество A со свободным транзитивным действием аддитивной группы V (если поле {K} явно не указано, то подразумевается, что это — поле вещественных чисел.

Можно её максимально для дебилов разжевать?

hlamotron
() автор топика
Ответ на: комментарий от hlamotron

Если по порядку то тебе нужны следующие термины:

- Множество

- Группа

- Действие группы на множестве

- Транзитивное действие группы на множестве

- Векторное пространство

- Поле

Но если на пальцах, то

Есть векторное пространство, а есть множество точек к которым эти вектора «прикладываются». И вот это определение «что значит приложить вектор к точке» и задает тебе структуру аффинного пространства.

Мы привыкли к тому что это примерно одно и то же, потому что уже машинально представляем себе вектора как точки на плоскости. Но по науке векторное пространство это некий абстрактный объект, который к точкам плоскости отношения не имеет. Поэтому надо это отношение сформулировать.

То есть аффинное пространство = множество точек + векторное пространство + правило «приложения» векторов к точкам

Для того чтобы описать это правило каждому вектору можно поставить в соответствие некоторое преобразование множества точек («сдвиг» этой точки на указанный вектор). Это и есть «действие». То есть векторное пространство «действует» сдвигами на множестве точек.

И это действие достаточно «хорошее», то есть удовлетворяет некоторым дополнительным условиям согласованности. Например, действие суммы векторов есть композиция действий слагаемых (=транзитивное действие аддитивной группы), и т.п.

alpha ★★★★★
()
Последнее исправление: alpha (всего исправлений: 2)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.