Пользователь
0,0
рейтинг
7 октября 2014 в 18:14

Применение нейронных сетей в робототехнике: перспективы и преимущества из песочницы

1. Сравнение и преимущества нейронных систем перед математическими алгоритмами


Все знают, что такое нейрон. Более-менее знакомы с нейронными сетями. Все имеют представление, что такое искусственные нейронные сети, по крайней мере, слышали о них. Я поставил себе задачу вполне поверхностную — показать в этой публикации возможности применения нейронных сетей в робототехнике и их преимущество перед другими системами, логическими. Напомню лишь, что искусственные нейронные сети построены по принципу работы естественных нейронных сетей, которые имеются у живых существ. Это могут быть насекомые, птицы, рыбы или животные, стоящие более высоко в интеллектуальном развитии. К примеру, как обезьяны или человек. Всех их объединяет одно, это нейронная сеть. У кого-то она более развита и более сложная. У кого-то находится в примитивном виде и работает по принципу «раздражитель-реакция». Кстати сказать, и высокоинтеллектуальные животные, такие, как человек, очень часто в повседневной жизни действуют по принципу «раздражитель-реакция». Если мы обожжем руку, то не думая, резко её отдёргиваем. Тут не нужно много ума, чтобы это сделать. Но случаются в жизни ситуации, когда требуется применить то, под чем мы подразумеваем слово «интеллект». А что это такое, никто не знает. Есть несколько формулировок, описывающих интеллект. Но, для робототехника это абстракция, от которой пользы ноль, с помощью которой не построишь «интеллектуального» робота.

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

На самом деле, очень сложно было придумать некий тест, или тесты, где бы происходило сравнение нейронных систем с логическими системами. То есть тест, где бы было наглядно показано преимущество нейронных сетей перед другими алгоритмами. И знаете, это оказалось не так-то просто. Встал очевидный вопрос, по каким критериям или показателям сравнивать системы. Проще всего было бы сравнить между собой разные нейронные сети. Действительно, их можно сравнивать по таким показателям, как общее количество нейронов в сети, или сколько нейронов в каждом слое, или сколько всего слоёв в нейронной сети. Являются ли эти сети прямого распространения, или сетями с обратной связью и так далее и тому подобное. Ну, а как сравнить нейронную сеть и логические систем?.. То есть как сравнить два алгоритма? Оказалось, что наглядней и продуктивней сравнивать нейронные сети и логические системы лучше с помощью косвенных признаков. С помощью таких показателей, как «экономичность» и «трудоёмкость». Для робототехника при постройке робота экономичность является важным фактором. Если робот будет слишком дорогим, его никто не купит. В дальнейшем для сравнения систем по этим двум параметрам я неоднократно буду использовать систему от Google, которую они установили на свои роботоризированные автомобили. Мощная передовая система. Это то, что нам нужно для сравнения. Вроде бы, у Google мощнейшая и дорогая технология, но их автопилот не может ездить, когда идёт дождь или снег. Да, да, это именно так, если кто не знал. У каждой технологии есть свои плюсы и минусы. Вот у технологии Google есть такой минус. Как и любой другой робот, автопилот Google тоже является роботом, которому для работы в окружающем пространстве необходимо получать информацию о ней. Для этого служат датчики и сенсоры.



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

Обратите внимание. Вот у системы, которую используют ребята из Google, больше датчиков. Как я уже говорил, такое количество датчиков является минимально необходимым, чтобы система выполняла поставленные задачи, эффективно управляла автомобилем. То есть система Google уже дороже вот этой нейронной системы, у которой минимально необходимый набор датчиков меньше. Вы можете сказать, что датчики, которые использует компания Google дешевле, чем датчики, которые установлены на этой системе? К сожалению, это не так. Наоборот, датчики от Google в разы дороже, чем датчики, используемые нейронной сетью. Один лидар только стоит 30 тысяч долларов. Это относится и к датчику системы позиционирования. Здесь стоит не обычный датчик, который используется в обычных автомобилях. Это система позиционирования наиболее высокоточная, а значит — и более дорогая. Для нашей системы возможно использование обычного датчика позиционирования, которые используются автомобилистами.

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

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

