一个极简的神经元网络助你入门(RELU)

这篇博客介绍了ReLU激活函数在神经网络中的作用,通过一个极简的神经元网络模型,阐述了如何使用随机梯度下降求解权重W。训练得到的模型包括神经元的连接权重,该模型能根据输入值计算出输出值。文中详细推导了梯度下降公式,以输出目标值和实际输出值的平方差为损失函数,逐步应用链式法则求得权重更新的梯度。
摘要由CSDN通过智能技术生成

 

import numpy as np
import matplotlib.pyplot as plt

#此示例神经网络的样本输入输出分别是二进制和十进制0-8

#输入样本
X=np.array([
    [0,0,0],
    [0,0,1],
    [0,1,0],
    [0,1,1],
    [1,0,0],
    [1,0,1],
    [1,1,0],
    [1,1,1]    
])

#输出样本
Y=np.array([
    [0],
    [1],
    [2],
    [3],
    [4],
    [5],
    [6],
    [7]
])


#构造神经网络 1个输入层3个神经元 1个输出层1个神经元 激活函数为ReLU
W=np.random.rand(1,3)

print("初始模型随机权重:",W)

def relu(x):
    x[x<0]=0
    return x

def relu_derivative(x):
    return (x>0).astype(int)

learning_rate=0.1
train_times=100
costs=[]

for i in range(train_times):
    for j in range(len(X)):
        y=relu(W.dot(X[j]))
        cost=Y[j]-y
        cost2=cost**2
        costs.append(cost2)
        gradient=-np.dot(cost*relu_derivative(W.dot(X[j])), X[j].reshape(1,3))
      
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值