台湾大学机器学习——课程笔记(1~4)

为了监督自己专心理解视频课,会在看视频课的同时使用为知笔记。

台大的机器学习课程可能是目前国内用户最好理解的机器学习课程(别的推荐课程基本上都是英文讲述),林教授非常可爱,台湾腔特别萌(大概是我一直看下去的动力)

基础理论课程一共16章,所以我分四次发布笔记,算是自己的一个记录,也算是对其他观看这套课程的同学一点微小的辅助。

PS:不太完整的地方,大概是我犯困或者分心了

——————————————————————————————————

第一章:

1-1

红色代表危险,蓝色代表不危险(什么时候使用机器学习是危险的or不危险的)

机器学习:理论与实用相结合
1-2 我们什么时候要用机器学习
问:什么是学习? ——看书、上课、模仿    共通性:从观察出发
观察到的东西:资料
将资料拿来,应用,变成自己的东西的过程
机器学习就是在模仿这个过程
技巧是什么?增进某一种表现的增进
从资料出发,通过机器学习,最终得到某一种表现的增进
为什么要使用机器学习?
 
机器学习的三个关键:
1、有某一种效能/表现可以增进,有潜藏的模式可以学 ->目标
2、不知道怎么把规则写下来
3、要有资料

1-3机器学习在哪些领域有应用
吃:评判在这家餐厅吃会不会食物中毒(卫生状况如何)
穿:推荐顾客要怎么样搭配好看(通过衣服的销售数据,和顾客的评价)
住:通过之前的资料,预测房子的耗能状况
行:让汽车辨识交通灯,协助自动驾驶
教育:从学生答题的历史记录判断学生的程度如何,是否能答对下一题
娱乐:推荐系统——分析用户喜欢什么样的电影,并推荐。
一个可能的机器学习的模型:我们怎么样决定我们喜不喜欢一个电影?
有特征的化圈圈就很大,然后作一个内积,由得出的值判断
1-4 机器学习具体长什么样子
要喂给机器的资料:x
想要机器告诉我们的答案:y
可能可以学到的东西:f(目标函数)
资料:D={x1,y1  x2,y2 x3,y3….}
假说:g (经过机器学习得到的结果)
机器学习的演算法:A
希望g代表某一种效能的增进,也就是说,和f越接近越好
注意:f 我们是不知道的, 但是我们希望 g 和 f 很像
从看到的资料里面,从集合里,选一个最好的出来
把g可能的长相,放在集合H里面
H(模型)里面可能有好的,可能有不好的,拿出一个最好的作为g
learning model = A and H
机器学习是我们从资料出发,让机器学习演算法算出一个g,让g接近我们心里最渴望的那个f
1-5 机器学习和我们知道的一些相关领域的关系
KDDCUP 资料探勘:希望能够用资料找出一些有趣的事情
资料探勘与机器学习:非常相像,但是有一点点不一样
两个领域密不可分
机器学习与人工智能:让机器会预测
两个方式:
1、我们设计演算法,让机器自己去分析
2、我们设计演算法,让机器从资料中学到怎样工作
机器学习与统计:两个都使用资料
统计使用资料来推论一些事情
在机器学习中,g实际上就是一个推论的结果,我们想要的目标f是我们不知道的事情
统计实际上是实现机器学习的一种方法
统计学从数学出发
总结:机器学习就是从资料出发,希望找出一个函数,和目标最接近
核心:演算法,资料,函数g
——————————————————————————————————
第二章

2-1从假说的集合里面选出一个最优的g

资料从哪里来:我们想学
从所有H里选一个g出来,g和f越接近越好
H到底长什么样子?
 
模型:把每一个使用者用向量来表示
把维度综合的算起来,给使用者一个分数,超过一个标准的话,就算是通关
维度*重要性(正相关,负相关)
希望电脑自动告诉我们给信用卡是不是正确的选择
好:+1
不好:-1

h:感知器(用w算出来的分数,减去门槛值)

w:权重weight
简化:把门槛值也当成一个特殊的w
w也能表示成一个高高的向量
我们在处理x顾客的资料,有第0维

现在变成w和x的内积
h(x) = sign(w0 + w1x1 + w2x2)
线性分类器:用一条线来代表分类器
2-2 怎么样设计演算法从所有的线里面选出一条最好的线
我们唯一知道的是,我们的资料是从f产生的
先在所有线里面选一条,这条线能满足,和已知资料的匹配
选一条线,可能有错误,那么我们就开始修正错误
我们会一开始的时候,从一条线g0出发,用w0来代表一开始的线,想办法让我们的线一次比一次更好
PLA:感知器学习算法——知错能改
cycle PLA:绕圈圈的做
如果停下来了,就意味着,和已经的资料全部相吻合了。
但是也可能不会停下来。
2-3 PLA什么时候会停下来
线性可分 linear separable
假设,有一条线,为D
这条线是我们的目标
数学上这代表,每一个都大于0
PLA每次都选一个点,我们选到的错误的点也会满足这个形式。
wf和wt的关系是什么,是否接近
分析两个向量接不接近,可以作内积,内积越大,越接近
内积越来越大,就代表两个向量越来越接近
看似越来越接近,但是我们还要处理长度的问题
PLA最重要的性质:我们有错才更新
两个正规化之后向量的内积,代表越来越靠近
两个向量最大的内积为1
2-4
线性可分+每次能挑一个错=PLA会停下来
坏处:首先我们要假设PLA是线性可分的
假设:需要提前知道wf
ρ是用wf算出来的
资料里面可能存在杂讯
就算我们原来的f是一条线,我们拿到的资料也不一定会是线性可分
杂讯是比较小的
小的状况下,y和f有一定的对应程度
找一个和f很相像的g,我们看到的y和g的标签也要非常的相像
我们要找一条犯错误最小的线,当成g ->很难 NP-hard
贪心(口袋)算法:把觉得最好的先放在手上
——————————————————————————————————
第三章

3-1各式各样不同的机器学习问题

是非题
二元分类问题的应用:要不要放信用卡,是不是垃圾邮件,学生会不会答对这一题
Multiclass Classification:多元分类
应用:视觉or听觉辨识
回归分析Regression
应用:预测股市、预测天气
特点:输出是一个实数
Structured Learning结构化学习
我们要的输出空间有某一种结构在里面,希望电脑想办法去学到这些结构
3-2机器学习不一样的变性
从分辨不一样的铜板出发
监督式学习:我给你铜板,我还告诉你铜板是什么
对所有的输入都有想要的输出
非监督式学习:我不告诉你铜板具体是什么,机器自己想办法分类(分群)
密度分析
目标分散,演算法种类很多,会对应到监督式学习的演算法
Semi-supervised半监督式学习:很多照片,有一部分是已经标记好的,机器要通过已经标记好的资料分析那些没有分析的资料
另一种学习的方法:从如何训狗开始思考
用奖励or惩罚
没有实际上要什么,但是我们有一些其他的标记
类比监督机器学习:Reinforcement Learning 增强式学习
3-3 不同模型下的学习
线上学习
Reinforcement Learning也是一笔一笔的输入资料
每一轮我们都会得到一个单一的g,我们希望每一轮的g会越变越好
Batch(最常见):类似填鸭式教育
Online:像是老师在教书,循序渐进
在这两个设定里面,从机器的角度来说,都是被动的
一个新的设定:希望机器能问问题 —— active
希望机器通过有技巧的问问题,得到提高(主动学习)
应用:取得label很贵的场合(label比较稀有,难以取得)
我们怎样用不同的方式让机器学习
3-4 输入不同的时候将发生的变化
假设资料非常的具体,和我们想做的事情有一定的关系
我们相信这些资讯和我们想要的输出有一定的关系
输入:input / feature
手写数字的辨识:多类别,批次的问题
问题:喂给机器什么东西当做x?
是否对称/密度如何
Concrete Feature 非常具体的数据
每一个数字就是一个256位的向量
越抽象代表对机器来说,这个问题越困难。
要让机器把抽象的数据变成较为容易识别的特征
让机器来做:feature industy
深度学习:希望有大量的资料,去学,抽取非常具体的特征
帮每个使用者抽取特征,再用这些特征去学习
特征有一部分是人想的,有一部分是机器去学的
例如:我有使用者的id,那我能做什么事情?
比原始的数据更抽象一点,难度更大
越抽象,机器就要花更大的力气去学习,困难也会越大
我们假设有的,都是具体的方式
如果没有的话,就需要人或者是机器去想办法去抽取特征去学习(比较难,后期讲)
——————————————————————————————————
第四章

