All streams
Search
Write a publication
Pull to refresh

Comments 25

  1. Если предметная область не Евклидово пространство? То линал отставляем?

  2. Функция одна основная в ML должна быть выпуклая. Про это ни слова. Без этого ML не сойдется

  3. И ЦПТ доказана только для независимых случайных величин. ТОЛЬКО! Если взять любые величины и не проверять их независимость, то результат применения ЦПТ будет любой

    А Так красиво написано, софт скилл повышает здорово. Плюс заслуженный

Спасибо за комментарий!

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

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

  3. ЦПТ допускает зависимость случайных величин, но она должна быть достаточно слабой. Речи про полную независимость не идет

Спасибо за статью! Было очень интересно вспомнить надежно забытое со времен универа и узнать много нового! Отдельное спасибо за иллюстрации!

По мотивам предыдущего комментария вопрос: какие есть примеры прикладных задач, в которых предметная область - Гильбертово пространство?

Спасибо, рад, что удалось узнать что-то новое из статьи!

Думаю, ключевая идея в том, что почти любой kernel method — это про работу в Гильбертовом пространстве признаков (как, например, с SVM). Есть предметные области, где данные могут уже естественно лежат в Гильбертовом пространстве: например, сигналы (задачи с речью)

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

Cейчас QML на очень ранней стадии развития (но все же есть уже какие-то курсы: например, от ods)

Думаю, ключевая идея в том, что почти любой kernel method — это про работу в Гильбертовом пространстве признаков (как, например, с SVM)

Там нет Гилбертовых пространств обычно. Просто обычные Евклидовы пространства. Замечу, что классически Гилббертово пространство определяется как бесконечномерное сепарабельное пространство со скалярным произведением. Т.е. Гильбертовость всё подразумевает бесконечномерность

Гильбертово пр-во — обобщение Евклидова, поэтому при его упоминании автоматически подразумевается, что оперируем как минимум над Евклидовым пространством.

Замечу, что классически Гилббертово пространство определяется как бесконечномерное сепарабельное пространство со скалярным произведением. Т.е. Гильбертовость всё подразумевает бесконечномерность

Я соглашусь, что Гильбертово пр-во куда более полезно в теоремах функционального анализа, где нужно четко определять свойства пространства, в котором мы рассматриваем функции. Для ML 99.9999% такой строгости совершенно не нужно, поэтому здесь упоминания Гильбертовых пр-в возникают как любопытная заметка о том, что такое вообще бывает, и что при достаточной "притянутости за уши" можно назвать тот же kernel method переходом в спрямляющее пространство, где удобно оперировать терминами "Гильбертово пр-во" и проч.

Также хочется отметить, что ни у кого, как правило, при использовании методов ML никогда не возникают в голове мысли наподобие:

"Сейчас я буду переходить в Гильбертово пр-во",

"Сейчас я задал метрику, она удовлетворяет всем свойствам, задает мне правильное пространство, и я могу ею точно-точно пользоваться",

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

Конечно, на ризёрческих позициях очень важно понимать такие детали, поскольку придется эти вопросы так или иначе решать при обосновании новых методов.

Для обычных сценариев применения ML узкоспециализированные знания и уточнения излишни и изыточны

Гильбертово пр-во — обобщение Евклидова

Не совсем. Евклидовое пространство классически требует конечномеронсти. Гильбертово пространство классически требует бесконечномерности и сепарабельности. Не надо их смешивать.

От того, что kernel method мы работаем с пространством функций, оно не становиться гильбертовым. Обычно там всё же выбирается конечный базис и получает евклидово пространство.

здесь упоминания Гильбертовых пр-в возникают

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

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

берут какой-нибудь подход, алгоритм, метод, шлепают его

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

Евклидовое пространство классически требует конечномеронсти. Гильбертово пространство классически требует бесконечномерности и сепарабельности. Не надо их смешивать

Гильбертово пространство не требует сепарабельности, но может иметь её при необходимом и достаточном условии наличия счетного ортонормированного базиса. Гильбертово отличается от Евклидова \infty-мерностью и полнотой по норме, индуцированной скалярным произведением.

