Coursera机器学习笔记(week1)

来源:互联网 发布:拒绝退款后淘宝介入 编辑:程序博客网 时间:2024/06/05 03:43

前言

​ 刚刚开始接触机器学习,并没有什么概念,很多人都在推荐吴恩达教授的机器学习课程,所以决定将课程学习一遍,并做好笔记。

​ 机器学习,又叫做统计机器学习,与统计学的关系密不可分,其中很多处理问题的算法都来自于统计学,所以后面的一些名词由于一些历史原因,会带有统计学的色彩。

​ 由于目前刚开始学习,很多东西不够清晰,所以一些概念可能也不会描述的很清楚。

1、基本概念

1.1 机器学习概念

​ 机器学习是两个词:机器,学习,根据字面的含义,能得到的信息就是,利用机器进行学习,另一种是让机器学习,而实际上机器学习的本质就是让机器学会学习,我们不在需要写一个解决问题的详细步骤,只需要通过程序告诉机器,该如何进行学习。

​ Arthur Samuel曾经这样描述:”这个领域给予机器学习的能力,而不需要明确的编程”,这并非是正式的定义,但是描述了机器学习的本质。

​ Tom Mitchell 给出了现代的定义:“一个计算机程序,从经验E学会处理任务T,用P来衡量性能,如果通过经验E,提升了处理任务T的性能P,这就是机器学习程序”

任务:Task经验:Experience性能:Performance
例如:玩跳棋。E = 玩很多跳棋的经验T = 玩跳棋P = 程序赢下比赛的可能性

1.2 机器学习的分类

​ 一般的,机器学习分为两类:监督学习和非监督学习,实际上,还有半监督学习,不过在本课程中并没有涉及。

1.2.1 监督学习

​ 监督学习,处理带标签的数据,也就是已知结果的数据。

​ 通俗地讲,如果我们有一个数据集,有很多邮件,我们想要将邮件分类,垃圾邮件和非垃圾邮件,将垃圾邮件标记为1,非垃圾邮件标记为0,那么我们的数据集就类似于这样的组合,每一封邮件都有一个标签,1/0,然后我们设计一个模型来处理这样的数据,然后如果有新的邮件,模型会根据从数据集学到的经验,将新的邮件打标签。

​ 监督学习就是来处理这一类的数据;

​ 监督学习主要会有两类问题,回归(regression)和分类(classification);

​ 回归问题,试图预测的是连续的结果,输入是连续的,对应的输出结果也是连续的,也就是输入量映射到输出量的时候,映射关系是连续函数;

​ 分类问题,将输入量映射到不同的类别,也就是说,输出是不连续的,是不同的类别;

实例:    回归问题:        房价预测,根据房子的参数,如大小,房间数等,预测房子的价格,价格是一条连续的曲线或直线;        年龄预测,根据给定的照片,提取脸部,身体特征,预测年龄;    分类问题:        房屋类型的判别,如根据房子的价格,将房子分成几类,每一个价格对应的一个分类;        肿瘤的判别,根据肿瘤的大小,病人的年龄,判断是良性还是恶性;

1.2.2 无监督学习

​ 无监督学习,则是我们也不知道结果应该是什么样子,只是把数据交给计算机,让它去学习,然后告诉我们学习的结果。

​ 比如说有这样的数据,我们有很多的用户购买信息,我们想要将用户进行分组,如奢侈品组,科技产品组,日用品组,这样的话,我们就能针对不同的用户,推送相关产品和优惠,但是我们并不知道这个用户属于哪一个组,所以,我们设计一个模型,根据用户的历史购买信息,将用户进行分组。

实例:    100万个基因组合,根据这些基因成在某种程度上相似或不同的变量来找到一种方法进行分组,一些特征如寿命,角色。    ”鸡尾酒会算法“可以在混乱的环境中找到你想要的结构,如分离出你的声音。

2、模型与损失函数

2.1 模型

