用SymPy简化神经网络的求导(微分)
来源:互联网 发布:java 对象转map 编辑:程序博客网 时间:2024/05/17 08:04
神经网络模型
这里不重点介绍神经网络模型,这里有神经网络比较简洁的介绍和推导。[机器学习] Coursera ML笔记
SymPy(符号计算框架)的安装
我的系统为Ubuntu 14
安装比较简单:sudo apt-get install python-sympy【全部小写,csdn自动变成大写了◔ ‸◔?】
求导
为了简化叙述这里不用求和符号,w,b,x均为矩阵形式。
在python终端输入:
from sympy import * w=Symbol('w') b=Symbol('b') x=Symbol('x') y=Symbol('y') #或者用下面的方式生成符号 #w,b,x,y=symbols('w b x y') a=w*x+b print a
这里可以看到a的输出
这里假设激活函数是tanh
out=tanh(a) e=(y-out)**2 print e
输出:
这里对e求w的微分
print diff(e,w)
输出:
对e求b的微分
print diff(e,b)
输出:
求导数是不是变得很简单?
总结
当然还有很多其他机器学习算法,如线性回归,逻辑回归等等,可以通过sympy的形式求导和积分,或者去验证自己的导数是否是正确的。这里只是一个入门级别的sympy使用介绍。详细可以点击这里有比较全面的tutorial,还有pdf文档
0 0
- 用SymPy简化神经网络的求导(微分)
- 高等数学:第八章 多元函数微分法及其应用(2)多元复合函数求导法 隐函数的求导公式 微分法在几何上的应用
- BP神经网络的反向求导
- 神经网络的严格矩阵求导
- 卷积求导(卷积神经网络)
- (译)Sympy的矩阵操作
- 矩阵论:向量求导/微分和矩阵微分
- 高等数学:第二章 导数与微分(1)导数 求导法则 反函数 复合函数
- 对一个线性方程组的求解(用sympy进行符号运算)
- Sympy的使用
- sympy 的练习
- 利用神经网络方法进行复杂函数的求导
- SymPy
- sympy
- 用Python学《微积分B》(多元函数的微分)
- 用Sympy计算高次方程的判别式
- 神经网络,逻辑回归,矩阵求导
- 036 微分在近似计算中的应用及求导总结
- UIWebView
- python可变变量和不可变变量
- Func<T, ..., TResult> 委托 实现方法嵌套
- JVM内核—JVM调优
- win7创建软链接
- 用SymPy简化神经网络的求导(微分)
- C++ 栈 与 堆 【GeekBand 第二周】
- 软件测试的流程
- FlycooLabelView显示角标效果
- ArrayList
- Fragment生命周期
- matplotlib 资料收集
- 菜鸟学习JVM(一)——垃圾回收算法
- jQuery实现二级菜单显示(超链接中)