Коль мы заговорили о системе, которую используют ребята из Гугл, хотел бы поинтересоваться, каким количеством информации оперирует эта система за единицу времени. Кто-нибудь знает? Каждую секунду в системный блок автопилота поступают данные с камер, радаров, лидара, с датчиков позиционирования и ускорения. Для Google эта цифра равна 1 ГБ в секунду. Каждую секунду автопилот обрабатывает 1 ГБ информации. Для сравнения – рядовой пользователь смартфона потребляет где-то 3-4 ГБ данных в месяц. Наверняка, человеческий мозг оперирует куда большим объёмом информации. Наверное, для многих станет открытием, если я скажу, что количество информации, которую человек получает через глаза, в 22 раза меньше, чем оперирует автопилот от Google. Представляете, в 22 раза. Каждую секунду через наше зрение поступает 0.04 ГБ. Это является 90% всей информации, которую получает человек из окружающего мира. Остальная поступающая информация распределена между слухом, осязанием и обаянием. Вы можете себе представить, человеку вполне достаточно такого количества данных для выполнения функционала и задач, на которые не способны даже мощные компьютеры. Получается, что для выполнения задачи по управлению автомобилем автопилоту Google необходимо каждую секунду обрабатывать 1 ГБ данных из окружающего мира. В тоже время для человеческого мозга для выполнения тех же задач по управлению автомобилем достаточно 0.04 ГБ(45 МБ) в сек. Это удивительный факт, который показывает, что дело не только в мощности. А в способности системы используя минимум информации, выполнять максимум задач.

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

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



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

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



Если посмотреть на эту схему выше, из нее видно, если робототехник использует математический метод распознавания изображений, то за выбор особенностей распознаваемых объектов лежит на программисте. Это самая важная и необходимая задача — распознать объект. Без этой процедуры робот не сможет выполнять поставленную перед ним задачу. А чтобы робот смог распознать объект, программисту нужно во время программирования выделить особенности распознаваемого объекта. Так вот, если исключить математический метод обработки и распознавания изображений, который является трудоёмким процессом и требует специфических знаний, то за выбор особенностей распознаваемых объектов будет отвечать нейронная сеть.



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

2. Краткий обзор по нейронным сетям


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

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

3. Гордиев узел


Когда автолюбитель покупает автомобиль, он не задумывается над тем, какое передаточное число используется между коробкой передач и двигателем автомобиля. И тем более ему не интересно, какой химический состав стали используется в зубчатой муфте автомобиля. Многие этого не знают. Этого и не надо знать. Это не должно входить в компетенцию автолюбителя. Так вот, робототехник не должен сталкиваться с проблемами и задачами по разработке нейронных сетей. Он не должен думать над тем, какое там количество нейронов использовать в каждом слое, или сколько слоёв использовать в нейронной сети. Это не должно входить в компетенцию робототехника. Подобными вопросами должны заниматься профессионалы.

Я выскажу своё мнение по поводу возможности разработки конкурентоспособных нейронных сетей отдельными программистами, или небольшой группы программистов и, наверное, вас разочарую. Кому-нибудь известен Чарльз Дарвин и знаком с его трудами о происхождении видов? Кто-нибудь сталкивался с работами академика Павлова. Кто-нибудь читал его лекции? Это тот самый Павлов, собаки которого пускали слюну на загоревшую лампочку по выработанному условному рефлексу. Возможно, кто-то читал Ухтомского «Учение о доминанте», или знаком с «Теорией функциональных систем» Петра Анохина. К сожалению, без соответствующих знаний в нейрофизиологии и нейробиологии невозможно построить более-менее приличную нейронную систему. Не стоит расстраиваться, на долю робототехника остаётся более благородное занятие по обучению нейронных сетей. А чтобы обучение было доступным для каждого, даже не робототехника, а каждого пользователя, необходим понятный и простой интерфейс для обучения нейронных роботов.



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



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

