Где предпосылки для появления роботов? Их нет!
Опубликовал club-archive 28 июля, 2005А начну я со сказочки :о) Окончив школу я решил поступать в ВУЗ. Выбор пал на Технический университет. Понятия о специальностях вуза я (возможно как и другие) не имел. В руки попала газета об имеющихся факультетах и специальностях. Прочитав её я однозначно выбрал специальность "роботы и робототехнические системы". Казалось это единственное, что мне интересно и чем стоит заниматься. Но человек предполагает, а демиурги располагают :о). Окончил я другой институт, о чём, впрочем, не жалею.
Разные времена предполагают разные критерии разумности робота. Планка постоянно отодвигаются. Спорить об этом можно бесконечно. Под роботом я понимаю:
1. автономный, свободно перемещающийся аппарат.
2. понимание человеческой речи.
3. Синтез речи.
4. Зрение.
5. Выполнение хоть какой либо ПОЛЕЗНОЙ работы.
1 и 5 пункт будем считать решённой задачей. Я не требую выполнения сложной работы.
3 пункт с некоторой натяжкой тоже. Хотя для правильного воспроизведения речи необходимо понимание смысла текста. Современные «бубнилки» не способны расставлять ударения в слове и в тексте, имитировать интонацию. Но для первого приближения сойдёт.
2 пункт не решён. Текущая реализация распознавания отдельных слов и фраз не подходит. Это очень сложная задача. Для современных программистов большая загадка: каким образом мозг ребёнка разделяет слова в предложении? Ведь человек говорит непрерывно.
При реализации 2 и 3 пункта возможно появление электронного прибора, описанного в фантастической литературе – автоматический переводчик. Представьте, что вы турист с маленькой коробкой. Вы побывали в десятке стран и не испытываете неудобств с языком. (И не потому что вы знаете текущий международный язык – английский :о) Автоматический переводчик переводит и воспроизводит местный язык.
4 пункт далёк от реализации. Под зрением робота я понимаю:
- Определение расстояния до объектов. Построение трёхмерного плана помещения и динамическое его обновление.
- распознавание объектов. В том числе человеческого лица.
Существует миф о том что эти задачи нереализуемы по причине недоразвитости компьютеров. На мой взгляд задачу распознавания речи можно было решить и 10 лет назад на древних i80286. Естественно при наличии математического аппарата. Не важно, что не в реальном режиме времени. Неважно, что записанный фрагмент речи пришлось бы записывать в память компьютера и расшифровывать десятки минут, но на современных машинах бы всё летало.
Вот тут и всплывает причина неудач. Современное программирование перестало быть уделом математиков. Занятие подавляющего числа программистов – конструирование. Сборка программы из готовых блоков. Багаж знаний программистов – это знание «кирпичей». Как называется готовый нужный модуль и как его правильно использовать. Современный программист как домохозяйка которая смотрит телевизор. У неё в руках пульт. На нём n-кнопок. Она знает как пользоваться пультом, но не знает как устроен телевизор. И не хочет знать. Ситуацию усугубляет политика M$. Исходники Виндовс недоступны. Я не призываю каждый раз изобретать велосипед. Чужими трудами необходимо пользоваться. Хочу сказать что изготовлением «кирпичей» занимается малый процент программистов. Это сложное и далеко не всегда коммерчески успешное занятие. Например программу распознавания печатного текста успешно продаёт только одна контора. Компьютерные игры могли бы стать отличным полигоном для систем искусственного интеллекта. Вместо наращивания «мозгов» компьютерных противников геймерам подсовывают красивую картинку на пиксельных шейдерах и мультиплеер. Последнее гораздо проще в реализации.
Остаётся надеятся что системы искусственного интеллекта окажутся экономически успешными и софтверные гиганты пополнят свой штат значительным количеством математиков.
В записи нет меток.
Пример того на что способны лучшие роботы планеты:
Максимальный результат – 10 км по незнакомой пересечённой местности
Ух, мужик, ты попал! Учитывая мое образование, опыт работы предпочтения. No mercy!
Итак, сначала – о себе. Учился в МИРЭА, на факультете кибернетики, по специальности «искусственный интеллект». На том же кибе у нас есть и кафедра робототехники. Работал с 1993 (реально – с 1991, но не было трудовой книжки) по 1995 на ВЦ РАН, в отделе экспертных систем.
Пункты, которые якобы не реализованы, но реализовать просто. 2, понимание человеческой речи. В более общем смысле – распознавание образов, пересекается с п 4. Цитата: «На мой взгляд задачу распознавания речи можно было решить и 10 лет назад на древних i80286. Естественно при наличии математического аппарата.» Это взгляд 60-х, когда действительно казалось – рукой до роботов подать. Ан нет, распознавание образов принципиально не алгоритмизуется. Невозможно создать математический аппарат (формула, система формул), описывающий объект реального мира, будь это речевая команда или жест.
Допустим, у нас есть образец человеческой речи, команда «открой дверь». Человек, ребенок, поймет ее со второго раза, причем неважно, кто говорит. Машина же что может сделать – сопоставить с образцом? Человек простудился. С образцом спектра? Говорит другой человек.
В настоящее время существуют способы распознавания голосовых команд – до 90% попадания. Но либо нужна большая память для хранения данных, либо мощный процессор для получения этих данных в реальном времени и сопоставлении с образцом. И тут в дело вмешивается его величество контекст – машине говрят не «открой дверь», а «открой ее», «открой это» или вообще «открой». И ку-ку.
Тоже самое – с образами. Первый перцептрон был создан в 1962 году. С тех пор принципиально новое – это фрактальные преобразования, и то, они используются для уменьшения объема образцов. Опять же мощный процессор либо очень много памяти при низкой точности распознавания. Чем выше точность, тем выше затраты, причем они растут экспоненциально. Отсюда и «миф» (а это не миф) о недоразвитости компьютеров.
Машинный перевод. Это ужасно. И ужасно именно потому, что машина а) не мыслит, б) живет вне культурного контекста. И человек-переводчик вне контекста такую фигню несет… Вот, сейчас продвигают идею использовать дополнительно к словарю словоформ словари идиом. Правильная идея, качество перевода повысится. Но а) опять нужно очень много памяти с быстрым процессором и б) проблема контекста не решается.
Теперь о главном – что программистами должны быть математики. Нет, нет, еще раз нет. Из математиков получаются отвратные программисты. Математика – это язык науки, вещь совершенно абстрактная. А программист, методолог, проектировщик, дизайнер, технический редактор – все имеют дело с конкретными жизненными задачами. Математик мыслит однозначно, жизнь полна неоднозначностей. Математик способен вывести или «нащупать» формулу, в программу Excel ее сможет превратить только программист.
По поводу сборки программ из готовых блоков, политики Microsoft и исходных кодов. Как человек, занимавшийся (и надеющийся еще позаниматься в будущем) промышленным программированием, когда есть сроки, определены затраты, я скажу – мне не нужны исходные тексты. Мне нужны библиотеки/компоненты с подробной документацией, тестами и примерами. Мне некогда копаться в исходниках плохозадокументированной функции, выясняя, почему при граничных значениях она выдает неверные результаты. У меня нет желания писать низкоуровневый код управления контроллером диска, когда я могу просты вызывать fopen или CreateFile. Мне некогда писать 25-й оконный менеджер и 317-й редактор текста, когда над душой стоит начальник отдела и спрашивает, когда модель энергосистемы начнет, наконец, правильно реагировать на внезапное отключение нагрузки.
И я очень надеюсь, что программистские конторы не начнут в товарном числе нанимать математиков вместо программеров.
Что же касается роботов… Когда в прошлом году по телевизоре показали Asimo, спускающегося по лестнице, танцующего под музыку и балансирующего на качелях, я был в шоке. В 1996 году, на вопрос, когда же будут созданы ходящие роботы, способные преодолевать лестницы и пороги, один препо с робототехники, профессор, сказал мне – лет через 30. А на вопрос, смогут ли роботы ходить на двух ногах, сказл, что вряд ли – слишком уж сложная задача.
Если почитаешь заголовок статьи, то поймёшь что я не противоречу себе.
То есть работаем не со спектром сигнала.
Если процессор станет быстрее в 1000 раз это не решит задачу распознавания речи.
Большинство программистов это 1с-программисты или программисты баз данных. Подавляющее число программистов занимаются уже решёнными задачами. Под «кирпичами» я понимаю создание новых модулей.
«Как человек, занимавшийся (и надеющийся еще позаниматься в будущем) промышленным программированием» ты не создаёшь в научном плане ничего нового. Научная ценность твоего занятия = 0.
В таких сложных задачах программисты не источник идей, а только исполнители реализующие идеи математиков. Если расписать бюджет проекта по распознаванию речи, то на само программирование будет отводится не > 10% времени и денег.
Мне кажется что экстенсивный путь распознавания речи неприемлим. Тупое хранение речевых образцов не решит задачу. Возможная реализация задач (это прямо щас взял с потолка) это применение вокодерных систем. Речь раскладываем на кривулины (кажется называются на морфемы), исключаем половые признаки речи
Есть такой «принцип Питера», звучит: «Чтобы разбить все, что угодно, нужен лишь достаточно большой молоток.» В 1000 раз быстрее? И памяти во столько же раз больше? Решит, просто методом грубой силы. Это как с распознаванием почерков – на Palm придумали Graffiti, так как памяти мало (по-настоящему мало) и процессор дохленький, отсюда – никакого слитного текста, форма глифов специфичная. А вот для Table PC, для английского языка – запросто. И процессор мощный, и памяти – вагон, поэтому MS взяли и грубо скомпилировали 300000 образцов написания символов от руки. И работает, и хорошо работает.
Насчет 1С – это ты погорячился, это такая маленькая предметная область, что… Базы данных – это другое. Но и тут программист программисту рознь. Кодер, клепающий надстройку над MySQL для управления складом – это одно, а человек, занимающийся data mining (не знаю, есть ли перевод на русский – это поиск и анализ в очень больших массивах плохоструктурированных данных) – принципиально другое. Если первое я согласен назвать ремеслом, то второе – все-таки искусство. Возможно, пока, возможно, через пару лет будут созданы методологии, все разложено по полочкам и data mining тоже станет ремеслом.
О «решенных» задачах. Если бы люди, заведующие складами, выпускались бы не конвейере, 1С (или чего там) для автоматизации всех складов было бы достаточно. Это не так, поэтому частенько приходится адаптировать готовые продукты к сложившемуся производственному процессу. Т.е. настраивать 1С. Изредка – писать 1С с нуля. Хотя методология создания СУ складами существует.
С тем, что научная ценность промышленного программирования близка к 0 – согласен. Но я работаю не для науки, а для людей. Этот вопрос я уже однажды для себя решил.
Следующее, математики не в состоянии решить проблему распознавания речи, так как она – принципиально не алгоритмизуема. Я уже говорил – невозможно создать некую формулу или систему формул, переведя которую в программный код, мы получим разпознавалку речи для любого языка и человека. Насчет расклада бюджета подобного проекта – тоже согласен. С одним «но» – на мат. аппарат будет протачено еще меньше, причем в разы.
Экстенсиное разпознавание речи работает – в природе. Фактически, мозг хранит именно речевые образцы, что позволяет мне, например, отличить голос Юрия Соломина от голоса Василия Ливанова. Вся проблема в том, что делает это мозг до крайности эффективно (мозг – не компьютер фон Неймана). Плюс есть еще механизм связи речевого потока с языком и, например, визуальным каналом (чтение по губам), который позволяет распознавать речь в условиях сильнайших помех.
А разложение потока на фонемы (морфемы – это словоформы), хранящиеся в виде рядов Фурье и используется на практике. Хотя вот пример – французы говорят так, что во фразе отдельные слова сливаются в одно большое «слово». А японцы говорят отрывисто, каждое слово окружается четкой паузой. Поэтому машине понять японца проще, чем француза. Что мы и наблюдаем на практике.
Тебя я понял. Продолжать не буду.
deCoder ты красиво замутил про роботов.
вставлю и я своих 5 коп.
я думаю что реализовать в них хождение на 2 ногах глупо.
В ходе эволюции людей в них в миллиарды раз больше накопилось наследственных ошибок чем в процессорах и повторять их нецелесообразно.
2. понимание человеческой речи.
проще синтезировать с клавиататуры детеэмэф и через звук/воздух передавать. и между роботами можна также. Пищать будет как в ЗВ. Как не будет что делать попробую спаять.
4. Зрение.
Действительно проще копировать структуру мозга на спецнейропроцах (такие есть). Дальше обучать и нет проблем. Я лично видел такую тему работающую под досом на 486 для подгонки положения эсэмдешек.
2Wintermute. Неа всё же скажу ) Вокодерная техника (например G.711 – GSM кодек) основана на предположении, что в течение 30 мс сигнал речи человека постоянен и сильно не изменяется. + Речь любого человека можно разлжить на 20-30 кривулин. (цифры как обычно не помню). Т.е. французы с японцами не причем. (хотя японцы предпочтительны =) Мне всё же кажется (естественно безосновательно) что возможно реализовать распознавание речи без использования баз данных. Очень не хочется верить что робот ТриПиО из ЗВ имел на борту огромную базу данных для перевода 100 тыс языков и наречий ))))
Если тебе угодно, дорогой Wintermute, я признаю своё порожение в споре ибо я, в общем то, дилетант.
2kvt. ХА! ))) я как то не задумывался что астродроиды посредством DTMF общаются. :о) Но это совсем не относится к теме статьи. DTMF ничем не лучше радиобрелка или большой красной кнопки на лбу робота.
А в нейросетях еще достаточно проблем.
Был такой анекдот (млин плохо помню. Чё за память!
Учёные, расшифровывая ДНК человека, обнаружили коментарий в коде:
//А эту хрень вообще нужно удалить, ибо тупиковая ветвь. Архангел Гавриил. :о)