​ 什么是机器学习的模型呢?

​ 如果从编程的角度来讲,就是设计一个模型,输入训练数据集,然后根据数据集来调整模型参数,然后得到一个函数,通过这个函数,我们能够对新的信息做预测(这个主要是监督学习)。

​ 如下所示,我们将一个数据集,输入到一个学习算法中,然后算法根据这些数据,调整参数,得到了一个函数,然后我们输入一个要预测的数据,通过函数计算,得到的就是预测的结果。

这里写图片描述

2.2 损失函数(cost function)

​ 如果我们想要建立一个模型,首先需要设计他的输出函数,比如说,我们现在想要做一个房价预测模型,我们的数据集中是房屋面积和房价,那么通过作图观察,我们得到了一个近似线性的关系,也就是面积越大,房价越高。

​ 那么房屋预测模型线性回归模型输出函数如下:

hypothesis=θ0+θ1x

​ 我们知道,如果想要做出一条直线,有两个参数就够了,斜率和截距,上面的式子中,θ0表示的就是截距,θ1表示的就是斜率,有了这样两个参数,我们就能够得到一条确定的直线,通过这条直线,能够近似的反应面积与房价之间的关系,通过一个面积,估算出一个房价。

​ 那么如何计算出θ0θ1呢?

​ 在数学上,我们会直接通过两个点的坐标就能够求出这一条直线的参数,不过现在我们想要得到的这一条直线不仅仅与两个点有关系,而是需要模拟所有的面积与房价之间的趋势,这样的话,就不能够用两个点来求出直线,所以,我们需要找到一个方法,求出直线的两个参数。

​ 首先,我们想要构造一个函数,这个函数是关于这两个参数的,自变量是两个参数,因变量设置为什么,既可以是参数的函数,又能根据已有的数据求出这两个参数呢?上面我们定义了hypothesis,就是关于两个参数的函数,而这个值是关于面积的预测房价,在实际的数据集中,我们还有一个参数,实际的房价,到这里,我们就知道,可以通过预测房价和实际房价来构造函数;我们想要让这两个参数能够反映这个数据集的趋势,那么这两个参数就需要与整个数据集中的每一项都相关,所以,我们就可以构造这样的函数,用预测房价和实际房价的差值,将所有的数据的预测房价和实际房价的差值都加起来,这样的话,我们就得到了一个关于所有的面积与房价差价的函数;

​ 如下面的式子:

12m1m(h(x(i))y(i)))2

​ 其中,h(x(i))表示的是预测的值,y(i)表示对应的实际值,我们想要的是差值,所以不需要负数,所以加上了平方;m表示样本个数,我们就能得到每个样本的平均误差;前面为什么加上12呢,这个主要是为了计算方便,因为我们定义的是误差,那么当误差最小的时候,也就是我们模型效果最好的时候,根据数学中学到的到数值是,误差函数最小,表示在这点的导数值为0,上面的函数是一个平方的函数,那么求导就会产生一个系数2,我们加上12,就能够抵消掉2,简化计算。

​ 所以,我们定义一个损失函数,函数表示的是预测值与实际值的差,如下

J(θ0,θ1)=12m1m(h(x(i))y(i)))2

​ 我们要做的就是,找到能够令J(θ0,θ1)最小的θ0,θ1,这样的话,我们就确定了一条直线,这条直线拟合所有的样本,总的误差最小。

​ 损失函数也被称作平方误差损失函数,Squared error function

​ 下面总结一下已有的参数与公式:

Hypothesis:h(x)Parameters:θ0,θ1Costfunction:J(θ0,θ1)Goal:=θ0+θ1x=12m1m(h(x(i))y(i)))2minimizeJ(θ0,θ1)

3、梯度下降

​ 我们现在有了一个损失函数,是关于参数的损失函数,现在我们想要求解参数,就借助于一个数学方法,梯度下降;

​ 什么是梯度下降?