Иногда в литературе Евклидово пр-во еще отождествляют с предгильбертовым пространством — не случайно

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

Кажется, что это больше относится к теоретическим выкладкам, но не практическим: опасно из конечномерной задачки, особенно если данных немного, переходить в бесконечномерное пр-во (и как?), там порешать задачу и вернуться обратно — ошибка может накопиться немаленькая. Если у вас есть такой кейс из практики, то было бы интересно посмотреть на результаты

Но от этого не надо использовать термины почём зря. Тем более, в статье "с основами".

Я бы и рад, но в комментариях все решили высказаться про Гильбертово пространство. Пора уже оставить его.. SVM, вызвавший столько споров в комментах, удобнее было бы употребить в терминах изоморфизма пространств, то есть через\cong: из исходного пространстваAпереходим вB, решаем там задачу и возвращаемся обратно, поскольку подразумеваем, что между ними есть изоморфизм:A \cong B. Это частый трюк не только в мл, но и в математике

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

  2. У выпуклой функции есть локальные минимумы, просто они одновременно и глобальные.

но в ML в 99.9% случаев используется именно \mathbb{R}

Всегда удивляет это утверждение. Компьютеры работают в подмножестве наутральных чисел, а вот ML - каким-то образом в \mathbb{R}. Как такое возможно, если речь явно не про символьные вычисления, а большинство действительных чисел не получится даже записать в конечную память?

А к чему здесь фраза «компьютеры работают в подмножестве натуральных чисел»? Компы оперируют нулями и единицами на низком уровне, но это мешает использовать вещественные числа в программировании алгоритмов ML

На практике в ML хватает, например, 32, 16 бит для хранения чисел, а то и меньше: fp32, fp16; bf16, int8, …; нет смысла хранить \mathbb{R} с колоссальной точностью

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

Автору намекают вежливо, а он продолжает бредить

1. Если в изучаемом пространстве есть Евклидова метрика, то есть и линал. А если такой метрики нет? Если метрика другая, например расстояние между двумя картинками? и Гильбертово пространство в данном случае это типичный бред никаким образом не имеющий отношение к ML.

2. Вот только выпуклая функция, иначе при каждом запуске обучения будете получать разные минимумы. И выражение "ландшафты функции потерь представляют из себя очень шумные поверхности" это и есть бред ЧатГПТ, ну или автора.

3.слабая зависимость случайных величин это как слабая беременность. Тоже типичный бред, зависимость или есть и тогда нет ЦПТ или зависимости нет и тогда есть ЦПТ в рассуждениях. А слабая зависимость/беременность случайных величин это только у ЧатГПТ.

Ваша статья пронизана такими ляпами и бредом, зачем она на Хабре?

Вы хотите обесценить Хабр и разорить его владельца и на улицу его сотрудников?

Я мехматов не заканчивал, по первому пункту сказать ничего не могу, но по оставшимся интересно было бы уточнить:

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

Связь может быть слабой/сильной: влияет ли факт наличия пьяного бомжа по средам вечером у входа в Пятёрочку на продажи хлеба? - влияет, кто-то передумает заходить в магазин за хлебом. Но каков вес влияния этого фактора на выручку хлебопроизводителя за месяц? Скорее всего очень низкий, настолько, что может затеряться в шуме. Вот в этом случае я бы и сказал, что связь слабая и на данных я бы вообще посчитал ее шумом. А если мы задумается что такое "шум" в данных, то поймем, что это как раз такие очень слабо влиющие факторы, которых просто много и выявить точную связь с ними мы не можем.

Мои мысли описал, если укажите, где я не прав, то буду рад просветиться: больше знаний - лучше

Я не сторонник перехода на личности, но если у вас карма -24, то это о чем-то говорит

1.

Я могу еще обобщить и умно сказать, что если есть метрика, то есть и топология. Какая вообще разница?

А если такой метрики нет?

Хотел бы я посмотреть на такой сценарий. Если приведете пример, будет прекрасно

Если метрика другая, например расстояние между двумя картинками?

А что, расстояние между картинками — это какой-то экзотический вид метрик? Что такое картинки как математический объект? Похоже, у вас не хватает знаний для ответа на эти вопросы. Это может быть то же самое евклидово расстояние по желанию. Я могу любую метрику вкорячить для сравнения картинок, как это изменит суть дела?

