StanfordASL / stlcg

MIT License
62 stars 18 forks source link

Hi, I would like to ask what is the value of robustness when using machine learning prediction?The satisfactions and dissatisfactions of the binary classification qualitative judgment formula can also be predicted.What does the degree of robustness matter? #29

Open LiuFengadd opened 3 years ago

LiuFengadd commented 3 years ago

Hi, I would like to ask what is the value of robustness when using machine learning prediction?The satisfactions and dissatisfactions of the binary classification qualitative judgment formula can also be predicted.What does the degree of robustness matter?

karenl7 commented 3 years ago

We can differentiate the robustness value, while we cannot differentiate through True/False outputs. Since we can differentiate through the robustness value, we can use it within gradient-based solution methods, such as gradient descent (e.g., training neural networks).

LiuFengadd commented 3 years ago

If the robustness value is greater than zero, it is satisfied, and less than zero, it is not satisfied.For example, what's the difference between robustness greater than 20 and robustness greater than 30?In other words, what does the degree of robustness matter?Is it okay to just focus on whether it's greater than zero?

karenl7 commented 3 years ago

It depends on the application, and how you are using robustness. If you only care about True/False, then the robustness isn't that important. But if you want some idea of how far away from satisfaction/violation, then knowing the robustness is useful. For example, a larger robustness value will give you more confidence that if some disturbance or noise was applied to your system, then you will still satisfy the STL formula. It just really depends on your application.

LiuFengadd commented 3 years ago

Thank you, but if it's just satisfied or not satisfied, then in supervised learning, we can label the data 1 or 0 directly based on whether the formula is right or wrong.Why quantize the STL formula (>0 or <0) to learn?I have seen some papers that combine STL and machine learning with robustness.For example, you use neural networks for training, what's the advantage of quantifying STL?

karenl7 commented 3 years ago

It depends on your application. Sometimes True/False information is sufficient. Other times, it may be more informative to know the degree of satisfaction/violation. With robustness, we can take gradients since it is a scalar value, whereas with just True/False information, it doesn't make much sense to take gradients.

LiuFengadd commented 3 years ago

I'm still not clear about the relationship between this robustness and the gradient.For example, I construct a decision boundary with parameters (kx+b), for STL (x>a), and the robustness is the value of x-a.I can use machine learning classification algorithm to figure out the value of a, but this can only be used for a single eigenvalue (x). For multiple eigenvalues (x1, x2, x3), how to construct STL formula?How do I learn the parameters (x1, x2, x3) for constructing the formula, and how do I learn the time parameters?