​ 梯度下降是一个求解无约束最优化的经典算法,其思想就是顺着导数的反方向去找到最优解。

这里写图片描述

​ 如上图所示,上图是两个参数的损失函数的三维图,梯度下降的意思就是,将损失函数求导,乘以一个参数α,也称为学习率,用待求的参数每次减掉这个变化值,直到导数为零或者到了终止条件为止,导数为零的时候,就是一个谷底,不过一个较为复杂的函数,很可能有多个谷底,所以有时候求出来的是局部最优解,就是因为求导的时候,每一次只会沿着下降速度最快的线路,也就是导数,所以一般找不到全局最优解;

​ 如果线性模型有两个参数,θ0,θ1下标用j来表示,如下所示:

θj=θjαθjJ(θ0,θ1)

​ 其中,j的取值为0,1;

​ 要注意的是,这两个参数要同时更新,就是说要用同一组参数来计算,不然先计算第一个,就会用第一个参数来计算第二个参数。

这里写图片描述

​ 如上图,这里要注意的就是,学习率α的选择将会影响到算法的效率以及是否收敛,太小的话,计算时间会很长,太大的话,就会出现不收敛的情况。

4、测验

  1. A computer program is said to learn from experience E withrespect to some task T and some performance measure P if itsperformance on T, as measured by P, improves with experience E.Suppose we feed a learning algorithm a lot of historical weatherdata, and have it learn to predict weather. In this setting, what is T?

    • [ ] None of these.
    • [ ] The probability of it correctly predicting a future date’s weather.
    • [ ] The process of the algorithm examining a large amount of historical weather data.
    • [x] The weather prediction task.
  2. Suppose you are working on weather prediction, and you wouldlike to predict whether or not it will be raining at 5pmtomorrow. You want to use a learning algorithm for this.Would you treat this as a classification or a regression problem?

    • [ ] Classification
    • [x] Regression
  3. Suppose you are working on stock market prediction. You would like to predict whether or not a certain company will declare bankruptcy within the next 7 days (by training on data of similar companies that had previously been at risk of bankruptcy). Would you treat this as a classification or a regression problem

    • [ ] Classification
    • [x] Regression
  4. Some of the problems below are best addressed using a supervised learning algorithm, and the others with an unsupervised learning algorithm. Which of the following would you apply supervised learning to? (Select all that apply.) In each case, assume some appropriate dataset is available for your algorithm to learn from.

    • [ ] Take a collection of 1000 essays written on the US Economy, and find a way to automatically group these essays into a small number of groups of essays that are somehow “similar” or “related”.
    • [ ] Given genetic (DNA) data from a person, predict the odds of him/her developing diabetes over the next 10 years.
    • [x] Examine a large collection of emails that are known to be spam email, to discover if there are sub-types of spam mail.
    • [x] Examine the statistics of two football teams, and predicting which team will win tomorrow’s match (given historical data of teams’ wins/losses to learn from).
  5. Which of these is a reasonable definition of machine learning

    • [x] Machine learning is the field of study that gives computers the ability to learn without being explicitly programmed.
    • [ ] Machine learning is the field of allowing robots to act intelligently.
    • [ ] Machine learning is the science of programming computers.
    • [ ] Machine learning learns from labeled data.

5、附录

5.1 损失函数

​ 在进行回归或者分类问题的建模的时候,我们需要定义一个预测值与输出值的误差损失函数,然后通过损失函数,来求解模型参数,针对不同的任务,就会有不同的损失函数。

  1. log对数损失函数(逻辑回归)
  2. 平方损失函数(最小二乘法, Ordinary Least Squares )
  3. 指数损失函数(Adaboost)
  4. Hinge损失函数(SVM)
  5. 0-1损失函数
  6. 绝对值损失函数

5.2 优化算法

  1. 梯度下降(无约束优化)
  2. 拉格朗日乘子法(等式约束优化)
  3. KKT条件(不等式约束优化)
原创粉丝点击