我建立了没有隐藏层的网络。如下所示,我在Sigmoid中使用了激活功能,在MSE中使用了错误功能。
使用的数据集是来自Kaggle的Titanic数据集,我已经对数据进行了预处理。
模型的误差函数不断增加。如何正确更新权重以减少错误功能?
我是初学者。请忍受我。
数据集链接:
https://drive.google.com/file/d/1RZjCvJ732uHx-IAlhPAVRHDwabYsHJJl/view?usp=sharing
我的colab笔记本:
https://colab.research.google.com/drive/1HD9RA1RXQcaBvUANz3vR_6iW0BSr9kDp?usp=sharing
import numpy as np
X=np.array(td.drop(columns=['Survived','Fare'],axis=1))
Y=np.array(td['Survived'])
X=X.T
print('X shape :',X.shape)
print('Y shape :',Y.shape)
W=np.zeros((nf,1))
print('W shape :',W.shape)
B=0
for _ in range(100):
z=summation(W,X,B)
print("shape of z : ",z.shape)
# print('z = ',z)
y=sigmoid(z.T)
# print(' y = ',y)
cost=(error(Y,y))/ne
print('cost = ',cost)
updatefactor=((Y-y)*(Y-1))*y*(1-y)*X/ne
print(updatefactor.squeeze())
# print('updatefactor : ',updatefactor)
# print('*****************************')
print(updatefactor.shape)
W=updW(W,0.001,updatefactor)
答案 0 :(得分:0)
我假设您正在构建感知器模型。
正如@Rahul Vishwakarma所评论的那样,在计算的z值中,您需要将权重W和特征X相乘,并加上偏差B。仅将这三个项加起来不会导致适当的激活。因此,您可以做类似的事情
z = np.dot(W,X) + B
确保W和X对齐以进行矢量乘法。