最新开了一个新副本,就是大名鼎鼎得Andrew ng在coursera上的明星课程,机器学习。学过前5周的课程,感觉自己对机器学习的认识确实有了非常有趣的提升。作为一个前面课程的札记和复习,准备开3、4篇博客记录一下。

今天结合吴老师的课件先介绍一下自己对机器学习的一些入门认识。

现如今,机器学习的方法可以说已经渗透到我们生活的点点滴滴,工业、科研、生活几乎随处可见机器学习算法的身影。

Machine Learning
- Grew out of work in AI
- New capability for computers
Examples:
- Database mining
Large datasets from growth of automation/web.
E.g., Web click data, medical records, biology, engineering
- Applications can’t program by hand.
E.g., Autonomous helicopter, handwriting recognition, most of
Natural Language Processing (NLP), Computer Vision.
- Self-customizing programs
E.g., Amazon, Netflix product recommendations
- Understanding human learning (brain, real AI).
 

 教程中反复提到的一个机器学习的定义是:

Tom Mitchell (1998)
“A computer program is said to learn from experience E with respect to some task T and some performance measure P, if its performance on T,as measured by P, improves with experience E.”

举个例子:

当你的带有机器学习算法的电子邮箱看着你对邮件进行分类(比如是工作,学习,游戏……亦或有用的邮件or垃圾邮件)时,你的每个举动会被它记录和学习,经过一定的积累,电邮自己就有了对邮件的认识,可以帮你更好地分类邮件。

这就是机器学习的方法。

其中分类是任务(task,T);

观察你的行为是获得经验(experience,E);

通过学习过后能否帮助你正确地分类邮件是表现或者说性能(performance,P)。

机器学习分类两大类主流算法,是supervised learning(监督学习)和unsupervised learning(无监督学习),当然也有Reinforcement learning, recommender systems等其他算法。

监督学习就是你已经有了一定量的样本或者数据,并且对学习内容有了明确的判断,而后让计算机依此进行学习。

举例子说明,就是你在分类邮件时,被分类的邮件就是样本,而你对它们做出的分类(比如是工作,学习,游戏……亦或有用的邮件or垃圾邮件)就是明确的判断,计算机要做的就是分析已有的样本的特点,提出一种过程,在你未来有新邮件收到时根据这个过程判断新邮件的类型,并对它进行分类。

[ML skill]机器学习(machine learning)之导论

无监督学习呢……暂时还没有开始具体学……为了避免自己想当然暂时先不给大家介绍了 = = 

 

在监督学习中,吴老师主要介绍了两大类问题:

regression problem(回归问题)

classification problem(分类问题)

其实这也是大家在科研、工作和生活中最常见的两类问题。一边解释这两类问题,一边向大家科普一下机器学习中一些常见属于的名字~大家注意听讲(笑)。

回归问题真的太常用了,我们平时用origin或者matlab给数据算参数~股票价格的估计~好多地方都有用到回归的思想。

吴老师举的例子是关于房价预测:

[ML skill]机器学习(machine learning)之导论

图中x轴是房子的尺寸,y轴是房子的价格。当你有一座1250feet方的房子大概要卖多少钱呢?就可以用回归的方法。很明显,图中给出了一些已经成交的价格的数据,那么这肯定是个supervised learning喽~

当然,具体我们预测出来的模型是直线还是曲线,直线截距斜率是多少,曲线怎么弯曲到什么程度取决于我们用什么样的模型(线性?非线性?多项式?什么样的多项式等等),后面开了regression learning时再表不迟。这里介绍一个重要的概念。对于每个样本来说,比如图中的一个小叉叉似乎是1300feet方的房子卖了200k刀,我们写作(1300,200)。此中x1 = 1300,y1 = 200,x叫做input(输入),y为output(输出或者响应)。我们称1300feet方是房子价格的一个特征(feature),决定一个房子的价格可能有多种因素,比如面积,朝向,有几个卧室,有几个厕所,所以对于一个x1它可能有多个features,这样x1就不一定简单的是一个数字了,可能是一个向量如x1=(1300,1,2,1)(表示面积为1300,朝向南(假设1代表南),2个卧室,1个厕所)。

[ML skill]机器学习(machine learning)之导论

在后面的介绍中我也会遵循吴老师的这种方法,m表示样本个数。

这里再引入一个概念就是h(x),叫假设函数,hypothesis,简单说这个函数就是通过你的一系列操作形成一个数学模型(或是一种结构)达到你的预测目的,将你的x的features带入到h(x)中就会得到一个你预测的假y值,比较这个假y和真实的y就可以知道你的模型的准确程度。其实觉得听不懂的同学也不用在意,毕竟后面会常常用到,看几遍就明白了~

还有一个概念,就是cost function:

  • In artificial neural networks, the cost function is a function that the network wants to minimize. This is often represented as the difference between the target and the network's output. (e.g. mean absolute error, mean square error). Different cost functions implement different notions of "distance" between the target and the network output (e.g. softmax cross-entropy, Kullback-Leibler divergence), but the general idea remains the same: the cost function gives a distance metric, and the network tries to make the distance negligible.

via:https://en.wikipedia.org/wiki/Cost_function

cost function不仅仅在神经网络中应用,在其他机器学习算法中也是一种非常常见的概念,主要是用于计量真实值和你的模型的预测值之间的差值,主要方法有平方值法和绝对值法,也是后面应用很多的一个概念(常用平方值),如果现在还不太清楚也无所谓,后面的学习里会经常遇见。

举个例子:

[ML skill]机器学习(machine learning)之导论

在这个例子中,假设函数是h = θ0 +θ1x;(就是我们假设的模型)

θ称之为parameter(参数);

cost function是J,注意J是θ的函数,因为给出的样本x和y值都是确定的;

目标函数就是使我们的cost function最小(这样所有预测值和真实y值的差值最小)。

何如找到这个目标函数呢(如何使cost function最小化呢)?

吴老师介绍了大名鼎鼎的梯度下降算法。

其实梯度下降的算法并不是一种非常难理解的方法,网络上资料也很多(搜索梯度下降,随便找了一篇给大家参考,https://zhuanlan.zhihu.com/p/40344593),但作为初学者可能有很多同学纠结于求和符号里面应用到具体算例中如何实施。讲真,一开始我也想不明白(现在也经常迷糊),给大家的建议是先理解大体思路(理解导数的意义,偏导数的含义),理解的话可以结合代码和实际算例。

[ML skill]机器学习(machine learning)之导论

需要注意的是,更新过程中要同步更新(上图左下)。

下降的过程取其中某一个参数为例,正确的选取了学习率之后迭代过程中J的值一般是下降的,如果选择过大的学习率可能造成震荡甚至不收敛的情况。学习率的选择我认为是个技术活,Andrew并没有具体介绍如何选择合适的学习率(如何选择的原则和依据)(但是他在后面的课程中有提到运用matlab内置的求解器可以不用设置学习率(matlab帮你选择),同时也有一些算法不需要选择学习率),但他提供了一种检测迭代过是否正常进行的方法,下面第二张图:

[ML skill]机器学习(machine learning)之导论

[ML skill]机器学习(machine learning)之导论

 

后来发现吴老师在后面的视频中有提到过大致如何选择学习率,但还是没有介绍依据……

[ML skill]机器学习(machine learning)之导论

that's all thank you~

 

 

 

 

 

 

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-04-22
  • 2021-09-29
  • 2021-06-06
  • 2021-07-20
  • 2021-08-18
  • 2021-12-12
猜你喜欢
  • 2022-02-12
  • 2021-11-27
  • 2021-06-08
  • 2021-06-01
  • 2021-09-23
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案