Discusión sobre el artículo "Introducción a la teoría de la Lógica difusa"

 

Artículo publicado Introducción a la teoría de la Lógica difusa:

La lógica difusa extiende los límites habituales de la lógica matemática y teoría de conjuntos. En este artículo se muestran principales principios de esta teoría, así como se describen dos sistemas de inferencia lógica difusa tipo Mamdani y Sugeno. Se dan los ejemplos de implementación de los modelos difusos a base de estos dos sistemas usando los medios de la biblioteca FuzzyNet para MQL5.

La teoría matemática de los conjuntos difusos (fuzzy sets) y la misma lógica difusa (fuzzy logic) toma su inicio desde 1965. Su fundador es el profesor Lotfi Zadeh de la universidad de Berkeley. Precisamente él acuñó estos dos conceptos en su artículo “Fuzzy Sets”, en la revista Information and Control. Este aparato matemático ha permitido introducir en una ciencia exacta, como las matemáticas, los conceptos difusos (borrosos) que opera cualquier persona, y ha sentado las bases de unos métodos absolutamente nuevos de solucionar los problemas a base de las técnicas de Soft computing. Con un uso correcto, todas estas innovaciones pueden facilitar considerablemente el proceso de solución de problemas de clasificación, creación de los sistemas expertos y construcción de redes neuronales.

Sin embargo, la aplicación práctica de la lógica difusa no se limita con eso. En realidad, este aparato matemático ha obtenido su mayor propagación en la teoría de gestión automática. Precisamente con ese hecho se puede vincular la aparición de otro concepto nuevo — modelo difuso. Un modelo difuso es un caso particular del modelo matemático.

Ejemplo:

Vamos a definir una variable lingüística con el nombre “Edad”. Por definición, la “Edad” es un período, etapa del desarrollo y crecimiento de una persona, animal o planta. El valor mínimo de esta variable es igual a 0, es decir, la persona ni siquiera ha cumplido un año. Como valor máximo tomaremos 80. Dependiendo de la edad concreta de la persona, podemos evaluar como: “recién nacido”, “niño”, “joven”, “edad media”, “viejo”, “edad madura”, etc. Esta lista puede incluir una cantidad bastante grande de los elementos. Será el term set para nuestra variable lingüística, y sus elementos serán los terms.

En la imagen de abajo se muestra un ejemplo de la variable difusa “Edad” para la cual hemos establecido un term set compuesto de tres terms. “Niño”, “Edad media”, “Viejo”. Cada de estos terms tiene su función de pertenencia.

Conjunto difuso “Edad”

Autor: MetaQuotes Software Corp.

 

Interesante. Claro que es interesante aprender a calcular el número de puntas. Pero sería más útil si usted podría dar un ejemplo sencillo de nuestro campo. Por ejemplo, un simple Asesor Experto basado en estocásticos o RSI. Utilizando variables difusas "sobrecompra"/"sobreventa" para generar señales de Compra/Venta y mostrar el resultado. Sería posible añadir y explicar los conceptos de "fuertemente", "ligeramente", etc. Probablemente ayudaría a mucha gente a determinar la utilidad de esta dirección.

La afirmación del artículo de que puede haber tantas entradas y salidas como se quiera no es cierta en absoluto. En problemas prácticos, cuando el número de variables de entrada es superior a 5, surgen grandes problemas. Se recomienda dividir el problema en otros más pequeños.

¿Qué sistemas de lógica difusa se utilizan para resolver problemas de regresión y clasificación?

Si no, como una etapa muy inicial de dominar este campo es útil.

Suerte

 
Vladimir Perervenko:

Pero sería más útil si pudiera dar un ejemplo sencillo de nuestro campo. Por ejemplo, un simple experto basado en estocásticos o RSI. Utilizando variables difusas "sobrecompra"/"sobreventa" para generar señales de Compra/Venta y mostrar el resultado. Podrías añadir y explicar los conceptos de "fuertemente", "ligeramente", etc. Probablemente ayudaría a mucha gente a determinar la utilidad de esta dirección.

He utilizado una biblioteca para MQL4 y sólo sobre la base de RSI simple.

El artículo utiliza triangulación y funciones de membresía trapezoidal. Pero me gustó más la gaussiana bilateral y funciones de pertenencia en forma de campana. Me parecieron más flexibles.

Como ejemplo, se probó la dependencia de las lecturas del RSI y el tamaño del take profit.

 
Alexander Fedosov:

He utilizado la biblioteca para MQL4 y sólo sobre la base de RSI simple.

Tal vez entonces usted puede escribir un artículo sobre la aplicación de la lógica difusa en el comercio?
 
Rashid Umarov:
¿Tal vez podría escribir un artículo sobre la aplicación de la lógica difusa en el trading?
Podría. Tuve esa idea porque la teoría de conjuntos difusos aplicada a MQL4 es interesante.
 
Alexander Fedosov:
Se puede. Tuve esa idea porque la teoría de los conjuntos difusos aplicada al MQL4 es interesante.

La teoría de los conjuntos difusos propuesta por (L. A. Zadeh, 1965) es la base de muchos métodos, entre ellos los de la lógica difusa. La aplicación de la lógica difusa supone que seconocen algunas reglas de correspondencia entre las variables difusas y el objetivo que se puede utilizar. Obtener estas reglas es el principal problema. No me refiero a casos elementales como "If "oversold" Then "buy" etc.

