tgoop.com/plush_python/28
Last Update:
Проклятие правил (часть 1/2)
#ml
Когда имеет смысл для решения бизнес-задачи применять машинное обучение, а когда это того не стоит? С одной стороны, если задача не очень сложная, то быстрый результат можно получить и без ML, построив систему на правилах (эвристиках). Для этого нужно иметь некоторую экспертизу в решаемой задаче и уметь описывать логику принятия решения на формальном языке, будь то Python, регулярные выражения или что-то ещё.
Пример из личного опыта. Когда-то давно я работал преподавателем английского. Однажды мне захотелось заменить скучные языковые упражнения из учебника на более интересные. Я подумал, что дело не в самом формате упражнений - вставить пропущенные слова, выбрать правильную форму глагола, подходящуе по смыслу и т.д. - а в их содержании. Например, вместо текстов про банальных Джона и Мэри можно было бы взять более интересные студентам темы: музыку, спорт, Гарри Поттера и т.д. Но составлять упражнения вручную не хотелось. Зная Питон, я за несколько вечеров написал прототип автоматического генератора упражнений на основе любых текстов на английском. Программа ранжировала тексты по сложности на основе количественных показателей (средняя длина предложений и слов, средняя частота слов), затем выбирала в текстах интересные слова и контексты для создания пропусков, после чего форматировала тексты в виде упражнений. В первой версии программа поддерживала всего три вида упражнений, но её уже можно было использовать в учебном процессе. Получив первые результаты, я стал постепенно улучшать генератор: добавлял новые виды упражнений и совершенствовал алгоритм оценки сложности текстов. Всё это безобразие работало довольно хорошо без какого-либо машинного обучения, только на правилах. (Кстати, это был мой первый серьёзный проект в natural language processing, хоть и некоммерческий, т.к. программа распространялась бесплатно. Зато я сделал по нему несколько научных публикаций в 2014-2015 гг.)
Однако, как известно, есть много сложных задач, решение которых практически невозможно автоматизировать на достойном уровне качества без использования машинного обучения: машинный перевод, генерация изображений по текстовому запросу, распознавание речи и т.д. Странно было бы пытаться решать подобные задачи с помощью правил, написанных экспертами вручную (хотя такое порой пытались провернуть на ранних этапах развития искусственного интеллекта). А что нужно для машинного обучения? Хороший набор обучающих данных: чем он чище и полнее, тем лучше на нём обучится алгоритм. Для действительно сложных задач, которые решаются большими нейросетевыми моделями, конечно, нужно ещё обеспечить достаточные вычислительные ресурсы, но об этом мы поговорим как-нибудь в другой раз.
BY Плюшевый Питон
Share with your friend now:
tgoop.com/plush_python/28