Нейросети и глубокое обучение: онлайн-учебник, глава 6, ч.2: недавний прогресс в распознавании изображений |
||
МЕНЮ Искусственный интеллект Поиск Регистрация на сайте Помощь проекту ТЕМЫ Новости ИИ Искусственный интеллект Разработка ИИГолосовой помощник Городские сумасшедшие ИИ в медицине ИИ проекты Искусственные нейросети Слежка за людьми Угроза ИИ ИИ теория Внедрение ИИКомпьютерные науки Машинное обуч. (Ошибки) Машинное обучение Машинный перевод Реализация ИИ Реализация нейросетей Создание беспилотных авто Трезво про ИИ Философия ИИ Big data Работа разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика
Генетические алгоритмы Капсульные нейросети Основы нейронных сетей Распознавание лиц Распознавание образов Распознавание речи Техническое зрение Чат-боты Авторизация |
2019-08-19 10:19 В 1998 году, когда появилась база MNIST, требовались недели для обучения самых передовых компьютеров, достигавших гораздо худших результатов, чем сегодняшние, на получение которых при помощи GPU уходит менее часа. Поэтому MNIST уже не является задачей, раздвигающей границы возможностей технологий; скорость обучения говорит о том, что эта задача хорошо подходит для изучения данной технологии. Тем временем, исследования идут дальше, и в современной работе изучаются гораздо более сложные для решения задачи. В данном разделе я кратко опишу некоторые примеры текущей работы, связанной с распознаванием изображений при помощи нейросетей.
Этот раздел отличается от остальной части книги. В книге я фокусировался на предположительно долгоживущих идеях – обратном распространении, регуляризации, свёрточных сетях. Я пытался избегать результатов, считающихся модными на момент написания, чья долговременная ценность представлялась сомнительной. В науке подобные результаты чаще всего оказываются однодневками, быстро исчезают и не оказывают долговременного влияния. Учитывая это, скептик сказал бы: «Разумеется, недавний прогресс в распознавании изображений можно считать примером такой однодневки? Через два-три года всё поменяется. Так что эти результаты наверняка будут интересны небольшому числу специалистов, конкурирующих на переднем плане? К чему вообще их обсуждать?» Такой скептик будет прав в том, что мелкие детали недавних работ постепенно утеряют воспринимаемую важность. Однако за последние несколько лет произошли невероятные улучшения в деле решения особенно сложных задач распознавания изображений при помощи глубоких нейросетей (ГНС). Представьте себе историка науки, пишущего материал о компьютерном зрении в 2100 году. Они определят 2011-2015 годы (и, вероятно, несколько лет после этого) как период значимых прорывов, ведомых глубокими свёрточными сетями (ГСС). Это не значит, что ГСН всё ещё будут использоваться в 2100 году, не говоря уже о таких деталях, как исключение, ReLU и прочее. Но это всё равно означает наличие в истории идей важного перехода в текущий момент. Это похоже на наблюдение за открытием атома, за изобретением антибиотиков: изобретение и открытие исторического масштаба. Поэтому, не вдаваясь в детали, стоит получить какое-то представление об интересных открытиях, совершаемых сегодня. Работа 2012 LRMD Позвольте мне начать с работы 2012 года, за авторством группы исследователей из Стэнфорда и Google. Я буду называть её LRMD, по первым буквам фамилий первых четырёх авторов. В LRMD использовали НС для классификации изображений из базы ImageNet, что является очень сложной задачей распознавания образов. Используемые ими данные из 2011 ImageNet включали 16 млн полноцветных изображений, разделённых на 20 000 категорий. Изображения были скачаны из интернета и классифицированы работниками сервиса Amazon's Mechanical Turk. Вот некоторые из них: Они принадлежат к категориям, соответственно: калёвка, коричневый грибок корней, пастеризованное молоко, аскариды. Если вам хочется поупражняться, рекомендую вам посетить список ручных инструментов от ImagNet, где делаются различия между калёвками, торцовыми рубанками, рубанками для снятия фасок и десятками других видов рубанков, не говоря уже о других категориях. Не знаю, как вы, но я не могу с уверенностью различить все эти инструменты. Это, очевидно, куда как более сложная задача, чем MNIST! Сеть LRMD получила приличный результат в 15,8% точности распознавания изображений из ImageNet. Это может не казаться таким впечатляющим результатом, однако это было огромным улучшением по сравнению с предыдущим результатом в 9,3%. Такой скачок говорит о том, что НС могут предложить эффективный подход к очень сложным задачам распознавания изображений, таким, как ImageNet. Работа 2012 KSH За работой LRMD в 2012 году последовала работа Крижевского, Суцкевера и Хинтона (KSH). KSH обучали и проверяли ГСС при помощи ограниченного подмножества данных ImagNet. Это подмножество задано популярным соревнованием по машинному обучению — ImageNet Large-Scale Visual Recognition Challenge (ILSVRC). Использование такого подмножества дало им удобный способ сравнения их подхода с другими лидирующими техниками. В наборе ILSVRC-2012 содержится порядка 1,2 млн изображений из 1000 категорий. Проверочный и подтверждающий наборы содержат 150 000 и 50 000 изображений соответственно, из тех же 1000 категорий. Одна из трудностей соревнования ILSVRC заключается в том, что на многих изображениях из ImageNet содержится несколько объектов. Допустим, на изображении лабрадор-ретривер бежит за футбольным мячом. Т.н. «правильная» классификация от ILSVRC может соответствовать метке «лабрадор-ретривер». Нужно ли отбирать очки у алгоритма, если он пометить изображение, как футбольный мяч? Из-за такой многозначности работу алгоритма считали правильной, если классификация от ImageNet находилась среди 5 наиболее вероятных догадок алгоритма по поводу содержания картинки. По этому критерию из 5 лучших, ГСС от KSH достигла точности в 84,7%, гораздо лучше предыдущего соперника, достигшего точности в 73,8%. При использовании более строгой метрики, когда метка должна точно совпадать с прописанной, точность KSH достигла 63,3%. Второй скрытый слой тоже свёрточный, с макс-пулингом. Он использует локальные рецептивные поля 5х5, и в нём 256 карт признаков, разбитых по 128 штук для каждого из GPU. Карты признаков используют только 48 входящих каналов, а не все 96 выходов из предыдущего слоя, как обычно. Это потому, что любая карта признаков получает на вход информацию с того GPU, на котором она хранится. В этом смысле сеть отходит от свёрточной архитектуры, описанной нами ранее в этой главе, хотя, очевидно, основная идея остаётся той же. Третий, четвёртый и пятый слои свёрточные, но без макс-пулинга. Их параметры: (3) 384 карты признаков, локальные рецептивные поля 3х3, 256 входящих каналов; (4) 384 карты признаков, локальные рецептивные поля 3х3, 192 входящих канала; (5) 256 карт признаков, локальные рецептивные поля 3х3, 192 входящих канала. На третьем слое происходит обмен данными между GPU (как показано на картинке), чтобы карты признаков могли использовать все 256 входящих каналов. Шестой и седьмой скрытые слои полносвязные, по 4096 нейронов. Выходной слой – софтмакс, состоит из 1000 единиц. Сеть KSH пользуется преимуществами многих техник. Вместо использования сигмоиды или гиперболического тангенса в качестве функции активации, она использует ReLU, значительно ускоряющие обучения. В сети KSH содержится порядка 60 млн обучаемых параметров, и поэтому она, даже при большом наборе обучающих данных, подвержена переобучению. Чтобы справиться с этим, авторы расширили обучающий набор при помощи случайной обрезки картинок, как описано выше. Далее они использовали вариант L2-регуляризации и исключение. Сеть обучалась при помощи стохастического градиентного спуска на основе импульса и с мини-пакетами. Это краткий обзор многих ключевых идей работы KSH. Некоторые детали я опустил, их ищите в статье самостоятельно. Также можете посмотреть на проект Алекса Крижевского cuda-convnet (и его последователей), содержащий код, реализующий многие из описанных идей. Разработана и версия этой сети на основе Theano. В коде можно узнать идеи, сходные с теми, что мы разработали в этой главе, хотя использование нескольких GPU усложняет дело. В фреймворке Caffe есть своя версия сети KSH, для подробностей смотрите их "зоопарк моделей". Соревнование 2014 ILSVRC С 2012 года прогресс идёт довольно быстро. Возьмём соревнование 2014 ILSVRC. Как и в 2012 году, участникам нужно было обучать сети на 1,2 млн изображений из 1000 категорий, и критерием качества было попадание одного из 5 вероятных предсказаний в правильную категорию. Выигравшая команда, состоящая в основном из сотрудников Google, использовала ГСС с 22 слоями нейронов. Они назвали свою сеть GoogLeNet, в честь LeNet-5. По критерию попадания пяти лучших вариантов GoogLeNet достигла показателя в 93,33% точности, что серьёзно улучшило результат победителя 2013 года (Clarifai, с 88,3%) и победителя 2012 года (KSH, с 84,7%). Насколько точность GoogLeNet в 93,33% хороша? В 2014 году команда исследователей написала обзорную работу соревнования ILSVRC. Одним из рассматриваемых вопросов было то, насколько хорошо смогут справиться с задачей люди. Для эксперимента они создали систему, позволяющую людям классифицировать изображения с ILSVRC. Как поясняет один из авторов работы, Андрей Карпаты, в информативной записи в своём блоге, было очень трудно довести эффективность работы людей до показателей GoogLeNet: Задача разметки изображений пятью категориями из 1000 возможных быстро стала чрезвычайно сложной, даже для тех из моих друзей в лаборатории, что уже некоторое время работали с ILSVRC и её категориями. Сначала мы хотели отправить задачу в Amazon Mechanical Turk. Потом мы решили попробовать нанять студентов за деньги. Потому я организовал разметочную вечеринку среди экспертов в своей лаборатории. После этого я разработал изменённый интерфейс, использовавший предсказания GoogLeNet для уменьшения количества категорий с 1000 до 100. И всё равно задача была сложной – люди пропускали категории, выдавая ошибки порядка 13-15%. В итоге я понял, что для того, чтобы хотя бы приблизиться к результату GoogLeNet, наиболее эффективным подходом будет мне самому сесть и пройти через невозможно долгий процесс обучения и последующий процесс тщательной разметки. Сначала разметка шла со скоростью порядка 1 штуки в минуту, но со временем ускорялась. Некоторые изображения было легко распознать, иные же (допустим, определённые породы собак, виды птиц или обезьян) требовали нескольких минут концентрации. Я очень хорошо наловчился различать породы собак. На основе моей выборки изображений получились следующие результаты: GoogLeNet ошибалась в 6,8% случаев; мой процент ошибок составил 5,1%, что было примерно на 1,7% лучше. Иначе говоря, эксперт, работавший очень тщательно, лишь приложив серьёзные усилия, смог ненамного опередить ГНС. Карпаты сообщает, что второй эксперт, обученный на меньшем количестве изображений, сумел уменьшить ошибку лишь до 12% при выборе до 5 меток на изображение, что гораздо меньше показателей GoogLeNet. Потрясающие результаты. А с момента появления этой работы несколько команд сообщали о разработке систем, чей уровень ошибок при выборе 5 лучших меток был даже меньше, чем 5,1%. Иногда в СМИ эти достижения освещались, как появление систем, способных распознавать изображения лучше людей. И хотя в целом результаты поражают, существует много нюансов, из-за которых нельзя считать, что у этих систем компьютерное зрение работает лучше, чем у человека. Во многих смыслах соревнование ILSVRC является очень ограниченной задачей – результаты поиска изображений в открытой сети не обязательно будут соответствовать тому, что встретится программе в практической задаче. И, естественно, критерий «одна из пяти лучших меток» достаточно искусственный. Нам ещё предстоит долгий путь к решению задачи распознавания изображений, не говоря уже о более общей задаче компьютерного зрения. Но всё же очень здорово смотреть, какого большого прогресса удалось достичь в решении такой сложной задачи всего за несколько лет. Другие задачи Я сконцентрировался на ImageNet, однако существует достаточно много других проектов, использующих НС для распознавания изображений. Позвольте кратко описать несколько интересных результатов, полученных за последнее время, просто чтобы составить представление о современных работах. Существование состязательных негативов противоречит способности сети достигать высоких показателей обобщаемости. Ведь если бы сеть умела хорошо обобщать, как бы её можно было обмануть такими состязательными негативами, неотличимыми от обычных примеров? Объяснение заключается в том, что набор состязательных негативов имеет чрезвычайно малую вероятность, и потому не наблюдается (или почти не наблюдается) в обучающем наборе данных, однако он обладает большой плотностью (примерно как рациональные числа), и потому его можно найти практически для любого случая. Тем не менее, неприятно, что мы так плохо понимаем работу НС, что этот результат был обнаружен совсем недавно. Конечно, главным преимуществом таких результатов будет то, что они стимулировали появление последующих работ по этой теме. В недавней работе 2014 года показано, что для обученной сети возможно создать изображения, которые для человека будут выглядеть, как белый шум, а сеть будет классифицировать их в известные категории с большой долей уверенности. Это ещё одна демонстрация того, что нам ещё многое предстоит понять в работе НС и в их использовании для распознавания изображений. Но, несмотря на наличие подобных результатов, общая картина вдохновляет. Мы наблюдаем быстрый прогресс в выполнении чрезвычайно сложных тестов, типа ImageNet. Мы также наблюдаем быстрый прогресс в решении задач из реального мира, типа распознавания табличек с адресами в StreetView. Но, несмотря на вдохновение, недостаточно лишь наблюдать за улучшениями в выполнении тестов на скорость или даже задач реального мира. Существуют фундаментальные явления, суть которых мы до сих пор понимаем плохо, к примеру, существование состязательных изображений. И пока такие фундаментальные проблемы ещё открываются (не говоря уже о том, чтобы решать их), преждевременно было бы говорить о приближении к решению задачи распознавания изображений. Но в то же время такие проблемы являются прекрасными стимулами к дальнейшей работе. Другие подходы к глубоким нейросетям В данной книге мы сфокусировались на одной задаче: классификации цифр MNIST. Отличная задача, заставившая нас понять множество эффективных идей: стохастический градиентный спуск, обратное распространение, свёрточные сети, регуляризация, и т.д. Однако это также довольно узкая задача. Почитав литературу по нейросетям, вы встретитесь со множеством идей, которые мы не обсуждали: рекуррентные НС, машины Больцмана, генеративные модели, перенос обучения, обучение с подкреплением, и так далее, и тому подобное! Нейросети – обширная область. Однако многие важные идеи являются вариациями тех идей, которые мы уже обсудили, и их довольно легко понять. В данном разделе я приоткрою завесу над этими необъятными просторами. Их обсуждение будет не подробным и не всеобъемлющим – это бы чрезвычайно раздуло книгу. Оно будет импрессионистским, попыткой показать концептуальное богатство этой области, и связать некоторые понятия с теми, что мы уже видели. В тексте я дам несколько ссылок на другие источники, как на материалы для дальнейшего обучения. Конечно, многие из них скоро будут вытеснены другими, и вам, возможно, захочется поискать более свежую литературу. Тем не менее, я считаю, что многие базовые идеи останутся интересными ещё продолжительное время. Рекуррентные нейросети (РНС) В сетях с прямым распространением, которые мы использовали, существует один вход, полностью определяющий активацию всех нейронов в последующих слоях. Это очень статичная картина: всё в сети фиксировано, и имеет замороженный, кристаллический характер. Но, допустим, мы разрешим элементам сети меняться динамически. К примеру, поведение скрытых нейронов может определяться не только активациями в предыдущих слоях, но и активациями, случившимися ранее во времени. Активацию нейрона может частично определять его же более ранняя активация. В сетях с прямым распространениям такого однозначно не происходит. Или, возможно, активации скрытых и выходных нейронов будут определяться не только текущими входными данными в сеть, но и предыдущими. Модули долгой краткосрочной памяти (ДКП) Одна из проблем РНС в том, что ранние модели было очень сложно обучать, сложнее, чем даже ГНС. Причина содержалась в проблем нестабильного градиента, которую мы обсуждали в главе 5. Вспомним, что обычным проявлением этой проблемы было то, что градиент всё время уменьшается при распространении через слои в обратную сторону. Это чрезвычайно замедляет обучение ранних слоёв. В РНС эта проблема становится ещё хуже, поскольку градиенты распространяются не только в обратную сторону по слоям, но и в обратную сторону по времени. Если сеть работает довольно долго, градиент может стать чрезвычайно нестабильным и на его основе будет очень тяжело обучаться. К счастью, в РНС можно включить идею, известную, как модули долгой краткосрочной памяти (ДКП). Впервые этим модули представили Хохрейтер и Шмидгубер в 1997 году, специально для того, чтобы помочь решить проблему нестабильного градиента. ДКП облегчают получение хороших результатов при обучении РНС, и многие недавние работы (включая и те, на которые я уже проставил ссылки) используют ДКП или сходные идеи. Глубокие сети доверия, генеративные модели и машины Больцмана В наши дни интерес к глубокому обучению получил второе дыхание в 2006 году, после выхода работ (1, 2), объяснявших, как обучать особый вид НС под названием глубокая сеть доверия (ГСД). ГСД несколько лет влияли на область исследований, но потом их популярность пошла на спад, а модными стали уже сети прямого распространения и рекуррентные НС. Несмотря на это, некоторые свойства ГСД делают их весьма интересными. Во-первых, ГСД являются примером генеративной модели. В сети прямого распространения мы задаём входные активации, и они определяют активации нейронов признаков дальше по сети. Генеративную модель можно использовать сходным образом, однако в неё можно задать значения нейронов, а затем запустить сеть «в обратную сторону», генерируя значения входных активаций. Более конкретно, ГСД, обученная на изображениях рукописных цифр, сама может генерировать изображения, похожие на рукописные цифры (потенциально, и после определённых действий). Иначе говоря, ГСД в некотором смысле может учиться писать. В этом смысле генеративные модели похожи на мозг человека: они не только могут читать цифры, но и писать их. Известное высказывание Джеффри Хинтона гласит, что для распознавания форм сначала нужно научиться генерировать изображения. Во-вторых, они способны на обучение без учителя и почти без учителя. К примеру, при обучении на изображения ГСД могут научиться признакам, полезным для понимания и других изображений, даже если на обучающих изображениях не было никаких меток. Способность к обучению без учителя чрезвычайно интересна как с фундаментальной научной точки зрения, так и с практической – если её можно будет заставить достаточно хорошо работать. Учитывая все эти привлекательные моменты ГСД как моделей для глубокого обучения, почему же их популярность пошла на спад? Частично из-за того, что другие модели, например, прямого распространения и рекуррентные сети, достигли потрясающих результатов, в частности, прорывов в областях распознавания изображений и речи. Неудивительно, что эти модели удостоились такого внимания, и весьма заслуженного. Однако из этого следует неприятный вывод. Рынок идей часто работает по схеме «победитель получает всё», и практически всё внимание уходит на то, что сейчас в данной области наиболее модно. Людям может оказаться чрезвычайно сложно работать над непопулярными в настоящее время идеями, даже если очевидно, что те могут представлять долгосрочный интерес. Моё личное мнение – ГСД и другие генеративные модели заслуживают большего внимания, чем получают. Не удивлюсь, если ГСД или сходная модель когда-нибудь обгонит сегодняшние популярные модели. Почитайте эту статью для введения в область ГСД. Также может оказаться полезной вот эта статья. Она не совсем про ГСД, но в ней есть много полезного по поводу ограниченных машин Больцмана, ключевого компонента ГСД. Другие идеи Что ещё происходит в области НС и ГО? Огромное количество интересной работы. Среди активных областей исследования – использование НС для обработки естественного языка, машинного перевода, и более неожиданных применений, к примеру, музыкальной информатики. Существует и множество других областей. Во многих случаях после прочтения данной книги вы сможете понимать недавние работы, хотя, конечно, вам может потребоваться заполнить какие-то пробелы в знаниях. Закончу этот раздел упоминанием особенно интересной работы. Она комбинирует глубокие свёрточные сети с техникой под названием «обучение с подкреплением», чтобы учиться играть в видеоигры (и ещё одна статья об этом). Идея в том, чтобы использовать свёрточную сеть для упрощения пиксельных данных с игрового экрана, превратить его в более простой набор признаков, которые затем можно использовать для принятия решений о дальнейшем действии: «идти влево», «идти вправо», «стрелять», и т.п. Особенно интересно то, что одна сеть довольно неплохо обучилась играть в семь различных классических видеоигр, опередив экспертов в трёх из них. Это, конечно, похоже на трюк, и работа активно рекламировалась, под заголовком «Игра в игры Atari при помощи обучения с подкреплением». Однако за поверхностным лоском стоит рассмотреть тот факт, что система берёт сырые пиксельные данные – ей даже неизвестны правила игры – и на их основе обучается принимать решения хорошего качества в нескольких очень различных и очень конкурентных ситуациях, в каждой из которых имеется свой сложный набор правил. Довольно неплохо. Будущее нейросетей Интерфейсы на основе намерений пользователя В старой шутке нетерпеливый профессор говорит запутавшемуся студенту: «Не слушайте мои слова, слушайте, что я имею в виду». Исторически компьютеры часто не понимали, подобно запутавшемуся студенту, что имеет в виду пользователь. Однако ситуация меняется. Я всё ещё помню, как впервые удивился, когда я с ошибкой написал запрос в Google, а поисковик сказал мне в ответ «Возможно, вы имели в виду [правильный запрос]?» Директор Google Ларри Пейдж однажды описал идеальный поисковик, как систему, понимающую, что именно означают ваши запросы, и дающий вам именно то, что вы хотите. Такова идея интерфейса на основе намерений пользователя. В ней вместо того, чтобы реагировать на буквальные запросы пользователя, поисковик будет использовать МО, чтобы, взяв туманный запрос пользователя, понять точно, что он означает, и действовать на основе этого. Машинное обучение, наука о данных и непорочный круг инноваций Конечно, МО используется не только для создания интерфейсов на основе намерений пользователя. Ещё одно интересное применение МО – наука о данных, где оно используется для поиска «известных неизвестных», скрытых в полученных данных. Это уже модная тема, о которой написано много статей, поэтому я не будут долго на неё распространяться. Хочу упомянуть одно последствие этой моды, которое не часто отмечают: в дальней перспективе возможно, что крупнейшим прорывом в МО будет не какой-то один концептуальный прорыв. Крупнейшим прорывом будет то, что исследования в области МО станут приносить доход, посредством применения в науке од данных и других областях. Если компания может инвестировать доллар в исследования МО и получить доллар и десять центов выручки довольно быстро, тогда в область МО будут вливать много денег. Иначе говоря, МО – это двигатель, движущий нас к появлению нескольких крупных рынков и областей роста технологий. В итоге появятся большие команды людей-экспертов в данной области, у которых будет доступ к невероятным ресурсам. Это продвинет МО ещё дальше, создаст ещё больше рынков и возможностей, что и будет непорочным кругом инноваций. Роль нейросетей и глубокого обучения Я описывал МО общими словами, как способ создания новых возможностей для развития технологий. Какова же будет конкретная роль НС и ГО во всём этом? Приведут ли НС и ГО в скором времени к появлению искусственного интеллекта? В данной книге мы концентрировались на использовании НС в решении конкретных задач, например, классификации изображений. Давайте расширим наши запросы: что насчёт думающих компьютеров общего назначения? Могут ли НС и ГО помочь нам решить задачу создания ИИ общего назначения? А если так, учитывая большую скорость прогресса в области ГО, увидим ли мы появление ИИ в ближайшее время? Организации, проектирующие системы, ограничены дизайном, копирующим структуру коммуникаций в этой организации. То есть, к примеру, закон Конвея утверждает, что схема самолёта Boeing 747 будет отражать расширенную структуру компании Boeing и её подрядчиков в то время, когда разрабатывалась модель 747. Или другой, простой и конкретный пример: рассмотрим компанию, разрабатывающую сложное ПО. Если управляющая панель ПО должна быть связана с алгоритмом МО, то разработчик панели должен общаться с экспертом компании по МО. Закон Конвея просто формализует это наблюдение. Впервые услышав закон Конвея, многие люди говорят либо «Ну разве это не банальная очевидность?», либо «Разве это так?». Начну с замечания о его неверности. Давайте подумаем: как наличие у компании Boeing бухгалтерии отражается в схеме модели 747? Что насчёт департамента уборки? А кормления сотрудников? Ответ состоит в том, что эти части организации, скорее всего, не появляются нигде в схеме 747-го явным образом. Поэтому нужно понимать, что закон Конвея относится лишь к тем частям организации, которые непосредственно заняты проектированием и инженерной разработкой. Что насчёт замечания о банальности и очевидности? Возможно, это и так, но я так не считаю, поскольку организации часто работают, отвергая закон Конвея. Команды, разрабатывающие новые продукты, часто раздуваются из-за чрезмерного количества сотрудников, или, наоборот, им не хватает человека с критически важными знаниями. Вспомните обо всех продуктах с бесполезными и усложняющими их особенностями. Или вспомните о продуктах с очевидными недостатками – к примеру, с ужасным интерфейсом пользователя. В обоих классах программ проблемы часто возникают из-за несоответствия команды, необходимой для выпуска хорошего продукта, и той командой, которая реально собралась. Закон Конвея, возможно, и очевиден, но это не значит, что люди не могут его регулярно игнорировать. Закон Конвея применим к разработке и созданию систем в случаях, когда мы с самого начала представляем себе, из каких составных частей будет состоять продукт, и как их сделать. Его нельзя применять напрямую к разработке ИИ, поскольку ИИ такой задачей (пока) не является: мы не знаем, из каких частей он состоит. Мы даже не уверены, какие базовые вопросы можно задавать. Иначе говоря, в данный момент ИИ является больше проблемой науки, чем инженеров. Представьте, что вам нужно начать разработку 747-го, ничего не зная о реактивных двигателях или принципах аэродинамики. Вы бы не знали, каких экспертов надо нанимать в свою организацию. Как написал Вернер фон Браун, «базовые исследования – это то, чем я занят, когда я не знаю, чем я занят». Есть ли вариант закона Конвея, применимый к задачам, которые больше относятся к науке, чем к инженерам? Чтобы найти ответ на этот вопрос, вспомним историю медицины. В ранние дни медицина была областью практиков, таких, как Гален или Гиппократ, изучавших всё тело человека. Но с ростом объёма наших знаний приходилось специализироваться. Мы открыли множество глубоких идей – вспомним микробную теорию болезней, или понимание принципа работы антител, или того, что сердце, лёгкие, вены и артерии формируют сердечно-сосудистую систему. Такие глубокие идеи сформировали фундамент для более узких дисциплин, таких, как эпидемиология, иммунология, и скопление пересекающихся областей, касающихся сердечно-сосудистой системы. Вот так структура нашего знания сформировала социальную структуры медицины. Особенно заметно это в случае с иммунологией: идея о существовании иммунной системы, достойной отдельного изучения, была весьма нетривиальной. Так что у нас есть целая область медицины – со специалистами, конференциями, наградами, и так далее – организованная вокруг чего-то не просто невидимого, а, возможно, даже не являющегося чем-то отдельным. Такое развитие событий часто повторялось во многих установившихся научных дисциплинах: не только в медицине, но и в физике, математике, химии, и других. Области рождаются монолитными, имея в запасе лишь несколько глубоких идей. Первые эксперты способны охватить их все. Но с течением времени монолитность меняется. Мы открываем множество новых глубоких идей, и их становится слишком много для того, чтобы кто-то сумел по-настоящему овладеть ими всеми. В итоге социальная структура области реорганизуется и делится, концентрируясь вокруг этих идей. Вместо монолита у нас возникают поля, делящиеся на поля, делящиеся на поля,- сложная, рекурсивная социальная структура, ссылающаяся сама на себя, чья организация отражает связи между самыми глубокими идеями. Вот так структура наших знаний формирует социальную организацию науки. Однако эта социальная форма в свою очередь ограничивает и помогает определить то, что мы можем обнаружить. Это и есть научный аналог закона Конвея. Но какое отношение всё это имеет к глубокому обучению или ИИ? Ну, с ранних дней разработки ИИ идут споры о том, что всё пойдёт либо «не слишком сложно, благодаря имеющемуся у нас сверхоружию», либо «сверхоружия будет недостаточно». Глубокое обучение – последний из примеров сверхоружия, который использовался в виденных мною спорах. В ранних версиях таких споров использовалась логика, или Prolog, или экспертные системы, или какая-то ещё технология, которая тогда была самой мощной. Проблема таких споров в том, что они не дают вам возможности сказать точно, насколько мощным будет любой из кандидатов на сверхоружие. Конечно, мы только что целую главу потратили на рассмотрение свидетельств того, что ГО может решать чрезвычайно сложные задачи. Оно определённо выглядит очень интересно и многообещающе. Но так было и с такими системами, как Prolog, или Eurisko, или с экспертными системами. Поэтому лишь тот факт, что набор идей выглядит многообещающе, ничего особенного не означает. Откуда нам знать, что ГО на самом деле отличается от этих ранних идей? Есть ли способ измерить, насколько мощным и многообещающим является набор идей? Из закона Конвея следует, что в качестве грубой и эвристической метрики мы можем использовать сложность социальной структуры, связанной с этими идеями. Поэтому у нас возникает два вопроса. Во-первых, насколько мощным является набор идей, связанный с ГО, согласно этой метрике социальной сложности? Во-вторых, насколько мощная теория нам нужна, чтобы создать ИИ общего назначения? По первому вопросу: когда мы сегодня смотрим на ГО, это поле выглядит интересным и быстро развивающимся, но относительно монолитным. В нём есть несколько глубоких идей, и проводится несколько основных конференций, причем некоторые из них сильно пересекаются. Работа за работой используют один и тот же набор идей: стохастический градиентный спуск (или его близкий аналог) для оптимизации функции стоимости. Прекрасно, что эти идеи настолько успешны. Что чего мы пока не наблюдаем, так это большого количества хорошо развитых более мелких областей, каждая из которых исследовала бы свой набор глубоких идей, что двигало бы ГО во многих направлениях. Поэтому, согласно метрике социальной сложности, глубокое обучение, простите за каламбур, пока остаётся весьма неглубокой областью исследований. Один человек всё ещё способен овладеть большинством глубоких идей из этой области. По второму вопросу: насколько сложный и мощный набор идей понадобится для создания ИИ? Естественно, ответом будет: никто точно не знает. Но в послесловии к книге я изучил некоторые из существующих свидетельств по этому вопросу. Я заключил, что даже по оптимистичным оценкам, для создания ИИ потребуется много, очень много глубоких идей. По закону Конвея, для того, чтобы дойти до этой точки, мы должны увидеть появление множества взаимосвязанных дисциплин, со сложной и неожиданной структурой, отражающей структуру наших глубочайших идей. Мы пока не наблюдаем такой сложной социальной структуры при использовании НС и ГО. Поэтому, я считаю, что мы, по крайней мере, находимся в нескольких десятилетиях от использования ГО для разработки ИИ общего назначения. Я много сил потратил на создание умозрительного аргумента, который, возможно, кажется довольно очевидным, и не ведёт к определённому заключению. Это наверняка разочарует любящих определённость людей. В онлайне я встречаю множество людей, во всеуслышание объявляющих о своих очень определённых и уверенных мнениях по поводу ИИ, часто базирующихся на шатких аргументах и несуществующих свидетельствах. Я могу честно сказать: думаю, что пока ещё судить рано. Как в старом анекдоте: если спросить учёного, сколько нам ещё нужно ждать какого-либо открытия, и он скажет «10 лет» (или больше), то на самом деле он имеет в виду «понятия не имею». До появления ИИ, как и в случае с контролируемым ядерным синтезом и некоторыми другими технологиями, уже более 60 лет остаётся «10 лет». С другой стороны, что у нас точно есть в области ГО – так это эффективная технология, пределы возможностей которой мы пока не обнаружили, и множество открытых фундаментальных задач. И это открывает потрясающие творческие возможности. Источник: habr.com Комментарии: |
|