Обсуждение:Полигон алгоритмов

Материал из MachineLearning.

(Различия между версиями)
Перейти к: навигация, поиск
м
(Предложение по изменению названия проекта)
 
(17 промежуточных версий не показаны.)
Строка 1: Строка 1:
 +
__NOTOC__
 +
{{well|
{{well|
Исследователи, студенты, программисты, заинтересовавшиеся проектом, и желающие участвовать в разработке, могут обращаться ко мне ([[Участник:Vokov|К.В.Воронцов]]).
Исследователи, студенты, программисты, заинтересовавшиеся проектом, и желающие участвовать в разработке, могут обращаться ко мне ([[Участник:Vokov|К.В.Воронцов]]).
Строка 5: Строка 7:
== История ==
== История ==
В Советском Союзе попытки разработки такого Полигона предпринимались несколько раз.
В Советском Союзе попытки разработки такого Полигона предпринимались несколько раз.
-
Если кто-то может квалифицированно и непредвзято изложить ''историю полигонов'', сделайте это, пожалуйста, на данной странице, либо дайте ссылки. — [[Участник:Vokov|К.В.Воронцов]] 01:48, 5 апреля 2008 (MSD)
+
Если кто-то может квалифицированно и непредвзято изложить ''историю полигонов'', сделайте это, пожалуйста, на данной странице, либо дайте ссылки. — ''[[Участник:Vokov|К.В.Воронцов]] 01:48, 5 апреля 2008 (MSD)''
 +
 
 +
== Вводный комментарий ==
 +
Действительно интересный, актуальный и амбициозный проект!
 +
 +
1) Однако, первый вопрос, который у меня возникает, как можно сравнивать алгоритмы классификации без приведения терминов, в которых описываются входные и выходные данные к общей теоретико-вероятностной базе? А, без этого, как можно применять один алгоритм классификации A, взятый из одной области знаний X - в совсем другой области Y? Не совсем очевидно, откуда в этом алгоритме может быть хоть сколько бы значимая информация об этой области Y... Другое дело, если было бы возможно выделить некоторые общие объективные характеристики связанные с самой задачей и классифицировать сами задачи по этим характеристикам. — ''[[Участник:ADY]]''
 +
: Алгоритмы классификации обучаются по прецедентам, привлекая минимум дополнительной информации, ориентированной на конкретную задачу. Практически все известные алгоритмы универсальны и могут применяться к любой задаче, описанной матрицей «объекты–признаки» ([[нейронная сеть|нейросети]], [[метрический классификатор|метрические классификаторы]], [[SVM]], [[логический классификатор|логические алгоритмы]], и многие другие). Таких алгоритмов сотни или даже тысячи. Некоторые из них работают лучше в среднем по всем задачам (например, [[бустинг]] [[решающее дерево|решающих деревьев]]), некоторые проявляют себя на узком подмножестве задач. Для выяснения этих способностей универсальных алгоритмов и затевается проект. Есть, конечно, и алгоритмы, узко заточенные под конкретную задачу, но это прошлый век (примерно 60-е годы). Впрочем, тестирование и таких алгоритмов в Полигоне не возбраняется. А некоторого рода классификация задач возникнет в Полигоне автоматически. По результатам работы определятся группы задач, хорошо решаемых тем или иным подходом, ведь в каждом методе всё же заложена некоторая эвристическая информационная модель, пусть даже эта модель универсальна… — ''[[Участник:Vokov|К.В.Воронцов]] 10:13, 2 июля 2008 (MSD)''
 +
:: Мне трудно это осознать. В физической картине мира, у каждой физической величины может быть только одно значение. Берем статистическое описание - получаем вместо значения доверительный интервал на уровне значимости. Ок. Теперь ставим задачу на обучение. Теперь вопрос: результаты обучения различными алгоритмами - это одна и та же величина или разные??? Если одна - то все ок, можем использовать *любой* алгоритм, ошибка которого *в данном конкретном случае* нас удовлетворяет. Могут ли численные эксперименты, проведенные до этого сказать, какая ошибка будет для моих данных? На мой взгляд нет, поскольку тогда было бы нужно изучить множество всех возможных задач, что если и возможно, то требует серьезной проработки. Если величины разные - то ситуация становится еще более запутанной. - [[Участник:ADY|ADY]] 16:36, 2 июля 2008 (MSD)
 +
 
 +
2) Насколько мне известно, любая идеальная модель не может иметь своих собственных характеристик, не привязанных к данным. Таким образом, модели можно сравнивать только на объемах данных из одного теоретико-вероятностного класса. Если так, то будет стоять задача, как выделить характеристики модели связанные с этим теоретико-вероятностным классом. Модели есть смысл сравнивать только по этим характеристикам. — ''[[Участник:ADY]]''
 +
: Это ля-ля философия. Что такое «данные из одного теоретико-вероятностного класса», я не понимаю. Во-первых, не стоит выдумывать новую терминологию, тем более, не давая формальных определений. Во-вторых, не надо зацикливаться на теории вероятностей. Некоторые методы напрочь игнорируют вероятностные обоснования, тем не менее, практические задачи решают хорошо. Для многих методов поиски вероятностных обоснований затягиваются на многие десятилетия, наталкиваясь на (почти) непреодолимые технические трудности. Это никому не мешает успешно использовать их в приложениях. Когда дело доходит до практики, оказывается, что [[обучение по прецедентам]] — это в большей степени оптимизация и аппроксимация, а не теорвер и матстат. Это личное мнение — ''[[Участник:Vokov|К.В.Воронцов]]
 +
:: >Что такое «данные из одного теоретико-вероятностного класса».
 +
:: Для того, чтобы объяснить мысль мне понадобилось как-то назвать множество множеств. Причем не любое, а с определенными характеристиками. Назвал его классом :)... Смысл в том, что задачи отличаются друг от друга тем, какие отношения имеют место среди входных (между элементами), и выходных данных (между элементами). По этим отношениям можно классифицировать множества входных данных, и множества выходных данных. Такую группу можно было бы назвать классом.
 +
:: Это мысль, которая возникла на уровне интуиции. Может она верна в той или иной степени, а может и нет. - [[Участник:ADY|ADY]] 16:14, 2 июля 2008 (MSD)
 +
:: >...не надо зацикливаться на теории вероятностей....непреодолимые технические трудности.
 +
:: Я - не зацикливаюсь на мат. статистике. Но, на мой взгляд, никакой объективной картины никакая другая наука в этой области пока дать не может. А "технические трудности" - это все от бедности... Надо все раскладывать в ряд, что раскладывается. Для всего, что не раскладывается нада искать точные нелинейные решения. Все остальное в Природе еще не наблюдается... Математика и наука развивается именно так... Практика - развивается по своим законам, конечно. Но она всегда "учится" у теории или захлебывается в данных, с которыми не знает, что делать. - [[Участник:ADY|ADY]] 16:21, 2 июля 2008 (MSD)
 +
:: Философия - тут не причем: она как правило не нацелена на получение результата. В то время как у моих рассуждений нет других конечных целей как получение результата :). - [[Участник:ADY|ADY]] 16:54, 2 июля 2008 (MSD)
 +
 
 +
