-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Specify different limit per pair in a multi-input multi-output neural network #146
Comments
No, at the moment it's only possible to specify a global Lipschitz bound (or other IQC bounds) on the network which covers all the inputs/outputs together. It's definitely possible to put a bound on a subset of the inputs/outputs, we just haven't implemented it yet (and probably won't for a while). Having said that, I believe @ruigangwang7 and @MrstupidJ were looking into this at some point? |
Our work was slightly different. |
What is meant by "per pair" here? Input 1 to output 1, input 2 to output 2, etc? Or all n*m possible pairs (with n inputs and m outputs)? |
"Per pair" means what you described. It is input1 to output1, input2 to output1, ... |
@caxelrud let me know if you'd like to continue the discussion elsewhere (eg: feel free to email me). I'm closing this issue since there's no changes required to the package. |
Hi,
I was thinking about a way to do what I was questioning. I believe that if
all sensitivities are normalized then a single limit value will work.
Also, by shifting the positions, the limiting circle can be placed in a
location to avoid negative sensitivity values.
Maybe you can reopen the discussion so that the package can do these task
of normalization and shift (and after de-norm and "de-shift").
Regards,
Celso
…On Fri, Aug 9, 2024 at 10:22 PM Nic Barbara ***@***.***> wrote:
@caxelrud <https://github.com/caxelrud> let me know if you'd like to
continue the discussion elsewhere (eg: feel free to email me). I'm closing
this issue since there's no changes required to the package.
—
Reply to this email directly, view it on GitHub
<#146 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AARY7K5DHW3BVQZ4KLPACVTZQWBNTAVCNFSM6AAAAABF35TLDKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDENZYHE2TSMRXG4>
.
You are receiving this because you were mentioned.Message ID:
***@***.***>
|
Hi,
To rectify, the shift needs to be in the first derivative or something like
that.
in other words, the sensitivity will be limited in a (small) disk around a
desired value, supplied also by the user.
Regards,
Celso
…On Tue, Aug 13, 2024 at 6:08 PM Celso Axelrud ***@***.***> wrote:
Hi,
I was thinking about a way to do what I was questioning. I believe that if
all sensitivities are normalized then a single limit value will work.
Also, by shifting the positions, the limiting circle can be placed in a
location to avoid negative sensitivity values.
Maybe you can reopen the discussion so that the package can do these task
of normalization and shift (and after de-norm and "de-shift").
Regards,
Celso
On Fri, Aug 9, 2024 at 10:22 PM Nic Barbara ***@***.***>
wrote:
> @caxelrud <https://github.com/caxelrud> let me know if you'd like to
> continue the discussion elsewhere (eg: feel free to email me). I'm closing
> this issue since there's no changes required to the package.
>
> —
> Reply to this email directly, view it on GitHub
> <#146 (comment)>,
> or unsubscribe
> <https://github.com/notifications/unsubscribe-auth/AARY7K5DHW3BVQZ4KLPACVTZQWBNTAVCNFSM6AAAAABF35TLDKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDENZYHE2TSMRXG4>
> .
> You are receiving this because you were mentioned.Message ID:
> ***@***.***>
>
|
Hi,
Just to clarify, with an example. We can set a sensitivity limit of 1.0
(-1.0 to 1.0) but actually it should be 9.00 to 11.00.
How to do that?
Regards,
Celso
…On Tue, Aug 13, 2024 at 7:36 PM Celso Axelrud ***@***.***> wrote:
Hi,
To rectify, the shift needs to be in the first derivative or something
like that.
in other words, the sensitivity will be limited in a (small) disk around a
desired value, supplied also by the user.
Regards,
Celso
On Tue, Aug 13, 2024 at 6:08 PM Celso Axelrud ***@***.***> wrote:
> Hi,
> I was thinking about a way to do what I was questioning. I believe that
> if all sensitivities are normalized then a single limit value will work.
> Also, by shifting the positions, the limiting circle can be placed in a
> location to avoid negative sensitivity values.
> Maybe you can reopen the discussion so that the package can do these task
> of normalization and shift (and after de-norm and "de-shift").
> Regards,
> Celso
>
> On Fri, Aug 9, 2024 at 10:22 PM Nic Barbara ***@***.***>
> wrote:
>
>> @caxelrud <https://github.com/caxelrud> let me know if you'd like to
>> continue the discussion elsewhere (eg: feel free to email me). I'm closing
>> this issue since there's no changes required to the package.
>>
>> —
>> Reply to this email directly, view it on GitHub
>> <#146 (comment)>,
>> or unsubscribe
>> <https://github.com/notifications/unsubscribe-auth/AARY7K5DHW3BVQZ4KLPACVTZQWBNTAVCNFSM6AAAAABF35TLDKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDENZYHE2TSMRXG4>
>> .
>> You are receiving this because you were mentioned.Message ID:
>> ***@***.***>
>>
>
|
Hi @caxelrud, I'm still not sure I quite understand what you mean. Do you mean that if we have a model |
Yes.
As I wrote before in this tread (please check for more clarification), for
a control application as MPC, the sensitivity (gain) of the system model
can’t erroneously get small and close to zero. This will cause an infinite
action from the controller. And, worst, it can’t change erroneously the
sign, because it will create positive feedback and go unstable.
Constraining the sensitivity based on minimal knowledge is desirable.
Regards,
Celso
…On Wed, Aug 14, 2024 at 5:27 PM Nic Barbara ***@***.***> wrote:
Hi @caxelrud <https://github.com/caxelrud>, I'm still not sure I quite
understand what you mean. Do you mean that if we have a model u = model(x),
you want to be able to constrain the slope of the model between (for
example) [9.0, 11.0], rather than choosing a Lipschtiz bound of 1.0 so
that the slope is between [-1.0, 1.0]?
—
Reply to this email directly, view it on GitHub
<#146 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AARY7K7LFWIDWJBIZ72QA73ZRPKUPAVCNFSM6AAAAABF35TLDKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDEOJQGAZDKNRTHA>
.
You are receiving this because you were mentioned.Message ID:
***@***.***>
|
It sounds like what you actually want here are monotone and bi-Lipschitz models. I.e: models that have both an upper and lower bound on the gain, and have a slope that is only ever positive (for example). We currently don't have any models like that in this repository, but our group has been working on highly related ideas (eg: see this paper, and the corresponding git repo). It would be great to include networks like this in |
Hi,
Thanks for the information.
I will take a look.
Regards,
Celso
…On Wed, Aug 14, 2024 at 5:44 PM Nic Barbara ***@***.***> wrote:
It sounds like what you actually want here are monotone and bi-Lipschitz
models. I.e: models that have both an upper and lower bound on the gain,
and have a slope that is only ever positive (for example).
We currently don't have any models like that in this repository, but our
group has been working on highly related ideas (eg: see this paper
<https://arxiv.org/abs/2402.01344>, and the corresponding git repo
<https://github.com/acfr/PLNet>).
It would be great to include networks like this in RobustNeuralNetworks.jl
but unfortunately I don't have the bandwidth to add them at the moment.
Feel free to give it a go and submit a PR if you're interested!
—
Reply to this email directly, view it on GitHub
<#146 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AARY7KYTD4547ZEYMZBFAQ3ZRPMUVAVCNFSM6AAAAABF35TLDKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDEOJQGA2TCNRXGY>
.
You are receiving this because you were mentioned.Message ID:
***@***.***>
|
Is it possible to specify different limit per pair in a multi-input multi-output neural network?
The text was updated successfully, but these errors were encountered: