Page 1 of 1

Overfitting und Dropout

Posted: Tue 12. Mar 2019, 00:01
by Harald
Hallo,
ich würde gerne einige Neuron beim Training abschalten (dropout) um ein Overfitting zu vermeiden. Wie realisiere ich dies mit der DLL in VB6?

Re: Overfitting und Dropout

Posted: Tue 12. Mar 2019, 10:52
by TJetter
Hallo,

dazu müssen Sie in den Properties der betreffenden Neuronen die Eigenschaft 'lockActThres' auf TRUE bzw. auf 1 setzen:

Code: Select all

' Properties of a Neuron
Private Type NeuronProp
    act As Double
    actFunc As Long                        ' see const definitions below
    actThres As Double
    lockActThres As Long
    actSustain As Double                    ' 0..1
    outputFireLevel As Long                 ' see const definitions below
    outputRecovTime As Long                 ' 1..100000
    fireThresLow As Double                  ' fireThresHi must be >= fireThresLo
    fireThresHi As Double                   ' fireThresHi must be >= fireThresLo
    useNormalization As Long
    normRangeLow As Double
    normRangeHigh As Double
    useActIgnoreVal As Long
    actIgnoreVal As Double
    expLogistic As Double
    parmTanHyp As Double
    allowTeacherOutputConnect As Long
    displayName As Long
    displayAct As Long
    isPixel As Long
    width As Long
End Type
analog gilt dies für die Eigenschaft 'lockWeight' von Links:

Code: Select all

' Properties of a Link
Private Type LinkProp
    weight As Double
    lockWeight As Long
    length As Long             ' 1..10000
    displayWeight As Long
End Type

Dazu zuerst das betreffende Neuron selektieren, die Eigenschaften mit 'MB_GetSelectedNeuronProp' lesen, den Structmember auf 1 setzen und dann wieder zurückschreiben mit 'MB_SetSelectedNeuronProp'.
Bzgl. der Selektion der Neuronen und/oder Links: Um hier weiter diskutieren zu können, müsste ich wissen, um welche Neuronen/Links es geht. Um einen ganzen Layer z.B.?

Viele Grüße

Re: Overfitting und Dropout

Posted: Tue 12. Mar 2019, 16:13
by Harald
Merci