机器学习基石-林轩田 Lecture 2:Perceptron Hypothesis Set

复习(机器学习的流程)

  • 有一个未知的映射 f : X → Y f: X \to Y f:XY(上次的案例是信用卡)
  • 训练集 D : ( x 1 , y 1 ) , . . . , ( x N , y n ) D: (x_1,y_1),...,(x_N,y_n) D:(x1,y1),...,(xN,yn)(银行的历史记录)
  • 有一个假说集 H H H,从中得到了学习算法 A A A
  • 最后的假说 g ≈ f g \approx f gf

从一个简单的数据集入手,学习感知器

在这里插入图片描述

  • 现在这里有一个银行用户的数据

  • 对于某一个用户,定义一个 x = ( x 1 , x 2 , . . . , x d ) x = (x_1,x_2,...,x_d) x=(x1,x2,...,xd)向量,每个维度对于结果可能有不同的影响。
    在这里插入图片描述

  • 其实这和考试是一样的,你有不同的题型,每个题型有不同的重要性,自然分数占比的权重就不一样,最后加权,得到一个等级,来判断你是否“及格”,“普通”,“优秀”之类的。本质上考卷就是一个感知器(perceptron)

  • 我们做的就是算分评级。

  • y : { + 1 ( g o o d ) , − 1 ( b a d ) } 0 , i g n o r e d   l i n e a r   f o r m u l a   h ∈ H   a r e h ( x ) = s i g n ( ( ∑ I = 1 d w i x i ) − t h r e s h o l d ) y:\{ +1(good),-1(bad)\} 0, ignored\space linear\space formula\space h\in H\space are\\h(x) = sign((\sum^d_{I=1}{\color{red}w_i}x_i)-{\color{red}threshold}) y:{+1(good),1(bad)}0,ignored linear formula hH areh(x)=sign((I=1dwixi)threshold)

  • 我们做一些简化
    h ( x ) = s i g n ( ( ∑ I = 1 d w i x i ) − t h r e s h o l d ) h(x) = sign((\sum^d_{I=1}{\color{red}w_i}x_i)-{\color{blue}threshold}) h(x)=sign((I=1dwixi)threshold)
    在这里插入图片描述

  • (latex不会打下括号哈哈)

  • 就是一个符号的变动,把阈值视为 w 0 w_0 w0,正负视为 x 0 x_0 x0

  • 最后的 w w w x x x都是一个高高的向量。

R 2 R^2 R2的感知器

h ( x ) = s i g n ( w 0 + w 1 x 1 + w 2 x 2 ) h(x) = sign(w_0+w_1x_1+w_2x_2) h(x)=sign(w0+w1x1+w2x2)
在这里插入图片描述

  • 我们假设,现在顾客只有两个特征,那么我们就可以把上面的公式画成这幅图。
  • (当然,如果多维的就另说,就是二维的我们比较好理解一些)
  • 圈和叉来源于什么呢?实际上来源于这个结果的正负。正用蓝色的圈代替,负用红色的叉代替。
  • 如果令 h ( x ) = 0 h(x) = 0 h(x)=0,把它画出来就是一条直线。
  • 0代表就是“发信用卡”和“不发信用卡”的边界。
  • 如果从几何的角度来看,“感知器”本质上就是一个线性分类器
  • 在高维上,分类的线事实上就是一个高维平面,本质上和一条线是一样的。

总结与展望

  • 那么我们现在就掌握到, H H H这个感知器,就是形成 g ≈ f g\approx f gf的一个选项。
  • 我们要怎么设计一个算法,怎么选一条最好的线(和w有关)。
  • 那条最好的线就是最接近f的线。
  • 在数学上,表现g和f接近可以用这样表示 g ( x n ) ≈ f ( x n ) = y n g(x_n) \approx f(x_n) = y_n g(xn)f(xn)=yn
  • 这代表所有已知的 f ( x n ) f(x_n) f(xn) g ( x n ) g(x_n) g(xn)“一样”。(保证所有的数据得到的结果在已有结果的资料是准确的)

如何选择一条分类面

  • 遍历所有的线?(太复杂了)
  • 随机选择一条线,一直修正他,不断地让它变得更好。
    在这里插入图片描述
  • 算法:开始迭代
    • w t w_t wt处犯了错误,那个错误的位置点是 ( x n ( t ) , y n ( t ) ) {\color{blue} (x_{n(t)},y_{n(t)}) } (xn(t),yn(t)) s i g n ( w t T x n ( t ) ) ≠ y n ( t ) sign(w_t^Tx_{{n(t)}})\not =y_{n(t)} sign(wtTxn(t))=yn(t)
    • 尝试通过这条式子修正错误(在坑爹的一大段知识补充那里会详细讲为什么这条式子可以修正错误) w t + 1 ← W t + y n ( t ) x n ( t ) w_{t+1}\leftarrow W_t+y_{n(t)}x_{n(t)} wt+1Wt+yn(t)xn(t)直到修正得最好为止。
      在这里插入图片描述
    • 大概的感觉是这样的(埋下伏笔)
    • 这个算法被叫做PLA(Perceptron learning algorithm)
    • 最后得到的就是w
    • A fault confessed is half redressed(知错能改善莫大焉)
  • 怎么判断没有错误
    • 遍历所有的点,看看有哪些犯了错,犯了错就修正,然后继续。