En mi artículo "Selection and evaluation of predictors for machine learning models" uno de los enfoques para seleccionar predictores es aplicar la Rough Set Theory y su extensión Fuzzy Rough Set Theory. (Teoría de conjuntos rugosos difusos). Permiten inducir (extraer) reglas de un conjunto de datos. El artículo trata de la validación. Si hay interés en describir el uso de la teoría de conjuntos aproximados de forma más amplia, prepararé un artículo.

Si tienes un ejemplo listo de uso de lógica difusa o conjuntos difusos en Expert Advisor, por supuesto publica el artículo. Creo que será interesante para mucha gente.

Suerte

 
Vladimir Perervenko:

La aplicación de la lógica difusa supone quese conocen algunas reglas de correspondencia entre las variables difusas y el objetivo que se puede utilizar. Obtener estas reglas es el problema principal.

Este es todo el problema, que necesitas ser competente en dos áreas a la vez: el área de aplicación para la que está diseñado todo este material y experiencia en la aplicación de conjuntos difusos.

Por eso hay tan poco interés por el tema, porque los especialistas competentes sólo en uno de los campos a menudo no pueden dominar el segundo. Ambos requieren una experiencia considerable.

Sin embargo, en el aprendizaje automático, donde los principiantes creen ingenuamente que el algoritmo "lo resolverá todo por sí mismo, lo único que hay que hacer es aprender a alimentarlo con datos", resulta que es el usuario quien tiene que resolverlo. Es decir, a menudo es más fácil formalizar el problema por uno mismo, tras lo cual el uso de algoritmos de aprendizaje automático carece de sentido y resulta superfluo.

 
Vladimir Perervenko:

Si usted tiene un ejemplo de aplicación de la lógica difusa o conjuntos difusos en un Asesor Experto, por supuesto, publicar un artículo. Creo que será interesante para muchas personas.

Suerte

En proceso.
 
Yury Reshetov:

Este es todo el problema de que hay que ser competente en dos áreas al mismo tiempo: el área de aplicación para la que se ha diseñado todo este material y la experiencia en el campo de aplicación de los conjuntos difusos.

Por eso hay tan poco interés en el tema, porque los especialistas competentes sólo en una de las áreas a menudo no pueden dominar la segunda. Ambas requieren una experiencia considerable.

Sin embargo, en el aprendizaje automático, donde los principiantes creen ingenuamente que el algoritmo "lo resolverá todo por sí mismo, lo único que hay que hacer es aprender a alimentarlo con datos", resulta que es el usuario quien tiene que resolverlo. Es decir, a menudo es más fácil formalizar el problema por uno mismo, tras lo cual el uso de algoritmos de aprendizaje automático carece de sentido y resulta superfluo.

Aquí, en el sitio, hay información suficiente para comprender los fundamentos de la aplicación de la lógica difusa al trading. Para ello, existen bibliotecas de implementación en Mql4-5.

Es cierto que el algoritmo siempre produce algo al establecer los términos de entrada y salida. Pero, creo que un gran papel lo juega una descripción clara y lo más detallada posible de estas variables difusas mediante funciones de membresía. Cuanto más precisamente se describan los conjuntos difusos, más válido será el resultado. En este artículo se describen ejemplos basados en las funciones de pertenencia triangular y trapezoidal más sencillas. Pero ésta es la realización más sencilla, y es posible hacerla más compleja, flexible y precisa. Y el resultado de salida será el correspondiente.

 
Alexander Fedosov:

En este sitio hay información suficiente para comprender los fundamentos de la aplicación de la lógica difusa al trading. También existen bibliotecas para la implementación en Mql4-5.

Es cierto que el algoritmo siempre produce algo al establecer los términos de entrada y salida. Pero, creo que un gran papel lo juega una descripción clara y lo más detallada posible de estas variables difusas mediante funciones de membresía. Cuanto más precisamente se describan los conjuntos difusos, más válido será el resultado. En este artículo se describen ejemplos basados en las funciones de pertenencia triangular y trapezoidal más sencillas. Pero ésta es la realización más sencilla, y es posible hacerla más compleja, flexible y precisa. Y el resultado de salida será el correspondiente.

¿Y las reglas? Echemos un vistazo al artículo.

Suerte

 
Yury Reshetov:

Este es todo el problema de que hay que ser competente en dos áreas al mismo tiempo: el área de aplicación para la que se ha diseñado todo este material y la experiencia en el campo de aplicación de los conjuntos difusos.

Por eso hay tan poco interés en el tema, porque los especialistas competentes sólo en una de las áreas a menudo no pueden dominar la segunda. Ambas requieren una experiencia considerable.

Sin embargo, en el aprendizaje automático, donde los principiantes creen ingenuamente que el algoritmo "lo resolverá todo por sí mismo, lo único que hay que hacer es aprender a alimentarlo con datos", resulta que es el usuario quien tiene que resolverlo. Es decir, a menudo es más fácil formalizar el problema por uno mismo, tras lo cual el uso de algoritmos de aprendizaje automático carece de sentido y resulta superfluo.

Estoy de acuerdo.

Pero hay que seguir experimentando.

Suerte

PD. Por cierto, hace tiempo que quiero preguntarte. ¿Te gustaría transferir tu producto escrito en Java al lenguaje R? Entonces sería posible probarlo en "batalla" en MT4.

Así que, pensamientos en voz alta