使用程序设计流程图解析并建立神经网络(不依赖深度学习library)

介绍:

Flow chart for a simple neural network:

#(1)Take inputs 输入

#(2)Add bias (if required)

#(3)Assign random weights to input features 随机一个权重

#(4)Run the code for training. 训练集训练

#(5)Find the error in prediction. 找预测损失

#(6)Update the weight by gradient descent algorithm. 根据梯度下降更新权重

#(7)Repeat the training phase with updated weights. 重复训练更新权重

#(8)Make predictions. 做预测

参考: 深度学习使用python建立最简单的神经元neuron-CSDN博客

数据:

python 复制代码
# Import the required libraries
import numpy as np
import pandas as pd
from matplotlib import pyplot as plt

# Load the data
df = pd.read_csv('Lesson44-data.csv') 
df

一、

python 复制代码
# Separate the features and label
x = df[['Glucose','BloodPressure']]#特征值
y = df['Outcome']#标签

三、

python 复制代码
np.random.seed(10)#初始化
label = y.values.reshape(y.shape[0],1)
weights = np.random.rand(2,1)#随机一个权重
bias = np.random.rand(1)
learning_rate = 0.0000004#梯度下降步长
epochs = 1000 #迭代次数

四~七、

python 复制代码
# Define the sigmoid function
def sigmoid(input):    
    output = 1 / (1 + np.exp(-input))
    return output



# Define the sigmoid derivative function基于sigmoid导数
def sigmoid_derivative(input):
    return sigmoid(input) * (1.0 - sigmoid(input))




def train_network(x,y,weights,bias,learning_rate,epochs):  #Epochs. 来回 One Epoch is when an ENTIRE dataset is passed forward and backward through the neural network only ONCE.
    j=0                                                    #weights 权重
    k=[]                                                   #learning_rate梯度下降的步长
    l=[]
    for epoch in range(epochs):       
        dot_prod = np.dot(x, weights) + bias#np.dot矩阵乘积
        # using sigmoid
        preds = sigmoid(dot_prod)
        # Calculating the error
        errors = preds - y  #计算错误,预测-实际
        # sigmoid derivative
        deriva_preds = sigmoid_derivative(preds)
        deriva_product = errors * deriva_preds
        #update the weights
        weights = weights -  np.dot(x.T, deriva_product) * learning_rate
        loss = errors.sum()
        j=j+1
        k.append(j)
        l.append(loss)
        print(j,loss)
    for i in deriva_product:
        bias = bias -  i * learning_rate
    plt.plot(k,l)
    return weights,bias

weights_final, bias_final = train_network(x,label,weights,bias,learning_rate,epochs)

八、

python 复制代码
weights_final
'''结果:
array([[ 0.06189634],
       [-0.12595182]])
'''

bias_final
#结果:array([0.633647])

# Prediction
inputs = [[101,76]]
dot_prod = np.dot(inputs, weights_final) + bias_final
preds = sigmoid(dot_prod) >= 1/2
preds
#结果:array([[False]])

inputs = [[137,40]]
dot_prod = np.dot(inputs, weights_final) + bias_final
preds = sigmoid(dot_prod) >= 1/2
preds
#结果:array([[ True]])
相关推荐
天佑木枫9 小时前
AI:AI 开车撞了人,谁赔钱?——自动驾驶的法律黑洞
人工智能·机器学习·自动驾驶
武子康9 小时前
调查研究-212 智谱 ZCode Harness for GLM-5.2:国产 Coding Agent 从“模型能力“走向“工程执行环境“
大数据·人工智能·深度学习·llm·claude·glm·智谱
CTA量化套保9 小时前
最新AI量化效率提升,用示例拆解练习压实路径
人工智能·python
zhiSiBuYu05179 小时前
混合检索实战指南:关键词与向量的完美融合
人工智能·python·机器学习
weixin_413063219 小时前
复现 MatchED 边缘检测模型(单张图片重复8次,训练200 epoch)
python·算法·计算机视觉·边缘检测模型
许彰午9 小时前
74_Python自动化办公之Excel操作
python·自动化·excel
zzzzzz31012 小时前
别争了,OpenClaw 和国产龙虾我全都要:一个 AI Agent 混合部署实战
机器学习·机器人·api
神州问学14 小时前
Agent Harness:模型之外的智能体系统工程
人工智能·深度学习·机器学习
用户8356290780511 天前
Python 实现 PDF 文件加密与解密方法
后端·python