Активное обучение — одна из наиболее недооцененных техник машинного обучения. У многих из нас был некоторый опыт работы с ним в школе, когда мы использовали хорошо подобранные академические наборы данных, но мало кто использует его в деловом мире для обработки реальных данных со всей их запутанной сложностью.
Здесь, в Alectio, мы считаем, что методы активного обучения несправедливо оклеветаны и потенциально меняют правила игры для решения определенных проблем не в академических кругах, а в промышленности. Основной причиной этого является то, что активное обучение обещает значительно сократить затраты и время, необходимые для обучения готовых к производству моделей. Наше исследование показывает, что активное обучение может обеспечить такую же (или лучшую) производительность, как и стандартное обучение с учителем, используя лишь часть обучающих данных.
В этой статье мы развеем распространенный миф об активном обучении и дадим вам основу для понимания того, возможно ли активное обучение для ваших проектов.
Давайте начнем с определения того, что на самом деле делает активное обучение. Как правило, модели активного обучения начинают с изучения случайной выборки данных, после чего модель активно запрашивает дополнительные метки для повышения производительности.
Чего не хватает в этом определении, так это того, какие данные модель запрашивает после обучения. И это не просто так. Существует множество различных методов выборки, которые вы можете использовать для активного обучения, но то, что мы обнаружили здесь, в Alectio, заключается в том, что почти все, с кем мы разговариваем, предполагают, что активное обучение использует выборку с наименьшей достоверностью. То есть он запрашивает метки для данных, в которых он пока наименее уверен.
И хотя выборка из наименее достоверных данных является распространенной стратегией, это не единственная стратегия. И более того, часто не очень удачное. Это связано с тем, что часто немаркированные данные, в отношении которых модель менее всего уверена, являются, проще говоря, спам-данными. Например, если вы обучаете алгоритм распознавания лиц, самыми низкими достоверными данными могут быть изображения лиц людей или безнадежно размытые селфи. Если модель получит больше этих данных, она не станет более точной. Скорее всего, это сделает наоборот. И если вы тут же списываете активное обучение со своего проекта, что ж, вы совершаете ошибку.
Позвольте нам показать вам, почему.
Ранее в этом году мы провели эксперимент на DeepWeeds. DeepWeeds — это набор данных с открытым исходным кодом, содержащий чуть более 17 000 помеченных изображений восьми различных видов сорняков. Мы хотели посмотреть, будет ли активное обучение работать для задач распознавания изображений в этом наборе данных, поэтому мы провели быстрый эксперимент по выполнимости.
Во-первых, мы случайным образом разделили набор данных на пять равных сегментов — так что с 17 000 точек данных для начала это около 3400 на сегмент. Затем мы обучили нашу модель каждому из этих подмножеств по отдельности, сначала на случайной выборке из 20 %, и проверили ее на точность, воспроизводимость и полноту. Мы сделали то же самое для случайных 40%, 60% и 80%.
Вот результаты одного из таких тестов:
На что мы хотим обратить ваше внимание, так это на кое-что примечательное в графике точности. Заметили, как много перекрытий между 40-, 60- и 80-процентными тестами? Более того, обратите внимание, как лучшая производительность теста 20% на самом деле выше, чем худшая производительность теста 80%?
Это точные результаты, которые предполагают, что активное обучение поможет решить эту проблему.
Почему? Потому что производительность этой модели не зависит от объема данных, на которых мы ее обучаем. Вместо этого он основан на каких данных, на которых мы его обучаем. Опять же, наилучшая случайная выборка в 20 % дает нам точность около 85 %, тогда как наихудшая случайная выборка в 80 % оказывается ниже этой. Это говорит о том, что если вы выберете правильный тип данных, вы получите лучшую производительность, чем просто выборка случайным образом.
И в этом главная сила активного обучения: оно не обучается на случайных выборках. Вместо этого он выбирает, какие данные ему нужно пометить, чтобы повысить производительность. Однако то, как это делается, зависит от выбранной вами стратегии выборки. И именно здесь мы собираемся вернуться к тому распространенному заблуждению, что активное обучение использует в первую очередь (или только) стратегию запроса данных, в которых оно менее всего уверено.
Видите ли, когда мы использовали наименее достоверную стратегию выборки для этих данных, результаты выглядели так:
Фигово.
Более того, это академический набор данных с открытым исходным кодом — здесь нет большого загрязнения или шума. И даже тогда использование наименее надежной стратегии выборки дало нам плохие результаты. Производительность нашей модели менялась хаотично, и увеличение количества данных не обязательно приводило к повышению точности.
Если вы похожи на многих практиков машинного обучения, вы можете перейти к совершенно другой стратегии и вычеркнуть здесь активное обучение. Мы решили попробовать те же модели активного обучения с несколькими разными стратегиями выборки. А вот как выглядели эти:
Гораздо лучше, правда? В то время как метод наименее надежной выборки был хуже, чем случайная выборка в большинстве запусков, другие методы выборки были намного лучше, чем случайная выборка. Это еще раз говорит о том, что активное обучение не просто осуществимо для решения проблемы, но на самом деле весьма перспективно.
Также важно указать на то, что может быть очевидным для некоторых читателей, но мы хотим подчеркнуть это здесь, прежде чем двигаться дальше: специалисты по обработке и анализу данных и специалисты по машинному обучению имеют не только бюджеты машинного обучения и вычислительные ограничения. У нас также есть маркировка бюджетных ограничений. Активное обучение предполагает выбор правильных данных для маркировки, а не маркировку случайных наборов потенциально бесполезных или даже вредных (спамовых) данных. Это, в свою очередь, приводит к повышению производительности модели при меньшем объеме обучающих данных. И вам, вероятно, не нужно, чтобы мы говорили вам, что это хорошо.
В следующем выпуске мы углубимся в каждый из этих методов выборки и поговорим о них немного подробнее, но мы хотим, чтобы вы вынесли из этой первой части следующее: не попадайте в ловушку, предполагая, что все процессы активного обучения основаны на одних и тех же стратегиях выборки. Это не так. Технико-экономическое обоснование, подобное тому, которое мы провели, довольно просто попробовать, и если вы видите, что выборка 60% имеет такую же или меньшую точность, чем ваши выборки 20% или 40%, это, вероятно, означает, что активное обучение может работать для вашего проекта.
Потому что в таких проектах речь идет о поиске правильных обучающих данных, а не самых обучающих данных. И это именно то, что активное обучение делает хорошо.