当前位置: 首页 > news >正文

最新国际新闻热点搜索引擎优化的主要策略

最新国际新闻热点,搜索引擎优化的主要策略,平面设计自学网站有哪些,搭建网站的企业numpy实现神经网络 首先讲述的是神经网络的参数初始化与训练步骤 随机初始化 任何优化算法都需要一些初始的参数。到目前为止我们都是初始所有参数为0,这样的初始方法对于逻辑回归来说是可行的,但是对于神经网络来说是不可行的。如果我们令所有的初始…

numpy实现神经网络

首先讲述的是神经网络的参数初始化与训练步骤

随机初始化

任何优化算法都需要一些初始的参数。到目前为止我们都是初始所有参数为0,这样的初始方法对于逻辑回归来说是可行的,但是对于神经网络来说是不可行的。如果我们令所有的初始参数都为0,这将意味着我们第二层的所有激活单元都会有相同的值。同理,如果我们初始所有的参数都为一个非0的数,结果也是一样的。

我们通常初始参数为正负ε之间的随机值

训练神经网络一般步骤

  1. 参数的随机初始化
  2. 利用正向传播方法计算所有的 h θ ( x ) h_{\theta}(x) hθ(x)
  3. 编写计算代价函数 J J J 的代码
  4. 利用反向传播方法计算所有偏导数
  5. 利用数值检验方法检验这些偏导数
  6. 使用优化算法来最小化代价函数

激活函数和参数初始化

sigmoid函数
在这里插入图片描述
relu函数:
在这里插入图片描述

import numpy as np# sigmoid激活函数
def sigmoid(x):return 1/(1+np.exp(-x))# relu激活函数
def relu(x):return np.maximum(0, x)# sigmoid反向传播函数
def sigmoid_back(x):return x*(1-x)# relu反向传播函数
def relu_back(x):return np.where(x > 0, 1, 0)#初始化参数
def initialize(input_size,hidden_size,output_size):'''input_size 输入层列数hidden_size 隐藏层列数output_size 输出层列数'''np.random.seed(42)input_hidden_weights=np.random.randn(input_size,hidden_size)input_hidden_bias=np.zeros((1,hidden_size))hidden_out_weights=np.random.randn(hidden_size,output_size)hidden_out_bias=np.zeros((1,output_size))return input_hidden_weights,input_hidden_bias,hidden_out_weights,hidden_out_bias

前向传播和反向传播函数

# 前向传播
def forward(inputs,input_hidden_weights,input_hidden_bias,hidden_out_weights,hidden_out_bias):hidden_input=np.dot(inputs,input_hidden_weights)+input_hidden_biashidden_output=relu(hidden_input)final_input=np.dot(hidden_output,hidden_out_weights)+hidden_out_biasfinal_output=sigmoid(final_input)return hidden_output,final_output# 后向传播
def backward(inputs,hidden_output,final_output,target,hidden_out_weights):output_error = target - final_outputoutput_delta = output_error * sigmoid_back(final_output)hidden_error = output_delta.dot(hidden_out_weights.T)hidden_delta = hidden_error * relu_back(hidden_output)return output_delta,hidden_delta

更新参数

# 更新参数
def update(inputs, hidden_output, output_delta, hidden_delta, input_hidden_weights, input_hidden_bias,hidden_output_weights, hidden_output_bias, learning_rate):hidden_output_weights =hidden_output_weights+ hidden_output.T.dot(output_delta) * learning_ratehidden_output_bias = hidden_output_bias+ np.sum(output_delta, axis=0, keepdims=True) * learning_rateinput_hidden_weights = input_hidden_weights+ inputs.T.dot(hidden_delta) * learning_rateinput_hidden_bias = input_hidden_bias+ np.sum(hidden_delta, axis=0, keepdims=True) * learning_ratereturn input_hidden_weights,input_hidden_bias,hidden_output_weights,hidden_output_bias

训练及预测模型

#训练模型
def train(inputs, target, input_size, hidden_size, output_size, learning_rate, epochs):input_hidden_weights,input_hidden_bias,hidden_output_weights,hidden_output_bias=initialize(input_size,hidden_size,output_size)# 梯度下降优化模型for epoch in range(epochs):hidden_output,final_output=forward(inputs,input_hidden_weights,input_hidden_bias,hidden_output_weights,hidden_output_bias)output_delta,hidden_delta=backward(inputs,hidden_output,final_output,target,hidden_output_weights)input_hidden_weights,input_hidden_bias,hidden_output_weights,hidden_output_bias=update(inputs,hidden_output,output_delta,hidden_delta,input_hidden_weights,input_hidden_bias,hidden_output_weights,hidden_output_bias,learning_rate)# 计算损失loss = np.mean(np.square(targets - final_output))if epoch % 100 == 0:print(f"Epoch {epoch}: Loss {loss}")return input_hidden_weights,input_hidden_bias,hidden_output_weights,hidden_output_bias# 预测模型
def predict(inputs, input_hidden_weights, input_hidden_bias, hidden_output_weights,hidden_output_bias):_, result = forward(inputs, input_hidden_weights, input_hidden_bias, hidden_output_weights, hidden_output_bias)return [1 if y_hat>0.5 else 0  for y_hat in result]

检验模型

# 定义训练数据和目标
inputs = np.array([[0, 0], [0, 1], [1, 0], [1, 1]])
target = np.array([[0], [1], [1], [0]])# 定义神经网络参数
input_size = 2
hidden_size = 4
output_size = 1
learning_rate = 0.1
epochs = 1000# 训练神经网络
parameters = train(inputs, target, input_size, hidden_size, output_size, learning_rate, epochs)# 预测
predictions = predict(inputs, *parameters)
print("预测结果:")
print(predictions)

最终结果

在这里插入图片描述

http://www.15wanjia.com/news/16746.html

相关文章:

  • 上海备案证查询网站高端网站建设公司
  • 长春企业网站排名优化优化内容
  • 网站建设大量定制阶段网站正能量免费推广软件
  • 专业开发网站企业sem分析
  • 政府门户网站建设需求春哥seo博客
  • 做网站图片用什么格式营销的概念是什么
  • 成都网站建设定制开发系统手机百度账号申请注册
  • 字体怎么安装wordpress网站优化与seo
  • python3.5 做网站百度首页网址是多少
  • 个人网站开发平台有哪些南宁网络推广服务商
  • 企业形象设计图片网站关键词免费优化
  • 美国一级a做爰片免费网站 视频播放网络推广公司如何做
  • 外贸网站建设 深圳h5网站制作平台
  • 个人可以建设网站吗不备案站长是什么级别
  • 自建网站 做自定义导航新郑网络推广
  • 电脑装机网站站长工具在线免费
  • 湛江手机建站模板网盘资源大全
  • windows下wordpress宁波seo推广
  • 福州外贸网站建设推广网址关键词查询
  • 多语言版本网站制作无锡今日头条新闻
  • 对网站开发的理解500字弹窗广告最多的网站
  • 做静态头像网站海外社交媒体营销
  • 怎么申请网页域名上海高端seo公司
  • 建设学院网站的通知书网络营销的推广方法
  • 湖南郴州建设局网站seoheuni
  • wordpress视频主题模板下载河南网站seo推广
  • 婺源网站建设wyjcwl廊坊seo排名公司
  • 帮助传销做网站会不会判刑云计算培训费用多少钱
  • 做市场调查的网站免费高端大气网站建设
  • 建设营销型网站服务枸橼酸西地那非片功效效及作用