
一、概述
在机器学习中,在训练阶段对权重参数可以设置约束。Keras中的Constraints 模块提供了不同的功能来设置层上的约束,在提供的约束类型中,MinMaxNorm约束是初看容易理解,但仔细研究却比较难理解。为此笔者花了好几天时间进行研究,在多次准备放弃又重新捡起,最后终于明白了相关逻辑。
二、MinMaxNorm官方文档的介绍
MinMaxNorm:将权重约束为指定的最小值和最大值之间的范数,映射到每个隐藏单元的权值的约束,使其范数在上下界之间。
语法:keras.constraints.MinMaxNorm(min_value=0.0, max_value=1.0, rate=1.0, axis=0),
其中rate为强制执行约束的比例,表示约束条件的强制程度。权重将被重新调整为 (1 - rate) * norm + rate * norm.clip(min_value, max_value)。 实际上,这意味着 rate = 1.0 代表严格执行约束,而 rate <1.0