Python 需要帮助定义一个简单的神经网络吗
我对这个很陌生,我有几个问题。我有一个用keras创建的python神经网络的代码片段。该模型用于情绪分析。使用标记数据的训练数据集(情绪=1或0)。 现在我有几个关于如何描述神经网络的问题Python 需要帮助定义一个简单的神经网络吗,python,tensorflow,machine-learning,keras,neural-network,Python,Tensorflow,Machine Learning,Keras,Neural Network,我对这个很陌生,我有几个问题。我有一个用keras创建的python神经网络的代码片段。该模型用于情绪分析。使用标记数据的训练数据集(情绪=1或0)。 现在我有几个关于如何描述神经网络的问题 model = Sequential() model.add(Dense(512, input_shape=(max_words,), activation='relu')) model.add(Dropout(0.5)) model.add(Dense(256, activation='s
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”的原因是什么
分类交叉熵
,这是该神经网络的损失函数,可用于情绪分析。交叉熵损失返回不同类别的概率。在您的例子中,需要两个可能的类的概率(0
或1
)Dense
反映了这样一个事实,即第一层(512)中的所有单元都连接到下一层中的每一个其他单元,即第一层和第二层之间总共有512x256个连接Dense
更多的是从API的角度,而不是语义角度。类似地,第二层和第三层之间的参数矩阵为256x2维sigmoid
有一个很好的特性,它的输出可以解释为概率。因此,如果网络输出数据点的概率为0.89,则意味着模型评估该数据点为正,概率为0.89。
使用sigmoid可能是出于教学目的,因为ReLU激活单元比sigmoid/tanh更受青睐,因为它具有更好的收敛特性,我看不到使用sigmoid代替ReLU的令人信服的理由我还建议你浏览博客。这将帮助你巩固你的概念。非常感谢。这回答了我所有的问题。非常感谢您抽出时间!