@x7CFE только что опубликовал свою научную работу.
Дико поздравляем!
Обычные нейросети — это такой суп, где знания, реддит, математика, ютуберы и мракобесы перемешаны в однородную массу. В работе предлагается не смешивать тушёнку со сгущёнкой, а делать модель из кусочков, где каждый отвечает за конкретные воспоминания.
1. Исходные данные переводятся в разреженные битовые векторы. Главное правило кодирования — структурная схожесть. Например, раз слова "бежать" и "бежал" имеют общий корень, то их битовые векторы тоже должны иметь общие единицы в одних и тех же позициях.
Делается умное кодирование: слова разбиваются на морфемы, числа — по разрядам и т.д. Для сложных данных (например, циклических координат) используются более хитрые геометрические методы, чтобы, например, 359 градусов было похоже на 0 градусов.
То есть вам нужны движки правил для разметки исходных данных.
2. Дальше эти вектора надо организовать. Все случайно разбрасываются по двухмерному пространству. Дальше оптимизатор собирает вектора в похожие кучи. Хаотичный набор превращается в структурированную карту понятий, где похожие концепты образуют кластеры, а над ними появляются детекторы — описания кластеров.
3. Эмбед (структурное вложение) — это новый битовый вектор, который описывает не сам исходный стимул (слово из промпта), а то, какие детекторы (кучи векторов) на карте он активировал.
Это другая модель обучения.
Поскольку видно, к каким кучам имеет отношение вектор, можно понять его значение. Модель перестает быть чёрным ящиком. Память модели — это не сумма хрен пойми как взятых и сложенных чисел во время обучения, а конкретные отсылки к кучам смыслов. Плохое воспоминание можно удалить точечно, не перестраивая всю модель. Можно взять две обученные модели (карты куч) и объединить их в одну, просто переразложив их точки в общем пространстве.
Модель устойчивее к галлюцинациям, потому что её работа основана на поиске соответствия в памяти, а не на вероятностной генерации. Если точного соответствия нет, это можно понять по слабой и хаотичной активации карты.
Процесс похоже на работу коры мозга, где нейроны, отвечающие за похожие функции, тоже организованы в группы. Получаемые карты понятий очень похожи на организацию зрительной коры млеков.
Протестировали на двух задачах:
1. Структура слов. Взяли корпус текстов и разбили все слова на все возможные фрагменты. Сначала карта получалась плохой: например, кластеры корней не формировались. Они меняли правила кодирования (давали больше веса битам, отвечающим за корни) и перезапускали раскладку. Получилась карта, где точки сгруппировались в кластеры, соответствующие корням, суффиксам, приставкам и окончаниям. Когда модели показывают новое слово, например, "красивая", на карте активируются кластеры, отвечающие за "крас-", "-ив-", "-ая". Эмбед — описание, какие из кластеров активировались. Модель понимает структуру слова, даже если видит его впервые.
2. Взяли медицинские изображения срезов ткани (опухоли), где разными цветами подсвечены белки. Нужно было классифицировать клетки по набору их активных белков. Модель разложила точки на карте так, что клетки со схожим набором белков оказались рядом. Например, все клетки, находящиеся в фазе деления (у них активны маркеры Ki67 и PCNA), образовали один чёткий кластер. Нашлись и неочевидные закономерности, например, Т-киллеры экспрессируют маркеры, характерные для другого типа.
Получился, фактически, нечёткий поиск. Но:
— Можно понять что там происходит
— Можно менять работу модели, отсекая или добавляя дискретный элемент
— Раз есть заранее известный физический движок, можно грузить куда меньшие датасеты для обучения — по сету не надо открывать принципы устройства мира заново
— От переизбытка данных часть не забывается
Но при этом вам нужно откуда-то брать правила работы мира. Это самое сложное.
Это не замена обычным нейросетям — новый контент по аналогии делать будет сложнее — но это хороший инструмент для ансамблей решений.
Ещё пояснения автора вот здесь у нас в комментариях.
--
Вступайте в ряды Фурье! Cоветские 9витеиташке добьют эту модель
custom: 5
👍: 134
🔥: 77
❤: 50
❤🔥: 10
👏: 8
🎉: 7