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

Эта идея «минимальной схемы» не давала мне покоя все это время. Что, если сама нейронная сеть является абстракцией слишком высокого уровня? Можно ли сформулировать процесс обучения в терминах схем?

В настоящее время только несколько компаний реализуют вычисления нейронных сетей аппаратно (например, RAIN). Другие просто выполняют умножение матриц на графических процессорах или эмулируют биологические нейроны в цифровой форме, потребляя огромную часть мощности. Винить их неправильно. У них есть практический инструмент, который может решить бизнес-задачи.

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

Низкая вычислительная мощность стала причиной «зимы» ИИ. При малом числе размерностей и небольших обучающих наборах обратное распространение дает довольно плохие результаты. Только современные графические процессоры с большими наборами данных демонстрируют, что при относительно высокой размерности обратное распространение дает почти любые небольшие потери. Это связано с тем простым (но не очевидным) фактом, что на огромном количестве измерений всегда есть направление, более близкое к глобальным оптимумам.

Это нейронная сеть с n входами и m выходами:

Каждый вход нейронной сети является значением. Это значение может быть представлено в виде набора битов. Каждый выход нейронной сети также является значением. Возьмем количество бит каждого входа или выхода, закодированное как k:

У нас есть преобразование N=nk бит в M=mk бит. Итак, в общем случае любая нейронная сеть является многомерной булевой функцией.

Я был большим поклонником нейронных сетей в университете в конце 2000-х. Это было время, когда графические процессоры еще не применялись к нейронным сетям, и мне приходилось покупать несколько компьютеров с мощными процессорами для обучения сетей. Это было очень медленно, неэффективно, и система стремилась попасть в локальные оптимумы.

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

Ян Гудфеллоу дает освежающе простой взгляд на то, что на самом деле делает обратное распространение, и дает надежду на возможное упрощение обучения. Многие другие также ищут простоты в базовых строительных блоках, таких как Стивен Вольфрам. Янн ЛеКун — большой адепт обучения на основе энергии. Эффективность вычислений в человеческом мозгу настолько впечатляет, что разумно предположить, что обучение с ограниченной энергией само по себе является огромным эволюционным преимуществом.

Я думаю об энергоэффективных сетях как о системе водопадных трубок: вы просто капаете воду на каждую ненулевую входную трубку, и в нижней части системы вы получаете необходимое распределение воды по выходам. Энергия не применяется, кроме гравитации (это просто видение, не обращайте внимания на незавершенную операцию НЕ):

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

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