Изучение того, как человеческий язык влияет на искусственный интеллект

машинное обучение искусственный интеллект TensorFlow переводчик
Переводчик |
Редактор | Эмили

Если язык тесно связан с мыслью, то человеческий язык мог стать препятствием для свободного мышления: наши мысли часто пойманы в ловушку самим языком и не могут по-настоящему вырваться. Решение этой головоломки также довольно сложное, поскольку единственный способ обойти ее, похоже, заключается в поиске и исправлении недостатков нашего естественного языка — то, что мы можем сделать только «изнутри наружу» в языковой Задаче.

--Эндрю Брук, О знании и разуме

В области ИИ слово «ядро» имеет два значения — этакая двусмысленность, которая не является ни разным звуком, ни производным отношением, а имеет взаимосвязанные значения в смысловом поле.

Первое использование термина «ядро» относится к скользящему окну по N-мерной поверхности (например, двумерному изображению) для обнаружения признаков. Второй тип ядра, такой как β-ядро, относится к основным строительным блокам модели машинного обучения, которые можно комбинировать для построения более крупной общей архитектуры. Например, в исходном коде TensorFlow каталог core/kernels содержит сотни файлов, включая множество низкоуровневых операций, которые являются ядром TensorFlow.

Хотя обе версии термина «ядро» возникли в области обработки изображений, они превратились в разные концепции. Более интересным моментом является то, что два значения слова «ядро» в искусственном интеллекте — свертка и основные операции — повторно используют исходную многозначность слова «ядро». Ядро относится как к ядру (например, ядро ​​​​различных фруктов, β-ядро также имеет это значение), так и к небольшой единице, покрывающей поверхность (например, зерна кукурузы и альфа-частицы). В обоих случаях ядро ​​представляет собой какое-то семя или зерно, но мы делаем совершенно разные суждения в зависимости от контекста растений и рациона.

Для получения дополнительных галантерейных товаров, пожалуйста, обратите внимание на публичный аккаунт WeChat «AI Frontline» (ID: ai-front)

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

В сегодняшней статье я расскажу о «ядре» — широко используемом термине, который начал препятствовать инновациям в сообществе ИИ. Наконец, я также предложу несколько путей продвижения вперед, в том числе один из путей, который мы выбрали в нашем проекте машинного обучения Meshkan.

AlexNet, ядра α и распараллеливание

AlexNet выиграла в 2012 году ImageNet Large-Scale Visual Recognition Challenge с рекордной точностью, а ее архитектура подробно описана в статье «Использование глубоких сверточных нейронных сетей для классификации ImageNet». Авторы пишут: «Наша схема распараллеливания по сути эквивалентна размещению половины ядер (или нейронов) на каждом GPU; мы также реализуем еще один трюк, когда GPU находится только в определенных слоях для связи».

Две параллельные кривые свертки в AlexNet

С помощью этой статьи свертка стала основной движущей силой практических приложений в области искусственного интеллекта, начиная от распознавания изображений и заканчивая классификацией предложений и распознаванием речи. В настоящее время все основные библиотеки машинного обучения предоставляют сверточные опции «из коробки», и несколько сверточных (бета) ядер также были значительно оптимизированы. Но что интересно, стратегия распараллеливания AlexNet никогда не воспринималась всерьез и не популяризировалась в AI-сообществе — вероятно, потому, что в распоряжении людей обычно не так много графических процессоров NVIDIA.

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

Tensorflow, бета-ядра и компилятор XLA

В огромной документации проекта Tensorflow компилятор XLA, несомненно, является очень важным вариантом инкубации функций. «Преимущество XLA по сравнению со стандартным TensorFlow заключается в его способности объединять несколько операторов (слияние ядер) как минимум в несколько скомпилированных ядер», — написали в документации сопровождающие XLA (сокращение от Accelerated Linear Algebra). Опять же, обратите внимание на выражение ядра. здесь.

Показана визуализация операций сложения и умножения в пятислойной полностью связанной нейронной сети, сгенерированной серверной частью Meeshkan graphviz и визуализированной Gephi.

В то время как проект XLA дал убедительное изложение своей теории, на практике было мало отзывов об использовании компилятора и получении значительного ускорения, а наши собственные проекты не смогли этого добиться. Конечно, это не вина самого компилятора, а то, что компилятор подходит только для определенного типа модели машинного обучения. Это «слияние» очередей и ядер действительно имеет смысл только в том случае, если ваша полностью подключенная нейронная сеть разделена на отдельные пути, которые затем соединяются вместе — особенно для таких вещей, как Apache Spark, OpenCL и т. д. Когда инструмент используется, он может в полной мере использовать преимущества ускорения распространения и ресурсов. Однако следует признать, что слияние ядра в значительной степени неэффективно, поскольку текущие основные инструменты и спецификации машинного обучения не продвигают и не поощряют алгоритмы, гарантирующие, что данные обрабатываются по параллельным путям до слияния. Основные операции при распараллеливании (такие как скалярное произведение или умножение внутри свертки) уже выполняются высокооптимизированным C-кодом, не требующим дополнительного слияния. Другими словами, готовый механизм ядра в ИИ очень информативен, и мы можем решать проблемы, не копая глубоко. Это делает новые инструменты, такие как компилятор XLA, менее практичными, чем теоретическими.

