
Нейросети работают на GPU — это вроде бы очевидно. А что, если я вас скажу, что аж в 2018 году группа из UCLA напечатала нейросеть на 3D‑принтере из обычного пластика. Пять пластин. И никаких транзисторов. Никакой памяти. Никакого электричества. Причем, точность распознавания рукописных цифр — 91.75%.
И оно, чудо это — работало.
Итак, что мы имеем.
Значит, выпуклая линза — аналоговый вычислитель. Когда через нее проходит когерентный свет, она выполняет двумерное пространственное преобразование Фурье над входным волновым фронтом. Физически, получается, это распределение комплексной амплитуды в задней фокальной плоскости — это Фурье‑образ входного изображения.
Это корректная операция в рамках параксиального приближения — она выполняется за время прохождения света через стекло.
Далее — матричное умножение. Собственно, частный случай этого процесса. В схеме 4f‑коррелятора две линзы разделены суммой своих фокусных расстояний — расстояние между ними 2f, полная длина системы 4f. Первая линза переводит сигнал в частотную область. Маска или пространственный световой модулятор применяет веса — это и есть умножение. Вторая линза возвращает результат обратно. Вся операция — один проход фотонов.
Скорость — скорость света. Энергия — только на источник фотонов, а не на само вычисление.
Так, а что за пять пластин из пластика?
Синь Линь и Айдоган Озкан из UCLA напечатали оптическую нейросеть D²NN (Diffractive Deep Neural Network) на обычном 3D‑принтере. Пять пластиковых пластин с микроструктурой поверхности, выстроенных в ряд в пучке терагерцового излучения.

Каждая пластина — один слой нейросети. Фазовая модуляция поверхности задает веса. Дифракция между пластинами выполняет умножение на весовую матрицу. Интерференция на выходе — результат классификации.
Обучение шло, понятное дело, на GPU — обратное распространение считалось цифровым методом, результирующие веса фиксировались в геометрии пластин при печати. После этого никакого электричества. Пластины просто стоят и классифицируют.
Установка собрана на стандартной оптической скамье. Слева стоит терагерцовый излучатель на 0.4 ТГц (длина волны 0.75 мм), справа — сенсорный экран, поделенный на 10 секторов от 0 до 9. Между ними на рельсе стоят пять квадратных пластинок 8×8 сантиметров из полупрозрачного пластика.
Конструкция совсем простая. Без проводов.

Перед первой пластиной ставят металлическую трафаретную маску — допустим, прорезанную цифру «3». Свет проходит сквозь трафарет и приобретает ее форму. Это входной вектор.
Дальше волна врезается в первую пластину. Поверхность пластины не гладкая — она разбита на тысячи микроскопических пикселей разной толщины. Свет проходит сквозь толстый пластик дольше, чем сквозь тонкий. Фаза волны искажается в каждой точке. Получается, своеобразная физическая аналогия умножения на веса первого слоя.
Выйдя из пластины, свет летит по воздуху к следующей. По дороге волны от каждого пикселя расплываются и накладываются друг на друга. Интерференция в свободном пространстве работает в точности как полносвязный слой: сигнал от каждой точки первой пластины долетает до каждой точки второй.
Пять пластин подряд — пять слоев нейросети.
На выходе волны складываются в узор из светлых и темных пятен. Если на входе была маска с цифрой «3», интерференция на выходе фокусирует основной пучок света ровно в сектор номер 3 на финальном экране.
И никакого процессора. Свет просто прошел сквозь рельефный пластик и сфокусировался там, где надо.
ОК, а причем тут нейросеть?
Вопрос логичный. Ну и где, дорогой наш Артур, тут нейроны, если это просто рельефные куски пластмассы?
Математически любая искусственная нейросеть — это три вещи:
1. Нейроны (элементы, принимающие сигнал).
2. Веса (коэффициенты, на которые сигнал умножается).
3. Связи (сумматоры, сопоставляющие все выходы со всеми входами следующего слоя).
В обычной нейросети на Python это матричные операции: Y=WxX.
В пластиковой D²NN все это реализовано на уровне физики волн:
Нейрон — это один микроскопический пиксель на поверхности пластины (и на каждой пластине их около 80 000 штук).
Вес нейрона (W) — это толщина пластика в этом пикселе. Пластик задерживает световую волну, меняя ее фазу. Чем толще пластик — тем больше фазовый сдвиг. Это точный аналог умножения сигнала на коэффициент.
Полносвязный слой — это воздух между пластинами. Из‑за дифракции свет от каждого пикселя первой пластины расходится конусом и долетает до каждого пикселя следующей пластины. В каждой точке волны накладываются. Сумма светов от сотен точек — это и есть оператор сложения в матричном умножении.
Пять пластин подряд — это пять последовательных слоев со своими матрицами весов.
А, да, главное — обучение. Толщину каждого пикселя не выдумывали из головы. Сначала точно такую же математическую модель дифракции обучили на GPU через обычный градиентный спуск на тысячах цифр MNIST. Модель выучила, какую фазу должен добавлять каждый пиксель. После этого полученную матрицу весов перевели в микроны толщины и заправили в 3D‑принтер. Такое вот читерство, ага.
И получается, что физика пространства делает ровно то же вычисление, что и тензорный процессор, просто вместо транзисторов работают фотоны.
И опять есть подвох
Оптические нейросети по физике — линейные системы. Уравнения Максвелла в обычных средах линейны. Несколько линейных слоев подряд всегда сворачиваются в одну матрицу.
Функции активации — ReLU, сигмоид — это нелинейности, без которых глубокие сети не работают.
Как пример, варианты, которые исследовали:
Электро‑оптический гибрид — часть фотонов конвертируется в электроны через фотодетектор, нелинейность применяется в электронике, сигнал возвращается в оптику. Да, работает, но убивает часть выигрыша в скорости.
Двухфотонное поглощение — нелинейный эффект в кремниевых и германиевых волноводах. Требует высокой плотности фотонов, маломощный.
Электромагнитно‑индуцированная прозрачность — атомарные пары рубидия дают оптическую нелинейность. Лаборатория, не чип.
Акусто‑оптика — бегущие звуковые волны меняют оптические свойства среды. Медленно по меркам фотоники.
До коммерческой замены, увы, ReLU ни один из вариантов не дошел.
Ну и обучение оптической нейросети — как мы поняли выше, всегда цифровая процедура. Обратное распространение ошибки требует точного градиента, динамического обновления весов и высокой точности промежуточных значений. Аналоговый оптический шум здесь мешает принципиально.
Схема всегда и везде будет такая — сначала ты обучаешь на GPU, получаешь веса, физически фиксируешь их в геометрии чипа или в управляющих напряжениях пространственного модулятора. После этого — только вывод.
Но, кстати, попытки сделать обратное распространение полностью оптическим существуют. Схемы с накачкой и зондирующим пучком, рассеянием, интерферометрами Маха‑Цендера. Но это все концептуальные демонстрации.
