需要帮助定义一个简单的神经网络

我是新手,有几个问题。我有一些用Python和Keras创建的神经网络代码片段。该模型用于情感分析。使用了标记数据的训练数据集(情感=1或0)。现在我有几个关于如何描述这个神经网络的问题。

  model = Sequential()  model.add(Dense(512, input_shape=(max_words,), activation='relu'))  model.add(Dropout(0.5))  model.add(Dense(256, activation='sigmoid'))  model.add(Dropout(0.5))  model.add(Dense(2, activation='softmax'))  model.compile(loss='categorical_crossentropy',                optimizer='adam',                metrics=['accuracy'])  model.fit(train_x, train_y,            batch_size=32,            epochs=5,            verbose=1,            validation_split=0.1,            shuffle=True)

我对以下许多术语不是很清楚,请不要对我太苛刻。

  • 1: 有什么使这个模型成为典型的情感分析模型吗?
  • 2: 它是“词袋模型”吗?(我的猜测是肯定的,因为数据是使用分词器预处理的)
  • 3: 它是“卷积的”吗?
  • 4: 它是深的吗?
  • 5: 它是密集的 – 它有多密集?
  • 6: 密度的原因是什么?-数字:512, 256, 2
  • 7: 它有多少层(包括/不包括输入和输出层)?
  • 8: 它是监督的/非监督的?
  • 9: 在使用的顺序中,三种不同的激活函数’relu’, ‘sigmoid’, ‘softmax’背后的原因是什么?

感谢任何帮助!


回答:

  1. 分类交叉熵,这是该神经网络的损失函数,使其可用于情感分析。交叉熵损失返回不同类别的概率。在你的案例中,你需要两个可能类别的概率(01)。
  2. 我不确定你是否在使用分词器,因为从你提供的代码中看不出来,但如果你在使用,那么是的,它是一个词袋模型。词袋模型本质上是为你文本中的词根创建一个存储。从维基百科看,如果以下是你的文本:

John喜欢看电影。Mary也喜欢电影。

那么,这个文本的词袋模型将是:

{“John”:1,”喜欢”:2,”看”:1,”电影”:2,”Mary”:1,”也”:1};

  1. 你使用的网络架构不是卷积的,而是一个前馈模型,它将一层中的所有单元连接到下一层的所有单元,提供两层值的点积。
  2. 没有一个被普遍接受的定义来判断一个网络是否是深的。但是,作为一个经验法则,如果一个网络有超过2个中间层(不包括输入和输出层),那么它可以被认为是深的网络。
  3. 在上面提供的代码中,Dense反映了第一层中的所有单元(512)都连接到下一层中的每个其他单元,即第一层和第二层之间总共有512×256个连接。
  4. 是的,第一层中的512个单元与第二层中的256个单元之间的连接,形成了一个512×256维的参数矩阵,使其成为密集的。但在这里使用Dense更多的是从API的角度而不是语义的角度。同样,第二层和第三层之间的参数矩阵将是256×2维的。
  5. 如果你排除输入层(有512个单元)和输出层(有2个可能的输出,即0/1),那么你的网络在这里有一层,包含256个单元。
  6. 这个模型是监督的,因为情感分析任务与每个输入数据点相关联的输出(正面或负面)。你可以将这个输出视为网络的监督者,指示数据点的情感是正面还是负面。非监督任务与数据点没有相关联的输出信号。
  7. 这里使用的激活函数的目的是为网络的计算提供非线性。更详细地说,sigmoid有一个很好的特性,它的输出可以被解释为概率。所以如果网络对一个数据点输出0.89,那么这意味着模型评估该数据点为正面的概率是0.89。使用sigmoid可能是为了教学目的,因为ReLU激活单元比sigmoid/tanh更受青睐,因为其更好的收敛特性,我没有看到使用sigmoid而不是ReLU的令人信服的理由。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注