== Несколько предложений ==
 +
 
 +
Важным моментом в данном проекте считаю открытость и полную документированность сетевого протокола. Это значит, что пользователь может писать свой сервер на уровне сокетов, не используя вообще никаких компонент и кода разработчиков проекта.
 +
Плагины - хорошо и во многих случаях удобно, но они приводят к зависимости пользователей от разработчиков.
 +
Если же есть удобный открытый протокол, то проект может быть легко подхвачен сообществом, если вдруг инициаторы перестанут его поддерживать.
 +
 
 +
Также наличие такого протокола позволит пользователям эффективно обрабатывать свои данные: достаточно получить от системы URL сервера, реализующего нужный алгоритм, после чего работать с ним непосредственно - слать данные и получать решение.
 +
 
 +
Интерфейс плагинов желателен кроссплатформенным (например, консольное приложение, обменивающееся данными через stdin-out).
 +
 
 +
Желательна возможность размещения сервера (плагина) как на собственном хосте, так и на хосте проекта (без раскрытия кода).
 +
 
 +
Кроме серверов методов, хорошо бы ввести сервера задач.
 +
Т.е., пользователь описывает задачу и предоставляет сервер, откуда система может брать обучающую выборку, контроль без ответов, сообщать ответы и получать результат.
 +
 
 +
