Этот блок статей берет свое начало с этой лекции Ильи Суцкевера. Там он вообще рассматривает возможные решения для машинного обучения, акцентирует внимание на идее минимальной схемы и направляет ее на нейронные сети с обучением с обратным распространением.
Эта идея «минимальной схемы» не давала мне покоя все это время. Что, если сама нейронная сеть является абстракцией слишком высокого уровня? Можно ли сформулировать процесс обучения в терминах схем?
В настоящее время только несколько компаний реализуют вычисления нейронных сетей аппаратно (например, RAIN). Другие просто выполняют умножение матриц на графических процессорах или эмулируют биологические нейроны в цифровой форме, потребляя огромную часть мощности. Винить их неправильно. У них есть практический инструмент, который может решить бизнес-задачи.
Математика за спиной обучения распространению весьма неопределенна. Нет никаких гарантий достижения глобальных оптимумов во время обучения. Сеть потенциально всегда может застрять в локальных оптимумах.
Низкая вычислительная мощность стала причиной «зимы» ИИ. При малом числе размерностей и небольших обучающих наборах обратное распространение дает довольно плохие результаты. Только современные графические процессоры с большими наборами данных демонстрируют, что при относительно высокой размерности обратное распространение дает почти любые небольшие потери. Это связано с тем простым (но не очевидным) фактом, что на огромном количестве измерений всегда есть направление, более близкое к глобальным оптимумам.
Это нейронная сеть с n входами и m выходами:
Каждый вход нейронной сети является значением. Это значение может быть представлено в виде набора битов. Каждый выход нейронной сети также является значением. Возьмем количество бит каждого входа или выхода, закодированное как k:
У нас есть преобразование N=n⋅k бит в M=m⋅k бит. Итак, в общем случае любая нейронная сеть является многомерной булевой функцией.
Я был большим поклонником нейронных сетей в университете в конце 2000-х. Это было время, когда графические процессоры еще не применялись к нейронным сетям, и мне приходилось покупать несколько компьютеров с мощными процессорами для обучения сетей. Это было очень медленно, неэффективно, и система стремилась попасть в локальные оптимумы.
Математика не изменилась с того времени. Но методы вычислительного упрощения нейронных сетей делают это. Обрезка, снижение точности, лотерейные билеты, даже бинаризация нейронных сетей дает нам намного меньшие сети, которые имеют почти такую же точность, как и исходные. Пока нет твердой теории, стоящей за этими оптимизациями.
Ян Гудфеллоу дает освежающе простой взгляд на то, что на самом деле делает обратное распространение, и дает надежду на возможное упрощение обучения. Многие другие также ищут простоты в базовых строительных блоках, таких как Стивен Вольфрам. Янн ЛеКун — большой адепт обучения на основе энергии. Эффективность вычислений в человеческом мозгу настолько впечатляет, что разумно предположить, что обучение с ограниченной энергией само по себе является огромным эволюционным преимуществом.
Я думаю об энергоэффективных сетях как о системе водопадных трубок: вы просто капаете воду на каждую ненулевую входную трубку, и в нижней части системы вы получаете необходимое распределение воды по выходам. Энергия не применяется, кроме гравитации (это просто видение, не обращайте внимания на незавершенную операцию НЕ):
Ученые уже построили подобную физическую систему на основе света: они просто применили фильтры множественного преломления к входным данным.
В следующей статье я обсуждаю процесс обучения и поиск оптимальной бинарной схемы в терминах многомерных булевых функций.