plakhov: (Default)
[personal profile] plakhov
А не хочет ли кто-нибудь обсудить одну штуку из области machine learning?

Неформально, задача такая: нужно построить почти бинарный классификатор (в каком смысле "почти" - см.ниже). Для этого есть некоторое (очень небольшое) количество фичей, каждая из которых имеет неотрицательную корреляцию с результатом. Процесс получения оценок допускает active learning, но при этом хочется уметь обойтись небольшим количеством оценок.

Навскидку кажется, что делать это нужно примерно как в этой, например, статье: Support Vector Machine Active Learning with Applications to Text Classication - использовать SVM, а для active learning на каждом шаге выбирать те примеры, которые после их классификации как можно сильнее сузят пространство допустимых гиперплоскостей в parameter space.

Проблема в том, что мне ужасно не нравится, как это работает на практике. Практически все предлагаемые к оценке примеры, начиная уже где-нибудь с первого десятка, как на подбор оказываются из "серой зоны", то есть либо такими, которые и человек не способен уверенно классифицировать, либо, что еще хуже, такими, которые данными фичами явно "не берутся".

Я обошел это, включив "серую зону" непосредственно в условия задачи - т.е. классификатор должен уметь отличать "точно да", "точно нет", и всё остальное. Это, в общем, работает, и уже гораздо лучше, но, к сожалению, этим решением я резко ограничиваю себе доступ к сокровищнице мировой мысли, поскольку постановка существенно более экзотическая (это, например, не совсем мультиклассификация, поскольку ответ вида "плюс с вероятностью 66%, минус с вероятностью 33%, серая зона с вероятностью 1%" абсолютно некорректен и не очень понятно, как его интерпретировать). Ну и начинаются какие-то хаки, problem-specific твики и т.п.

Нет ли способа лучше? Что известно, например, про active learning для постановки с "мягким бинарным классификатором" (когда ответ разрешается давать в форме "да с вероятностью 78%", а не просто "да")?

Upd. Спасибо всем за комментарии. В общем, я решил не изобретать велосипед, а использовать честный gradient boosting для логистической регрессии. Примеры для активного обучения при этом выбираю не такие, на которых вероятность близка к 50%, а такие, на которых она близка к, условно говоря, 40% или к 60%, в зависимости от того, каких оценок (подожительных или отрицательных) классификатору не хватает. Плюс к этому у человека есть возможность сказать "не хочу оценивать этот пример", если его невозможно уверенно классифицировать. В сумме метод отлично работает, гораздо лучше всяких наколеночных, и лучше, чем SVM.
From:
Anonymous( )Anonymous This account has disabled anonymous posting.
OpenID( )OpenID You can comment on this post while signed in with an account from many other sites, once you have confirmed your email address. Sign in using OpenID.
User
Account name:
Password:
If you don't have an account you can create one now.
Subject:
HTML doesn't work in the subject.

Message:

 
Notice: This account is set to log the IP addresses of everyone who comments.
Links will be displayed as unclickable URLs to help prevent spam.

Profile

plakhov: (Default)
plakhov

2017

S M T W T F S

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jul. 25th, 2017 06:46 pm
Powered by Dreamwidth Studios