РЕЗЮМЕ

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

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

Есть две основные школы мысли в области искусственного интеллекта, а именно коннекционизм (искусственная нейронная сеть) и символизм (экспертная система).

Символизм против коннекционизма

Символизм, который позволяет специалистам-людям кодировать предшествующие знания в форме основанных на правилах спецификаций и символических представлений в ИТ-системе, доминировал в заголовках новостей и финансировании в течение нескольких десятилетий с середины 1950-х годов.

С другой стороны, методы искусственной нейронной сети (например, машинное обучение и глубокое обучение), которые позволяют ИТ-системе наращивать свой интеллект за счет обучения на обучающих данных, наконец, набирают обороты и превосходят экспертные системы во многих сферах бизнеса в последние годы. Эта серия успехов постепенно развивалась после того, как команда крестного отца глубокого обучения Джеффри Хинтона с большим отрывом выиграла ежегодный крупномасштабный конкурс визуального распознавания ImageNet в 2012 году с помощью Convolutional Neural Network AlexNet.

На мой взгляд, нынешние формы ИИ, независимо от коннекционизма (искусственная нейронная сеть) или символизма (экспертная система), являются результатом сопоставления человеческого интеллекта с машинным.

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

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

Поэтому я считаю, что любой процесс, политика или стандарт обеспечения качества, которые мы намерены применять в жизненном цикле разработки информационной системы на основе ИИ, должны быть ориентированы на человека, ценность и сотрудничество, чтобы мы могли помочь межфункциональному взаимодействию. команды, чтобы максимизировать пропускную способность человеческого интеллекта в виде эффективного конвейера данных, чистых и точных данных, качественного кодирования (алгоритма), проницательного тестирования AB и т. д.

Тестирование программного обеспечения и тестирование машинного обучения

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

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

Согласно Zhang et al (2019), традиционное тестирование программного обеспечения и тестирование машинного обучения во многих аспектах различаются следующим образом:

1) Компонент для тестирования (где может существовать ошибка):традиционное тестирование программного обеспечения выявляет ошибки в коде, в то время как тестирование машинного обучения выявляет ошибки в данных, программе обучения и платформе, каждая из которых играет важную роль в построении модели машинного обучения.

2) Тестируемое поведение: поведение традиционного программного кода обычно фиксируется после исправления требования, в то время как поведение модели машинного обучения может часто меняться по мере обновления обучающих данных.

3) Тестовые входные данные: тестовые входные данные в традиционном тестировании программного обеспечения обычно представляют собой входные данные при тестировании кода; однако при тестировании ML входные данные теста могут иметь более разнообразные формы. Обратите внимание, что мы разделяем определение «тестового ввода» и «тестовых данных». В частности, мы используем «тестовый ввод» для обозначения входных данных в любой форме, которая может быть принята для проведения тестирования машинного обучения; в то время как «тестовые данные» специально относятся к данным, используемым для проверки поведения модели ML. Таким образом, тестовые входные данные в тестировании ML могут быть тестовыми данными, но не ограничиваются ими. При тестировании обучающей программы тестовым набором может быть один тестовый экземпляр из тестовых данных или игрушечный обучающий набор; при тестировании данных тестовый ввод может быть обучающей программой.

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

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

6) Ложные срабатывания в обнаруженных ошибках: из-за сложности получения надежных оракулов тестирование машинного обучения, как правило, дает больше ложных срабатываний в сообщениях об ошибках.

7) Роли тестировщиков: ошибки при тестировании машинного обучения могут существовать не только в обучающей программе, но и в данных или алгоритме, поэтому специалисты по данным или разработчики алгоритмов также могут играть роль тестировщиков. .

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

Полезность и правильность

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

То, как мы думаем о компромиссе, который нам нужно сделать при использовании прогностических моделей ИИ на основе данных, не отличается от знаменитой цитаты Джорджа Бокса, которая впервые была записана в статье «Наука и статистика», опубликованной в Журнале Американской статистической ассоциации. в 1976 -

"Все модели ошибочны, но некоторые из них полезны".

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

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

Если вы примете это во внимание, процесс и политика обеспечения качества, которые мы стремимся разработать и применять к любым приложениям ИИ, управляемым большими данными, должны быть направлены на ядро ​​​​событий, которые обычно создают или разрушают модели ИИ прогнозной аналитики, а именно на конец для завершения конвейера данных, состоящего из сбора данных, очистки данных, ETL данных (извлечение, преобразование, загрузка) и обогащения данных.

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

Прорыв в области искусственного интеллекта в результате отличной инженерной мысли

