【问题标题】:Is a linear stack of layers equal to multilinear regression?层的线性堆栈是否等于多元线性回归?
【发布时间】:2019-09-24 01:33:47
【问题描述】:

所以对于我正在制作的应用程序,我正在使用 tf.keras.models.Sequential。我知道机器学习有线性和多线性回归模型。在 Sequential 的the documentation 中说模型是层的线性堆叠。这等于多元线性回归吗?我能找到的关于层的线性堆栈的唯一解释是 Stackoverflow 上的 this 问题。

def trainModel(bow,unitlabels,units):
    x_train = np.array(bow)
    print("X_train: ", x_train)
    y_train = np.array(unitlabels)
    print("Y_train: ", y_train)
    model = tf.keras.models.Sequential([
            tf.keras.layers.Dense(256, activation=tf.nn.relu),
            tf.keras.layers.Dropout(0.2),
            tf.keras.layers.Dense(len(units), activation=tf.nn.softmax)])
    model.compile(optimizer='adam',
                         loss='sparse_categorical_crossentropy',
                         metrics=['accuracy'])
    model.fit(x_train, y_train, epochs=50)
    return model

【问题讨论】:

    标签: machine-learning keras tf.keras machine-learning-model


    【解决方案1】:

    您在这里混淆了两件非常重要的事情。一个是模型,一个是模型的模型。

    • 模型的模型确实是线性的,因为它从头到尾都遵循一条直线(直截了当)。

    • 模型本身不是线性的:relu 激活是为了确保解不是线性的。

    线性堆栈不是线性回归也不是多线性的。线性堆栈在这里不是 ML 术语,而是直截了当的英文术语。 如果我在任何方面误解了这个问题,请告诉我。

    【讨论】:

    • 所以 Sequential 是线性的,但由于 relu 激活,我的模型的输出不是线性的?还是我正在制作的模型也不是线性的?
    • 是的,模型是“线性”的,作为线性(直接)层堆叠。不,模型不是线性的,因为输出不是输入的线性组合(加上一个静态项)。
    • 那么描述模型输出的术语是什么?如果不是线性的
    • 非线性。 (在这种情况下我们不能更精确)。有关更多信息,请参阅此问题/答案stackoverflow.com/questions/41244421/…
    【解决方案2】:

    在 Sequential 的文档中说模型是层的线性堆叠。这等于多元线性回归吗?

    假设你的意思是一个包含多个变量的回归,不是。

    tf.keras.models.Sequential() 定义模型中的层如何连接,特别是在这种情况下,这意味着它们是完全连接的(第一层的每个输出都作为输入连接到下一层的每个神经元层)。线性一词用于表示没有有趣的事情发生,例如。递归(连接可以向后)或剩余连接(连接可以跳过层)。

    就上下文而言,具有多个变量的回归类似于具有具有多个输入且没有传递函数的单个神经元的单层网络。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-20
      • 2010-11-23
      • 1970-01-01
      • 1970-01-01
      • 2013-07-17
      • 2014-05-20
      • 1970-01-01
      • 2016-10-15
      相关资源
      最近更新 更多