Желательно предусмотреть задачи с однократным контролем по большой тестовой выборке, поскольку это единственный метод тестирования, дающий достоверную и точную оценку качества решающей функции в вероятностной постановке. Еще лучше, предусмотреть возможность генерации выборок по вероятностным моделям (в этих случаях задаче соответствует не конкретная выборка, а распределение). [[Участник:Nvm|Nvm]] 23:42, 1 июля 2008 (MSD)
 +
 
 +
Считаю, что использование в данном проекте технологий типа COM или .NET будет очень неудачной идеей. Не давая никаких плюсов, она практически лишит систему кросплатформенности и создаст сложности на пустом месте.
 +
 
 +
Техническое решение почти напрашивается. Любая задача в конечном счете представляется набором файлов (данные, описание переменных, параметры - например как в C4.5), решение - тоже всего лишь совокупность файлов. Поэтому напрашивается положить в основу систему протокол FTP. При этом можно обойтись даже стандартными клиентами и серверами ftp. Простейший сценарий может быть следующим. Пользователь создает на сервере новую папку и помещает в нее данные. Система, обнаружив создание папки, обрабатывает данные и решение помещает в подкаталог. Пользователь, обнаружив появление решения, скачивает результат. При этом со стороны пользователя достаточно любого ftp-клиента, даже эксплорера. Дополнительно ему может быть предложен и специализированный клиент. Аналогичная ситуация с сервером. [[Участник:Nvm|Nvm]] 13:30, 16 августа 2008 (MSD)
 +
 
 +
== Предложение по изменению названия проекта ==
 +
Есть предложение переименовать проект с '''poligon.machinelearning.ru''' на '''polygon.machinelearning.ru'''. Если слово «полигон» дается в транслитерации, то тогда проект надо называть '''poligon.mashynnoeobuchenie.ru'''. Если используется англоязычный домен machinelearning, то и слово полигон нужно переводить правильно. — ''[[Участник:Kropotov|Dmitry Kropotov]], 29 сентября 2009''
 +
 
 +
: Спасибо, Дмитрий. Вы затронули тему, которая до сих пор остается причиной споров в команде разработки. Дело в том, что слово "Polygon" на русский язык чаще всего переводится как "многоугольник", что совершенно не относится к нашему ресурсу. Поэтому мы предпочли транслит. Возможно, после реализации запланированной функциональности Системы, мы переименуем ресурс. Я считаю, что нам скорее подходит "ground.machinelearning.ru". Что Вы думаете по поводу такого варианта перевода? — ''[[Участник:Lisitsa|Lisitsa]] 10:59, 7 октября 2009''
 +
 
 +
