Честно говоря, стараюсь изо всех сил излагать мысли так, чтобы было понятно максимально широкому кругу читателей. Но местами формулы становятся чуть сложнее… Если где-то возникают непонятные моменты — пишите в комментарии или в личные сообщения, всегда рад обсудить.
Что касается кода — он появляется по мере движения по теме. Просто не хочется делать вставки вида “пара строк из sklearn” и на этом останавливаться (иначе всё превратится в переписывание документации sklearn). Скорее всего после бустингов будет небольшой разбор моего собственного, пусть и немного нестандартного метода, а вместе с ним — код классических ML-моделей с подбором гиперпараметров и сравнением на интересной задаче. Но даже если планы немного изменятся, всё равно сделаю большую обзорную статью с мини-повторением прошлых частей и большим количеством кода.
"Близость координат" предполагает метрику, иначе что такое близость? А в R^n стандартная метрика индуцируется скалярным произведением. Ортогональность базиса — следствие этой структуры, а не семантики признаков (стандартный базис автоматически ортонормирован). Я, честно, понимаю о чем вы, но по факту как только мы используем dot product, мы уже (минимум) в евклидовом пространстве. И это не плохо на мой взгляд, а даже наоборот.
В контексте классической линейной мы естественным образом рассматриваем векторы из R^{k+1}, в котором стандартное скалярное произведение порождает евклидову метрику
Статья интересная, да и работа немаленькая Однако, раз под капотом у полигармонического каскада работает расстояние (которое сохраняется при умножении на матрицу поворота), то было бы честно сделать другое преобразование с данными (например, аффинное сжатие/нелинейное преобразование). А то получается, что вы читерите: задача — рубить дерево, инструменты — чайник vs полка vs бензопила... К слову, было забавно, что для svr взяли rbf ядро. Страшный вы человек, однако))) В любом случае, спасибо за статью, было интересно
Спасибо за ответ. Если я правильно понял, речь идёт о замене стандартной активации на биофизическую функцию с более явной интерпретируемостью параметров. Я человек далекий от биохима, но предполагаю, там можно найти и другие нелинейности которые подойдут в качестве активатора. Потому, пока вообще непонятно почему именно такое решение, да и как выполняется то, о чем написано в статье. Но в целом основная идея интересная. Одним словом — удачи в разработке, надеюсь когда-нибудь увижу полноценный рассказ с формулами и обоснованием
Модули которые просили не трогать — упрощались молча. Спросишь — признаётся.
Вот оно! А отечественный ИИ должен трогать и не признаваться!
А если без шуток, даже учитывая структуру "проблема/решение", в статье хотелось бы увидеть не только идею/философию, но и хотя бы несколько ключевых формул.
В целом, половина успеха в ЛЮБОЙ задаче мл – это дата. Если она плохая, даже магия вне Хогвартса не поможет.
Однако, SVM много чем уступает всяким бустингам и подобным товарищам, но мы его любим за две причины: он хорош, когда фич много, а данных мало, в также у него выпуклая задача оптимизации.
Что касаемо Scaler - как правило, он нужен практически везде, где у нас хоть мельком упоминается какая-то идея о расстоянии. Так что, полностью согласен с вами
Если не слишком вдаваться в подробности, то чаще всего берут 1e-3, или 1e-4
Дальше смотрят: Если лосс нестабилен, то уменьшают , если обучение медленное, увеличивают
Также на практике очень часто используют так называемый learning rate scheduler. Говоря простыми словами, сначала берут большое число чтобы все шло быстро, а потом уменьшают чтобы не попасть в ситуацию, когда лосс перепрыгивает минимум
В LaTeX даже семантически правильное предсказание может получить большую посимвольную ошибку, если модель выбрала чуть другую, но эквивалентную запись. Например, \int_{a}^{b} f(x) dx и \int_a^b f(x)dx означают одно и то же, но отличаются как строк
А вы пробовали сравнить их не в таком виде, а "скомпилировать" под одинаковые условия и сравнивать полученные результаты не как текст, а как "картинки"?
Соглашусь, требование дифференцируемости, в целом, слишком сильное условие. Тем более, существуют и методы оптимизации для недифференцируемых функций.
Но: если мы уж брались за изучение классического градиентного спуска, то, согласитесь, одними частными производными сыт не будешь :)
Потому и в статье есть такая скобка
градиент (в том виде, в котором он нам интересен) существует не всегда
Что касаемо весов: "изменение одного веса" действительно живёт на прямой где можно либо вперёд, либо назад. Но мы меняем все веса сразу, а не поочередно.
Я правильно понял вашу мысль, или вы имели в виду численного приближения производной (f(x+h)-f(x))/h, вместо предельного перехода?
Честно говоря, стараюсь изо всех сил излагать мысли так, чтобы было понятно максимально широкому кругу читателей. Но местами формулы становятся чуть сложнее… Если где-то возникают непонятные моменты — пишите в комментарии или в личные сообщения, всегда рад обсудить.
Что касается кода — он появляется по мере движения по теме. Просто не хочется делать вставки вида “пара строк из sklearn” и на этом останавливаться (иначе всё превратится в переписывание документации sklearn). Скорее всего после бустингов будет небольшой разбор моего собственного, пусть и немного нестандартного метода, а вместе с ним — код классических ML-моделей с подбором гиперпараметров и сравнением на интересной задаче.
Но даже если планы немного изменятся, всё равно сделаю большую обзорную статью с мини-повторением прошлых частей и большим количеством кода.
Да, вы абсолютно правы. Действительно может возникнуть путаница. Точнее будет указать "расстояния", а не "веса". Исправил, спасибо.
"Близость координат" предполагает метрику, иначе что такое близость? А в R^n стандартная метрика индуцируется скалярным произведением. Ортогональность базиса — следствие этой структуры, а не семантики признаков (стандартный базис автоматически ортонормирован). Я, честно, понимаю о чем вы, но по факту как только мы используем dot product, мы уже (минимум) в евклидовом пространстве. И это не плохо на мой взгляд, а даже наоборот.
В контексте классической линейной мы естественным образом рассматриваем векторы из R^{k+1}, в котором стандартное скалярное произведение порождает евклидову метрику
Статья интересная, да и работа немаленькая
Однако, раз под капотом у полигармонического каскада работает расстояние (которое сохраняется при умножении на матрицу поворота), то было бы честно сделать другое преобразование с данными (например, аффинное сжатие/нелинейное преобразование). А то получается, что вы читерите: задача — рубить дерево, инструменты — чайник vs полка vs бензопила...
К слову, было забавно, что для svr взяли rbf ядро. Страшный вы человек, однако)))
В любом случае, спасибо за статью, было интересно
Спасибо за ответ. Если я правильно понял, речь идёт о замене стандартной активации на биофизическую функцию с более явной интерпретируемостью параметров. Я человек далекий от биохима, но предполагаю, там можно найти и другие нелинейности которые подойдут в качестве активатора. Потому, пока вообще непонятно почему именно такое решение, да и как выполняется то, о чем написано в статье. Но в целом основная идея интересная.
Одним словом — удачи в разработке, надеюсь когда-нибудь увижу полноценный рассказ с формулами и обоснованием
Вот оно! А отечественный ИИ должен трогать и не признаваться!
А если без шуток, даже учитывая структуру "проблема/решение", в статье хотелось бы увидеть не только идею/философию, но и хотя бы несколько ключевых формул.
Вы абсолютно правы. Исправил
Achievement unlocked: совершать 2 опечатки в одной маленькой формуле
А кто ж не дергается на них...
В целом, половина успеха в ЛЮБОЙ задаче мл – это дата. Если она плохая, даже магия вне Хогвартса не поможет.
Однако, SVM много чем уступает всяким бустингам и подобным товарищам, но мы его любим за две причины: он хорош, когда фич много, а данных мало, в также у него выпуклая задача оптимизации.
Что касаемо Scaler - как правило, он нужен практически везде, где у нас хоть мельком упоминается какая-то идея о расстоянии. Так что, полностью согласен с вами
Спасибо, что заметили. Там очевидно -1, исправил :)
Спасибо, что заметили. Это подлая опечатка. Исправил
Спасибо за замечание, исправил :)
Я вам Mythos принес, только я вам его не отдам, потому что у вас документов нету...
Если не слишком вдаваться в подробности, то чаще всего берут 1e-3, или 1e-4
Дальше смотрят: Если лосс нестабилен, то уменьшают , если обучение медленное, увеличивают
Также на практике очень часто используют так называемый learning rate scheduler. Говоря простыми словами, сначала берут большое число чтобы все шло быстро, а потом уменьшают чтобы не попасть в ситуацию, когда лосс перепрыгивает минимум
Хороший вопрос!
Почему-то, не знаю почему, забыл об этом написать в статье.
Есть такое понятие, как ElasticNet: это буквально a*lasso + (1-a)*ridge , где a число на [0,1].
К сожалению, не могу согласиться с вами и вот почему:
Предлагаю рассмотреть две разные задачи
Даны изображения лиц. Нужно понять какие из них мужские, а какие женские (классы/метки заданы)
Даны изображения людей, нужно обнаружить лица. (О классах речи нет)
Какую из этих задач назовёте classification, а какую recognition/detection?
А вы пробовали сравнить их не в таком виде, а "скомпилировать" под одинаковые условия и сравнивать полученные результаты не как текст, а как "картинки"?
Соглашусь, требование дифференцируемости, в целом, слишком сильное условие. Тем более, существуют и методы оптимизации для недифференцируемых функций.
Но: если мы уж брались за изучение классического градиентного спуска, то, согласитесь, одними частными производными сыт не будешь :)
Потому и в статье есть такая скобка
Что касаемо весов: "изменение одного веса" действительно живёт на прямой где можно либо вперёд, либо назад. Но мы меняем все веса сразу, а не поочередно.
Я правильно понял вашу мысль, или вы имели в виду численного приближения производной (f(x+h)-f(x))/h, вместо предельного перехода?
Если не трудно, конкретизируйте, пожалуйста. Постараюсь сделать выводы и искоренить проблему :)
Спасибо :)
Ну может кому-то не понравилось, их право, не осуждаем)