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

Дома я первым делом включил компьютер. Долгое время это было первое, что я делал, входя в холостяцкое свое жилище, да и раньше, когда жил не один. Теперь зачастую я не подходил к компьютеру вовсе, возился с бумагами либо предпочитал книгу. Сегодня, едва скинув ботинки, и пальто, я вдавил квадратную кнопку включения системного блока и разложил толстую свою тетрадь слева от клавиатуры.

Когда система загрузилась я запустил среду программирования. Это была университетская лицензия, которую вообще-то нельзя было разворачивать на домашних рабочих станциях, однако многие сотрудники университета не пренебрегали такой возможностью. Пользоваться пиратским программным обеспечением в какой-то момент стало не совсем приличным.

Я не притрагивался к программному коду лабораторного стенда месяца три, оставляя его на откуп Анатолия с его лаборантом, и Коли. Но сегодня мне не терпелось забраться в самое нутро модели, казалось мне, что разгадка, сухое пятно в расползающейся луже, скрывается именно здесь.

Пока разворачивался исходный программный код Анатолия, который исправно рассылал он в почте, я заварил чаю, собрал пару бутербродов и прихватил пакет кефира. Ужин получился кривобокий, но на большее сегодня меня никак не хватало.

Набив рот и задумчиво жуя, я полистал страницы программного кода. Анатолий программировал аккуратно, с отступами и короткими комментариями, однако я немедленно утонул в сложных его переходах и циклах, которые загораживали, прятали от меня суть алгоритма.

Я обратился к тетради. Выискал с осторожностью функцию времени, вспомнил каждый шаг ее формирования. Ведь не один же я придумывал ее. Мне помогали Коля с Анатолием. Как же могли мы упустить такой значительный кусок, как итерации обучения нейронной сети?

Я повторил в тетради логику вычисления. Она была сложной и финальный результат, как и прежде, вовсе не очевидно выводился из череды вычислений и интегралов по итерациям смен состояний кубитов. Вот учет метки времени во входных данных, которая может быть пустой. Здесь я учитывал число слоев, зависящих в свою очередь от сложности входного сигнала и числа итераций учителя. Вот хитроумный переход, предложенный мною для интегрирования по числу предыдущих состояний по всем вычисленным вероятностям. Где же, где же терял я тот самый островок?

Я провозился до глубокой ночи. Монитор периодически гас, переходя в спящий режим и я на автомате двигал мышкой, чтобы разбудить его. До программирования я так и не добрался. Добился всего лишь того, что пропечатал вычислительный путь в голове и в коде с четкостью свежего клейма "тавро". Выжатый пакет кефира засыпал в пустой чашке из-под чая.

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

Я еще раз посмотрел на формулу функции времени. Все в ней было верно. Все нужные зависимости логически следовали одна из другой, выстраиваясь в интегралы и суммы. Ничего не упущено.

Зевая, я отложил уже ручку, когда подумал собственно об "учителе" — алгоритме обучения сети. Мы правили его, вносили изменения, он учитывал теперь метку времени, но и только. Как мы храним метку времени? Статично, так как все остальные входные данные? А ведь это совсем не верно, время определяет куда больше чем статичный входной параметр. Я схватил ручку и распахнул тетрадь.

Перейти на страницу:

Поиск

Книга жанров

Похожие книги