Гильбертово пространство в данном случае это типичный бред никаким образом не имеющий отношение к ML

Я даже не знаю, имеет ли смысл это комментировать. Евклидово пространство — это частный случай Гильбертова пространства. Несколько добавок дают сначала Банахово пр-во, а потом и Гильбертово. Можно бесконечно мусолить теоретические понятия, но как это соотносится с предметом статьи:

минимальный набор знаний, с которым можно будет уже самостоятельно погружаться в более интересные и прикладные сценарии?

Если вам кажется, что приведенное в статье — ненужный "бред гпт", то рекомендую тогда обратиться к другим, более духоскрепным, источникам: труды Фихтенгольца, Зорича, Демидовича, Куроша и т.д.

2.

при каждом запуске обучения будете получать разные минимумы

При запуске обучений всегда присутствует случайность, которую можно фиксировать через seed. При обучении с нуля мы стартуем со случайного состояния, веса инициализируются специальным образом. Это не имеет никакого отношения к типу функции потерь. С чего мы "будем получать разные минимумы при каждом запуске" — функция потерь как-то видоизменяться будет?

3.

слабая зависимость случайных величин это как слабая беременность. Тоже типичный бред, зависимость или есть и тогда нет ЦПТ или зависимости нет и тогда есть ЦПТ в рассуждениях. А слабая зависимость/беременность случайных величин это только у ЧатГПТ

Я бы посмотрел, как вы нашли бы на практике набор данных, которые совершенно не зависимы друг с другом. Это еще раз подчеркивает, что либо вы не понимаете предмет разговора, либо дальше пыльных лекториумов теорию не применяли.

Соответственно, ваши последние 2 предложения тоже не вижу смысла комментировать. Рекомендую перед началом дискуссии сначала удостовериться, что вы понимаете тему разговора, и только потом задавать предметные конкретные вопросы и высказывать критику. Ваши комменты — это набор аллюзий со "слабой беременностью", "бредом гпт" и прочей неподкрепленной фактами фантастикой

Хотел бы я посмотреть на такой сценарий. Если приведете пример, будет прекрасно

Такой случай есть: любое конечномерные \ell^p_n для p\ge 1. Потому что оно попадает под аксиомы векторного пространства.

А что, расстояние между картинками — это какой-то экзотический вид метрик?

Норма Фробениуса от их разности.

прочел недавно, что Нильс Бор и Альберт Эйнштейн чуть не до матерщины доходили в спорах, но прилюдно всегда подчеркивали - мы друзья и это наш спор, как хотим так и спорим. (он не будет отвечать при -24. Это как выяснение отношений, когда один собеседник в наручниках)

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

Вот так и тут.

Функция потерь может быть только выпуклой и другие не годятся. Хотя статей на тему локального минимума выпуклой функции очень много, гораздо больше, чем нужно.

Метрику в исследуемом пространстве почему-то всегда берут Евклидову. Вот помню лекцию уважаемого профессора "берем признаки и у нас есть вектор" и далее линал, матрицы и собственные числа. Но вот это нужно доказывать, что в этом пространстве можно корректно определить метрику. Иначе будете складывать теплое с мягким или "полтора землекопа + пол землекопа = два землекопа". ( кстати про картинки, если картинку сдвинуть на один пиксель в любую сторону, то для реальности это будет та же картинка, глазами можно и не заметить. Но евклидово расстояние между ними будет большим). А ведь многие пишут "берем соседнюю точку" или "окрестность точки", но метрику не определяют, подразумевая Евклидову.

Ну и слабая независимость случайных величин.

как вы нашли бы на практике набор данных,

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

Вот тут уже про применение разных разделов математики писал и про метрику тоже с логикой. И про практику.

https://habr.com/ru/articles/592389/

Мне лично не нравится нарушение строгости изложения.

Да - красиво, наглядно, функции с производными парят над полем и гауссиан как живой.

Особенно коммент красивый, очень понравился, про выпуклые поверхности. !

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

Спасибо за замечания!

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

