Иерархия Хомского

Aug 15, 2024 01:09

https://arxiv.org/abs/2207.02098

We demonstrate that grouping tasks according to the Chomsky hierarchy allows us to forecast whether certain architectures will be able to generalize to out-of-distribution inputs. This includes negative results where even extensive amounts of data and ( Read more... )

нейронные сети, языковые модели, языки программирования, разборщики

Leave a comment

Comments 15

alll August 14 2024, 22:22:41 UTC

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

Человеку мы тоже можем предъявить всякого, об чём теоремы о неполноте намекают нам уж скоро век. Да и непосредственно с глубиной стека у среднестатистического человека похоже очень так себе, см. "тройная спираль Эриксона".

Reply

thesz August 14 2024, 22:32:58 UTC
Я сравниваю с нейронкой не человека, а символьные методы.

Reply

alll August 15 2024, 07:34:40 UTC

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

Reply

thesz August 14 2024, 22:34:05 UTC
У меня ссылки в комментариях разрешены, можно делиться, чтобы не пришлось читателям самим искать.

Reply


p2004r August 15 2024, 03:28:49 UTC
НС скорее "не могут" построить "алгоритмическую модель", но построить "интерполяционную модель" сколько угодно сложную похоже вполне способны. И "невязка" в этой модели будет лучше чем мы "сделаем руками" (ну кроме совсем уж "аналитических случаев").

Reply

thesz August 15 2024, 04:10:32 UTC
Я сейчас вот это читаю: https://ar5iv.labs.arxiv.org/html/1911.11423

"the more work humans put in to inflexibly defining a machine learning model the more likely we’ve accidentally handicapped it."

Вроде бы, то, что вы говорите.

Но, вот, лично я наблюдаю обратное. Даже статья, ссылку на которую я дал в этом комментарии, выполняет "негибкое определение модели машинного обучения."

То же и с "невязкой" - "невязка" символьных вычислений, "сделанных руками," будет меньше, чем у модели машинного обучения.

Reply

p2004r August 15 2024, 04:51:57 UTC

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

НС (да и машинному обучению в целом) достаточно наблюдения за "достаточно длинной историей" наблюдаемой системы, полную копию поведения которой (в той части системы которая с выбранной точки сбора истории "наблюдаема-управляема") НС построит.

PS

В принципе если для этого "четко сформулированного идеального контекста" построить "симулятор контекста", то НС решит задачу и в его рамках тоже. Насколько это эффективно? Наверное после "определенной степени нелинейности контекста задачи" человек не справится, а простого масштабируемого "линейного решения" будет недостаточно.

Reply

thesz August 15 2024, 05:49:13 UTC
Простая задача - заставить НС выводить типы а-ля алгоритм Хиндли-Милнера.

Сможете накидать решение на НС? Ну, как корпус данных для обучения получить, архитектуру нейросети и так далее.

Reply


balmerdx August 15 2024, 13:33:48 UTC

Контекстно зависимое понимание - это жеж первое, чем начали хвастаться разработчики нейросетей-трансформеров.

Думаю скобки это непринципиальное ограничение. Лично я рекурсию вставить в нейросеть смог.

К тому-же зачем нейросети понимать всю программу? Ей достаточно понимать, что происходит в текущей функции и общий контекст. Т.е. это не так много по объёму.

Reply

thesz August 15 2024, 15:29:41 UTC
> Лично я рекурсию вставить в нейросеть смог.

Поделитесь. Что, смогла породить строку по грамматике вида b := ''(' b ')' | '[' b ']' | '{' b '}' | ε?

> К тому-же зачем нейросети понимать всю программу? Ей достаточно понимать, что происходит в текущей функции и общий контекст. Т.е. это не так много по объёму.

В программе, над которой я сейчас работаю (сервер БД с историей), надо понимать, что происходит в трёх объёмных местах. В одном месте происходит преобразование с оптимизацией, после чего данные передаются в другую часть, где происходит преобразование с оптимизацией, и далее всё отдаётся на выполнение, где происходит, как вы уже догадались, есть ещё одно преобразование с оптимизацией.

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

Reply


Leave a comment

Up