没有合适的资源?快使用搜索试试~ 我知道了~
首页斯坦福2014机器学习课程个人笔记V5.21:深度解析与实战
本资源是一份详尽的机器学习个人笔记,由黄海广整理,针对斯坦福大学2014年的机器学习课程进行编撰,版本为V5.21,最后一次更新日期为2018年4月23日。这份笔记旨在帮助学习者理解和掌握机器学习的基础知识和核心概念,特别是课程中涉及的广泛主题,如: 1. 课程背景:机器学习是人工智能的关键组成部分,研究如何让计算机通过模仿人类学习,获取新知识和技能,提高自我表现。近年来,它在自动驾驶、语音识别、搜索引擎优化和基因组分析等领域取得了显著成果。 2. 学习内容概览: - 监督学习:涵盖了参数化和非参数化算法,如支持向量机(SVM)、核函数以及神经网络等。 - 无监督学习:涉及聚类、降维、推荐系统(如深度学习推荐)等技术。 - 实践与理论结合:介绍了偏差-方差理论,以及机器学习在实际创新过程中的应用。 3. 案例研究:课程通过实例演示,让学生学会如何应用机器学习构建智能机器人(感知和控制)、文本理解(如Web搜索和反垃圾邮件)、计算机视觉、医疗信息处理、音频分析以及数据挖掘等领域。 4. 学习资源:提供了清晰的视频课程,配有PPT课件,方便学习。黄海广及其团队完成了部分视频的中英文字幕,并且分享给了网易云课堂的吴恩达机器学习课程,鼓励免费学习。 5. 笔记特点:基于视频内容、中文字幕和PPT,部分信息参考了"小小人_V"的笔记,并持续更新,反映了作者对课程内容的深入理解和实践。 尽管作者强调自己水平有限,可能存在公式和算法上的错误,但这份笔记仍然为学习者提供了宝贵的资源,适合想要深入学习机器学习的人士使用。
资源详情
资源推荐
机器学习课程-第 1 周-引言(Introduction)
8
性与否。
在其它一些机器学习问题中,可能会遇到不止一种特征。举个例子,我们不仅知道肿瘤
的尺寸,还知道对应患者的年龄。在其他机器学习问题中,我们通常有更多的特征,我朋友
研究这个问题时,通常采用这些特征,比如肿块密度,肿瘤细胞尺寸的一致性和形状的一致
性等等,还有一些其他的特征。这就是我们即将学到最有趣的学习算法之一。
那种算法不仅能处理 2 种 3 种或 5 种特征,即使有无限多种特征都可以处理。
上图中,我列举了总共 5 种不同的特征,坐标轴上的两种和右边的 3 种,但是在一些学
习问题中,你希望不只用 3 种或 5 种特征。相反,你想用无限多种特征,好让你的算法可以
利用大量的特征,或者说线索来做推测。那你怎么处理无限多个特征,甚至怎么存储这些特
征都存在问题,你电脑的内存肯定不够用。我们以后会讲一个算法,叫支持向量机,里面有
一个巧妙的数学技巧,能让计算机处理无限多个特征。想象一下,我没有写下这两种和右边
的三种特征,而是在一个无限长的列表里面,一直写一直写不停的写,写下无限多个特征,
事实上,我们能用算法来处理它们。
现在来回顾一下,这节课我们介绍了监督学习。其基本思想是,我们数据集中的每个样
本都有相应的“正确答案”。再根据这些样本作出预测,就像房子和肿瘤的例子中做的那样。
我们还介绍了回归问题,即通过回归来推出一个连续的输出,之后我们介绍了分类问题,其
目标是推出一组离散的结果。
现在来个小测验:假设你经营着一家公司,你想开发学习算法来处理这两个问题:
1. 你有一大批同样的货物,想象一下,你有上千件一模一样的货物等待出售,这时你
想预测接下来的三个月能卖多少件?
2. 你有许多客户,这时你想写一个软件来检验每一个用户的账户。对于每一个账户,
你要判断它们是否曾经被盗过?
那这两个问题,它们属于分类问题、还是回归问题?
问题一是一个回归问题,因为你知道,如果我有数千件货物,我会把它看成一个实数,
机器学习课程-第 1 周-引言(Introduction)
9
一个连续的值。因此卖出的物品数,也是一个连续的值。
问题二是一个分类问题,因为我会把预测的值,用 0 来表示账户未被盗,用 1 表示账
户曾经被盗过。所以我们根据账号是否被盗过,把它们定为 0 或 1,然后用算法推测一个
账号是 0 还是 1,因为只有少数的离散值,所以我把它归为分类问题。
以上就是监督学习的内容。
机器学习课程-第 1 周-引言(Introduction)
10
1.4 无监督学习
参考视频: 1 - 4 - Unsupervised Learning (14 min).mkv
本次视频中,我们将介绍第二种主要的机器学习问题。叫做无监督学习。
上个视频中,已经介绍了监督学习。回想当时的数据集,如图表所示,这个数据集中每
条数据都已经标明是阴性或阳性,即是良性或恶性肿瘤。所以,对于监督学习里的每条数据,
我们已经清楚地知道,训练集对应的正确答案,是良性或恶性了。
在无监督学习中,我们已知的数据。看上去有点不一样,不同于监督学习的数据的样子,
即无监督学习中没有任何的标签或者是有相同的标签或者就是没标签。所以我们已知数据
集,却不知如何处理,也未告知每个数据点是什么。别的都不知道,就是一个数据集。你能
从数据中找到某种结构吗?针对数据集,无监督学习就能判断出数据有两个不同的聚集簇。
这是一个,那是另一个,二者不同。是的,无监督学习算法可能会把这些数据分成两个不同
的簇。所以叫做聚类算法。事实证明,它能被用在很多地方。
聚类应用的一个例子就是在谷歌新闻中。如果你以前从来没见过它,你可以到这个 URL
网址 news.google.com 去看看。谷歌新闻每天都在,收集非常多,非常多的网络的新闻内容。
它再将这些新闻分组,组成有关联的新闻。所以谷歌新闻做的就是搜索非常多的新闻事件,
自动地把它们聚类到一起。所以,这些新闻事件全是同一主题的,所以显示到一起。
事实证明,聚类算法和无监督学习算法同样还用在很多其它的问题上。
机器学习课程-第 1 周-引言(Introduction)
11
其中就有基因学的理解应用。一个 DNA 微观数据的例子。基本思想是输入一组不同个
体,对其中的每个个体,你要分析出它们是否有一个特定的基因。技术上,你要分析多少特
定基因已经表达。所以这些颜色,红,绿,灰等等颜色,这些颜色展示了相应的程度,即不
同的个体是否有着一个特定的基因。你能做的就是运行一个聚类算法,把个体聚类到不同的
类或不同类型的组(人)……
所以这个就是无监督学习,因为我们没有提前告知算法一些信息,比如,这是第一类的
人,那些是第二类的人,还有第三类,等等。我们只是说,是的,这是有一堆数据。我不知
道数据里面有什么。我不知道谁是什么类型。我甚至不知道人们有哪些不同的类型,这些类
型又是什么。但你能自动地找到数据中的结构吗?就是说你要自动地聚类那些个体到各个
类,我没法提前知道哪些是哪些。因为我们没有给算法正确答案来回应数据集中的数据,所
以这就是无监督学习。
无监督学习或聚集有着大量的应用。它用于组织大型计算机集群。我有些朋友在大数据
中心工作,那里有大型的计算机集群,他们想解决什么样的机器易于协同地工作,如果你能
够让那些机器协同工作,你就能让你的数据中心工作得更高效。第二种应用就是社交网络的
分析。所以已知你朋友的信息,比如你经常发 email 的,或是你 Facebook 的朋友、谷歌+圈
子的朋友,我们能否自动地给出朋友的分组呢?即每组里的人们彼此都熟识,认识组里的所
有人?还有市场分割。许多公司有大型的数据库,存储消费者信息。所以,你能检索这些顾
客数据集,自动地发现市场分类,并自动地把顾客划分到不同的细分市场中,你才能自动并
更有效地销售或不同的细分市场一起进行销售。这也是无监督学习,因为我们拥有所有的顾
客数据,但我们没有提前知道是什么的细分市场,以及分别有哪些我们数据集中的顾客。我
们不知道谁是在一号细分市场,谁在二号市场,等等。那我们就必须让算法从数据中发现这
一切。最后,无监督学习也可用于天文数据分析,这些聚类算法给出了令人惊讶、有趣、有
用的理论,解释了星系是如何诞生的。这些都是聚类的例子,聚类只是无监督学习中的一种。
机器学习课程-第 1 周-引言(Introduction)
12
我现在告诉你们另一种。我先来介绍鸡尾酒宴问题。嗯,你参加过鸡尾酒宴吧?你可以
想像下,有个宴会房间里满是人,全部坐着,都在聊天,这么多人同时在聊天,声音彼此重
叠,因为每个人都在说话,同一时间都在说话,你几乎听不到你面前那人的声音。所以,可
能在一个这样的鸡尾酒宴中的两个人,他俩同时都在说话,假设现在是在个有些小的鸡尾酒
宴中。我们放两个麦克风在房间中,因为这些麦克风在两个地方,离说话人的距离不同每个
麦克风记录下不同的声音,虽然是同样的两个说话人。听起来像是两份录音被叠加到一起,
或是被归结到一起,产生了我们现在的这些录音。另外,这个算法还会区分出两个音频资源,
这两个可以合成或合并成之前的录音,实际上,鸡尾酒算法的第一个输出结果是:
1,2,3,4,5,6,7,8,9,10,
所以,已经把英语的声音从录音中分离出来了。
第二个输出是这样:
1,2,3,4,5,6,7,8,9,10。
看看这个无监督学习算法,实现这个得要多么的复杂,是吧?它似乎是这样,为了构建
这个应用,完成这个音频处理似乎需要你去写大量的代码或链接到一堆的合成器 JAVA 库,
处理音频的库,看上去绝对是个复杂的程序,去完成这个从音频中分离出音频。事实上,这
个算法对应你刚才知道的那个问题的算法可以就用一行代码来完成。
就是这里展示的代码:
[W,s,v] = svd((repmat(sum(x.*x,1),size(x,1),1).*x)*x');
研究人员花费了大量时间才最终实现这行代码。我不是说这个是简单的问题,但它证明
了,当你使用正确的编程环境,许多学习算法是相当短的程序。所以,这也是为什么在本课
中,我们打算使用 Octave 编程环境。Octave,是免费的开源软件,使用一个像 Octave 或 Matlab
的工具,许多学习算法变得只有几行代码就可实现。
剩余293页未读,继续阅读
terry20304
- 粉丝: 3
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 前端面试必问:真实项目经验大揭秘
- 永磁同步电机二阶自抗扰神经网络控制技术与实践
- 基于HAL库的LoRa通讯与SHT30温湿度测量项目
- avaWeb-mast推荐系统开发实战指南
- 慧鱼SolidWorks零件模型库:设计与创新的强大工具
- MATLAB实现稀疏傅里叶变换(SFFT)代码及测试
- ChatGPT联网模式亮相,体验智能压缩技术.zip
- 掌握进程保护的HOOK API技术
- 基于.Net的日用品网站开发:设计、实现与分析
- MyBatis-Spring 1.3.2版本下载指南
- 开源全能媒体播放器:小戴媒体播放器2 5.1-3
- 华为eNSP参考文档:DHCP与VRP操作指南
- SpringMyBatis实现疫苗接种预约系统
- VHDL实现倒车雷达系统源码免费提供
- 掌握软件测评师考试要点:历年真题解析
- 轻松下载微信视频号内容的新工具介绍
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功