Обсуждение статьи "Введение в теорию нечеткой логики"

 

Опубликована статья Введение в теорию нечеткой логики:

Нечеткая логика расширяет привычные нам границы математической логики и теории множеств. В статье раскрыты основные принципы этой теории, а также описаны две системы нечеткого логического вывода типа Мамдани и Сугено. Приведены примеры реализации нечетких моделей на основе этих двух систем средствами библиотеки FuzzyNet для MQL5.

Свое начало математическая теория нечетких множеств (fuzzy sets) и сама нечеткая логика (fuzzy logic) ведет с 1965 года. Ее отцом-основателем является профессор Лотфи Заде (Lotfi Zadeh) из университета Беркли, именно он в своей статье «Fuzzy Sets» в журнале Information and Control и ввел оба этих понятия. Данный математический аппарат позволил ввести в такую точную науку, как математика, нечеткие (размытые) понятия, которыми оперирует любой человек, и заложил основу принципиально новым методам решения задач на основе мягких вычислений. Все эти нововведения, при правильном их использовании, могут значительно облегчить процесс решения задач классификации, создания экспертных систем и построения нейронных сетей.

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

Пример:

Определим некоторую лингвистическую переменную с названием "Возраст". По определению "Возраст" — период, ступень в развитии и росте человека, животного, растения. Минимальное значение этой переменной равно 0, то есть человеку не исполнилось и года. В качестве максимального значения возьмем 80. В зависимости от конкретного возраста человека мы можем дать оценку: "новорожденный", "юный", "молодой", "среднего", "старый", "пожилой" и так далее. Этот список может вместить в себя довольно большое количество элементов. Он будет являться терм-множеством для нашей лингвистической переменной, а его элементами — термами.

На рисунке ниже приведен пример нечеткой переменной "Возраст", для которой задали терм-множество только из трех термов: "Юный", "Средний", "Старый". Каждый из термов имеет свою функцию принадлежности.

Нечеткое множество "Возраст"

Автор: MetaQuotes Software Corp.

 

Интересно. Конечно узнать как вычислить количество чаевых интересно. Но было более полезно если бы Вы привели простенький пример из нашей области. Например простейший эксперт на базе стохастика или RSI. Используя нечеткие переменные "перекупленность"/"перепроданность" сформировать сигналы Buy/Sell и показать результат. Можно было добавить и объяснить понятия"сильно", "слегка" и т.д. Наверное это многим бы помогло в определении насколько полезно это направление.

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

Для решения задач регрессии и классификации какие системы нечеткой логики применяются?

Иначе, как совсем начальная стадия освоения этой области полезна.

Удачи

 
Vladimir Perervenko:

Но было более полезно если бы Вы привели простенький пример из нашей области. Например простейший эксперт на базе стохастика или RSI. Используя нечеткие переменные "перекупленность"/"перепроданность" сформировать сигналы Buy/Sell и показать результат. Можно было добавить и объяснить понятия"сильно", "слегка" и т.д. Наверное это многим бы помогло в определении насколько полезно это направление.

Воспользовался библиотекам для MQL4 и как раз на базе простого RSI.

В статье используются триангуляционные и трапецоидные функции принадлежности. Но мне больше понравились Двухсторонняя Гауссовская и Колоколообразная функции принадлежности. Они более гибкими мне показались.

В качестве примера проверялась зависимость показаний RSI и выставляемого размера тейк-профита.

 
Alexander Fedosov:

Воспользовался библиотекам для MQL4 и как раз на базе простого RSI.

Может тогда напишете статью о применении нечеткой логики в трейдинге?
 
Rashid Umarov:
Может тогда напишете статью о применении нечеткой логики в трейдинге?
Можно. У меня была такая мысль т.к. сама теория нечетких множеств применимо к MQL4 интересна.
 
Alexander Fedosov:
Можно. У меня была такая мысль т.к. сама теория нечетких множеств применимо к MQL4 интересна.

Теория нечетких множеств, предложенная (L. A. Zadeh, 1965), является основой ля многих методов, в том числе и методов нечеткой логики. Применение нечеткой логик предполагает, что Вы знаете некоторые правила соответствия нечетких переменных и целевой, которые можно использовать. Вот получение этих правил и есть главная проблема. Я не имею в виду элементарные случаи типа "Если "перепродано" То "покупать" и т.д.

В моей статье "Выбор и оценка предикторов для моделей машинного обучения" одним из подходов при выборе предикторов является применение теории приближенных множеств (Rough Set Theory) и ее расширения теория нечетких приближенных множеств (Fuzzy Rough Set Theory). Они позволяют индуцировать (извлекать) правила из набора данных. Статья на проверке. Если будет интерес более широко описать использование теории приближенных множеств, подготовлю статью.

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

Удачи

 
Vladimir Perervenko:

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

В этом то и вся загвоздка, что нужно быть компетентным сразу в двух областях одновременно: прикладная область для которой всё это дело проектируется и опыт в области применения нечётких множеств.

А посему столь низкий интерес к теме, поскольку спецы, компетентные только в одной из областей зачастую не могут освоить вторую. И то и другое требует немалого опыта.

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

 
Vladimir Perervenko:

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

Удачи

В процессе.
 
Yury Reshetov:

В этом то и вся загвоздка, что нужно быть компетентным сразу в двух областях одновременно: прикладная область для которой всё это дело проектируется и опыт в области применения нечётких множеств.

А посему столь низкий интерес к теме, поскольку спецы, компетентные только в одной из областей зачастую не могут освоить вторую. И то и другое требует немалого опыта.

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

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

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

 
Alexander Fedosov:

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

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

А как же правила? Посмотрим статью.

Удачи

 
Yury Reshetov:

В этом то и вся загвоздка, что нужно быть компетентным сразу в двух областях одновременно: прикладная область для которой всё это дело проектируется и опыт в области применения нечётких множеств.

А посему столь низкий интерес к теме, поскольку спецы, компетентные только в одной из областей зачастую не могут освоить вторую. И то и другое требует немалого опыта.

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

Согласен.

Но экспериментировать нужно продолжать.

Удачи

ПС. Кстати, давно хотел спросить. Вы не хотели бы переложить свой продукт написанный на Ява на язык R? Тогда его можно было бы опробовать в "бою" на МТ4.

Так, мысли вслух

Причина обращения: