一、机器学习(1)
序言
本人目前大三,985数学系本科,打算跨专业保研到另一所学校的计算机专业。我之前有自学过视觉SLAM和机器学习,可惜现在已经遗忘大半。不过我还是把这段学习经历写在了简历上,所以接下来一段时间打算抽时间复习一下这些知识。写一些博客纯粹是为了记录和纪念,所以如果无人问津也无妨,如果有幸有读者看到这些博客,欢迎留下你的看法和意见。那么下面就开始吧!
学习资料
关于机器学习,这里我直接在网易云课堂上看吴恩达老师的机器学习。对于数学基础不是那么好的同学,我强烈推荐这个网课,在这篇博客中也有很多地方引用了网易云课堂中吴恩达老师机器学习的视频截图。之前实验室的老师推荐过周志华老师的西瓜书,但无奈那时候我们还没有学概率统计,众多数学公式无法理解,因此先选择了更加通俗易懂的吴恩达老师的网课。虽然我现在也很想回过头来看那本西瓜书,不过它还在学校呢。
第一章 绪论
1.机器学习的应用
网页搜索引擎,垃圾邮件过滤,图片分类,数据挖掘,模式识别,自然语言处理, 计算机视觉等。
2.什么是机器学习
计算机程序从经验E中学习,解决某一任务T,进行某一性能度量P,通过P来测定在任务T中的表现因经验E而提高。
例如在程序学习跳棋游戏中,E=机器与自己对弈,T=跳棋,P=和新的对手下棋时获胜的概率。
3.什么是监督学习
简而言之,数据集中的样本都带有right answer。例如房价预测模型,也称为回归(预测连续值得属性)。再例如医疗诊断,肿瘤的良性恶性判断(分类问题,预测离散的值)
4.什么是无监督学习
样本没有标签(没有right answer),聚类算法,例如谷歌的新闻分类。市场分割,计算机集群,社交网络分析,鸡尾酒会问题(分离出叠加在一起的音频)
5.工具
推荐Octave/Matlab,如果用直接使用C++/Python/Java,代码将会十分复杂。工程中,研发人员往往用Octave先实现算法原型,确定可以工作后再迁移到其他环境。
第二章 单变量线性回归
1.回顾
首先在我看吴恩达老师的讲解之前,说到单变量线性回归,我最先想起的就是最小二乘法。从中学就开始接触,在大三上学期,数值分析和概率论与数理统计中都有涉及这种方法。两门科目分别从不同的角度解析了最小二乘法。让我印象尤为深刻的是这样一个问题:为什么最小二乘法是残差的平方,而不是绝对值或是四次方呢?在概率论与数理统计这门课中,我得到了答案。简单来说,最小二乘估计就是在误差服从正态分布的情况下的最大似然估计。
2.模型描述
Model Representation
To establish notation for future use, we’ll use x ( i ) to denote the “input” variables (living area in this example), also called input features, and y ( i ) to denote the “output” or target variable that we are trying to predict (price). A pair ( x ( i ), y ( i )) is called a training example, and the dataset that we’ll be using to learn—a list of m training examples ( x ( i ), y ( i )); i =1,…, m —is called a training set. Note that the superscript “(i)” in the notation is simply an index into the training set, and has nothing to do with exponentiation. We will also use X to denote the space of input values, and Y to denote the space of output values. In this example, X = Y = ℝ. To describe the supervised learning problem slightly more formally, our goal is, given a training set, to learn a function h : X → Y so that h(x) is a “good” predictor for the corresponding value of y. For historical reasons, this function h is called a hypothesis.
When the target variable that we’re trying to predict is continuous, such as in our housing example, we call the learning problem a regression problem. When y can take on only a small number of discrete values (such as if, given the living area, we wanted to predict if a dwelling is a house or an apartment, say), we call it a classification problem.
3.Cost Function
直译成为代价函数,描述了hypothesis function的输出与实际样本输出的误差,不同的模型有不同的代价函数,在单变量线性回归中,我们使用的就是误差平方和(其实就是最小二乘法中的残差平方和)。因此代价函数越小意味着假设函数更加符合样本集。有一说一,在我大三上学期学完数值分析和概率论与数理统计后,对这一块的理解比一年前的我好太多了。
老师在视频中举了很详细的例子来说明代价函数与假设函数的关系,有兴趣可以去看原视频。
4.梯度下降法
基本思想是从某一初始点出发,不断改变点的位置使函数值越来越小,直到找到最小值点。方法的关键就在于如何改变点的位置,也就是沿着梯度的反方向前进,前进的步长也是可以通过求导的方式来得到一个最优值。事实上这就是数学分析中多元函数求导的一个应用。不过学过数值分析又会发现,梯度下降法(也称最速下降法)并不是一个最佳方案,目前已经有很多收敛性更好的算法例如共轭梯度算法。这里吴恩达老师特别强调实现过程中,要注意模型参数需要同步更新,如下图。
5.线性回归的梯度下降法
对于凸函数,总是能收敛到全局最优解。事实上除了梯度下降,还可以使用正规方程组法,不过梯度下降更适合规模更大的数据集。
第三章 线性代数回顾
不得不说吴恩达老师是真的棒,照顾到所有基础水平的学生,这个网课也许高中生都能理解。包括前面把比较抽象的导数解释得十分具象。也许理解得越深刻,就越能把晦涩得知识展现得浅显易懂。因为我觉得这些代数知识比较简单,所以就不多说了,有兴趣的朋友可以看原视频。下面是课程链接。网易云课堂直接搜应该也行,免费的。
吴恩达机器学习
下次会开始第一期视觉SLAM的复习。