Я думаю, что низкий порог входа гораздо хуже. Оглянитесь вокруг! И оно Вам нужно?

Если есть время расширяйте текст и редактируйте и сделайте его строже. Выложите еще на свой личный блог.

Поясните, пожалуйста, что подразумевается под строгостью? Уточнение того, что у нас куча допущений? И еще. Я начало Вашей статьи прочитал. Там Вы говорили про применение математики "если ..., то ..." и у меня возник вопрос. Вы против таких "приблизительных" допущений? Или нет, но с явным уточнением, какие допущения имеют место быть? Я лично никаких проблем в этом не вижу, если сами допущение прозрачны и, соответственно, их пользователь понимает, что на выходе может получить ерунду, так как допущения. Логично, что пользуясь теоремой Байеса на неточных данных мы можем получить ерунду и все пойдет по одному месту, но порой приходится принимать решение с неточными/неполными данными и мир не будет у нас спрашивать, готовы ли мы. А так мы можем решить задачу хоть как-то удовлетворительно/хорошо. Собственно, примерно по этой парадигме, насколько я понимаю, и работает ML. Да и в других прикладных дисциплинах, я думаю, что-то похожее. Когда какие-то выкладки (иногда очень красивые и хорошие) могут разрушаться в столкновении с гораздо более сложной реальностью и приходится что-то выдумывать, чтобы оно работало.

Функция потерь может быть только выпуклой и другие не годятся

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

Но вот это нужно доказывать, что в этом пространстве можно корректно определить метрику.

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

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

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

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

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

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

Ну и слабая независимость случайных величин...

Можно доказать ЦПТ для случаев когда ковариация между случайными величинами достаточно маленькая (насколько — нужно брать конкретные теоремы).

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

Гильбертово пространство имеет явное отношение к мл. Банально потому, что Гильбертово - обобщение евклидова.

В ML работают с float32, float16, ещё чем-то, но не с вещественными числами. Там даже нет ассоциативности сложения и умножения. Многие вычисления даже недетерминированы. Так что многие приложения "суровой" математики на самом деле обычно притянуты за уши и не работают, потому что в нейронках не вещественные числа, а доказывается всё для моделей, которые невозможно использовать, потому что никакой памяти не хватит, чтобы сохранить полностью даже одну бесконечную десятичную дробь. И численные методы работают с вещественными числами, а не f64, f32... Всё сложнее.

В ML, как в любой инженерной сфере, всегда куча предположений и упрощений, которые упрощают выкладки и дают возможность приблизиться к решению задачи хоть как-то. Глупо отрицать прогресс LLMок и прочих современных моделей — им никак не помешал тот факт, что мы храним числа не с бесконечной точностью. Более того, современные модели квантуют в числа с еще меньшей точностью, и это тоже не мешает им работать с ожидаемой точностью и результатом.

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

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

Из реальных примеров:

  • Для реконструкции сейсмических данных (сейсмических трасс) вводится предположение, что земля плоская. Иначе выкладки и формулы невыносимо усложняются. Будет ли кто-то здесь с пеной у рта доказывать, что земля не плоская, если эти нейронные модели для сейсмической интерпретации работают и приносят прибыль?

  • Географические карты имеют сильную погрешность: у полюсов растяжения и искажения больше, чем у экватора. Все равно все ими пользуются

    Отказываться от обучения моделей из-за того, что мы не храним числа в бесконечной точности, — крайне необдуманный поступок

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

Куда более полезен пример из ML: Нейронная сеть — универсальный аппроксиматор, который может аппроксимировать любую функцию с любой точностью.

На это указывает теорема Цыбенко: с помощью однослойной нейросети с сигмоидальной функцией активации можно аппроксимировать любую функцию с любой точностью

Не любую, только из Lp или пространства непрерывных функций, при чем, на компактном множестве.

Этот текст содержит доступное объяснение основных частей высшей математики

На всякий случай замечу, что все вышеперечисленное изучается не один год в рамках не одного предмета - это если вдруг начинающий ML-инженер посчитает, что для ML ему достаточно одной статьи на Хабре :) И это только

минимальный набор знаний

Sign up to leave a comment.

Articles