Keras W_constraint и аналоги W_regularizer в Julia's Flux - PullRequest
1 голос
/ 17 июня 2020

Я пытаюсь разобрать файл Keras json, чтобы создать модель Flux в Julia (Keras v1.1.0 и Flux v0.10.4).

Пример конфигурации слоя Dense:

{
    "class_name": "Dense", 
    "config": {
        "W_constraint": null, 
        "b_constraint": null, 
        "name": "dense_1", 
        "output_dim": 512, 
        "activity_regularizer": null, 
        "trainable": true, 
        "init": "glorot_normal", 
        "bias": true, 
        "input_dtype": "float32", 
        "input_dim": 4096, 
        "b_regularizer": null, 
        "W_regularizer": {
            "l2": 0.0010000000474974513, 
            "name": "WeightRegularizer", 
            "l1": 0.0
        }, 
        "activation": "relu", 
        "batch_input_shape": [null, 4096]
    }
}

Итак, мне ясно, как определить размеры ввода / вывода, функцию активации и инициализацию параметров в Flux. А как насчет W_constraint и W_regularizer? Я не нашел ничего похожего в слое Flux Dense. Он существует? Стоит ли самому реализовать? Эти параметры слоя Dense вообще важны или их можно легко пропустить при создании модели Flux без значительного изменения производительности?

1 Ответ

2 голосов
/ 17 июня 2020

Значения регуляризации - это нормы, которые суммируются для всех параметров сети и добавляются к функции потерь; вам придется делать это «вручную», но это довольно просто и описано в документации.

Ограничения параметров в Keras, по-видимому, реализованы с использованием методов проекции, которые являются частью оптимизатора . Это менее тривиально реализовать, я предлагаю немного прочитать о методах проксимального градиента. Вероятно, вам придется реализовать свой собственный тип оптимизации, сделав это в Flux (в идеале, обернуть один из существующих). Возможно, ProximalOperators.jl сможет сделать часть тяжелой работы. С другой стороны, модели с ограничениями параметров, насколько я видел, гораздо менее распространены, и вы можете уйти, просто оставив их пока нереализованными.

...