reverse fuzzy logic
I just finished the book, Programming AI By Example, and the last chapter was about fuzzy logic. I downloaded the source code and executables from the book and was playing around with the Raven game which uses fuzzy logic. I was just curious if it is possible to observe the fuzzy behavior of another object and predict the rules that the object follows, eventually leading the observer to be able to know the complete set of fuzzy rules of that object. Doing so would give the observer a very big advantage over the opposing object. I'm sure it's possible. I was just wondering if anyone knows of any examples or implementations.
Interesting question.
It seems to me that in order to do that, the observer would have to know all of the possible rules beforehand and then match observations with those rules to determine which rules were operative in the other object.
It seems to me that in order to do that, the observer would have to know all of the possible rules beforehand and then match observations with those rules to determine which rules were operative in the other object.
"I thought what I'd do was, I'd pretend I was one of those deaf-mutes." - the Laughing Man
I'm sure there would be a lot of using stats and finding correlation between variables. But I bet it could be done with a somewhat accurace model of the opponent's fuzzy logic.
If:
-you know every fuzzy variable
-you suppose a certain maximum order
-you know the fuzzy operator exactly
then I guess it can be done through standard optimization methods. Its not very different than doing a non-linear regression on a polynomial.
-you know every fuzzy variable
-you suppose a certain maximum order
-you know the fuzzy operator exactly
then I guess it can be done through standard optimization methods. Its not very different than doing a non-linear regression on a polynomial.
Sure, no problem. Just treat the fuzzy logic module as a hidden Markov model, and learn it using Baum-Welch. (My gut tells me that using polynomial regression here would suck.)
As said above, if you know the variables and the rules used in the fuzzy model, then you can learn an equivalent model from observed input-output pairs. That's a fairly trivial problem as far as learning is concerned.
If, on the other hand, you have no information other than the observed input-output pairs and you want to infer a model representative of the fuzzy model, then you need to perform structure learning as well. Essentially, you conduct a search over a space of models. For each candidate model you find the optimal parameterisation and then measure the quality of an encoding of structure+parameters. Some common measures are MML, MDL, AIC & BIC. Perform an optimisation on this objective measure and you have yourself an optimal approximation ('optimal' given the data, the chosen model space and chosen information measure).
Cheers,
Timkin
If, on the other hand, you have no information other than the observed input-output pairs and you want to infer a model representative of the fuzzy model, then you need to perform structure learning as well. Essentially, you conduct a search over a space of models. For each candidate model you find the optimal parameterisation and then measure the quality of an encoding of structure+parameters. Some common measures are MML, MDL, AIC & BIC. Perform an optimisation on this objective measure and you have yourself an optimal approximation ('optimal' given the data, the chosen model space and chosen information measure).
Cheers,
Timkin
thanks for both of your replies. it looks like i have some more learning in advanced math and/or AI ahead of me to begin to understand and apply this.
would you two happen to know any applications that you have seen online or in games? i'm afraid searching for "reverse fuzzy logic" is not the best way of finding these applications.
would you two happen to know any applications that you have seen online or in games? i'm afraid searching for "reverse fuzzy logic" is not the best way of finding these applications.
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement
Recommended Tutorials
Advertisement