IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 神经网络:多变量反向传播求解问题py代码实现 -> 正文阅读

[人工智能]神经网络:多变量反向传播求解问题py代码实现

问题描述:

神经网络:多变量反向传播求解问题py代码实现

神经网络要解决的经典问题就是黑盒测试猜数的过程:

  1. 通过输入值、输出值和期望值之间比较。
  2. 通过损失函数的计算误差值,误差值不理想
  3. 通过反向传播调整输入值。
  4. 反复此过程执行步骤1,直至损失函数误差值无限逼近期望误差结束。

例子,多变量反向传播:我们假设x=2a+3b,y=2b+1,z=x*y
那么当a和b为多少时,可以使期望值z=150?

解决方案:

我们先猜测a,b一个大致的值,使期望值接近150,设a=3,b=4.

  1. 当a=3,b=4,时,我们得到z=162.
  2. 损失函数我们设定为:delte_z=150-z
  3. 我们发现delte_z=-12,进行多变量反向传播调整a和b,利用sympy中diff函数求偏导,并计算delte_a,delte_b,通过反向传播调整a,b。
  4. 再次执行1-3步,循环5次,发现神奇的效果;

公式如下:

  1. 分别对a,b求偏导,带入a=3,b=4的值.
  2. 设置a和b的权重都是0.5.计算delte_a和delte_b
    计算delte

代码实现:

注意:

  1. 注意全局变量和函数局部变量
  2. 注意公式中符号问题
  3. 注意使用sympy时,对公式中参数赋值,先Symbol声明可替换字符,再diff求偏导,再subs赋值。
from sympy import *


# 求解x=2a+3b y=2b+1 z=x*y;输入a和b为34,期望z输出150

def xy_z(a, b):
    x = 2 * a + 3 * b
    y = 2 * b + 1
    z = x * y
    return z


def pd_xy(a1, b1, delta_z):
    # 替换变量也可以写为x,y = symbols('x y')
    a,b=0,0
    a = Symbol('a')  # 声明a是subs可替换的量
    b = Symbol('b')  # 声明b是subs可替换的量
    z = (2 * a + 3 * b) * (2 * b + 1)
    za = diff(z, a).subs(b, b1)  # 对a求偏导
    zb = diff(z, b).subs([(a, a1), (b, b1)])  # 对b求偏导
    delta_a = delta_z * 0.5 / za
    delta_b = delta_z * 0.5 / zb
    print(delta_a,delta_b)
    return delta_a, delta_b


a, b = 3, 4
delta_a, delta_b = 0,0
for i in range(5):
    a = a + delta_a
    b = b + delta_b
    z = xy_z(a, b)
    print(a,b)
    print(z)
    delta_z = 150 - z
    delta_a, delta_b = pd_xy(a, b, delta_z)


运行结果分析:

5次迭代已经找到合适的a和b的值。在这里插入图片描述

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-07-10 14:32:45  更:2021-07-10 14:34:18 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/4 20:44:35-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码