Жизнь в эпоху ядра

Язык препятствует реализации интуиции и мешает нам рассматривать опыт непредвзято.

— Тина Рёк, Онтология процессов: спекулятивная философия бетона

Если вы согласны с тем, что использование слова «ядро» в двух разных контекстах негативно влияет на то, как думают о некоторых проблемах ИИ, тогда я свяжу два употребления этого слова и опишу реальную проблему. На самом деле два значения слова «ядро» связаны друг с другом в разных масштабах — даже самым мощным сборщикам CNN не нужно знать, какое ядро ​​использует Tensorflow, и наоборот — люди, которые оптимизируют ядра Tensorflow, Convolution могут никогда не трогать. Итак, какие проблемы это создает?

Если полисемия представляет собой семантический континуум, то «ядро» всегда будет существовать в пределах «фиксированного» или «застойного» интервала понимания. Напротив, мультикультурное слово «церковь» является инклюзивным, и его значение существует в единстве с пространственной и пространственной преемственностью: лютеранская церковь, подчеркивающая духовное измерение, и хельсинкские физические церкви, конечно, различны, но термин «церковь» по-прежнему помогает квалифицировать концептуальную единицу в соответствии с ее конкретным значением, то есть охватывающим как физическое пространство, так и духовное сообщество. Точно так же сверточное α-ядро — это геометрически постоянная единица, которая перемещается вдоль поверхности; β-ядро со скалярным произведением — это высокооптимизированная операция линейной алгебры, но оба они усиливают «фиксированный» элемент концепции машинного обучения. Эта фиксированность проистекает из ряда практических и теоретических соображений в машинном обучении - например, графические процессоры очень хорошо распараллеливают (практически) множество повторений одной и той же операции, и такая же слабая корреляция существует в оптике. Определите нейронную основу и свертку. реализовано в AlexNet (теоретическая). Конечным результатом, однако, является то, что машинное обучение, как правило, предварительно исправляет ядро, а затем запускает обучающий набор несколько раз, чтобы настроить его использование.

Скальная церковь в Хельсинки

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

Эти дизайнерские решения не так сложны в реализации, как может показаться. Только в этом месяце замечательная статья под названием «IMPALA: Масштабируемое распределенное глубокое обучение с подкреплением с взвешенными по важности архитектурами актер-ученик» посвящена этому вопросу. Как отмечают авторы, «высокая пропускная способность и эффективность обработки данных IMPALA позволяют нам тренироваться не только над одной задачей, но и над несколькими задачами одновременно — с минимальными изменениями в настройках обучения». Преимущество заключается в том, что «IMPALA эффективно использует современное вычислительное оборудование любого масштаба, чтобы быстро воплощать новые идеи в жизнь и открывать больше неизведанных приложений. Шанс».

Мишкан и параллельный ИИ

Meeshkan Machine Learning работает над достижением той же цели. Создавая тысячи устройств для создания сети, способной запускать модели ИИ, он может точно исследовать ряд проблем, которые не могут быть решены на XPU (будь то CPU, GPU или TPU) из-за ограничений спецификации устройства и ядра. сетевые эффекты и масштаб. Кто-то однажды спросил меня, зачем людям распределять 40 000 бинарных операций на 40 000 отдельных устройств — стоимость полосы пропускания и время, затрачиваемое только на передачу данных, намного перевешивают преимущества параллелизма. Мой ответ заключается в том, что при таком подходе к построению распараллеленных систем с нуля у нас есть достаточно свободы и пространства для изучения альтернативных способов реализации машинного обучения — без привязки к внутренним спецификациям оптимизации ядра. Будучи сторонними наблюдателями в битве за облачные вычисления, мы наблюдали, как отраслевые гиганты соревнуются за то, чтобы суперкомпьютеры с высокооптимизированными ядрами прогнозировали терабайты данных. Таким образом, Meeshkan предлагает еще одну новую архитектуру, распределенную по устройствам, которую можно использовать для исследования реального мира и, надеюсь, бросить вызов текущим основным моделям реализации.

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

Оригинальная ссылка:

https://medium.com/the-mission/kernels-polysemy-and-ai-b9b558cd2255


Для большего содержания сухих товаров вы можете обратить внимание на AI Frontline, ID:ai-front, фоновый ответ "AI", "TF", "Большие данные«Вы можете получить серию мини-книг и карт навыков «AI Frontline» в формате PDF.