4-1 机器学习是不可能的吗?

规则是随人说的
想象:我们的输入只有两种情形,正确或者错误
在这种情况下,我给了你五笔资料,你使用某一种演算法,然后告诉我,这个g是什么样子
总共输入的情况你有2的3次方,就是8种
让机器学习演算法选一个g,在五笔我们已知的资料上,都会一模一样(PLA)
问:在这种情况下,是好还是不好?
在刚刚设计的情况,确保了g和f一模一样,但是在资料之外,就会不同
我们想要的是,在我们没有看过的资料里面,和f的吻合度到底怎么样
我们想要的是资料以外的部分
No Free Lunch 天下没有白吃的午餐
4-2 推论的可能性
我们想要知道罐子里面到底有多少弹珠(或者从罐子里拿出橘色弹珠的几率是多大)
有很大的几率:sample里面的比率会和整体的比率接近
罐子里都是橘色:μ很大
橘色很少:μ很小
霍夫丁的不等式
我今天想要v和μ一模一样,这句话大概是对的
probably approximately correct(PAC):我今天想要做这个估计,直接说罐子里面有多少橘色
风险:大概,差不多,是对的
你需要容忍多少的误差:和μ无关——你根本不需要知道μ
设一个比较大的融合度,坏事发生的几率就会看起来变小了

如果我们的样本够大的话,我们大概可以推论说μ的值和我们抽样起来的μ的值是一样的

4-3 学习的连接 
我们不知道的是 target f
如果有一个新的顾客,会不会和f是一样的
把我们罐子里的弹珠,想成x,橘色的弹珠,h和f讲得有没有一样
如果是一样的,就涂成橘色
不一样,就涂成绿色
首先,我们要有一个固定的h在手上
然后我们就可以把h专属的罐子里头的弹珠涂成橘色或者绿色
如果我们今天从这个罐子里抓了100个弹珠出来,那就意味着我们拿了100个x出来
如果我们在一个监督式学习的状态下,相对应的y在f上面衡量的情况。
你能不能知道你手上的资料是橘色的但是还是绿色的弹珠
如果你假设data是假设独立,随机的,那么这个资料就代表了一把橘色或者绿色的弹珠
所以你只要检查,h在这个资料上的表现,有几笔和资料上的不一样
我们需要将这个比率估计
我们需要抓一把够多的弹珠,独立的抽弹珠出来
我们可以大概说,h和f不一样的几率到底是多少(整个罐子里面)
从我们可以看得到的资料里面说
我们有一个几率,从罐子里面取样,首先,我们取样产生了资料
然后我们用同样的几率去衡量整个罐子里面到底一样不一样
h是从H里挑选出来的。
Ein:手上样本的错误率
Eout:样本之外的错误率
f和p我们都不需要知道
由Ein推论到Eout
如果Ein和Eout很接近,Ein很小,这时候我们就可以保证和f很接近
Verfication:不是学习,是验证,验证h的表现好不好
4-4真实学习的连接
把手上的硬币丢五次,记录,有几次正面,有几次反面
至少有一个人丢了五次全部都是正面的几率是99%
霍夫丁公式告诉我们,不好的事情几率很小
我们发现,有选择的时候,选择会恶化不好的事情
什么是不好的资料:Ein和Eout差得很远(比h来得远)
有几率变成很好的事情,也有几率变成不好的事情。
资料有无限多种可能,记录下来,判断谁是好的谁是不好的(判断依据:Ein和Eout是不是相差很远)
把所有的资料穷举出来
你有很多的h,是为了让演算法作选择
不好的资料:演算法没有办法自由自在的做选择
好的资料:演算法选什么都对,只要照着自由意识去选择就可以了
Hoeffding告诉我们的是,一行一行BAD的几率很小
Bound of BAD Date:
只要对某一个人不好,那就是不好的
如果我今天的H有无限多种选择,无论我们怎么选,都会是正确的选择
如果我的演算法Ein是最小的,Eout也很小,我有一个函数用来测试,来产生我们的资料
H要是有限的,N要够大,这样的话机器学习就是有可能做得到的
有限条的H是可以推理出来的

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据