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

刷粉网站推广免费计算机网站建设员

刷粉网站推广免费,计算机网站建设员,动漫新闻资讯站,django可以做多大的网站目录 反向传播算法 反向传播算法基本步骤#xff1a; 反向中的参数变化 总结 反向传播算法 反向传播算法#xff08;Backpropagation#xff09;是训练人工神经网络时使用的一个重要算法#xff0c;它是通过计算梯度并优化神经网络的权重来最小化误差。反向传播算法的核…目录 反向传播算法 反向传播算法基本步骤 反向中的参数变化 总结 反向传播算法 反向传播算法Backpropagation是训练人工神经网络时使用的一个重要算法它是通过计算梯度并优化神经网络的权重来最小化误差。反向传播算法的核心是基于链式法则的梯度下降优化方法通过计算误差对每个权重的偏导数来更新网络中的参数。 反向传播算法基本步骤 前向传播将输入数据传递通过神经网络的各层计算每一层的输出。 计算损失根据输出和实际标签计算损失通常使用均方误差或交叉熵等作为损失函数。 反向传播根据损失函数对每个参数如权重、偏置计算梯度。梯度的计算通过链式法则进行反向传播直到达到输入层。 更新权重使用梯度下降算法来更新每一层的权重和偏置使得损失函数最小化。 链式推到https://blog.csdn.net/dingyahui123/category_6945552.html?spm1001.2014.3001.5482 import numpy as np import matplotlib.pyplot as plt import tensorflow as tf from tensorflow.keras.datasets import mnist # 加载 MNIST 数据集 (train_images, train_labels), (test_images, test_labels) mnist.load_data()# 归一化数据并将其形状调整为 (N, 784)因为每张图片是 28x28 像素 train_images train_images.reshape(-1, 28*28) / 255.0 test_images test_images.reshape(-1, 28*28) / 255.0# 转换标签为 one-hot 编码 train_labels np.eye(10)[train_labels] test_labels np.eye(10)[test_labels] # 定义激活函数 def sigmoid(x):return 1 / (1 np.exp(-x))# 定义激活函数的导数 def sigmoid_derivative(x):return x * (1 - x)# 网络架构参数 input_size 28 * 28 # 输入层的大小 hidden_size 128 # 隐藏层的大小 output_size 10 # 输出层的大小# 初始化权重和偏置 W1 np.random.randn(input_size, hidden_size) # 输入层到隐藏层的权重 b1 np.zeros((1, hidden_size)) # 隐藏层的偏置 W2 np.random.randn(hidden_size, output_size) # 隐藏层到输出层的权重 b2 np.zeros((1, output_size)) # 输出层的偏置 # 设置超参数 epochs 20 learning_rate 0.1 batch_size 64# 训练过程 for epoch in range(epochs):for i in range(0, len(train_images), batch_size):# 选择当前batch的数据X_batch train_images[i:ibatch_size]y_batch train_labels[i:ibatch_size]# 前向传播z1 np.dot(X_batch, W1) b1a1 sigmoid(z1)z2 np.dot(a1, W2) b2a2 sigmoid(z2)# 计算损失的梯度output_error a2 - y_batch # 损失函数的梯度output_delta output_error * sigmoid_derivative(a2)hidden_error output_delta.dot(W2.T)hidden_delta hidden_error * sigmoid_derivative(a1)# 更新权重和偏置W2 - learning_rate * a1.T.dot(output_delta)b2 - learning_rate * np.sum(output_delta, axis0, keepdimsTrue)W1 - learning_rate * X_batch.T.dot(hidden_delta)b1 - learning_rate * np.sum(hidden_delta, axis0, keepdimsTrue)# 每10轮输出一次损失if epoch % 10 0:loss np.mean(np.square(a2 - y_batch))print(fEpoch {epoch}, Loss: {loss}) # 测试模型 z1 np.dot(test_images, W1) b1 a1 sigmoid(z1) z2 np.dot(a1, W2) b2 a2 sigmoid(z2)# 计算准确率 predictions np.argmax(a2, axis1) true_labels np.argmax(test_labels, axis1) accuracy np.mean(predictions true_labels)print(fTest Accuracy: {accuracy * 100:.2f}%) # 可视化前5个测试图像及其预测结果 for i in range(5):plt.imshow(test_images[i].reshape(28, 28), cmapgray)plt.title(fPredicted: {predictions[i]}, Actual: {true_labels[i]})plt.show()反向中的参数变化 import numpy as np import matplotlib.pyplot as plt import imageio# 激活函数和其导数 def sigmoid(x):return 1 / (1 np.exp(-x))def sigmoid_derivative(x):return x * (1 - x)# 生成一些示例数据 np.random.seed(0) X np.array([[0, 0],[0, 1],[1, 0],[1, 1]]) y np.array([[0], [1], [1], [0]]) # XOR 问题# 初始化参数 input_layer_neurons 2 hidden_layer_neurons 2 output_neurons 1 learning_rate 0.5 epochs 10000# 初始化权重 weights_input_hidden np.random.uniform(size(input_layer_neurons, hidden_layer_neurons)) weights_hidden_output np.random.uniform(size(hidden_layer_neurons, output_neurons))# 存储权重和图像 weights_history [] losses [] images []# 训练过程 for epoch in range(epochs):# 前向传播hidden_layer_input np.dot(X, weights_input_hidden)hidden_layer_output sigmoid(hidden_layer_input)output_layer_input np.dot(hidden_layer_output, weights_hidden_output)predicted_output sigmoid(output_layer_input)loss np.mean((y - predicted_output) ** 2)losses.append(loss)# 反向传播error y - predicted_outputd_predicted_output error * sigmoid_derivative(predicted_output)error_hidden_layer d_predicted_output.dot(weights_hidden_output.T)d_hidden_layer error_hidden_layer * sigmoid_derivative(hidden_layer_output)# 更新权重weights_hidden_output hidden_layer_output.T.dot(d_predicted_output) * learning_rateweights_input_hidden X.T.dot(d_hidden_layer) * learning_rate# 保存权重weights_history.append((weights_input_hidden.copy(), weights_hidden_output.copy()))# 每1000次迭代保存一次图像if epoch % 1000 0:plt.figure(figsize(8, 6))plt.subplot(1, 2, 1)plt.title(Weights Input-Hidden)plt.imshow(weights_input_hidden, cmapviridis, aspectauto)plt.colorbar()plt.subplot(1, 2, 2)plt.title(Weights Hidden-Output)plt.imshow(weights_hidden_output, cmapviridis, aspectauto)plt.colorbar()# 保存图像plt.savefig(fweights_epoch_{epoch}.png)plt.close()if epoch % 1000 0:plt.figure(figsize(8, 6))plt.plot(losses, labelLoss)plt.title(Loss over epochs)plt.xlabel(Epochs)plt.ylabel(Loss)plt.xlim(0, epochs)plt.ylim(0, np.max(losses))plt.grid()plt.legend()# 保存图像plt.savefig(floss_epoch_{epoch}.png)plt.close() # 创建 GIF with imageio.get_writer(weights_update.gif, modeI, duration0.5) as writer:for epoch in range(0, epochs, 1000):image imageio.imread(fweights_epoch_{epoch}.png)writer.append_data(image) # 创建 GIF with imageio.get_writer(training_loss.gif, modeI, duration0.5) as writer:for epoch in range(0, epochs, 1000):image imageio.imread(floss_epoch_{epoch}.png)writer.append_data(image) # 清理生成的图像文件 import os for epoch in range(0, epochs, 1000):os.remove(fweights_epoch_{epoch}.png)os.remove(floss_epoch_{epoch}.png)print(GIF 已生成training_loss.gif) print(GIF 已生成weights_update.gif)总结 反向传播算法是神经网络训练中的核心技术它通过计算损失函数相对于每个权重和偏置的梯度利用梯度下降算法优化网络的参数。理解了反向传播的基本过程可以进一步扩展到更复杂的网络结构如卷积神经网络CNN和循环神经网络RNN。
http://www.w-s-a.com/news/483058/

相关文章:

  • 网站建议怎么写怎么做网页连接
  • 站长工具seo综合查询下载安装软件平台搭建包括哪几个方面
  • 做网站怎么存放视频支付功能网站建设
  • 庆阳手机网站设计兰州网站的优化
  • 企业网站托管有必要吗项目管理资格证书
  • 检索类的网站建设个人博客网页模板图片
  • 贵阳网站建设搜q479185700做网站有什么语言好
  • 制作公司主页网站贵阳网站建设技术托管
  • 广西建设网站网址多少钱南京江北新区地图
  • 网站建设及优化 赣icp外包服务美剧
  • wordpress添加菜单深圳优化网站排名
  • 免费下载建设银行官方网站重点专业建设验收网站
  • 建行官方网站登录怎样制作悬浮的WordPress
  • 建设一个网站需要几个角色广告设计与制作就业前景
  • 侵入别人的网站怎么做怎么修改网站排版
  • 网站如何提交百度收录什么最便宜网站建设
  • 商丘网站建设想象力网络做公司网站需要准备什么
  • 滁州新手跨境电商建站哪家好网站推广运作怎么做
  • 烟台有没有做网站大连建设工程信息网专家库
  • 网站建设明确细节商贸有限公司的经营范围
  • 南宁微网站开发做的好的有哪些网站
  • 好的素材下载网站读书网网站建设策划书
  • 东莞南城网站建设wordpress用户投稿插件
  • 开个网站做代理赚钱吗沽源网站建设
  • 做卖车网站需要什么手续wordpress 主题 demo
  • 上海外贸网站开发公司建设内容
  • 网站制作品牌公司网站的字体颜色
  • 外贸wordpress模板常德seo快速排名
  • 网站后台认证码专门做网页的网站
  • 宁波企业品牌网站建设物流公司招聘