Мы также должны понимать, что человеческий интеллект, такой как вывод самых передовых моделей искусственного интеллекта, управляемых данными, таких как Google BERT и OpenAI GPT, по мнению технологических аналитиков, является результатом отличной инженерной мысли и использования растущего числа параметров. Таким образом, лучшие практики традиционной разработки программного обеспечения всегда должны служить руководящими принципами разработки приложений, управляемых ИИ.

В недавнем выпуске журнала The Economist от 11 июня 2020 года приводится оценка, сделанная Cognilytica, консалтинговой компанией, специализирующейся на искусственном интеллекте, согласно которой обработка данных занимает около 80% времени, затрачиваемого в типичном проекте искусственного интеллекта. Причина, по которой проблемы с данными являются одной из самых распространенных проблем в любом проекте ИИ, несмотря на то, что только в 2018 году в мире было сгенерировано 33 зеттабайта данных, заключается в том, что необходимые данные в редких случаях могут вообще не существовать, данные могут быть заблокированы. в хранилищах конкурента или данные могут быть непригодны для загрузки в компьютеры.

Одним из обходных решений для преодоления недообучения для некоторых редких классов данных является создание синтетических данных с эффектом моделирования, близким к реальности (например, дополнением данных), как часть обучающих данных модели ИИ. Согласно The Economist, есть надежда, что вся эта ерунда, связанная с данными, будет одноразовой — однажды обученная модель машинного обучения окупит усилия, приложенные миллионами автоматизированных решений, пока не произойдет следующий дрейф данных.

К сожалению, глобальная пандемия COVID-19 привела к тому, что модели машинного обучения, обученные на обычных данных, показывающих трещины, не смогли сделать желаемые точные прогнозы. Соучредитель Coursera и генеральный директор Landing AI, который также был главой Google Brain Эндрю Нг, напомнил, что для создания практических систем машинного обучения почти всегда требуется нечто большее, чем достижение высокой производительности на статическом наборе тестов.

В одном из недавних выпусков еженедельных информационных бюллетеней The Batch deepeplearning.ai Эндрю Нг предположил, что нам, возможно, потребуется создать систему оповещения, чтобы отмечать происходящие в мире необычные изменения, использовать развертывание человек в цикле для получения новых меток. для моделей машинного обучения соберите надежную команду MLOps, которая может выполнять мониторинг после развертывания и оповещения, чтобы гарантировать устранение проблем при их возникновении.

Заключение

Нынешние формы ИИ, независимо от коннекционизма (искусственная нейронная сеть) или символизма (экспертная система), являются результатом сопоставления человеческого интеллекта с машинным.

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

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

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

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

Справочник

Бек, М. и Либерт, Б. (2018). Гонка машинного обучения на самом деле является гонкой данных. [онлайн] MIT Sloan Management Review. Доступно по адресу: https://sloanreview.mit.edu/article/the-machine-learning-race-is-really-a-data-race/ [По состоянию на 11 июля 2020 г.].

глубокое обучение.ai. (2020). Информационный бюллетень Batch, выпуск от 29 апреля 2020 г. [онлайн] зоны-обнаружения-людей-от-wi-fi-к-заслуживающему доверия-ИИ» [По состоянию на 11 июля 2020 г.].

Рэй, Т. (2020). Devil’S в деталях в исторических дебатах об ИИ | Зднет. [онлайн] ZDNet. Доступно по адресу: https://www.zdnet.com/article/devils-in-the-details-in-bengio-marcus-ai-debate/ [Проверено 25 июля 2020 г.].

Экономист. (2020). Для ИИ данные получить сложнее, чем вы думаете. [Онлайн] (11 июня). Доступно по адресу: https://www.economist.com/technology-quarterly/2020/06/11/for-ai-data-are-harder-to-come-by-than-you-think [Проверено 11 июля 2020].

Вархол, П. (2019). Как тестировать программное обеспечение в эпоху машинного обучения. [онлайн] TechBeacon. Доступно по адресу: https://techbeacon.com/enterprise-it/moving-targets-testing-software-age-machine-learning [По состоянию на 27 марта 2020 г.].

Ван, Дж. (2017). Символизм против коннекционизма: устранение пробела в искусственном интеллекте. [Блог] Блог Цзешу, доступно по адресу: http://wangjieshu.com/2017/12/23/symbol-vs-connectionism-a-closing-gap-in-artificial-intelligence/ [По состоянию на 14 июня 2020 г.].

Чжан, Дж. М., Харман, М., Ма, Л. и Лю, Ю. (2020). Тестирование машинного обучения: обзор, ландшафты и горизонты. IEEE Transactions по программной инженерии. [Онлайн]. Доступно по адресу: https://arxiv.org/pdf/1906.10742.pdf [Проверено: 26 марта 2020 г.].