人工智能笔记(一)
来源:互联网 发布:清除的数据怎么恢复 编辑:程序博客网 时间:2024/06/06 01:12
线性回归
假设有输入数据X
(x1,x2……xn) ,输出数据Y,通过线性方程来拟合输入数据X和输出数据Y之间的关系。线性方程为:
h(x)=w0+w1x1+w2x2...+wnxn
现在我们有m组输入数据X和对应的实际输出数据Y,这时候矩阵表示:
⎡⎣⎢⎢⎢⎢⎢⎢y1y2y3...ym⎤⎦⎥⎥⎥⎥⎥⎥=⎡⎣⎢⎢⎢⎢11...1x11x21xm1x12...x1nx22...x2nxm2...xmn⎤⎦⎥⎥⎥⎥⎡⎣⎢⎢⎢⎢⎢⎢w0w1w2...wn⎤⎦⎥⎥⎥⎥⎥⎥
其中x的上标表示第几组数据现在要求出线性方程,也就是需要求出
wi 的值这里给出一个代价函数,只要这个函数最小我们就认为是最优的拟合:
L(w)=12m∑i=1m[h(x)−y]2
其中h(x)为拟合后得到的输出,y为真实的输出
如何求解
在此使用梯度下降的方法来进行推到。
从二维空间考虑,也就每一组的X输入只有两个值
现在我们要让L(w)通过不停的迭代变小(也就是变化w的值,让L变得更小)
这里只要保证
因此只要:
其实我们最终需要关心的,还是w的值,通过上面,只要每次移动
即:
对L(w)求导:
其中
将上面的2.0和2.1式合并,就可以进行迭代了。
实验程序:
import numpy as npimport pylab as pltx = np.linspace(0.0,10.0,200)y = 3.0*x+5.0 + np.random.random(200)*2-1w0 = 0.1w1 = 0.2m = 200.0alpha = 0.5#每一组X数据都为一个patch,并且对原来的w影响因子为alpha/mfor j in range(100): for i in range(200): hx = w1*x[i]+w0 w0 = w0 - alpha*(hx - y[i])/m w1 = w1 - alpha*(hx - y[i])*x[i]/mplt.plot(x,[i*w1+w0 for i in x],color="red")plt.scatter(x,y,10)plt.show()
阅读全文
0 0
- 人工智能笔记(一)
- 人工智能学习笔记(一)
- 人工智能笔记系列(一)
- 人工智能学习笔记(一)命题逻辑
- 人工智能学习笔记(一)
- 人工智能笔记一
- 人工智能学习笔记-TensorFlow(一)
- 人工智能学习笔记(一):ubuntu的分辨率调教
- 人工智能学习笔记(一):简述人工智能的应用领域
- 人工智能实践教程(一)
- 游戏中的人工智能(一)
- 游戏开发中的人工智能(一):游戏人工智能简介
- 【Visual C++】游戏开发笔记十五 游戏人工智能(一) 运动型游戏AI
- 【Visual C++】游戏开发笔记十五 游戏人工智能(一) 运动型游戏AI
- 【Visual C++】游戏开发笔记十五 游戏人工智能(一) 运动型游戏AI .
- 游戏开发笔记十五 游戏人工智能(一) 运动型游戏AI
- 【Visual C++】游戏开发笔记十五 游戏人工智能(一) 运动型游戏AI
- 【Visual C++】游戏开发笔记十五 游戏人工智能(一) 运动型游戏AI
- Oracle数据库学习路线图
- C++--STL---set容器
- java模式--单例模式
- 【mysql】mysql按时间查询没有某些时间导致数据缺失的解决方法
- html漫游
- 人工智能笔记(一)
- Raft分布式一致性协议
- php中单例模式不提示解决
- 了解项目流程
- Python的列表介绍和冒泡,希尔排序算法例子
- 用redis实现用户登录计数
- HDFS常用命令参数介绍
- android ClipDrawable实现进度条
- 一例需要排除框架中的依赖.