【问题标题】:Neural Network output all 1s神经网络输出全1
【发布时间】:2020-09-11 17:27:26
【问题描述】:

我正在尝试创建一个用于预测的 ANN 网络(即不只是分类为 0 或 1)。

我的代码如下:

import os
import pandas as pd
import numpy as np
from sklearn import preprocessing
from sklearn.preprocessing import MinMaxScaler
from sklearn.model_selection import train_test_split

data = pd.read_csv('ANNData.csv', skiprows=0, usecols=(1,2,3,4,5,6,7,8,9,11)) #importing data
data.interpolate(axis=0, method='linear', inplace=True) #interpolates = fills in missing values
data=data.values #converts to array

#scaling the data
min_max_scaler = preprocessing.MinMaxScaler()
scaled_data = min_max_scaler.fit_transform(data)
inputs=scaled_data[:,0:8]
output=scaled_data[:,8]
output = output.reshape(1095,1)

def sigmoid(x):
    return 1/(1+(np.exp(-x)))

def sigmoid_der(x):
    return (sigmoid(x)*(1-sigmoid(x)))

X_train, X_test, y_train, y_test = train_test_split(inputs, output, test_size=0.2)

synaptic_weights=2*np.random.random((8,1))-1

for iteration in range(10000):
    input_layer= X_train
    outputs = sigmoid(np.dot(input_layer, synaptic_weights))
    error = outputs-y_train
    adjustments = error*sigmoid_der(outputs)
    synaptic_weights =np.dot(input_layer.T, adjustments)

print(outputs)

对于我的结果,我得到了所有的结果。客观地说,y_train 数据的前 5 个输出是

[0.69083156]
 [0.07889126]
 [0.3880597 ]
 [0.3880597 ]
 [0.23240938]

我应该提到,当我运行一次迭代的代码时,我得到了一个有意义的输出。当迭代次数为 2 次或更多时,我得到一个全部为 1 的数组。 即

 [1.]
 [1.]
 [1.]
 [1.]

有什么建议吗?还是添加更多层的唯一解决方案?

【问题讨论】:

  • sigmoid_der 是 sigmoid 的导数吗?如果是这样,您确定这是正确的吗? d sigmoid/ dx = np.exp(-x)/((1+np.exp(-x)**2)。也许可以像你写的那样写,但是我看不到。
  • 是的,它是sigmoid的导数。我将其更改为您建议的值并得到相同的结果(适用于 1 次迭代,但所有 '1' 用于 2 次或更多次迭代。

标签: python machine-learning deep-learning neural-network prediction


【解决方案1】:

假设你使用梯度下降,我认为你错过了学习率。

尝试设置

lr = 1-e3 # try different range from 1-e2 to 1-e5

adjustments = lr * error * sigmoid_der(outputs)

【讨论】:

  • 添加后,我得到所有的 2 次迭代,然后,所有的零。
  • @Laura 你的损失函数正确吗?我刚刚意识到这不是逻辑回归的损失函数
猜你喜欢
  • 2012-11-09
  • 2015-02-23
  • 2017-11-21
  • 2012-01-16
  • 2020-03-15
  • 2020-01-26
  • 2021-09-22
相关资源
最近更新 更多