坑爹的一大段知识补充

  • 这课漏掉了非常重要的一个内容,就是为什么迭代算法的式子是写成: w t + 1 ← W t + y n ( t ) x n ( t ) w_{t+1}\leftarrow W_t+y_{n(t)}x_{n(t)} wt+1Wt+yn(t)xn(t)
  • 首先我们往回看,我们的超平面方程是什么: w ⋅ x + b = 0 w\cdot x+b = 0 wx+b=0
  • 上面把b写成了 w 0 x 0 w_0x_0 w0x0,也是可以的,这里我们把它分开。
  • 那么理想的来说,对于所有 y i = + 1 y_i = +1 yi=+1的结果来说 w i + b > 0 w_i+b>0 wi+b>0,反之亦然,这是一个线性可分数据集。(linearly separable data set)
  • 假设数据集线性可分,那么感知器的学习目标是求得一个超平面。
  • 为了找出超平面,即确定感知器模型参数 w , b w,b w,b,需要找到一个学习策略,定义损失函数并使其极小化
  • 对于误分类的点, y i y_i yi w x i + b wx_i+b wxi+b异号!
  • 所以对于误分类的点,有 − y i ( w ⋅ x i + b ) > 0 -y_i(w\cdot x_i+b)>0 yi(wxi+b)>0
  • 那么对于误分类点集,当 L ( w , b ) = − ∑ x i ∈ M y i ( w ⋅ x i + b ) L(w,b) = -\sum_{x_i \in M}y_i(w\cdot x_i+b) L(w,b)=xiMyi(wxi+b)最小时,分类情况最好。
  • 显然L是非负的,所以其实是L越靠近0,结果越好。
  • 损失函数 L ( w , b ) L(w,b) L(w,b) w , b w,b w,b的连续可导函数.
  • 那么咱们整个随机梯度下降算法就好啦!
  • L(w,b)的梯度由 ∇ w L ( w , b ) = − ∑ x i ∈ M y i x i ∇ b L ( w , b ) = − ∑ x i ∈ M y i \nabla_w L(w,b)=-\sum_{x_i\in M}y_ix_i\\\nabla_b L(w,b)=-\sum_{x_i\in M}y_i wL(w,b)=xiMyixibL(w,b)=xiMyi给出
  • 那么w的迭代公式为 w ← w + η y i x i w\leftarrow w+\eta y_ix_i ww+ηyixi
  • b的迭代公式为 b ← w + η y i b\leftarrow w+\eta y_i bw+ηyi
  • 之前看到别人博客写这个,说不知道该怎么正向思考的,现在看回来觉得有点喜感。

证明

(略)

一些小结

  • 好处:
    • 代码很简单,很好写。
  • 坏处:
    • 数据集D不一定是线性可分的。
    • 根本就不知道什么时候会停。

尝试着去除噪声

在这里插入图片描述
在这里插入图片描述

  • 我们需要尝试找到一条线是犯的错最少的。
  • 我们最后的方程要形如: w g ← a r g m i n ∑ n = 1 N [ y ≠ s i g n ( W T x n ) ] w_g \leftarrow argmin\sum_{n = 1}^N [y\not = sign(W^Tx_n)] wgargminn=1N[y=sign(WTxn)]
  • 但这是一个NP完全问题的方程

Pocket algorithm(口袋算法)

  • 其实就是不断迭代,设置一下迭代限制。
  • 实时获得最好的线,然后存下来即可。
  • 但是pocket算法需要不断地检查那条线比较好,这个是需要花一整次遍历的时间,这个还是挺慢的。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. 智慧社区背景与挑战 随着城市化的快速发展,社区面临健康、安全、邻里关系和服务质量等多方面的挑战。华为技术有限公司提出智慧社区解决方案,旨在通过先进的数字化技术应对这些问题,提升城市社区的生活质量。 2. 技术推动智慧社区发展 技术进步,特别是数字化、无线化、移动化和物联化,为城市社区的智慧化提供了可能。这些技术的应用不仅提高了社区的运行效率,也增强了居民的便利性和安全性。 3. 智慧社区的核心价值 智慧社区承载了智慧城市的核心价值,通过全面信息化处理,实现对城市各个方面的数字网络化管理、服务与决策功能,从而提升社会服务效率,整合社会服务资源。 4. 多层次、全方位的智慧社区服务 智慧社区通过构建和谐、温情、平安和健康四大社区模块,满足社区居民的多层次需求。这些服务模块包括社区医疗、安全监控、情感沟通和健康监测等。 5. 智慧社区技术框架 智慧社区技术框架强调统一平台的建设,设立数据中心,构建基础网络,并通过分层建设,实现平台能力及应用的可持续成长和扩展。 6. 感知统一平台与服务方案 感知统一平台是智慧社区的关键组成部分,通过统一的RFID身份识别和信息管理,实现社区服务的智能化和便捷化。同时,提供社区内外监控、紧急救助服务和便民服务等。 7. 健康社区的构建 健康社区模块专注于为居民提供健康管理服务,通过整合医疗资源和居民接入,实现远程医疗、慢性病管理和紧急救助等功能,推动医疗模式从治疗向预防转变。 8. 平安社区的安全保障 平安社区通过闭路电视监控、防盗报警和紧急求助等技术,保障社区居民的人身和财产安全,实现社区环境的实时监控和智能分析。 9. 温情社区的情感沟通 温情社区着重于建立社区居民间的情感联系,通过组织社区活动、一键呼叫服务和互帮互助平台,增强邻里间的交流和互助。 10. 和谐社区的资源整合 和谐社区作为社会资源的整合协调者,通过统一接入和身份识别,实现社区信息和服务的便捷获取,提升居民生活质量,促进社区和谐。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值