:: Возможно, более удачным было бы название '''Test Site''' или '''Testing Site''', это как раз ''испытательная площадка'' (см. [http://www.multitran.ru/c/m.exe?l1=2&l2=1&s=%E8%F1%EF%FB%F2%E0%F2%E5%EB%FC%ED%E0%FF+%EF%EB%EE%F9%E0%E4%EA%E0 Мультитран]) и заодно намёк на то, что это веб-сайт — одно из главных отличий от [[WEKA]] и [[RapidMiner]]. Ещё надо бы подчеркнуть, что речь идёт о классификации, тогда '''Classification Algorithms Testing Site''' (CATS или ClATS если связь с кошками кого-то смущает ;) В перспективе не исключается создание серии полигонов: RATS для регрессии, FATS для прогнозирования, CFATS для коллаборативной фильтрации... — ''[[Участник:Vokov|К.В.Воронцов]] 18:08, 7 октября 2009 (MSD)''

Текущая версия


Исследователи, студенты, программисты, заинтересовавшиеся проектом, и желающие участвовать в разработке, могут обращаться ко мне (К.В.Воронцов).


История

В Советском Союзе попытки разработки такого Полигона предпринимались несколько раз. Если кто-то может квалифицированно и непредвзято изложить историю полигонов, сделайте это, пожалуйста, на данной странице, либо дайте ссылки. — К.В.Воронцов 01:48, 5 апреля 2008 (MSD)

Вводный комментарий

Действительно интересный, актуальный и амбициозный проект!

1) Однако, первый вопрос, который у меня возникает, как можно сравнивать алгоритмы классификации без приведения терминов, в которых описываются входные и выходные данные к общей теоретико-вероятностной базе? А, без этого, как можно применять один алгоритм классификации A, взятый из одной области знаний X - в совсем другой области Y? Не совсем очевидно, откуда в этом алгоритме может быть хоть сколько бы значимая информация об этой области Y... Другое дело, если было бы возможно выделить некоторые общие объективные характеристики связанные с самой задачей и классифицировать сами задачи по этим характеристикам. — Участник:ADY

Алгоритмы классификации обучаются по прецедентам, привлекая минимум дополнительной информации, ориентированной на конкретную задачу. Практически все известные алгоритмы универсальны и могут применяться к любой задаче, описанной матрицей «объекты–признаки» (нейросети, метрические классификаторы, SVM, логические алгоритмы, и многие другие). Таких алгоритмов сотни или даже тысячи. Некоторые из них работают лучше в среднем по всем задачам (например, бустинг решающих деревьев), некоторые проявляют себя на узком подмножестве задач. Для выяснения этих способностей универсальных алгоритмов и затевается проект. Есть, конечно, и алгоритмы, узко заточенные под конкретную задачу, но это прошлый век (примерно 60-е годы). Впрочем, тестирование и таких алгоритмов в Полигоне не возбраняется. А некоторого рода классификация задач возникнет в Полигоне автоматически. По результатам работы определятся группы задач, хорошо решаемых тем или иным подходом, ведь в каждом методе всё же заложена некоторая эвристическая информационная модель, пусть даже эта модель универсальна… — К.В.Воронцов 10:13, 2 июля 2008 (MSD)
Мне трудно это осознать. В физической картине мира, у каждой физической величины может быть только одно значение. Берем статистическое описание - получаем вместо значения доверительный интервал на уровне значимости. Ок. Теперь ставим задачу на обучение. Теперь вопрос: результаты обучения различными алгоритмами - это одна и та же величина или разные??? Если одна - то все ок, можем использовать *любой* алгоритм, ошибка которого *в данном конкретном случае* нас удовлетворяет. Могут ли численные эксперименты, проведенные до этого сказать, какая ошибка будет для моих данных? На мой взгляд нет, поскольку тогда было бы нужно изучить множество всех возможных задач, что если и возможно, то требует серьезной проработки. Если величины разные - то ситуация становится еще более запутанной. - ADY 16:36, 2 июля 2008 (MSD)

2) Насколько мне известно, любая идеальная модель не может иметь своих собственных характеристик, не привязанных к данным. Таким образом, модели можно сравнивать только на объемах данных из одного теоретико-вероятностного класса. Если так, то будет стоять задача, как выделить характеристики модели связанные с этим теоретико-вероятностным классом. Модели есть смысл сравнивать только по этим характеристикам. — Участник:ADY

