当前课程知识点:智能时代下的创新创业实践 > 第三章智能时代的创新技术 > 3.3机器是如何学习的? > 3.35
好
我们再接着讨论第二个重要的问题
机器是如何学习的
这里
我用自己指导的项目案例来说明这个问题
这个案例是关于性格与专业匹配度的
先简单介绍一下这个项目背景
以及这个项目和机器学习的关系
大家填报高考志愿的时候
一个头疼的问题就是
不知道怎么选择适合自己的专业
传统上是怎么解决这个问题的呢
我们会让一个同学
做一个专业的心理测评
霍兰德心理测评量表
这个心理测评有六个心理维度
分别表示测评者的某些人格特征
也就说常规型
艺术型
社会型
研究型
企业型和现实型
我们假设这些维度
跟同学的专业匹配度
是有关系的
做完测评以后呢
我们会得到这位同学的各个维度得分
比如某个测评者现实型得分为51分
研究型得分53分
艺术型得分47分
社会型得分63分
企业型得分61分
常规型得分67分
我们会把这些测评结果拿给专家
他会根据自己的行业经验
分析这六个维度的得分
并给出这位同学和
某些具体的专业的匹配度
比如刚才那位同学与计算机
金融这个专业的匹配度是80%
假设突然有一天
这些专家全部都消失了
在这种情况下
我们能不能设计一个智能机器
来代替这些专家的工作呢
也就是说
加入任意给出一位
同学的六个心理维度得分
由智能机器而不是专家来给出
这位同学与计算机金融专业之间的匹配度
我们怎么来思考这个问题
当我们拿到这个棘手的问题
我们会想
我们现在能利用的资源有哪些
我们发现虽然专家走了
但是却留下了1000份同学的测评数据
以及这些数据与计算机这个金融专业的匹配度
我们能不能从这1000份已有的数据当中
找到一个策略
并用一个数学模型来描述它
然后用这个模型
来预测任何一位同学
在计算机金融这个专业的匹配度
这个问题
显然是典型的机器学习问题
如果我们能找到这样一个function函数
理论上当我们输入任意
一位同学霍兰德量表的得分
就能够得出这位同学跟
计算机金融专业的匹配度了
这样其实就不需要专家的参与了
那么这个过程其实就是用
智能机器代替人的工作
当然
从数据中学习的过程
其实已经借鉴了专家的经验
并且
我们可以推而广之
用刚才的思路建立起
某一位同学与任何一个专业的匹配度关系
比如说跟建筑学专业
跟医学专业的匹配度
在这里
我们其实做了一个逆向工程
就是从已有数据当中找到需要的答案
这是典型的逆向思维
机器学习核心就是从已有的数据当中学习
机器的智慧来自数据
所以机器学习的本质就是
learning from data
这就是为什么在
数据比较容易获得的领域
机器学习大行其道的原因
从这个角度来讲
机器学习也可以说是一种数据挖掘技术
那么
如何找到这样的一个数学模型呢
在上一讲
我们学习到用计算机解决问题
有两次问题映射过程
第一次就是抽象和建模的过程
针对这个问题
其实我们已经抽象出了6个特征值
也就是霍兰德量表的六个维度
我们需要建立这6个特征值与
计算机金融专业的匹配值之间的关系
并用数学的模型来描述它
但是我们并不清楚
霍兰德量表每一个维度
和金融计算机金融专业的匹配度的关系
那么我们怎么来思考这个问题呢
怎么来建立这个模型呢
因为六个参数都跟计算机金融专业有关系
模型的参数很多
这对我们来说是一个比较复杂的模型
这个时候
我们就要运用降维的思维了
因为我们知道
虽然这六个特征都与计算机金融有关系
但是其中一定有某些或者某个特征
与计算机金融的关系是最紧密的
如果我们能够找到这个特征
建立这个特征与计算机金融匹配度的模型
那么这个模型就变得简单了
那么有没有这样的一个特征值呢
通过对霍兰德量表的学习
我们发现其中的
研究型
这个维度跟计算机金融的关系是最密切的
因为计算机金融专业
主要是对数据的深入研究
所以要求
学习这个领域的人有很强的专研能力
研究型
这个维度
他的得分正是说明这个人的专研能力的
我们看到
这个降维的过程是需要专业知识参与的
这就是通过行业知识来减少
模型的复杂度的过程
这样
我们就只需要找到研究型
这个特征值与计算机金融专业匹配度之间的
数学模型就可以了
从数学的角度
这个事情怎么做呢
我们理想的数学模型
是特征值与专业匹配度的真实关系
我们把这个函数写作fx
但是我们永远得不到那个理想的函数
为什么呢
因为专家们都消失了
那个理想的函数也就没有了
我们只能用一个数学函数去
逼近专家们的想法
在实际情况下
其实我们会尝试设置多个数学模型
来描述这个关系
这也意味着我们有一个数学模型的假设集合
叫function set
用H(x)来表示
我们会选出其中一个
最合理的数学模型
这个模型最接近理想的模型函数f(x)
我们用gx来表示
这个合理的数学模型
这样呢我们就可以认为这个g(x)
是我们想要找到的数学模型了
那么具体的步骤分为三步
第一个步骤就是假设模型集合
我们会根据数据之间的关系列出可能的模型集合
就是H(x)
第二个步骤是运用损失函数来选择模型
这是利用统计学和函数分析的方法
来找出合理参数的过程
通过第二个步骤我们会找到模型的参数
第三步是对前面两个步骤的迭代过程
也就是我们会重新回到第一个步骤
来审视这个模型的合理性
可能会给出另外的假设模型集
并找到新的集合里最合理的模型
通过第二和第三个步骤的迭代
我们会找出最好的数学函数g(x)
我们认为这个函数
就是我们要找的那个策略
可以用这个函数测率去
预测其他同学的匹配关系了
刚才我们通过降维
已经把模型函数的关系简化成了
研究型
特征值跟计算机金融专业匹配度的关系
我们用Xr来表示研究型这个特征值
用y来表示对应的匹配度
这个函数可以表示为y=H(Xr)
如何设置这个函数呢
也就要运用统计学的知识了
我们需要从已有的数据当中找出他们的关系
比如我先抽出10位同学的数据
每一位同学都有研究型特征值
也都有相对应的匹配度得分
比如说Xr为10.6
对应的 y 等于21.3%
也就是说研究型的得分是10.6
那么对应的计算机
金融的匹配度
应该是21.3%
我们就得到了这样的多对数据
那么这些数据都是真实的
是以前已经存在的数据
我们把这些数据绘制在一张图表上
x轴是研究型的得分
y轴就是对应的计算机金融的匹配值
这样
我们就得到了一张
描述他们之间关系的统计图
我们能不能从这些点的关系当中
找到一些规律呢
好
现在我想请大家来观察这些点之间的关系
你认为
他们可以用一条什么样的线
连在一起呢
如果运用人类特有的直觉系统
我们发现可以用一条直线或是曲线
大致的通过这些点
也就是说
可以用一条线性的直线或者曲线
来拟合这些点
这里用到了统计学关于样本分析的知识
在数学上
可以用简单的线性方程
来表示Rx与y之间的关系
y=b+wx
这是一个最简单的线性模型了
y与x之间就是一个直线关系
W是直线的斜率
b是直线跟y轴的截距
因为w和b这两个参数
可能有多种的组合
因此这是一个模型的集合叫H(x)
这样
我们就设置了假设模型集合
当然
这个模型不仅是线性的
也是回归的
所谓回归
regression
是指模型的输入x
是一个连续的实数
这些输入对应的
相应的输出值y也是连续的
它就是回归模型
如果相应的输出y是一个二进制的数
或者是一些离散的数
我们叫它分类模型
所以我们设置的模型集合
是线性回归方程的集合
这么多的w和b参数的组合
我们如何找到最合理的参数
使得这条直线对样本的拟合度
是最高的呢
这里需要用到一些微积分
以及概率论和统计学的知识
假设我们用一条直线
穿过了这些样本点
那么这些样本和这条直线之间
是不可能是完全拟合的
每一个点与直线之间都是有距离
也就是有误差
如果完全拟合的话那么误差就是0
我们设这个距离为e
它的也叫均方误差
我们可以通过运算得到十个点的均方误差
我们把所有这些均方误差加在一起
得到一个总误差
我们称它为损失函数
loss function
这个函数
是一个关于参数w和b的函数
我们希望某一个w和b的组合
能让让这个总误差的值最小
也就是要求得一个w和b
参数的组合使得损失函数最小化
这种基于均方误差最小化
进行的模型求解的方法也叫
最小二乘法
在具体操作上
运用了梯度下降法的这种数学工具
通过对w和b分别进行偏微分
来得到使得损失函数最小的
w和b的参数组合
在这里我就不详细说明梯度下降法了
有兴趣的同学可以查找相关的资料
总之
运用这种方式我们可以计算出
最理想的参数组合
最理想的参数组合
是b等于12.5
w等于2.7
我们认为
这样一条直线
样本点的拟合度是最高的
在确定了这个线性函数以后
我们就可以计算出
那10个样本
和这条直线的总误差是25.9
我们称之为样本误差
另外
我们还可以再找10位
其他的同学的数据来验证一下
看看如果用这个模型的效果
到底是怎么样呢
通过计算
我们可以得到总误差是18.7
这个误差我们叫测试误差
这两个误差都是我们选择
理想数学模型的依据
从这两个误差来看
效果是不错的
这样
第二个步骤就完成了
我们通过一系列的数学手段
找到了那个最理想的数学模型
但是我们也注意到
刚才设置的线性回归模型非常简单
参数RX和y之间的关系是简单的直线关系
那么有没有可能它们之间存在平方
立方甚至四次方的关系呢
有没有可能这样的方程
能够更好的拟合样本呢
所以这里就需要
再一次设置假设模型集
也就是用更复杂的函数模型
去拟合那些样本
因此
我们需要进行第三个步骤
通过迭代找到更合理的模型
怎样得到更合理的模型呢
我们可以分别通过计算得到
x和y在平方关系
立方关系等情况下的理想函数
并计算出它们的样本误差和测试误差
通过比较
在RX与Y 是立方关系时
我们认为总体效果是最好的
当然
这个模型仅仅描述了霍兰德量表里
研究型
这一个特征值
与计算机金融匹配度之间的关系
显然
还没有达到我们的预期
这只是一个简化的模型
离真实的模型还有距离
我们需要考虑霍兰德量表中其他的特征参数
以便获得更准确的模型
这个时候
就需要观察更多的数据
比如
我们从1000份数据中
拿出200份进行分析
并且
按刚才的方式分别找出霍兰德
其他的特征参数
和计算机金融之间的关系
最后
我们会得到一个比较复杂的模型
这个模型的自变量
包括了霍兰德所有的六个特征参数
输出是计算机金融专业的匹配值
这样
我们终于得到了那个理想的数学
模型g(x)
可以用它来估计
任何一个测试者
与计算机金融专业的匹配度了
-0.1我们为什么设计这门课
--0.1
-0.2我们聊什么
--0.2
-0.3你们能学到什么
--0.3
-短片:AlphaGo
--Alphago
-1.1本章概述
--1.1
-1.2人与机器的本质区别
--1.21
--1.22
--1.23
-1.3我们会被智能机器抢了饭碗吗
--1.31
--1.32
--1.33
-1.4人和智能机器的和谐之道-增强智能
--1.41
--1.42
--1.43
--1.44
--1.45
--1.46
--1.47
-1.5项目指南一:如何找到好的项目
--1.51
--1.52
--1.53
--1.54
--1.55
-第一章测试
-2.1本章概述
--2.1
-2.2创业能力模型
--2.21
--2.22
--2.23
--2.34
--2.25
--2.26
--2.27
--2.28
--2.29
-2.3创新是人类的本能
--2.31
--2.32
--2.33
-2.4创新能力培养——创新心智模式
--2.41
--2.42
--2.43
--2.44
--2.45
--2.46
-2.5创新能力要素培养-思维方式
--2.51
--2.52
--2.53
--2.54
--2.55
-2.6项目指南二:创新项目的开发
--2.61
--2.62
--2.63
-2.7互联网心理学
--2.7
-第二章测试
-3.1本章概述
--3.1
-3.2机器有“智慧”吗?
--3.21
--3.22
--3.23
--3.24
--3.25
--3.26
--3.27
-3.3机器是如何学习的?
--3.31
--3.32
--3.33
--3.34
--3.35
--3.36
--3.37
--3.38
--3.39
--3.310
-3.4智能技术带来的认知升级
--3.41
--3.42
--3.43
--3.44
--3.45
-3.5项目指南三:投资者和创始人的心得经验
--3.51
--3.52
--3.53
--3.54
--3.55
-第三章测试