什么是机器学习?
Tom Mitchell 在1998年给出的定义:“A computer program is said to learn from experience E with respect to some task T and some performance measure P, if its performance on T, as measured by P, improves with experience E.”
"针对于一个任务T,电脑程序通过学习经验E,提高完成任务时的评价P."
就是针对一个问题,选择一种带参数的模型(程序/算法),通过已知数据修改模型参数,提升模型性能,然后应用模型解决问题。(监督学习思想)
Andrew 举例:google搜索里的page rank(可能某部分为学习算法),Facebook、Apple的照片应用里识别(Recognize)朋友的照片,垃圾邮件的过滤,
and
-Database mining 数据挖掘
Large datasets from growth of automation/web.
E.g.,Web click data(用户行为分析), medical records(通过学习我们也许对疾病更多了解),biology(分析基因序列),engineering
-Applications can't program by hand 人工编程无法解决的问题(问题庞大?细节详尽?逻辑不清?)
如自动直升飞机的算法、手写识别、大部分NLP问题、Computer Vision.
-Self-customizing programs (自助定制程序) 如Amazon、iTunes的推荐系统。
-Understand human learning (brain , real AI)
简单模型如下图所示:
课程中所用基本变量:
m: 训练样本组数 # training examples
n: 特征数 # features
x; 输入变量/特征 "input" variables/features
y: 输出变量/目标变量 "output" variables/ "target" variables
(x, y) = 一个训练样本 tarining example
第i个训练样本
监督学习 Supervised Learning
—回归 Regression : 预测连续型数据结果(预测曲线)。
例:根据房间大小(特征)预测房价
—分类 Classification: 预测离散型数据结果(类别,0/1类or多类)。
例:根据肿瘤大小预测是否癌症
两个特征:年龄和肿瘤大小预测是否癌症
非监督学习 Unsupervised Learning
—聚类 Clustering: 找出数据内在的结构(一个个的团簇) find some structure in the data。
应用举例: Google news,对新闻聚类,比如对同一事件的不同媒体报导放在一个块里;对许多人的基因进行聚类;
数据存储中心对服务器聚类,把工作相关联的存储服务器放在一起;社交网络聚类(可能email 有无或频度确定距离);用聚类做市场划分;对天文数据进行聚类;
Cock party problem
房间里两个话筒和两个音源,第一个人(音源)英文说1-10,第二个人用德语(?)说1-10或播放音乐。两个话筒各离一个音源较近,但收录两边的声音,所以两个话筒收录的声音都是两个音源混杂的,通过聚类可以将两个音源各自较清晰的分隔出来。
应用下面只有一行的机器学习算法可以将两个音源分离开来:
[W,s,v] = svd((repmat(sum(x.*x, 1), size(x, 1), 1).*x)*x')