Step by Step explanation on VBA DLL

You are not quite sure where to place your question or issue? You want to suggest a new forum or want to provide feedback to the board itself?

Try here!
User avatar
TJetter
Posts: 348
Joined: Sat 13. Oct 2012, 12:04

Re: Step by Step explanation on VBA DLL

Post by TJetter »

shank wrote: Wed 11. Sep 2019, 11:41 I got to see the pattern viewer and there are different graphs plotted...
But, I might need a little help on interpretation...
After processing the script should ask you "Open generated csv file in external application?". If you say 'Yes' then a program (typically MS Excel) should open and present the generated data file to you. Right?
Do you have specific questions to the generated result file?

With respect to the still residual dll error: Have you tried to copy the 64 bit dll Version (MBDllWrapper64.dll) to C:\Windows\SysWOW64, too?
Thomas Jetter
shank
Posts: 8
Joined: Wed 4. Sep 2019, 07:24

Re: Step by Step explanation on VBA DLL

Post by shank »

Yes, I have few questions regarding result file and plot as well.

1. I understand that each of the variable is changing on a scale by keeping other variables constant (mean value). This is visible in lesson learner. However, the scale is from -1 to +1 which is little confusing because the neural network was generated with normalized input (min-max rule, which is from 0 to 1).

2. About the plot, X-axis is basically pattern number range (which is 100 for each variable) ans Y-axis is corresponding value of graph at that point. How can we draw a conclusion about most important variable or least important variable. For example, in attached file, "TPH" is output variable and rest are input variable. Which one is more significantly bonded with output ?


FOR VBA DLL ERROR: Yes, I did copy the file in designated location. But, still I am getting this error.
Attachments
MemBrain_Script_Plot.JPG
(89.24 KiB) Not downloaded yet
User avatar
TJetter
Posts: 348
Joined: Sat 13. Oct 2012, 12:04

Re: Step by Step explanation on VBA DLL

Post by TJetter »

shank wrote: Thu 12. Sep 2019, 05:11 , the scale is from -1 to +1 which is little confusing because the neural network was generated with normalized input (min-max rule, which is from 0 to 1).
The script uses the activation range of the Input Neurons' Activation Functions for processing. It does not know about the values the net was trained with.
If you want to have 0..1 only then change the Activation Functions of the Input Neurons to IDENT. 0 TO 1.
By the way: You don't need to manually normalize the data bevor importing it into MemBrain. You can adjust a Normalization Range for each Input Neuron separately (as part of the Properties of the Neurons) and then use your real physical values in the net. MemBrain will take care of the normalization automatically. Same applies for the Output Neuron(s) of your net.
You then always see Inputs and Outputs in real useful value ranges, also in the sensitivity analysis produced by the script.
shank wrote: Thu 12. Sep 2019, 05:11 How can we draw a conclusion about most important variable or least important variable. For example, in attached file, "TPH" is output variable and rest are input variable. Which one is more significantly bonded with output ?
You can't. Obviously, your net has derived important rules from all the Inputs. I.e., in the currently trained net all of them are important.
You can, however, decouple one or more of the inputs, then Randomize and repeat the Training. If the net is able to learn well even without these inputs you can remove them.
To decouple an Input: Select the input neuron, press <Arrow Down> on the keypad (this will select all outgoing links of the Neuron) and then press <Del>.
shank wrote: Thu 12. Sep 2019, 05:11 FOR VBA DLL ERROR: Yes, I did copy the file in designated location. But, still I am getting this error.
OK, I'll try to get back here with a solution in the near future. Would you be so Kind and send me your Excel sheet with the modified VBA code? Either as PN or via EMail? I'll then try to get a hold of a native 64 bit MS Office Installation to dig down to the root cause. Many thanks!
Thomas Jetter
shank
Posts: 8
Joined: Wed 4. Sep 2019, 07:24

Re: Step by Step explanation on VBA DLL

Post by shank »

Mr. Jetter,

Sorry for responding late. Moreover, can you show me some examples for normalizing data in MemBrain ?
I did that initially and all I could get was a notification "Data in the lesson editor is out of range with respect to normalization setting".

Even if I bypassed it by running the network anyway, it never gave correct results. That's why I normalized input data manually and uploaded it in MemBrain.
Also, as suggested by you, I changed the activation function to INDENT 0..1 but it didn't work. I got the same result.
User avatar
TJetter
Posts: 348
Joined: Sat 13. Oct 2012, 12:04

Re: Step by Step explanation on VBA DLL

Post by TJetter »

shank wrote: Tue 17. Sep 2019, 12:40 can you show me some examples for normalizing data in MemBrain ?
I did that initially and all I could get was a notification "Data in the lesson editor is out of range with respect to normalization setting".

Even if I bypassed it by running the network anyway, it never gave correct results. That's why I normalized input data manually and uploaded it in MemBrain.
Normalization actually is quite simple and straight forward: For each input or output neuron adjust the user defined data as you like: Edit neuron properties, select button <Normalization...>, check the check box <Use Normalization> and enter the <Upper Limit> and <Lower Limit> values.
If you try to train a net with data in the lesson editor that is outside of this adjusted range then MemBrain will issue the warning you mentioned and even select the neurons which caused the normalization range violation for you.
You can also adjust the normalization settings via the <Normalization Wizard> instead:
- Load the lesson with all your data patterns. If you use separate training and validation lessons then first combine both lessons (Lesson Editor menu: <Lesson Files><Append Lesson to Current Lesson...> into one overall lesson. Attention: Don't accidentally overwrite your original lesson with this afterwards, so best is to immediately save the new combined lesson using a new name.). Alternatively, you can also create an explicit normalization lesson with just two patterns: One pattern contains all the maximum values and the other all the minimum values for each neuron.
- Select the inputs and outputs for which you want to adjust normalization. If all inputs and outputs shall be adjusted then simply select the full net (press <Ctrl + 'A')
- Execute <Extras><Normalization Wizard...> to start the wizard. It will automatically suggest a suitable normalization setting for each of the input and output neurons based on the currently active lesson (which is your overall data or normalization lesson as described above).
- Click <Next> and finally <Apply> as appropriate. You can also enter your own values instead of the suggested ones during this process.
- Don't forget to save your net afterwards.

That's it.
shank wrote: Tue 17. Sep 2019, 12:40 Also, as suggested by you, I changed the activation function to INDENT 0..1 but it didn't work. I got the same result.
You are right, this hint I gave is not valid: You need to activate and adjust Normalization settings for the neurons in order to cause the script to use other data ranges.

Does it work now as you want to? Please come back with more specific questions if you still have issues.
Thomas Jetter
Post Reply