В век цифровизации ИИ все больше и больше нас окружает. Он присутствует в наших домах, как личный помощник, управляет нашей машиной, чтобы мы благополучно прибыли в пункт назначения, или даже в наших больницах, где обнаруживает рак. Во многих из этих ситуаций ИИ должен уметь классифицировать объекты в своем окружении. Мы, люди, постоянно наблюдаем за окружающей средой. Сознательная и бессознательная идентификация объектов благодаря зрительной коре головного мозга. Но как ИИ может выполнить такую ​​задачу? Позвольте познакомить вас с глубокими сверточными нейронными сетями. Это искусственные глубокие нейронные сети, используемые для обнаружения, обнаружения и распознавания объектов на изображениях и видео. Я ограничил математику в этой статье до минимума, чтобы она была доступна для более широкой аудитории, интересующейся искусственным интеллектом.

Ускоренный курс искусственных нейронов

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

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

Видя свертыванием

Теперь вернемся к нашим сверточным сетям. Представьте, что вы хотите конкурировать с Tesla и Google Waymo, производя собственный электромобиль, который управляется автономно. Следовательно, автомобилю необходимо знать о своем окружении. Мы можем использовать различные датчики для наблюдения за окружающей средой в автомобиле, но чтобы подойти как можно ближе к человеческому глазу, мы будем использовать камеры. Они будут представлять собой глаза автомобиля, а сверточную нейронную сеть можно сравнить с зрительной корой головного мозга автомобиля. Что делает эти нейронные сети такими уникальными, так это их сверточные слои. Нейроны в этих слоях называются ядрами или фильтрами. Они представляют собой матрицы, которые скользят по изображению и проверяют наличие определенных особенностей в изображении. Когда фильтр обнаруживает свою особенность на части изображения, фильтр срабатывает. Сверточная нейронная сеть состоит из нескольких сверточных слоев. После каждого слоя мы получаем карту объектов, которая будет передана следующему слою. Первый сверточный слой будет извлекать только простые элементы, такие как края в разной ориентации. Когда вы углубитесь в сеть, детали станут четкими частями объекта.

Перед обучением значения фильтров случайны. Когда сверточная сеть обучается, она пытается настроить эти значения так, чтобы каждый фильтр содержал шаблон, который коррелирует с объектом, который мы хотим обнаружить. Опять же, фильтры в начальном слое будут просто обнаруживать простые особенности в изображениях, это фильтры в конечных слоях, которые содержат более конкретные особенности объекта. После того, как мы научим наш автомобиль обнаруживать другие автомобили в движении, мы можем предоставить ему новые помеченные данные. Данные, которые не зависят от наших обучающих данных, чтобы контролировать надежность их прогнозов. Это называется тестовым набором данных. Мы предоставляем тестовое изображение в нашем примере, где оно прошло первый сверточный слой. Первое ядро ​​в этом слое определяет вертикальные края. В приведенном ниже примере он определит профиль шин автомобиля, но не будет стрелять в зеркало заднего вида. Чем ближе мы подходим к концу сети, тем крупнее становятся различные элементы, такие как багажник, двери или даже номерной знак. Если наша обученная модель превосходит набор тестов, она готова к развертыванию в реальном мире.

Сложность реальности

Подожди, не так быстро. Наша машина теперь может обнаруживать только другие машины в пробках. Но он не будет иметь ни малейшего представления о существовании пешеходов, грузовиков, кошек, деревьев или любого другого объекта в его окрестностях. Хуже того, если мы будем использовать только изображения задней части автомобиля во время обучения, сверточный нейрон не сможет обнаружить автомобили, которые расположены под другим углом по отношению к нашим камерам. Итак, что мы можем сделать: чтобы иметь возможность обнаруживать каждый из этих новых объектов, сверточные нейронные сети должны быть снова обучены на расширенном наборе обучающих данных с помеченными данными из новых объектов. Однако это не тот случай, если наша сеть уже была обучена на большом количестве помеченных данных. Если мы хотим добавить новые объекты для обнаружения, есть вероятность, что эти новые объекты также будут иметь базовые функции, которые уже присутствовали в первых слоях нашей сети, такие как края, круги, квадраты, ... Следовательно, нейронная сеть должна только переобучиться его последние слои, так как эти слои содержат широкие части наших объектов, что делает их уникальными. Это называется трансферным обучением и сокращает время обучения, поскольку необходимо адаптировать только веса конечных слоев. После обучения сеть способна определять наиболее часто встречающиеся объекты в трафике. Наша машина готова к автономной езде по бездорожью!

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

Заключительные мысли

Будут ли сверточные нейронные сети популярными в 2030 году? Только будущее покажет. Дело в том, что с 2013 года почти все методы, используемые в задачах обнаружения изображений, представляют собой глубокие сверточные нейронные сети. Это связано с их успехом по сравнению с другими методами, такими как традиционная свертка. Многие статьи описывают сверточные нейронные сети с технической точки зрения, что делает их менее доступными для более широкой аудитории. Несмотря на то, что автомобиль в нашем примере выше иллюстрирует упрощение этих сетей, он дает читателю более ясную картину того, что такое сети и для чего они используются, не вдаваясь в подробности. Изображения, которые мы использовали, были получены с камер, но для создания наборов данных для обучения нейронных сетей, таких как ИК-камеры и МРТ, можно использовать разные ресурсы. Следовательно, это создает множество возможностей в различных секторах, таких как медицина, для диагностики пациентов. Важно отметить, что количество и качество обучающих и тестовых данных имеют первостепенное значение для хорошей модели, но не всегда ясно, как оценить удобство использования данных. Кроме того, архитектура искусственной нейронной сети может быть методом проб и ошибок. Подготовьтесь к долгому ожиданию благодаря обучению, которое во многом зависит от имеющихся у вас ресурсов. В заключение скажу, что нашим друзьям-роботам еще предстоит пройти долгий путь, прежде чем они смогут увидеть мир так, как мы, люди.

Что-то узнал? Нажмите: clap:, чтобы сказать «спасибо!» и не стесняйтесь делиться историями со своими кругами и участвовать в нашем путешествии, чтобы вдохновлять людей, вместе путешествовать по будущему и оказывать неизгладимое влияние.