- BrainTools - https://www.braintools.ru -

Архитектура «Обратного Хэша»: Нейросети без умножения

Современный Deep Learning уперся в производительность вычислений с плавающей точкой и пропускную способность памати. Мы предлагаем архитектуру, где нейрон [1] — это не сумма произведений, а битовая хэш-функция. Ноль умножений, ноль сложений. Только логика [2] и статистика.

Концепт: Нейрон как компаратор

Классический нейрон [3]: Activation(Sum(Weight * Input))
Наш нейрон: Output = A[ popcount( Input XOR Mask ) ]

Разберем формулу:

  1. Input (64 бита): Входные данные.

  2. Mask (64 бита): «Взгляд» нейрона. Фиксированный случайный шаблон.

  3. XOR: Битовое сравнение. 0 — совпадение, 1 — отличие.

  4. popcount: Аппаратная инструкция процессора (Population Count). Считает количество единиц в слове. Это Дистанция Хэмминга — насколько вход отличается от маски (число от 0 до 64).

  5. A […] (LUT): Массив отклика. Это память [4] нейрона, где хранится его «опыт».

Массив A: Эволюция от статистики к биту

Самое важное — как живет и меняется массив A.

1. Обучение (Накопление) *Концепт

На этапе обучения [5] A — это массив счетчиков (например, uint16 размером 65 ячеек).

  • Подаем пример.

  • Вычисляем дистанцию dist = popcount( Input XOR Mask ).

  • Если пример «полезный» — делаем A[dist]++.

  • Мы просто копим гистограмму: при каком расстоянии Хэмминга этот нейрон должен активироваться.

2. Компиляция (Порог)

Обучение закончено. Мы превращаем «жирные» счетчики в чистую логику.
Применяем Threshold:

  • Если A[i] > порог — записываем 1.

  • Иначе — 0.

Теперь массив A — это набор битов. Так как индексов всего 65 (от 0 до 64), весь массив A сжимается в одно 64-битное целое число.

3. Инференс (Скорость)

В рабочем режиме нейрон — это два регистра процессора: Mask и сжатый A.
Логика умещается в 4 инструкции ассемблера:

  1. XOR (Сравнить маску и вход)

  2. POPCNT (Получить дистанцию)

  3. SHIFT (Сдвинуть сжатый массив A на величину дистанции)

  4. AND (Взять младший бит)

Никаких чтений из оперативной памяти. Никакого FPU. Теоретическая производительность ограничена только частотой процессора.

P.S.

Это концепт. Прямо сейчас архитектура существует в виде математической модели.
Следующим этапом здесь появится ссылка на Web-демо (MNIST 28×28), где можно будет нарисовать цифру и увидеть работу XOR-нейронов в реальном времени в браузере. (планируется ранговое кодированрие входа)

Но у меня только две руки. Если вам интересна тема Bitwise AI, низкоуровневой оптимизации (JS/WASM/C++) – буду рад обсуждению и помощи в создании Proof of Concept. Возможно потребуется доработка логики обучения

Let the bitwise revolution begin!

Автор: mozg4d

Источник [6]


Сайт-источник BrainTools: https://www.braintools.ru

Путь до страницы источника: https://www.braintools.ru/article/25618

URLs in this post:

[1] нейрон: http://www.braintools.ru/article/9161

[2] логика: http://www.braintools.ru/article/7640

[3] нейрон: http://www.braintools.ru/article/6020

[4] память: http://www.braintools.ru/article/4140

[5] обучения: http://www.braintools.ru/article/5125

[6] Источник: https://habr.com/ru/articles/996268/?utm_source=habrahabr&utm_medium=rss&utm_campaign=996268

www.BrainTools.ru

Rambler's Top100