Возможно вы правы. В принципе даже есть работа Sonoda&Murata,2017, по которой ваше предложение можно обосновать (использование квадратичной активации), но тогда архитектура должна включать не только внимание, но и skip-connection с какими-то полносвязными слоями ( [a+b]^2=2ab(внимание)+a^2+b^2 (skip с полносвязным слоем)), а их вроде нет в архитектурах со вниманием, хотя я конечно могу ошибаться.
Формально да. Просто на гитхабе есть приватные и открытые проекты. Пересылка рабочего кода программе (неважно какой) увеличивает количество источников возможных несогласованных утечек кода в случае, если ваш проект приватен.
И чем наблюдение за толпой программистов разной квалификации, пытающихся родить решение, лучше готового и отлаженного кода?
К сожалению, тут разные подходы. Мне конечно нужен работающий код, это да. Но он мне нужен работающий и простой, и я не хочу лопатить море подозрительных решений, зачастую с багами, которые часто реализуют не то, что мне надо, а зачастую выдают неработающий код. Банальные вещи (темплаты) действительно можно либо легко найти в первой десятке ссылок, либо АИ выдаст их по запросу. Но какие-то специальные решения всегда проще сделать самому - мне АИ редко выдавал рабочий код под мою задачу.
Можно и дальше пойти. Пишете вы код, а на втором мониторе окошко: "о, какой интересный код написали, молодец! Перешлю-ка я его тихонько дяде Васе, он над похожей проблемой уже 2й год бьется и решить не может, а ему ваш код пригодится."
Интересно пилит: попробовал сгеренить ирландский танец без скрипки, но на гитаре и пианино - ужаснулся. Звук жуткий - скорее на пиле кто-то пытается что-то играть. Видимо, это была гитара. А вообще - забавные вещи генерит, текст понимает.
Явления может быть и разные, но все они получаются из одних волновых уравнений, а поэтому очень похожи - грубо говоря, в одном случае в правой части волнового уравнения стоит непрерывная функция, а в другом - дискретная (сумма дельта-функций, грубо говоря). В рамках волновой оптики (не геометрической) дифракция может считаться в том числе через интерференцию, только интегралы будут вместо сумм. Или интерференцию можно посчитать через дифракцию, просто под интегралом будут дельта-функции, и интеграл выродится в сумму.
Фейнман это показывал, курс лекций по физике, третий том, глава 30, параграф 1. Он эти два термина вообще не различал - это одно и то же. Просто термин "дифракция" используют чаще в применении к интегралам (непрерывным источникам), а "интерференция" - к суммам (дискретным источникам). А физический смысл у них одинаков - суммирование волн от различных источников с учетом фаз и поляризаций.
Но вообще, поскольку интеграл - операция более общая, чем сумма, да и бывают дискретно-непрерывные источники (например мачты на холме или три тополя на Плющихе), которые проще описывать через интегралы, я-бы проголосовал за интерференцию, как частный случай дифракции. Хотя принципиальной физической разницы между ними нет.
Так все-таки где CFG-scale в алгоритме SD, и как оно работает с математической точки зрения? За статьи и доки спасибо, но вы обещали "Самое понятное объяснения"
Насчет умножения - это зависит от того, какой тип внимания вы используете, там их много разных вариантов (https://arxiv.org/abs/1508.04025v5). Если вы посмотрите, на (https://arxiv.org/pdf/1706.03762.pdf , eq.1), то там видно, что максимум софтмакса достигается тогда, когда Q является перестановкой K. По-моему, умножения как такового там нет, просто очень хитрый подбор оптимальной перестановки координат вектора V. Хотя я могу ошибаться. Но в той-же location-based attention (https://arxiv.org/abs/1508.04025v5, eq.8) вообще этот перестановочный характер внимания очевиден: никакого умножения там нет, просто подбор матрицы оптимальной перестановки координат.
А главное, по теории (универсальная теорема аппроксимации, теорема Колмогорова-Арнольда и т.д.) умножение входов не может являться базовой бинарной операцией, позволяющей проводить универсальную аппроксимацию, там в УТА допустимо в качестве бинарной операции только сложение, и это доказано. Поэтому нейроны и свертки в нейронных сетях можно, а умножения каналов - нельзя, иначе аппроксимация не сойдется. Я конечно могу ошибаться, но вижу это так.
Насколько я понимаю, в трансформере профит идет за счет многоголовости внимания. По факту на каждом многоголовом внимании вы тренируете не одну сеть, а их ансамбль, где каждой сети соответствует своя голова внимания. Этот ансамбль дальше разгребается (уточняется, комбинируется) следующим слоем, то есть фактически многоголовое внимание - это стекинг из простых одноголовых сетей, за счет стекинга и профит. Хотя я могу ошибаться.
С вниманием все может объясняться с такой точки зрения: самая простая интерпретация внимания - это оптимальная перестановка значений входной величины (немонотонное преобразование), и поэтому если за вниманием стоит простая модель, типа регрессии (или полносвязного слоя, например), регрессия будет работать эффективнее, чем без внимания. Если за вниманием стоит модель более сложная, чем регрессия - возможно внимание и не даст такого сильного эффекта, как в случае с регрессией, но эффект все-равно по идее должен быть не хуже (предполагаем, что мы можем обучить корректно это внимание, а здесь дополнительные свободные параметры требуют дополнительного объема датасета и более аккуратной тренировки. И конечно помним, что "не хуже" не означает "лучше", и поэтому нет гарантии, что увеличение параметров/добавление внимания даст эффект) - для любой последующей сети должна существовать оптимальная перестановка входных значений, при которой модель работает наилучшим образом, хотя возможно внимание в каких-то слоях работает впустую. Поэтому мне внимание нравится - его использование иногда позволяет мне использовать более простые сети после него, хотя с очень сложными сетями я его не использовал.
И статья интересная, спасибо - сети сейчас действительно бурно растут в смысле не только результатов, но и размера. И уже не всегда понятно - стоит предлагаемое увеличение размеров сети полученных результатов, или нет: может 99% элементов сети работает вхолостую. Мне приходилось сталкиваться со случаями, когда сильное увеличение размера сети не приводило к улучшению результатов, а иногда и ухудшало их.
Хорошо, что вы еще не за полярным кругом. Там этого восходно-закатного солнечного света вообще почти нет, ни зимой, ни летом - солнце то круги нарезает над головой, то под ногами.
Честно - не знаю, возможно вы действительно правы, и ваш метод эффективен. Особенно с нейронкой, как я уже говорил - он мне понравился - просто и эффективно.
Но всегда сети сравниваются на одинаковых обучающих и тестовых датасетах и одинаковых метриках. Метрики вы уравняли, но насколько мне известно, 15М датасет дает не меньшую точность, чем 1М, просто за счет большего объема обучающего датасета. Поэтому я-бы обучил ваше решение на том, на котором тренировали Чанг и Чен и сравнил результаты. Насколько мне известно, именно этого требуют журналы для публикации решений.
Возможно вы правы. В принципе даже есть работа Sonoda&Murata,2017, по которой ваше предложение можно обосновать (использование квадратичной активации), но тогда архитектура должна включать не только внимание, но и skip-connection с какими-то полносвязными слоями ( [a+b]^2=2ab(внимание)+a^2+b^2 (skip с полносвязным слоем)), а их вроде нет в архитектурах со вниманием, хотя я конечно могу ошибаться.
Поэтому и публикация в mdpi, а не в nature, cell или lancet.
del
Наверное невозможно, но рекомендательные системы как-то работают.
Средневзвешанный. Я часто находил в сети куски кодов, из которых собиралось предлагаемое мне нерабочее решение.
Формально да. Просто на гитхабе есть приватные и открытые проекты. Пересылка рабочего кода программе (неважно какой) увеличивает количество источников возможных несогласованных утечек кода в случае, если ваш проект приватен.
К сожалению, тут разные подходы. Мне конечно нужен работающий код, это да. Но он мне нужен работающий и простой, и я не хочу лопатить море подозрительных решений, зачастую с багами, которые часто реализуют не то, что мне надо, а зачастую выдают неработающий код. Банальные вещи (темплаты) действительно можно либо легко найти в первой десятке ссылок, либо АИ выдаст их по запросу. Но какие-то специальные решения всегда проще сделать самому - мне АИ редко выдавал рабочий код под мою задачу.
Можно и дальше пойти. Пишете вы код, а на втором мониторе окошко: "о, какой интересный код написали, молодец! Перешлю-ка я его тихонько дяде Васе, он над похожей проблемой уже 2й год бьется и решить не может, а ему ваш код пригодится."
Кожаных мешков заменят на ржавые железяки, а им смартфоны не нужны - будут по интернету общаться. По 8G.
Интересно пилит: попробовал сгеренить ирландский танец без скрипки, но на гитаре и пианино - ужаснулся. Звук жуткий - скорее на пиле кто-то пытается что-то играть. Видимо, это была гитара. А вообще - забавные вещи генерит, текст понимает.
А где CIFG брали, сами писали? На чем сеть реализовывали?
Явления может быть и разные, но все они получаются из одних волновых уравнений, а поэтому очень похожи - грубо говоря, в одном случае в правой части волнового уравнения стоит непрерывная функция, а в другом - дискретная (сумма дельта-функций, грубо говоря). В рамках волновой оптики (не геометрической) дифракция может считаться в том числе через интерференцию, только интегралы будут вместо сумм. Или интерференцию можно посчитать через дифракцию, просто под интегралом будут дельта-функции, и интеграл выродится в сумму.
Фейнман это показывал, курс лекций по физике, третий том, глава 30, параграф 1. Он эти два термина вообще не различал - это одно и то же. Просто термин "дифракция" используют чаще в применении к интегралам (непрерывным источникам), а "интерференция" - к суммам (дискретным источникам). А физический смысл у них одинаков - суммирование волн от различных источников с учетом фаз и поляризаций.
Но вообще, поскольку интеграл - операция более общая, чем сумма, да и бывают дискретно-непрерывные источники (например мачты на холме или три тополя на Плющихе), которые проще описывать через интегралы, я-бы проголосовал за интерференцию, как частный случай дифракции. Хотя принципиальной физической разницы между ними нет.
Написали достаточно, а объяснили немного
Так все-таки где CFG-scale в алгоритме SD, и как оно работает с математической точки зрения? За статьи и доки спасибо, но вы обещали "Самое понятное объяснения"
Насчет умножения - это зависит от того, какой тип внимания вы используете, там их много разных вариантов (https://arxiv.org/abs/1508.04025v5). Если вы посмотрите, на (https://arxiv.org/pdf/1706.03762.pdf , eq.1), то там видно, что максимум софтмакса достигается тогда, когда Q является перестановкой K. По-моему, умножения как такового там нет, просто очень хитрый подбор оптимальной перестановки координат вектора V. Хотя я могу ошибаться. Но в той-же location-based attention (https://arxiv.org/abs/1508.04025v5, eq.8) вообще этот перестановочный характер внимания очевиден: никакого умножения там нет, просто подбор матрицы оптимальной перестановки координат.
А главное, по теории (универсальная теорема аппроксимации, теорема Колмогорова-Арнольда и т.д.) умножение входов не может являться базовой бинарной операцией, позволяющей проводить универсальную аппроксимацию, там в УТА допустимо в качестве бинарной операции только сложение, и это доказано. Поэтому нейроны и свертки в нейронных сетях можно, а умножения каналов - нельзя, иначе аппроксимация не сойдется. Я конечно могу ошибаться, но вижу это так.
Насколько я понимаю, в трансформере профит идет за счет многоголовости внимания. По факту на каждом многоголовом внимании вы тренируете не одну сеть, а их ансамбль, где каждой сети соответствует своя голова внимания. Этот ансамбль дальше разгребается (уточняется, комбинируется) следующим слоем, то есть фактически многоголовое внимание - это стекинг из простых одноголовых сетей, за счет стекинга и профит. Хотя я могу ошибаться.
С вниманием все может объясняться с такой точки зрения: самая простая интерпретация внимания - это оптимальная перестановка значений входной величины (немонотонное преобразование), и поэтому если за вниманием стоит простая модель, типа регрессии (или полносвязного слоя, например), регрессия будет работать эффективнее, чем без внимания. Если за вниманием стоит модель более сложная, чем регрессия - возможно внимание и не даст такого сильного эффекта, как в случае с регрессией, но эффект все-равно по идее должен быть не хуже (предполагаем, что мы можем обучить корректно это внимание, а здесь дополнительные свободные параметры требуют дополнительного объема датасета и более аккуратной тренировки. И конечно помним, что "не хуже" не означает "лучше", и поэтому нет гарантии, что увеличение параметров/добавление внимания даст эффект) - для любой последующей сети должна существовать оптимальная перестановка входных значений, при которой модель работает наилучшим образом, хотя возможно внимание в каких-то слоях работает впустую. Поэтому мне внимание нравится - его использование иногда позволяет мне использовать более простые сети после него, хотя с очень сложными сетями я его не использовал.
И статья интересная, спасибо - сети сейчас действительно бурно растут в смысле не только результатов, но и размера. И уже не всегда понятно - стоит предлагаемое увеличение размеров сети полученных результатов, или нет: может 99% элементов сети работает вхолостую. Мне приходилось сталкиваться со случаями, когда сильное увеличение размера сети не приводило к улучшению результатов, а иногда и ухудшало их.
Хорошо, что вы еще не за полярным кругом. Там этого восходно-закатного солнечного света вообще почти нет, ни зимой, ни летом - солнце то круги нарезает над головой, то под ногами.
Честно - не знаю, возможно вы действительно правы, и ваш метод эффективен. Особенно с нейронкой, как я уже говорил - он мне понравился - просто и эффективно.
Но всегда сети сравниваются на одинаковых обучающих и тестовых датасетах и одинаковых метриках. Метрики вы уравняли, но насколько мне известно, 15М датасет дает не меньшую точность, чем 1М, просто за счет большего объема обучающего датасета. Поэтому я-бы обучил ваше решение на том, на котором тренировали Чанг и Чен и сравнил результаты. Насколько мне известно, именно этого требуют журналы для публикации решений.
del