Архитектура «Обратного Хэша»: Нейросети без умножения. BNN.. BNN. deep learning.. BNN. deep learning. FPGA.. BNN. deep learning. FPGA. machine learning.. BNN. deep learning. FPGA. machine learning. xor.. BNN. deep learning. FPGA. machine learning. xor. Алгоритмы.. BNN. deep learning. FPGA. machine learning. xor. Алгоритмы. битовые операции.. BNN. deep learning. FPGA. machine learning. xor. Алгоритмы. битовые операции. искусственный интеллект.. BNN. deep learning. FPGA. machine learning. xor. Алгоритмы. битовые операции. искусственный интеллект. Машинное обучение.. BNN. deep learning. FPGA. machine learning. xor. Алгоритмы. битовые операции. искусственный интеллект. Машинное обучение. нейросети.. BNN. deep learning. FPGA. machine learning. xor. Алгоритмы. битовые операции. искусственный интеллект. Машинное обучение. нейросети. оптимизация.. BNN. deep learning. FPGA. machine learning. xor. Алгоритмы. битовые операции. искусственный интеллект. Машинное обучение. нейросети. оптимизация. Системное программирование.

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

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

Классический нейрон: 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): Массив отклика. Это память нейрона, где хранится его «опыт».

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

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

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

На этапе обучения 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

Источник

Rambler's Top100