Это один из примеров, который наглядно показывает насколько просто и быстро, если сравнивать с другими методиками обучения нейронных сетей, может быть обучение этих сетей. Это более медленный интерфейс по обучению нейронных сетей, чем тот, о котором я говорил. Тем не менее, для обучения управлению машинкой по этой дороге достаточно нескольких минут. Так вот, при определённом навыке, робототехник сможет обучать нейронную систему даже по этому интерфейсу десяткам операций в день. По-моему, с внедрением на рынок подобных простых и понятных интерфейсов для быстрого обучения нейронных роботов нейронные системы займут существенную долю в такой перспективной области, как робототехника. Мне это кажется очевидным.
@ronzhin
карма
0,0
рейтинг 0,0
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама

Самое читаемое

Комментарии (29)

  • 0
    Преимущества НС в статье показаны, а в чем минусы НС по сравнению с мат. алгоритмами? И не перекрывают ли минусы НС ее плюсы?
    • +9
      Нет, преимущества не показаны. Вообще ничего не показано.
      У нас таких «студентов» «пачками» на защите срезают:
      «Что такое нейронная сеть? Ну… Как обучается сеть? Э.....» И так далее.
    • 0
      Я думаю, один из главных минусов — это стоимость «железа», которое сможет обеспечить достаточную производительность для нейросети требуемой конфигурации. Да и вообще, возможно ли, при текущем уровне технологий, такое «железо» собрать. Когда-то где-то я читал, что мозг человека превышает по производительности все известные (на тот момент) кремниевые аналоги. Как с этим сейчас обстоят дела? Почему-то автор ответ на этот вопрос посчитал не столь существенным, чтобы попытаться осветить его в статье.
      • 0
        Более важная проблема, что НС не умеет реализовывать универсальные алгоритмы. Например, расчет факториала или сортировку большой последовательности на НС не запрограммируешь.
        • 0
          Как-то ведь наш мозг с такими задачами справляется? Пускай медленно, с помощью листика и ручки, но принципиально он это может делать. Может, просто нужна какая-то сложная НС? Я не эксперт в этом вопросе, но мне кажется, все упирается именно в производительность железа, которое сможет потянуть НС достаточной сложности. Конечно, я могу и ошибаться.
          • +2
            Мозг справляется, потому что годы эволюции построили (условно) эмулятор аналога тьюринг-машины поверх НС. Этот эмулятор очень неэффективен и бажен, в этом можно лично убедиться — попробовав перемножить пару 5-ти значных чисел в уме.
            Для искусственных НС такого эмулятора не существует. Т.е. нет возможности на каком-нибудь аналоге Алгола записать алгоритм для исполнения на НС. О более высокоуровневых языках говорить и не приходится.

            ps
            НС хороши только в задачах нечеткой классификации.
            • 0
              Я от всего этого далек, но раз годы эволюции смогли построить что-то поверх нейронной сети, то в принципе и инженеры смогут рано или поздно, надо просто дать им немного больше времени. У эволюции его вона скока было :) Ну а заодно они могут избавиться от неэффективности и бажности. Хотя, зачем строить, если можно взять классический компьютер для обработки алгоритмических задач и добавить туда НС для неалгоритмизируемых и трудноалгоритмизируемых, что, собственно, многие и делают, насколько мне известно (например, в OCR). Но мы сейчас куда-то отклонились от изначально заданного мной вопроса, ответ на который мне по-прежнему интересен: какое «железо» и какие энергозатраты нужны для функционирования нейросети, способной справиться с задачей, описанной в статье? Не зря же гугл отказался от использования НС? Где-то существуют подобные рассчеты?
          • 0
            Думаю, что если даже самому внимательному человеку дать отсортировать массив из миллиона элементов вручную, он хоть раз ошибется. Вполне возможно, это как-то связано с ошибками при использовании НС для таких задач.
  • +6
    Зачем этот текст был написан, кроме как для «преодоления» песочницы Хабра? Вообще рассуждения «вилами на воде» от человека, который видимо ничего не понимает в нейронных сетях.
    Как у нас говорили: «Идите, поручик, и застрелитесь! С этим позором жить нельзя!»
  • 0
    Всего 2 вопроса:

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

    2. Какова стоимость такого чипа (комплекта) по сравнению с цифровой системой управления (включая стоимость всех «избыточных» датчиков этой цифровой системы)?
    • 0
      1. Существует ли в настоящее время чип (или комплект чипов), аппаратно (программная реализация системы такой сложности — это из области ненаучной фантастики) реализующий нейросеть
      Вы, наверное, имеете ввиду реализацию всего функционала нейронного мозга? О такой реализации, в настоящее время, я не в курсе. Но, для управления автомобилем, такой сложной конструкции не требуется. Аппаратно нейронная сеть реализована на плате с использованием FPGA. Эта плата установлена на машинке, фото в верху. Вполне подходит для управления передвижной техники.
      2. Какова стоимость такого чипа (комплекта) по сравнению с цифровой системой управления (включая стоимость всех «избыточных» датчиков этой цифровой системы)? :
      По нашим предварительным расчётам не больше 100 000 — 150 000 руб. В разы дешевле.
      • 0
        Как эта машинка работает? Какой тип сети используется? Какой алгоритм обучения? Какие данные на входе и какие на выходе?
      • +3
        Я всего лишь имею в виду многослойный перцептрон на нелинейных «нейронах» (многослойная нейросеть на линейных элементах не имеет смыла, т.к. полностью эквивалентна однослойной).

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

        Извините, но заявления о том, что с этим справится эмулятор, реализованный на ПЛИС'е — это абсолютная недооценка сложности задачи.

        Давайте подсчитаем. Предположим у нас монохромная видеокамера на 1.2 мегапиксела (это на два порядка меньше, чем палочек на сетчатке человеческого глаза и для реальной системы абсолютно недостаточно, но вполне достаточно для опровержения Ваших расчётов). даже если предположить, что нам удалось сжать сигнал настолько же эффективно (примерно в 120 раз; интересно, каким образом Вы это сможете сделать?), как это делает человеческий глаз, то понадобится 10000 (десять тысяч!!!) нейронов во входном слое сети. На два глаза (стереоскопичность зрения для автомобиля обязательна) потребуется 20000 нейронов.

        Предположим, у нас примитивнейшая трёхслойная сеть сеть со связью между соседними слоями «все со всеми», без обратных связей и без связей внутри слоя. Между двумя соседними слоями понадобится 200002=4·108 связей.

        Итак, получаем 20000 нелинейных функций от одного аргумента (нейроны первого слоя сети), 40000 нелинейных функций от 4·108 аргументов каждая (нейроны второго и третьего слоя сети) и 8·108 переменных для передачи информации между слоями.

        Даже если в результате обучения 99% связей будет выкинуто, то у функций будет «только» по 4·106 параметров, а переменных останется «всего» 8·106.

        НЕРЕАЛЬНО!!!

        Даже если нейронная сеть, которой Вы попытаетесь решить задачу, будет намного проще (и значит, вероятность ошибки будет намного выше) — всё равно нереально! Ни одна ПЛИС такой объём вычислений в реальном времени произвести не сможет.

        P.S. И что Вы будете делать, когда появится новый дорожный знак и нейросети во всех машинах придётся менять?
        • 0
          С новым дорожным знаком вариант дообучения разве не поможет? Либо в сервис-центре, либо самостоятельно, скачиванием специально подготовленной серии обучающих примеров с оф. сайта.
          • 0
            С цифрами в прошлом сообщении я напутал. В исходной нейросети будет 20000 независимых нелинейных функций от одного аргумента, 40000 независимых нелинейных функций от 20000 аргументов каждая и минимум 40000 переменных (значения на входах и выходах обрабатываемого слоя нейронов).

            После обучения (при ранее указанных допущениях) останется: те же 20000 независимых нелинейных функций от одного аргумента, 40000 независимых нелинейных функций от 200 аргументов каждая и те же 40000 переменных.

            Хрен редьки не слаще… НЕ РЕАЛЬНО!!!.
            • 0
              Да проблема даже не в вычислительной мощности, а в точности распознавания. Если решающая функция не совсем топорная (например, «слева больше светлых пикселей, чем справа, значит дорога уходит туда»), то для её моделирования нужна сильно нелинейная функция, т.е., в контексте нейронок, глубокая сеть. А глубокая сеть по-умолчанию склонна к переобучению, и это надо как-то решать. Хинтон вот предложил обучать её послойно, после каждого слоя вручную проверяя эффективность трансформированных входных сигналов. Если мы говорим про изображения, то наверняка понадобится дополнительно ещё 1-2 свёрточных слоя, чтобы солнце в верхнем правом углу не коррелировало с велосепидистом в левом стекле заднего вида. В итоге получаются такие монстры из 7-9 слоёв, тщательно спроектированные и выверенные на каждом слоё, и обученные в кластерах по тысяче машин. И это только для базового понимания изображения, а для автоматического управления дополнительно нужно учитывать показания датчиков, правила дорожного движения, общую обстановку на дороге, и уметь на основании всего этого принимать решения, обеспечивающие безопасность пассажира. И вот для этого уже не только докторскую степень в математических методах и статистике иметь надо, но и вложить нереальное количество человекочасов и денег на исследования, эксперименты и разработку.
        • 0
          Такой объём вычислений, нереально. Согласен. А нужен ли нам такой объём данных и для чего? Я приводил сравнение по входной информацией, которую используют гугл и человеческий мозг. Для гугл это 1 ГБ_сек., для мозга человека – 0.40МБ/сек. Задайте себе вопрос, почему так? Если говорить о мощности человеческого мозга, то, да, современные вычислительные компьютеры до сих пор отстают по этому показателю. Приводя в пример мощность мозга, следует учитывать то обстоятельство, что эта мощность складывается при условии задействия одномоментно всех нейронов и нейронных связей. Вы можете представить ситуацию, когда сигнал проходит сразу по всем нейронам через все нейронные связи. Мне даже сложно себе представить, что будет с человеком. В любой житейской ситуации, для «обработки» входной информации задействованы определённые группы нейронов. Но никак не весь мозг. На этой машинке используется НС с 1 200 000 нейронных связей. Количество ситуаций, которые система сможет распознать (идентифицировать) и отреагировать так, как её этому обучили, равно 255 в 1 200 000 степени. Много это или мало для автопилота на дороге, покажет практика. Тем более, что мы исходили из того, что на автопилоте следует использовать НС помощнее, с 16 588 800 нейронными связями. Тогда число ситуаций, которые система сможет распознать увеличится до 255 в 16 588 800 степени. Для этих целей подойдёт FPGA за 6 000 руб. Для домашних нужд, частного пользования, или для использования в робототехнических конструкторах, та система, которую мы установили на машинке, вполне перекроет потребности робототехника и любителя.
          • 0
            Количество ситуаций, которые система сможет распознать (идентифицировать) и отреагировать так, как её этому обучили, равно 255 в 1 200 000 степени

            А вы ей предоставите столько обучающих примеров? ;)
            • 0
              Это как раз и показывает, что возможности системы гораздо больше тех, которые могут понадобиться.
              • 0
                Я спрашивал про обучение: сможете ли вы подготовить достаточное количество обучающих данных, чтобы покрыть хотя бы 90% возможных ситуаций?

                Хотя обработка видео — это сложно для понимания и требует много знаний. Давайте возьмём задачу попроще: обучние сети классифицировать текст по составляющим его словам. Представим, что язык у нас сильно недоразвитый, имеет всего 1000 слов, без словоформ, без знаков препинания и всего такого. Также притваримся, что каждое слово может встречаться всего один раз, т.е. вектор бинарный. Чтобы было совсем просто, будем считать, что классифицировать нужно предложения всегда ровно из 10 слов. Количество размещений в данном случае будет равно:

                placements = n! / (n-k!) = prop(n-k+i) | i=1:k
                n = 1000
                k = 10
                placements = 990*991*992*993*994*995*996*997*998*999*1000 = 6319933408433610752 ~ 6.3 * 10^18
                


                Это гораздо меньше, чем названные вами 255*1200000 (кстати, почему 255? uint8 изображения имеют 256 значений). Но это значит, что для полного обучения этой жалкой сети для классификации текста вам понадобится 6.3 * 10^18 непротиворечивых примеров: по одному на каждую комбинацию. Вы сможете предоставить такое количество обучающих примеров? Вряд ли.

                А что будет, если провести неполное обучение, на, скажем, 10^6 примерах? Миллион примеров — это чертовски хорошая обучающая выборка. Мы можем говорить, что при получении предложения, полностю совпадающего с одним из миллиона, мы получим правильную классификацию. Но вот вероятность получить в свободном тексте ещё одно такое же предложение равно 10^6 / (6.3 * 10^18) = 1.6 * 10^-13. Про остальные 0.9999999999998418 возможных предложения такая сеть мало что сможет сказать.

                Так что попробуйте как-нибудь обучить сеть на какой-нибудь простенькой задаче типа классификации текста, а потом уже говорите про возможности системы.
                • 0
                  Будет лучше, если я приведу некоторые примеры из практики по обучению нейронной сети конкретным задачам. К сожалению, фото выложить не могу из-за отрицательной кармы. Опыт работы данной НС на промышленном роботе показал, что к системе применимо несколько методов обучения. В проведенных исследованиях в качестве объекта управления использовались промышленные роботы, однако полученные результаты применимы ко всем возможным объектам управления. НС может обучаться в пассивном режиме, когда обучатель, используя метод “вождения за руку”, многократно циклически повторяет движения робота в режиме обучения, добиваясь того, что робот будет двигаться с заданной точностью, необходимой для выполнения поставленной задачи, т.е. без формирования обучаемой выборки. Того же результата обучатель может добиться, если по ходу движений робота будет подавать сигналы коррекции лишь в тех ситуациях, в которых сигналы управления исполнительными двигателями имеют наибольшие отклонения от требуемых значений, т.е. реализовывать вариант обучения, который позволяет значительно сократить его продолжительность. К тому же, НС позволяет использовать в процессе обучения не все возможные ситуации, общее количество которых может быть огромным, а только те, которые характерны для достижения поставленной перед роботом цели и необходимы по мнению обучателя. Но наиболее эффективным методом обучения является метод с использованием обобщенных ситуаций. Так называемое обучение в активном режиме, когда ситуации обучаемой выборки формируются такими, чтобы каждая из них отражала целый класс конкретных ситуаций, процесс обучения при этом значительно упрощается. Так, в рассматриваемом примере поиска ключа требовалось обучить робот поиску предмета (ключа), произвольно расположенного среди прочих предметов.
                  Одна из первых систем очувствления робота включало 140 фотоэлектрических рецепторов сетчатки технического глаза и 840 нейронных связей. Сигналы управления поступали на три исполнительных двигателя. Один двигатель отвечал за движение по оси х, другой – по оси у, а третий двигатель отвечал за поворот робота вокруг своей оси. В данном эксперименте в обучаемую выборку входила одна визуальная ситуация (изображение ключа) и шесть обобщённых.
                  Поиск ключа (цели) можно было повторить при ином взаимном расположении предметов, при наличии других посторонних предметов, при иной ориентации ключа, и при этом, за счёт использования обобщённых ситуаций, не требовалось переобучать систему. Система будет всегда находить ключ. Обучение поиску ключа составляло несколько минут. Экспериментальные работы по применению данной НС показали, что возможно создание интерфейса, привычного для нас в радиоуправлении. Кто-то найдёт этот способ обучения более удобным или интересным, чем другие методы. Хотя бы потому, что он для человека более естественен.
                  • 0
                    Я могу сходу назвать с десяток нестыковок и косяков в вашем описании, но давайте лучше вы просто приведёте ссылку на эксперимент, и мы вместе посмотрим, что в нём использовалось, и что из этого получилось.
          • 0
            Прошу прощения за расчёты. Вместо количества ситуаций 255 в 1 200 000 степени, должно быть 255 в 307 200, вместо 255 в 16 588 800 — 255 в 2 073 600 степени.
  • 0
    «Каждую секунду через наше зрение поступает 0.04 ГБ.»

    Как получилась эта цифра? Хотелось бы увидеть ваш расчет.

    Каждая сетчатка у человека содержит около 6—7 млн колбочек и 110—125 млн палочек: ссылка (https://ru.wikipedia.org/wiki/%D1%E5%F2%F7%E0%F2%EA%E0)

    То есть физическое разрешение сетчатки: 100 мега пикселей. Предположим картинка сразу после сетчатки усредняется и далее в мозг поступает 10 мега пикселей.
    предположим что на цвет и яркость уходит 24 бита, тогда 10 000 000* 24= 240 000 000 бит
    в байтах это 30 000 000 байт т.е примерно 30 мб, но это один кадр а человек в секунду замечает 30-40 кадров, и того в секунду в один глаз влетает 35*30=1 ГБ. То есть в один глаз в секунду попадает 1 Гигабайт.
    • 0
      К примеру, вот расчёты, которые публиковались здесь на хабре. Если найду ссылку, скину.
      Сетчатка человеческого глаза имеет приблизительно 7-8 млн колбочек, отвечающих за цветное зрение, и около 120 млн палочек (черно-белое зрение). Узким местом, в которое упирается максимальная частота «кадров», передаваемая органом зрения, является — латентность нервных синапсов (участок связи между нейронами, где импульс передается путем выброса и захвата химических веществ). По разным оценкам это примерно 100-150 Гц, что является пределом скорости передачи изображения в зрительную кору головного мозга. Количество нервных волокон в зрительном нерве составляет примерно 1 200 000. Если принять, что одно волокно за такт может передать 1 бит информации, то суммарная пропускная способность зрительного нерва примерно равна 1.2*106*150 бит=180 мегабит/с. Нашему мозгу приходится обрабатывать суммарный поток в 360 мегабит/с (или 45МБ/с = 0.043 ГБ/с) столько от зрительного анализатора.
      • –1
        Да, я не знал что в зрительном нерве 1200000 волокон, ну тогда, думаю перед тем как попасть в зрительный нерв, картинка каким-то образом преобразуется. что в случае компьютера тоже съест вычислительную мощность. Пока для меня нейросети это скорее еще один математический алгоритм, причем очень сложный (диффуры, диффуры, диффуры), при этом про какие-то серьезные успехи с этим алгоритмом, например, в распознавании образов не слышно. Т.е не видно его успешного применения на практике.
  • +2
    Проблема ИНС — устойчивость решения. Да, сетка может обучиться, но никогда нельзя быть уверенным, что решение устойчиво на всём диапазоне возможных входных значений. Аналитическое исследование в общем случае — невозможно, поэтому для критически важных применений ИНС не используют.

  • +1
    Сохабровчане, а только у меня кровотечение из глазниц от первого слайда?

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.