gpt4 book ai didi

python-3.x - 神经网络的分辨率取决于哪些因素?

转载 作者:行者123 更新时间:2023-11-30 09:47:55 33 4
gpt4 key购买 nike

我在 keras 中有一个神经网络。如果两个样本在归一化特征空间中彼此相距 0.001 个单位,则网络不会区分它们。对于网络来说,能够区分这一点非常重要,因为这种差异在原始(非标准化)特征空间中并非微不足道。有什么方法可以提高神经网络的分辨率吗?如果是这样,我应该改变哪些因素?

编辑:让我给您我用于 ANN 的代码。

编辑:数据集描述:我使用的是 x=[-1:1] 和 Y=[-1,1] 的二维数据集,两个维度中两个连续点之间的步长为 0.001。设类标签为:半径为 0.5、中心为 (0,0) 的圆内部或圆上的所有内容均为法线(类别 1),圆外的所有内容均为 0(类别 0)。训练后,我使用相同的训练集作为测试集。现在,圆上的边界点以及边界内外的小邻域被分类为 0.3 到 0.7。只有圆内的点为 1,圆外的点为 0。我认识到这是输出层 sigmoid 激活函数的行为。我需要它来识别边界上的点和边界外 0.001 单位外的点以及边界内 0.001 单位外的点之间的差异。

from keras.models import Sequential
from keras.layers import Dense
from sklearn.cross_validation import train_test_split as tts
from keras.callbacks import EarlyStopping as es
from keras import optimizers as op
"""Creating the model"""
model=Sequential()
model.add(Dense(12,input_dim=c,activation='relu')) #input layer (c is the dimensionality of my dataset)
for i in range(0,hidden_layer_size):
model.add(Dense(12,activation='relu')) #hidden layers
model.add(Dense(1,activation='sigmoid')) #output layer

"""Compiling the model"""
adam=op.Adam(lr=0.0007)
model.compile(loss='binary_crossentropy', optimizer=adam, metrics=['accuracy'])

"""Fit the model"""
early=es(monitor='acc',min_delta=0.0005,patience=2)
model.fit(features_train,labels_train, epochs=epochs, batch_size=30,callbacks=[early],verbose=2)

"""Evaluation"""
scores=model.evaluate(features_test,labels_test)
print("\n%s: %.2f%%" % (model.metrics_names[1], scores[1]*100))

最佳答案

神经网络中并不存在真正的“分辨率”概念。如果您的模型对某些样本进行了错误分类,那么您要么需要更好的模型,要么需要更多数据,甚至需要额外的正则化。

如果不广泛测试模型,就很难预测问题出在哪里,因此这是您必须做的事情。

关于python-3.x - 神经网络的分辨率取决于哪些因素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49895030/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com