`
airu
  • 浏览: 267138 次
  • 性别: Icon_minigender_1
  • 来自: 云南
社区版块
存档分类
最新评论

机器学习笔记-概述

阅读更多

机器学习实际上是一个比较古老的领域。这些年突然火了起来,原因很可能是硬件的发展,网络以及数据的 爆发式增长,然后机器学习开始越来越实际,可以帮我们做很多事情。

     本博客将记录我学习机器学习的过程以及一些理解。

首先选择的是吴恩达大师的课程《机器学习》,这是一门机器学习的入门课程,并不需要太多数学知识,也比较全面,个人比较推荐。

   那么机器学习到底是什么鬼? 算法。还是一系列的算法,解决的是特定领域的算法。什么领域呢,机器学习要解决的问题,就是我们说的举一反三,或者是自动找出规律(模式)的问题。举个例子,给你说个地点,房屋的面积,那么你就大概可以估算出这个房子的价格。如果要使用程序来解答这样的问题,就可以算是一个机器学习的问题。

   首先,我们需要给出一系列的数据,房子的位置,房屋面积,房间数量,楼层等等数据,并且给出这些房子的价格,通过已有的数据,来预测某一系列条件下,房屋的价格。这是所谓的监督学习。

  其次,我们要选定对房价有影响的特征,这些特征例如房屋面积,房间数量,位置,楼层等等。这就是特征选择。

  最后,我们要选择一个模型来描述房价。通过已有数据来看,是线性模型还是逻辑模型?亦或是神经网络等等。

如果我们把特征减少到房屋面积,那么我们得到的就是最简单的一个线性函数拟合的问题。可以看成是求解

y = a + bx 的问题,我们需要做的,就是寻找a, b 使得函数 y = a + bx 最大拟合我们的已知数据。

这里的y 可以看做是房价,a 是一个最低价格, b则是需要寻找的参数,x则是我们说的面积。

 

 

好了,这些基本可以用以下这幅图来说明问题。

 

 

 

Trainning Set就是我们的已知数据。用来训练的数据。

Learning Algorithm 则是选择的机器学习算法,当然这里还没给出。是用来寻早a,和b参数的。

h函数则是模型函数, 也就是我们的 y = a + bx  这个函数用来预测最终价格的。

那么我们这里最关心的就是,如何寻找 a, b参数呢?

 

请看下图,这里蓝色的直线,实际上正是我们的 函数 y = a + bx  ,然而实际上,红色的叉是实际情况。



 

对于人来说,可能一步就能够划一条这样的蓝线最好的拟合红色的叉。如何让算法

找到这条蓝线呢?

我们还是从最原始的想法来,那就是蓝线尽可能多的穿过红色的叉。那么我们引入一个概念,

方差。

方差可以看做是实际红叉,与蓝线的实际差的平方。而我们要做的,就是尽量调整蓝线的a,b参数减少方差,最小的方差,自然就是我们要的蓝线。

    

 

Cost Function就是我们的方差累加,这里除以2*m,m表示的是训练数据的个数。

最终目的,是的Cost Funtion 最小化。

 

接下来我们就引入了梯度下降的算法。



 这里出现的是 求导的符号。也就是对Cost Function求导。

求导后的公式。微积分好的同学可以自己推导,其实也很简单。
 

这里的theta 就是上面的a,b

这里容易误解的是,阿尔法是什么,这个可以叫学习速率。我们学得快,必然就可能找不到最优解,如果学得慢,好像没人想学得慢。 而阿尔法之后的公式,其实就是对 Cost Function的求导所得,也就是Cost Function的变化率,通过同时更新 参数 theta0, theta1, 我们可以收敛到一个最小值(虽然可能是局部优化)。

当然这些用于单个变量的线性回归问题,确实很简单,实际中可能涉及多变量,那么计算量是巨大的,我们也会遇到很多优化算法,但是大致的一个监督算法,线性回归就出来了。




 
 

梯度下降的形象图示。

 

 

机器学习的算法还有很多。从大的分类上来开,还有无监督算法,也就是分类算法。

当然如果遇到非连续的预测模型,那么就可能用逻辑回归。如果遇到更复杂的情况,神经网络也许可以用的上。

 

接下来,我们就要脑补一些知识了。上面提到的,求导,接下来还有矩阵,线性代数的知识, 还有当然就是概率论了。如果你不深入研究这些算法,那么跳过也是可以的。

 

 

   

  • 大小: 19.8 KB
  • 大小: 29 KB
  • 大小: 85.5 KB
  • 大小: 34.6 KB
  • 大小: 34.6 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics