线性数据集的激活函数

时间:2018-08-01 13:14:15

标签: python r neural-network activation-function

我一直在使用大多数显示不同属性/功能之间线性关系的数据集。我应该对线性数据集使用什么激活?到目前为止,我一直在使用sigmoid函数。

我还必须尝试其他激活功能吗?

1 个答案:

答案 0 :(得分:0)

1)太多的线性相关属性不好,因为与信息属性相比,它们可能会引入过多的噪声。如果您的样品喜欢在不同温度下某些气体的红外光谱,那么最好使用PCA(或其他维数减少算法)来减少数据的维数,以尽可能提供更多信息。

2)激活功能取决于NN的结构及其功能。例如。现在 ReLU 激活功能非常“时髦”。例如,请参见下面的代码,用于iris库中的分类keras数据集。图层具有不同的激活功能。

library(keras)
train <- iris[sample(nrow(iris)),]

y <- train[, "Species"]
x <- train[, 1:4]

x <- as.matrix(apply(x, 2, function(x) (x - min(x)) / (max(x) - min(x))))

levels(y) <- seq_along(y)
y <- to_categorical(as.integer(y) - 1 , num_classes = 3)

model <- keras_model_sequential()

# add layers and activation functions
model %>%
  layer_dense(input_shape = ncol(x), units = 10, activation = "relu") %>%
  layer_dense(units = 10, activation = "relu") %>%
  layer_dense(units = 3, activation = "softmax")

model %>%
  compile(
    loss = "categorical_crossentropy",
    optimizer = "adagrad",
    metrics = "accuracy"
  )

fit <- model %>%
  fit(
    x = x,
    y = y,
    shuffle = T,
    batch_size = 5,
    validation_split = 0.3,
    epochs = 150
  )