Это ля-ля философия. Что такое «данные из одного теоретико-вероятностного класса», я не понимаю. Во-первых, не стоит выдумывать новую терминологию, тем более, не давая формальных определений. Во-вторых, не надо зацикливаться на теории вероятностей. Некоторые методы напрочь игнорируют вероятностные обоснования, тем не менее, практические задачи решают хорошо. Для многих методов поиски вероятностных обоснований затягиваются на многие десятилетия, наталкиваясь на (почти) непреодолимые технические трудности. Это никому не мешает успешно использовать их в приложениях. Когда дело доходит до практики, оказывается, что обучение по прецедентам — это в большей степени оптимизация и аппроксимация, а не теорвер и матстат. Это личное мнение — К.В.Воронцов
>Что такое «данные из одного теоретико-вероятностного класса».
Для того, чтобы объяснить мысль мне понадобилось как-то назвать множество множеств. Причем не любое, а с определенными характеристиками. Назвал его классом :)... Смысл в том, что задачи отличаются друг от друга тем, какие отношения имеют место среди входных (между элементами), и выходных данных (между элементами). По этим отношениям можно классифицировать множества входных данных, и множества выходных данных. Такую группу можно было бы назвать классом.
Это мысль, которая возникла на уровне интуиции. Может она верна в той или иной степени, а может и нет. - ADY 16:14, 2 июля 2008 (MSD)
>...не надо зацикливаться на теории вероятностей....непреодолимые технические трудности.
Я - не зацикливаюсь на мат. статистике. Но, на мой взгляд, никакой объективной картины никакая другая наука в этой области пока дать не может. А "технические трудности" - это все от бедности... Надо все раскладывать в ряд, что раскладывается. Для всего, что не раскладывается нада искать точные нелинейные решения. Все остальное в Природе еще не наблюдается... Математика и наука развивается именно так... Практика - развивается по своим законам, конечно. Но она всегда "учится" у теории или захлебывается в данных, с которыми не знает, что делать. - ADY 16:21, 2 июля 2008 (MSD)
Философия - тут не причем: она как правило не нацелена на получение результата. В то время как у моих рассуждений нет других конечных целей как получение результата :). - ADY 16:54, 2 июля 2008 (MSD)

Несколько предложений

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

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

Интерфейс плагинов желателен кроссплатформенным (например, консольное приложение, обменивающееся данными через stdin-out).

Желательна возможность размещения сервера (плагина) как на собственном хосте, так и на хосте проекта (без раскрытия кода).

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

Желательно предусмотреть задачи с однократным контролем по большой тестовой выборке, поскольку это единственный метод тестирования, дающий достоверную и точную оценку качества решающей функции в вероятностной постановке. Еще лучше, предусмотреть возможность генерации выборок по вероятностным моделям (в этих случаях задаче соответствует не конкретная выборка, а распределение). Nvm 23:42, 1 июля 2008 (MSD)

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

Техническое решение почти напрашивается. Любая задача в конечном счете представляется набором файлов (данные, описание переменных, параметры - например как в C4.5), решение - тоже всего лишь совокупность файлов. Поэтому напрашивается положить в основу систему протокол FTP. При этом можно обойтись даже стандартными клиентами и серверами ftp. Простейший сценарий может быть следующим. Пользователь создает на сервере новую папку и помещает в нее данные. Система, обнаружив создание папки, обрабатывает данные и решение помещает в подкаталог. Пользователь, обнаружив появление решения, скачивает результат. При этом со стороны пользователя достаточно любого ftp-клиента, даже эксплорера. Дополнительно ему может быть предложен и специализированный клиент. Аналогичная ситуация с сервером. Nvm 13:30, 16 августа 2008 (MSD)

Предложение по изменению названия проекта

Есть предложение переименовать проект с poligon.machinelearning.ru на polygon.machinelearning.ru. Если слово «полигон» дается в транслитерации, то тогда проект надо называть poligon.mashynnoeobuchenie.ru. Если используется англоязычный домен machinelearning, то и слово полигон нужно переводить правильно. — Dmitry Kropotov, 29 сентября 2009

Спасибо, Дмитрий. Вы затронули тему, которая до сих пор остается причиной споров в команде разработки. Дело в том, что слово "Polygon" на русский язык чаще всего переводится как "многоугольник", что совершенно не относится к нашему ресурсу. Поэтому мы предпочли транслит. Возможно, после реализации запланированной функциональности Системы, мы переименуем ресурс. Я считаю, что нам скорее подходит "ground.machinelearning.ru". Что Вы думаете по поводу такого варианта перевода? — Lisitsa 10:59, 7 октября 2009
Возможно, более удачным было бы название Test Site или Testing Site, это как раз испытательная площадка (см. Мультитран) и заодно намёк на то, что это веб-сайт — одно из главных отличий от WEKA и RapidMiner. Ещё надо бы подчеркнуть, что речь идёт о классификации, тогда Classification Algorithms Testing Site (CATS или ClATS если связь с кошками кого-то смущает ;) В перспективе не исключается создание серии полигонов: RATS для регрессии, FATS для прогнозирования, CFATS для коллаборативной фильтрации... — К.В.Воронцов 18:08, 7 октября 2009 (MSD)
Личные инструменты