Pull to refresh

Comments 34

Ммм… ждем вторую часть. Пока как-то не о чем.
Очень надеюсь, что это вводная часть перед какими-то основами новой технологии вашей компании (о которой пока больше эмоциональных слухов, чем фактов).
Дмитрий разрабатывает наши OCR-технологии. Об этом его опыте и идёт речь.
Т.е. это про оцифровку и распознавание, а не про перевод? Немного жаль, хотя, думаю, все равно будет довольно познавательно.
Мне трудно объяснить те вострорженные эмоции которые у меня вызвала эта статья.
Наверное, потому что, точно описано то, что происходит в проектах в которых я участвую.

Теперь я окончательно осободился от иллюзии что, где то там, в глубине лабораторий, есть умные люди которые используют правильные методы. Математику. Нейронные сети. И все красиво ;)

Нетерпение, в ожидании второй части, трудно передать.
Статья — гибрид науки и желтой прессы :)

Примеры интересные, в целом понравилось, но миф 1 как-то слабовато развеяли.
> миф 1 как-то слабовато развеяли.

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

Математическая постановка задачи явно выводит всякий устный бред в какое либо множество математик.

Например, задача о поиске оптимальной структуры БД на основе популяции запросов (надеюсь не обидел автора работы неверной трактовкой), прекрасно ложится на алгебру показателей.

Вывод и доказательство всяких лемм и теорем — алгебры логик.

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

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

Ну и глобально, конечно, эвристика применяется не только для NP-полных, но и для любых других задач (в целях оптимизации например), не помню упоминал ли автор.

Надеюсь я полностью ответил на ваш вопрос и объяснил суть предыдущих комментариев.

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

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

К примеру, с помощью математики не получается сделать автоматическое управление для вертолета — слишком сложная аэродинамическая модель.

Но — ее получается сделать при помощи самообучающихся алгоритмов :-) Так что, на мой взгляд, плохо развеян как раз миф №2.
Проблемы подобных статей: по-настоящему понять, что здесь написано могут только те люди, которые по работе сталкивались с этими проблемами. Но эти люди не найдут в этой статье ничего для себя нового. А те, кто не знаком с проблематикой (например, разработчики драйверов видео-карт или ERP-систем, люди безусловно квалифицированные, но не сталкивающиеся с нейронками и байесками по жизни) не оценят глубины выводов, которые содержатся в статье.

А так плюс конечно, очень хорошим языком написана статья, редкий случай.
Ой. Это статья про PVS-Studio :-) Сплошные if-ы и эвристики. И современно не понятно, как можно делать без них.
Скорее всего, никак. Статический анализ ищет подозрительный код. Как формализовать подозрительность кода?

Кстати, вы бы тоже могли написать что-нибудь о реализации правил статического анализа. В этой области немало легенд, например, про тривиальность реализации любого статического анализа с помощью регулярных выражений.
Да, я помню. Это был пример.
Можно вопрос? Это у вас такая корпоративная политика, что сотрудники в каждом третьем треде обязаны упоминать о PVS-Studio, или ваша личная инициатива? Спрашиваю без наезда или какого-либо негативного оттенка, если что.
Мне льстит, когда кто-то упоминает относительно нас слова корпоративная политика, или то что сотрудники СиПроВер активно выступают на Хабре. :) Вообще это я один здесь. Я и не думал, что один столько шуму создаю.
Каждый раз, когда мне приходилось писать грязный код (эвристики), в итоге получалось, что предварительный комментарий (в котором поясняется, что тут вообще происходит) по размеру значительно больше самого кода. Просто наблюдение.
Дмитрий, прекрасный стиль! Говорю как краевед — просто писать о сложном крайне тяжело. Ты делаешь это изящно. Жду продолжения и следующих публикаций!
Самообучающиеся алгоритмы, по сути, создают ту же систему эвристик, только автоматически. Более того, она получается гибче за счет возможности обучения системы на примерах, вместо тонны хардкода.

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

Конечно, при обучении таких систем надо менять стандартные подходы: вводить веса для новых, актуальных и гарантированно верных примеров; избавляемся от зависимости переменных друг от друга перед обучением при помощи метода главных компонент. И так далее.

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

Вы, кажется, не совсем точно поняли. Автор пишет не о создании научного прототипа (когда целью ставится изобрести методику, дающую 60-70% точность — характерный результат с ICDAR-2011), а о превращении этого прототипа в коммерчески используемую программу. И там «прекрасный» результат недостижим практически, всегда найдётся недовольный клиент, у которого что-то не сработало.
Метод опорных векторов дает точность порядка 85-95%. Нейросеть — порядка 90-98%, но у нее свои недостатки. Для решения «грязных» задач этого более чем достаточно.

Недовольные клиенты будут всегда — это, увы, закон бизнеса. Но тут стоит задача — автоматизировать. Если за счет такой автоматизации количество ручной работы уменьшится с 100% до 10-20% — это однозначно успех.
Не знаю, какая тайная ложа скрывает эти 85-98%, но научный стандарт — наиболее цитируемая работа 2010 года B. Epshtein, E. Ofek and Y. Wexler, Detecting text in natural scenes with stroke width transform даёт при разных экспериментах указанные 60-70%.
Честно скажу, не видел в серьёзных журналах результата 98%. И выглядит цифра подозрительно.
Обратите внимание, что я говорю о методе, а не о конкретном его применении. 97%, к примеру, дает трехслойная нейросеть при распознавании рукописных цифр — приложение для UPS 20-летней давности.

Я не работал с распознаванием текста в реальных документах — только игрался с самописными прототипами — потому тут полностью доверяю Вашему мнению.

Но хочу обратить внимание на то, что самообучающиеся алгоритмы применяются и активно развиваются в огромном количестве сфер, не только в распознавании текста. Потому миф №2, по сути дела, не такой уже и миф.
Ну так я о том же. Существуют задачи на которых математические методы полезны и эффективны. Чтобы свести реальную задачу к одной или нескольким из таких задач, нужно много потрудиться. О том и статья.
Вы так классно пишете, что даже если бы описывали вид из окна — было бы интересно почитать! Может, начнёте писать научную фантастику?
Кстати, на фотке не Беар Гриллз случайно?
Sign up to leave a comment.