一、监督学习完整流程(房价预测为例)
![](https://img-blog.csdn.net/20180608202641951?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzI3MjYyNzI3/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
![](https://img-blog.csdn.net/20180608202646594?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzI3MjYyNzI3/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
给出正确答案,根据我们的数据来说房子实际的价格是多少(回归问题-根据之前的数据预测出一个准确的输出值)
另一种监督学习流程-分类问题(寻找癌症肿瘤问题)
当我们想要预测离散的输出值,例如寻找癌症肿瘤并想要确认肿瘤是良性的还是恶性的,这就是0/1离散输出问题。
在监督学习中我们有一个数据集(训练集,包含不同房屋价格),我们的任务就说从这个数据中学习预测房屋的价格。
![](https://img-blog.csdn.net/20180608202701402?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzI3MjYyNzI3/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
常见的符号定义
![](https://img-blog.csdn.net/20180608202712213?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzI3MjYyNzI3/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
注意:m代表训练样本的数量,(x,y)—x作为训练样本,y作为输出数据(结果)
(X(i),y(i))i上标,i代表训练行
监督学习算法工作方式:
![](https://img-blog.csdn.net/20180608202722752?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzI3MjYyNzI3/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
注:讲训练集里的房屋价格,放到学习算法中,然后输出一个函数,通常大小写成h(h代表hypothesis(假设)h表示一个函数)
输入的是房屋尺寸大小,就像想出售的房屋;h根据输入的x值来得出y值
二、代价函数(最有可能的直线与我们的数据相拟合)
![](https://img-blog.csdn.net/20180608202738465?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzI3MjYyNzI3/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
通过m(训练数据集),假设函数用来进行预测的函数就是这样是线性函数形式。引入术语θ0,θ1(模型参数),主要讨论如何选择不同参数θ0和θ1,我们会得到不同的假设函数,如下三组例子所示
![](https://img-blog.csdn.net/20180608202755199?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzI3MjYyNzI3/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
![](https://img-blog.csdn.net/20180608202832147?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzI3MjYyNzI3/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
假设θ0和θ1是直线,得出这两个参数的值来假设函数表示的直线,尽量的与这些数据点很好的拟合。在我们训练集中我们会得到一定数量的样本,x表示卖出哪所房子,并且知道这所房子的实际价格,所以我们尽量选择参数值,给出训练集中的x值,我们能合理的预测值,让我们给出标准的定义在线性回归中,我们要解决的是一个最小化问题。
![](https://img-blog.csdn.net/20180608202906878?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzI3MjYyNzI3/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
实现预测值与实际值之差平方值最小,尽量减少平均误差。
首先要定义一个代价函数
![](https://img-blog.csdn.net/20180608202916860?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzI3MjYyNzI3/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
我们主要做的是关于θ0和θ1对函数(θ0,θ1)求最小值
![](https://img-blog.csdn.net/20180608202926283?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzI3MjYyNzI3/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
代价函数如上图所示,代价函数也被称为平方误差函数,如下图所示:
![](https://img-blog.csdn.net/20180608202936716?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzI3MjYyNzI3/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
代价函数可视化
使用一个简化假设也就是θ1*x我们可以将这个函数看成是把θ0设为0,所以只有一个参数就是 θ1代价函数看起来与之前的很像唯一的区别是现在 h(x) 等于θ1*x 只有一个参数 θ1 所以我的优化目标是将 J(θ1) 最小化 。用图形表示是过原点的直线。
![](https://img-blog.csdn.net/20180608202951815?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzI3MjYyNzI3/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
需要理解两个重要函数:第一个是假设函数。第二个是代价函数
假设函数:
![](https://img-blog.csdn.net/20180608203004548?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzI3MjYyNzI3/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
代价函数:
![](https://img-blog.csdn.net/20180608203018612?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzI3MjYyNzI3/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
![](https://img-blog.csdn.net/20180608203029163?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzI3MjYyNzI3/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
最终目标:we should try to minimize the cost function. In thiscase, \theta_1 = 1θ1=1 is our global minimum
深度学习代价函数的作用
几个重要公式包括了假设h、参数θ、代价函数J 以及优化目标
![](https://img-blog.csdn.net/20180608203058893?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzI3MjYyNzI3/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
![](https://img-blog.csdn.net/20180608203204501?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzI3MjYyNzI3/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
![](https://img-blog.csdn.net/20180608203215808?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzI3MjYyNzI3/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
竖直方向 的高度就表示代价函数 J(θ0,θ1) 的值不难发现这是一个弓形曲面我们来看看三维图这是这个曲面的三维图水平轴是θ0、θ1竖直方向表示 J(θ0,θ1) 旋转一下这个图
就更能理解这个弓形曲面所表示的代价函数了。
![](https://img-blog.csdn.net/20180608203235542?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzI3MjYyNzI3/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
误差平方通过这些图形,更接近代价函数这些值。、