Machine Learning机器学习笔记-week1

前几天开始在couresra上面开始学习机器学习的相关内容,今天搞定了week1。既然是学习,就不能空手而归,所以开始整理一下笔记,顺便把入职威锋后要写技术博客这件事给实施了。

废话不多说,开始上干货:


Introduction

机器学习的概念

What is Machine Learning?

Two definitions of Machine Learning are offered. Arthur Samuel described it as: “the field of study that gives computers the ability to learn without being explicitly programmed.” This is an older, informal definition.

Tom Mitchell provides a more modern definition: “A computer program is said to learn from experience E with respect to some class of tasks T and performance measure P, if its performance at tasks in T, as measured by P, improves with experience E.”

Example: playing checkers.
E = the experience of playing many games of checkers
T = the task of playing checkers.
P = the probability that the program will win the next game.

In general, any machine learning problem can be assigned to one of two broad classifications:

Supervised learning and Unsupervised learning.

Ng的课件里提到,定义有两种

  1. 一种目的是让计算机在非显式编程下具有自己可以学习的能力的学术研究
  2. 一种可以从一些类型的任务(T)的经验(E)中学习,以及表现出相应的指标/计量单位(P),并且在任务(T)中的指标(P),将会因为从这个任务中获得的经验(E)而不断提升的计算机程序

英文太渣,将就一下吧,然后课件中对T、E、P三个字母所代表的东西下了定义,并举了个栗子

假设,具体场景就是机器学习应用在国际象棋上(或者说程序来玩国际象棋),那么

E = 程序在玩国际象棋中获取到的经验(比方说棋路什么的数据,因为计算机获取到的所有东西都是Data)
T = 就是指 “程序玩国际象棋” 本身这件事(任务)
P = 程序能够在下一局中获胜的概率/可能性

通常来说,任何机器学习问题都可以分成两大类
监督学习无监督学习

PS:
其实还有半监督学习和半监督聚类的概念

监督学习的概念

辣么,什么素监督鞋习嘞~(场外音: “说人话”)
那么什么是监督学习呢,其实这个概念也很简单

In supervised learning, we are given a data set and already know what our correct output should look like, having the idea that there is a relationship between the input and the output.

也就是说,首先我们有已经知道输入(训练数据)和输出(结果标签)的数据集(n多个 x,y 的集合),并且(这个很重要),在这个数据集中,我们是知道输入什么样的x会得到什么样的y,或者说我们很明确的知道x和y的关系是什么。

课件内举了个栗子

Given data about the size of houses on the real estate market, try to predict their price.

栗子大致是这个意思,给出一个数据集,这个数据集的输入是房子的大小(居住面积),输出是这个大小的房子在市场上的价格。利用这些数据去预测多大的房子可以卖多少钱。

或者在再举一个更通俗的栗子
我们都知道,吃了高热量的食物会发胖(比方说巧克力),那么如果我们有很多同类人(身高啥的差不多)每天平均摄入的热量的数据集,然后利用这个数据集去预测某个人如果平均每天都摄入x值的热量,体重是多少。

再次解释一下监督学习是什么,简单的说就是,我们有很多的A(训练数据)和B(结果标签),想要计算机程序通过一堆A数据进行训练,得出一个正确或者最接近于正确的B结果,当然A可能是n个变量,这里只是简化了一下而已。

那么监督学习的程序会产生什么样的结果呢,答案是两类

  • 回归(Regression) - 指产生的结果是连续的
  • 分类(Classification) - 指产生的结果是离散的

这里又需要一个栗子,还是以刚刚高热量食物会发胖来说吧。

分类:

假设我现在有如下数据集,数据集中每个人身高差不多,小张每天摄入1400卡热量(训练数据)是个瘦子(结果标签),小蔡每天摄入1500卡热量形态比较正常,小菠每天摄入1600卡热量,是个胖子…(后面省略n个人)。

然后我把这些训练数据和标签都扔给程序,程序学习完之后,我再扔给程序一个值,说有一个人每天摄入1800卡热量,然后程序回答我,这个人是个胖子

回归:

同一个栗子,改一下标签,小张每天摄入1300卡热量,体重55KG;小蔡每天摄入1500卡热量,体重65KG;小菠每天摄入1600卡热量,体重70KG…(后面省略n个人)。

然后我把这些训练数据和标签都扔给程序,程序学习完之后,我再扔给程序一个值,说有一个人每天摄入1800卡热量,然后程序回答我,这个人体重80KG。

从图上来看,回归是一条连续的线,而分类则是很多分散的点,如下
这里写图片描述

图中上面那种为回归,下面那种为分类

无监督学习的概念
明白了监督学习,那么无监督学习就很容易懂了,无监督学习,即给出训练集,但不给出标签,让计算机程序自己通过算法去给我们答案。课件中给出的解释是这样滴

Unsupervised learning allows us to approach problems with little or no idea what our results should look like. We can derive structure from data where we don’t necessarily know the effect of the variables.

大意是说无监督学习可以让我们在对结果只有一点点想法或者没有任何头绪的时候更接近事实的真相,我们可以从一堆我们不知道结果的数据中获取相应条理(或者说将数据聚为一个个类别?)

那么无监督学习有没有分类呢,在课件中提及无监督学习有种算法叫聚类算法,而在无监督学习下还有非聚类的算法,课件中的具体栗子如下

Clustering: Take a collection of 1,000,000 different genes, and find a way to automatically group these genes into groups that are somehow similar or related by different variables, such as lifespan, location, roles, and so on.

Non-clustering: The “Cocktail Party Algorithm”, allows you to find structure in a chaotic environment. (i.e. identifying individual voices and music from a mesh of sounds at a cocktail party).

聚类:从100万不同的基因数据集中,自动把这些基因分组到相似的(变量)组别中,这些变量可以是寿命、地域、角色(职业)等

非聚类: “鸡尾酒聚会算法”(这个算法是这样的,在鸡尾酒聚会上,有很多人同时说话,并且也有背景音乐,通过这个算法,可以自动输出每个个体的声音,如A和B同时说话,可以分别输出A和B的所说的内容以及背景音乐等),可以让你在混乱的(吵杂的)环境中找到条理。

PS:这个 “鸡尾酒算法” 其实是 奇异值分解(SVD)

Model and Cost function

讲完了基本的概念,那就要开始深入一点讲Model(模型)和机器学习中很重要的函数Cost function,也就是损失函数,或者称为代价函数了

模型
为了方便后面的学习,Ng给训练集和训练集的输入(input)、输出(output)做了一些标记\定义
- x(i) 表示 输入变量,注意这里不是x的i次方的意思,而是指第i个训练集的输入变量
- y(i) 表示 输出变量,就是在第i个训练集中的标签
- (x(i),y(i)) 表示 一个训练集,i表示这一对输入\输出在训练集中的索引(第几个)
- X表示所有输入变量的集合
- Y表示所有输出变量的集合
- m表示这个训练集总共有多少对输入\输出

那么什么是模型呢,我的理解模型就是机器学习的流程,在这里引用一下Ng课件中的图片进行展示一下
监督学习模型

这是一个监督学习的模型,图中的大致意思是,首先我们准备一些训练集,通过学习算法,得出一个h函数,这个函数名为hypothesis,也就是用于预测的函数。然后我们向这个函数输入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.

在监督学习问题中我们的目标就是(没有蛀牙!),给出一个训练集,通过训练得出一个函数h : X → Y(简写为h(x)),并使的h(x)这个函数成为一个好的预测工具,用以得出一个相符的y值

当输出,也就是y值是连续的时候,这就是一个回归问题,比方说房价的预测。
当y值是离散的时候,这就是个分类问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值