Мысленный эксперимент

Что такое УАТ?

Что такое теорема универсального приближения? Ну, с точки зрения непрофессионала, UAT просто означает предоставление нейронной сети с одним скрытым слоем с достаточным количеством нейронов. Он может аппроксимировать (или точно имитировать) любую непрерывную функцию в заданном диапазоне входных данных. Это означает, что нейронная сеть с одним скрытым слоем является предельно гибким аппроксиматором функций. Может быть, слишком гибкий.

Усвоенный урок

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

Идем глубже

Что это для вас значит, если вы разработчик программного обеспечения? "Рефакторинг кода"! Разработчики реорганизуют свой код, помещая повторяющиеся фрагменты кода в функции и максимально повторно используя их. Более чистые коды обычно являются лучшими кодами. Глубокие нейронные сети делают то же самое. Наличие большего количества слоев позволяет сети лучше «рефакторить» себя и изучать более общие шаблоны, таким образом, более эффективно достигая той же цели. Это приводит к лучшим (как по производительности, так и по эффективности) моделям.

Программное обеспечение 1.0 против программного обеспечения 2.0

Какие еще методы разработки программного обеспечения мы можем применить к машинному обучению? Точнее, то, что мы узнали из Программного обеспечения 1.0, можно применить к Программному обеспечению 2.0? (Если вы не знакомы с концепцией Software 2.0, настоятельно рекомендую посмотреть представленное ниже видео от Andrej Karpathy, не совсем применимое ко всему, но определенно заслуживающее внимания и подкреплённое успехом Tesla!)

По словам Карпати, то, что мы сейчас делаем в области разработки программного обеспечения, где талантливые люди пишут код для выполнения задач и решения проблемы, — это «программное обеспечение 1.0», где люди вносят свой вклад в процесс, напрямую сообщая компьютеру, как выполнять каждый шаг. В новой парадигме «Программного обеспечения 2.0», где машинное обучение и глубокое обучение получили широкое распространение, человек вносит свой вклад, предоставляя огромное количество примеров того, как люди что-то делают в виде набора данных, а компьютер вместе с моделями выясняет, как это сделать. сделать это автоматически. Фактически, большая часть системы автопилота Tesla основана на моделях глубокого обучения.

Некоторые люди до сих пор скептически относятся к тому, будет ли у подхода «Программное обеспечение 2.0» светлое будущее. Наш путь от 1.0 до 2.0 все еще обсуждается. Повторное применение мудрости традиционной разработки программного обеспечения все еще может быть хорошим направлением для исследователей и практиков машинного обучения. Время веселья!

Если вы хотите узнать больше об универсальной теореме приближения, вы можете обратиться к моей статье ниже:

От Леголенда к нейронным сетям: Теорема универсального приближения в терминах непрофессионала | Майкл Ли | декабрь 2020 г. | На пути к науке о данных