淘先锋技术网

首页 1 2 3 4 5 6 7

如何入门机器学习?

写个简单的入门贴:

机器学习,机器运用一套通用的算法——泛型算法,自动建立起数据逻辑。

For example:

用于分类的泛型算法是能够把一组数据分门别类的,比如识别手写输入和区分垃圾邮件都可以用分类的泛型算法来实现,

此时,可以把机器学习算法看成一个黑盒子,两个任务输入的数据不一样,中间经过机器学习算法的作用,输出不同的结果。

机器学习可以分为有监督学习、无监督学习、半监督学习、强化学习等。这里的监督其实是指用来训练机器学习模型的数据是有标注的,而无监督学习就是没有标注数据,半监督学习是二者的结合,强化学习是对外界环境给的激励或惩罚信号学习自身的策略。下面咱们先从有监督学习开始:

假设,你现在是房地产经纪人,需要对房子进行相对准确的估价。你有一些所在城市三个月内房产交易的信息数据,包括房间数目、房子大小、周边地区环境,以及交易价格等。因为涉及了几个因素,你可能需要一个程序来帮你做这件事情,输入这些相关的信息,程序就能预估出房子的价格。

那么建立一个能预估房价的应用程序,你需要把关于每间房子的数据信息——“训练数据”——输入你的机器学习算法中,算法就会得出用于解决这些数据关系的一套数学公式。这就有点像一份数学考试的答案纸被涂掉了所有的算术符号,就像下面这张图。

现在我们试试编写那个房屋估价的程序吧!

假设你现在对“机器学习”一无所知,你大概会写一些房屋估价相关的一些基本规律和规则吧?就像这样:它是上面那些元素互相作用的一个结果,会有一些如果、否则的逻辑,最后都会形成一个数学公式,不管是简单的还是复杂的。

其实,这里面的逻辑就可以让机器学习算法来帮我们实现,那我们需要怎么做呢?

第一步:

把各个指标设置为1.0

第二步:

运用所有你了解的房产价格信息来测试你的程序,检查你求得的函数输出的结果与实际房价的偏差。

第三步:

运用所有可能的指标组合重复第二步。找到能让你函数的“成本费用”最大程度地降至零的指标组合,那你的问题就解决了。

根据上面提到的步骤二中的数据信息写一个简单的等式关系:

这个就是你的“成本费用函数”

现在,试着用机器学习的数学术语把这个等式关系重写一次

θ代表你当前的指标数,J(θ)代表在当前的指标数下你的成本费用。这个等式关系就代表着我们现在的价值预估函数与实际的偏差程度。

我们的成本费用函数曲线图图像呈现一个碗状,纵坐标表示成本费用。这个图像中蓝色的最低点就是我们成本费用的最低值,意味着我们的函数偏差值最小。相反,最高点就是我们函数偏差值达到最大。所以,当我们找到能使这个图像达到最低点的指标值的时候,问题就解决了。

如果你还记得微积分学的一些知识的话,你应该会记得如果你求出了函数的导数,就相当于知道了这个函数在各个点的切线斜率。换句话来说,就是知道了哪个方向角度能使我们在图像上呈下降趋势,我们可以借助这些知识来接近图像最低点。这个称之为“梯度下降法”。

怎样进一步了解机器学习呢?建议从Andrew Ng在Coursera开设的免费机器学习课程开始学习,还可以下载安装SciKit-Learn,基本上有大多数算法的python实现,可以对各种不同的机器学习算法进行实践和研究。