RJB vs D2Box
RJB vs D2Box
Hello,
When running a 1D BCI mu/beta rhythm task do you always use the RJB application or do you use D2Box set up in a way to make it run as 1D task? I ask because using D2Box seems to be the only way I can get the weight adaptation to work (sort of).
When I use the RJB application and set 'weightuse' to '2', a *.lms file is created in the data directory, but it is always empty (and weights don't update), no matter how many trials I run.
When using D2Box, the file is created and contains data. However, the weights only update in the MUD matrix when AdaptCode (in the TargetPos Matrix) is set to '3'... indicating it should adapt in the X and Y dimensions. Why won't this updating of weights work when it is set to '2' for adaptation only in the Y dimension (i.e. a 1D task)? Also, why doesn't it work when using the RJB program?
Thanks a lot for your help!
Elizabeth
UW-Madison
When running a 1D BCI mu/beta rhythm task do you always use the RJB application or do you use D2Box set up in a way to make it run as 1D task? I ask because using D2Box seems to be the only way I can get the weight adaptation to work (sort of).
When I use the RJB application and set 'weightuse' to '2', a *.lms file is created in the data directory, but it is always empty (and weights don't update), no matter how many trials I run.
When using D2Box, the file is created and contains data. However, the weights only update in the MUD matrix when AdaptCode (in the TargetPos Matrix) is set to '3'... indicating it should adapt in the X and Y dimensions. Why won't this updating of weights work when it is set to '2' for adaptation only in the Y dimension (i.e. a 1D task)? Also, why doesn't it work when using the RJB program?
Thanks a lot for your help!
Elizabeth
UW-Madison
-
- Posts: 5
- Joined: 24 Feb 2005, 14:11
RJB D2Box and adaptation of weights
RJB does not support weight adaptation. In fact, RJB is not currently being updated since D2Box can do the same functions and more. There is no way to specificy the code for adaptation in RJB. This is part of the target definition in D2Box. Parameter fragments are available to parameterize D2Box so that it can do several 1-d tasks including RJB.
Re: Adaptation
Elisabeth,
It is possible that we got the documentation backwards for the adaptation row in TargetPos. Please try to use 1 for Y and 2 for X, respectively.
We'll look into this as well and update the documentation if we find an error.
Let us know if this fixed the problem.
Thanks,
Gerv
It is possible that we got the documentation backwards for the adaptation row in TargetPos. Please try to use 1 for Y and 2 for X, respectively.
We'll look into this as well and update the documentation if we find an error.
Let us know if this fixed the problem.
Thanks,
Gerv
Re: Adaptation
Yes, that is the problem! Putting in 1 adapts for the Y dimension (and putting in 2 adapts for the X dimension)... opposite to what the documentation states.
Thanks,
Elizabeth
Thanks,
Elizabeth
Re: RJB D2Box and adaptation of weights
Hello,dmcfarland wrote:RJB does not support weight adaptation. In fact, RJB is not currently being updated since D2Box can do the same functions and more. There is no way to specificy the code for adaptation in RJB. This is part of the target definition in D2Box. Parameter fragments are available to parameterize D2Box so that it can do several 1-d tasks including RJB.
Thanks for your response... this is good information to know since I was still using RJB! I found the parameter fragments and they were similar to what I ended up creating for the D2Box task before I knew they existed. However, I am wondering about some of the values I should use in the TargetPos martix if I want an RJB like task with 3 or more targets. Of course I would have a column for each target and include the appropriate screen location and dimensions, however, what would I use for Row 5, which "contains a zero-mean value that describes the relative Y location of each target." For a 2 target task this 1 and -1. For a 3 target task would it be 1, 0 and -1? What about for a 4 target task... 1, 0.5, -0.5, -1?
Also, for the 2 target task fragments (rjb2.prm and ud.prm), the value in row 5 of the TargetPos matrix in the first column is -1 and the second column is 1. However, the first column describes the top target... shouldn't that value be a 1 (and the second column -1 for the bottom target)?
Thanks,
Elizabeth
Re: Adaptation questions ...
Elisabeth, these are all good questions. There are a few things to say. The first is that the sum of all numbers needs to have a zero mean. (e.g., -1, 0, +1). Second, these are basically the target values for an algorithm trying to predict those values from the weighted sum of all features. As you know, each feature (e.g., row in the MUD/MLR matrices) has a weight associated with it. If you used -1 and +1 in a 2 target scenario, and for example for vertical control, the weighted feature sum would be -1 every time you want to hit the top target +1 every time you hit the bottom target. The (LMS, or delta rule) algorithm then takes the error, i.e., the difference between the predicted value (as calculated by the MUD matrix for each data block) and the expected value (as prescribed by the TargetPos adaptation value (e.g., -1) to change the weights in the MUD matrix so as to optimize performance on future trials.However, I am wondering about some of the values I should use in the TargetPos martix if I want an RJB like task with 3 or more targets. Of course I would have a column for each target and include the appropriate screen location and dimensions, however, what would I use for Row 5, which "contains a zero-mean value that describes the relative Y location of each target." For a 2 target task this 1 and -1. For a 3 target task would it be 1, 0 and -1? What about for a 4 target task... 1, 0.5, -0.5, -1?
Because negative numbers make the cursor go up, and positive numbers make it go down, you want to predict a negative number for the top target and a positive number for the bottom target.Also, for the 2 target task fragments (rjb2.prm and ud.prm), the value in row 5 of the TargetPos matrix in the first column is -1 and the second column is 1. However, the first column describes the top target... shouldn't that value be a 1 (and the second column -1 for the bottom target)?
In either case, it is probably advisable to first start with a configuration that does not adapt on the feature weights. Then, once you have a subject that can do the task, and once you understand better the issues involved, you might want to turn this feature on. Even then, you should probably turn in on as 'compute' first, so that weights are computed but not used. Once you get appropriate values in the .lms file, you can then turn it on to be used online.
The Gerv
Re: Adaptation questions ...
Hello,gschalk wrote:In either case, it is probably advisable to first start with a configuration that does not adapt on the feature weights. Then, once you have a subject that can do the task, and once you understand better the issues involved, you might want to turn this feature on. Even then, you should probably turn in on as 'compute' first, so that weights are computed but not used. Once you get appropriate values in the .lms file, you can then turn it on to be used online.
The Gerv
When I set WeightUse to 1 (=compute) in the D2Box program, the LMS file is created, but it is empty (and stays empty until I actually turn WeightUse to 2 (=use)). I am just wondering how I can access the computed values so I can see how the program is adapting the weights?
Thanks,
Elizabeth
-
- Posts: 5
- Joined: 24 Feb 2005, 14:11
The lms file should contain values when WeightUse = 1. Perhaps there is some other problem. Try running it with WeightUse = 2 (perhaps without actually having a subject attached). The adaptation also depends upon the values in row 7 of the Target Position Matrix (adaptcode). If this value is 0 (or something other than 1,2, or 3) the adaptation will not run.
Hello,dmcfarland wrote:The lms file should contain values when WeightUse = 1. Perhaps there is some other problem. Try running it with WeightUse = 2 (perhaps without actually having a subject attached). The adaptation also depends upon the values in row 7 of the Target Position Matrix (adaptcode). If this value is 0 (or something other than 1,2, or 3) the adaptation will not run.
I tried it both ways and the LMS file will fill only if WeightUse=2. The file is created, but stays empty if WeightUse=1. The value in row 7 of the Target Position Matrix is set to 1 (since I am interested in adaptation for the Y dimension... this setting is opposite to what the manual states as mentioned in previous posts above). However, I did try setting that value to 2 and 3 and got the same results (empty LMS file if WeightUse=1).
Am I using the correct settings for the WeightControl matrix? Rows 1 - 4 are as follows:
Xadapt
Yadapt
AdaptCode
ResultCode
Thanks,
Elizabeth
Who is online
Users browsing this forum: No registered users and 18 guests