题解 | 单神经元
单神经元
https://www.nowcoder.com/practice/8903b7c94c6f4f4f963b7d05e1e397c7
from ctypes import BigEndianStructure
import math
import numpy as np
def single_neuron_model(features, labels, weights, bias):
probabilities=[]
for i in range(len(features)):
z=0
for j in range(len(features[0])):
z+=features[i][j]*weights[j]
z+=bias
z=1/(1+np.exp(-z))
z=round(z,4)
probabilities.append(z)
diff=0
for i in range(len(features)):
diff+=(probabilities[i]-labels[i])**2
mse=diff/len(features)
mse=round(mse,4)
return probabilities, mse
if __name__ == "__main__":
features = np.array(eval(input()))
labels = np.array(eval(input()))
weights = np.array(eval(input()))
bias = float(input())
print(single_neuron_model(features, labels, weights, bias))
顺便复习一下深度学习的知识。题目中,函数的输入包括样本数据features,标签labels,权重向量weights,偏置项bias。最后返回预测列表probabilities和误差mse.
回顾一下神经元操作流程:
1.输入样本跟权重求内积再加偏置。
2.然后过一个sigmoid激活函数,得到预测值。
3.求预测值与标签之间的差的平方,计算均方误差mse。
#深度学习算法 #单神经元
