ML与math:机器学习与高等数学基础概念、代码实现、案例应用之详细攻略——基础篇
目录
一、ML与高等数学
0、基础数学
1、导数、方向导数、梯度
1.1、概念简介
1.2、代码实现
2、Taylor展开
3、凸函数
二、ML与概率统计
1、古典概率
2、贝叶斯公式
3、常见概率分布
4、重要统计量(基于全局的而不是样本)
5、不等式系列
6、样本估计参数
7、先验概率、后验概率
三、ML与线性代数
相关文章ML与math:机器学习与高等数学基础概念、代码实现、案例应用之详细攻略——基础篇ML与math:机器学习与高等数学基础概念、代码实现、案例应用之详细攻略——进阶篇DL之simpleNet:利用自定义的simpleNet(设好权重)对新样本进行预测、评估、输出梯度值
一、ML与高等数学 0、基础数学
(1)、平方根:一般若干次(5、6次)迭代即可获得比较好的近似值。
(2)、拉格朗日函数解决带约束的优化问题
1、导数、方向导数、梯度 1.1、概念简介
(1)、已知函数f(x)=x^x,x>0,求f(x)的最小值:在信息熵中会遇到 (2)、方向导数、梯度
1.2、代码实现
(1)、求导:利用微小的差分求导数的过程称为数值微分(numerical differentiation)
#利用微小的差分求导数的过程称为数值微分(numerical differentiation)
def numerical_diff(f, x):
h = 1e-4 # 0.0001
return (f(x+h) - f(x-h)) / (2*h)
(2)、实现简单的函数求导
import numpy as np
import matplotlib.pylab as plt
def numerical_diff(f, x):
h = 1e-4 # 0.0001
return (f(x+h) - f(x-h)) / (2*h)
def function_1(x):
return 0.01*x**2 + 0.1*x
def tangent_line(f, x):
d = numerical_diff(f, x)
print(d)
y = f(x) - d*x
return lambda t: d*t + y
x = np.arange(0.0, 20.0, 0.1) # 以0.1为单位,从0到20的数组x
y = function_1(x)
tf = tangent_line(function_1, 5)
y2 = tf(x)
plt.xlabel("x")
plt.ylabel("f(x)")
plt.plot(x, y)
plt.plot(x, y2)
plt.title('f(x) = 0.01*x^2 + 0.1x')
plt.show()
#对函数求导:在x=5 和x=10 处的导数
#利用微小的差分求导数的过程称为数值微分(numerical differentiation)
print('x=5 处求导:',numerical_diff(function_1, 5))
print('x=10 处求导:',numerical_diff(function_1, 10))
#和真实结果对比,发现虽然严格意义上并不一致,但误差非常小。实际上,误差小到基本上可以认为它们是相等的。
0.1999999999990898
x=5 处求导: 0.1999999999990898
x=10 处求导: 0.2999999999986347
(3)、求偏导数
(4)、梯度法求的最小值
(5)、综合案例
输出结果
求x0=3, x1=4时,关于x0的偏导数: 6.00000000000378 求x0=3, x1=4时,关于x1的偏导数: 7.999999999999119
求点(3, 4)、(0, 2)、(3, 0) 处的梯度 [6. 8.] [0. 4.] [6. 0.]
求函数最小值: [-6.11110793e-10 8.14814391e-10] 学习率过大的例子:lr=10.0: [-2.58983747e+13 -1.29524862e+12] 学习率过小的例子:lr=1e-10: [-2.99999994 3.99999992]
输出权重参数: [[-1.20419093 2.09426703 1.46228252] [ 1.74419802 0.55102885 1.2495018 ]]
输出预测: [0.84726366 1.75248618 2.00192113] 最大值的索引: 2 loss: 0.7392699844784301
求出梯度值: [[ 0.09028775 0.22323484 -0.31352259] [ 0.13543162 0.33485226 -0.47028388]]
实现代码ML之Math:理解机器学习的数学基础之求导、求偏导、求梯度、定义梯度下降算法(并尝试调参lr)
2、Taylor展开
(1)、Taylor公式的应用:求e^x
(2)、Taylor公式的应用:
3、凸函数
(1)、凸函数的判定: 定理:f(x)在区间[a,b]上连续,在(a,b)内二阶可导,那么: 若f’’(x)>0,则f(x)是凸的; 若f’’(x)
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?