林轩田机器学习基石1:机器学习问题(The Learning Problem)

2024-08-21 07:48

本文主要是介绍林轩田机器学习基石1:机器学习问题(The Learning Problem),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

欢迎关注公众号-AI圈终身学习。
公众号首页回复“机器学习”查看所有系列文章。


机器学习基石课程大概八周,分为四个部分:

  • When Can Machines Learn?
  • Why Can Machines Learn?
  • How Can Machines Learn?
  • How Can Machines Learn Better?

课程主页:
http://www.csie.ntu.edu.tw/~htlin/

本节笔记Lecture 1-The Learning Problem包含内容如下:

  • When Can Machines Learn?(什么时候用机器学习)
    • What is Machine learning(什么是机器学习)
    • Applications of Machine Learning(机器学习应用)
    • Components of Machine Learning(机器学习组成部分)
    • Machine Learning and Other Fields(机器学习和其他领域)

一、什么是机器学习(What is Machine Learning)

机器学习和学习的异同是什么?首先学习和机器学习的共通性就是观察,他们也有差异性。

1.1 学习的流程

学习的主体是人,人通过观察(听、观、触觉)出发,经过脑袋的内化转化,变成有用的技能。流程图如下:

1.2 机器学习的流程

机器学习的主体是电脑,电脑通过观察资料(语料),经过电脑的CPU运作,变成对电脑有用的技能。流程图如下:

什么是“变成有用的技能”?技能就是在某种领域做事靠谱,比如

  • 对于人,自己的英语能力、数学能力得到了提高
  • 对于电脑,预测股票的能力得到了提高

因此机器学习更准确的定义是:
通过观察计算有规律的数据,根据某种评价指标,提升电脑性能。
流程图如下:

1.3机器学习的三个关键要素

什么时候适合使用机器学习,林老师总结三个关键要素如下:

  1. 编程定义不明确,普通编程难以完成的任务
  2. 资料数据具有某种潜藏的规律,可以学习
  3. 有关于潜藏的规律资料数据

(测试题)下面哪种情况最适合使用机器学习?

  1. 预测小女孩下一次哭的时间是奇数还是偶数(No,没有规律)
  2. 判断一个图是否有环(No,可以编程定义明确)
  3. 预测下一个十年地球是否会毁灭(No,没有数据)
  4. 决定是否同意给用户办理信用卡(Yes,有用户历史行为数据且难以编程解决)

二、机器学习应用(Applications of Machine Learning)

  • 衣(Abu-Mostafa, 2012)
    • 技能:穿衣搭配推荐
    • 数据:衣服销售数字+顾客调差反馈
  • 食(Sadilek et al., 2013)
    • 技能:正确告诉餐厅食物中毒的可能性
    • 数据:用户的Twitter数据(评论的文字+餐厅地点)
  • 住(Tsanas and Xifara, 2012)
    • 技能:预测建房所需能源消耗
    • 数据:历史修建房屋的能源消耗数据
  • 行(Stalkamp et al., 2012)
    • 技能:识别交通信号
    • 数据:交通信号图片和含义数据

除此之外,还有教育(流利说)、金融(信用卡办理)、医疗(药效预测)、法律(摘要)、娱乐(推荐系统)等各种行业。

二、机器学习组成部分(Components of Learning)


以信用卡办理为例,任务是给要用信用卡花钱的用户办理。机器学习组件如下:

  • 输入X(银行用户数据特征,如年龄、性别、工资等)
  • 输出Y(办卡后刷还信用卡的好坏)
  • 训练数据 D = ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x n , y n ) D={(x_1, y_1),(x_2, y_2),...,(x_n, y_n)} D=(x1,y1),(x2,y2),...,(xn,yn)
  • 目标函数 f : x → y f:x \rightarrow y f:xy(理想的函数,表示实际训练数据的分布规律,但是未知)
  • 假设集合H(hypothesis set),我们需要通过算法学到集合中最佳的假设,其对应的函数为 g : x → y g:x \rightarrow y g:xy我们希望最终的模型表达式 g 满 足 g ≈ f g满足g\approx f ggf

机器学习整个流程可以表示如下:

比如以上面的信用卡办理为例,假设其中的hypothesis set H为:

  • h1: 年薪 > 80万
  • h2: 欠款 > 10 万
  • h3: 工龄 < 2年

我们的H中的假设有好有坏,我们通过演算法A去选择最好的一个作为g。

因此我们在机器学习中常说的模型是 演算法A+假设集合H

我们再以预测用户给歌曲打分(0-100分)为例,我们有:

训练数据D = 100万条((userid, songid), rating)对
输入X = 所有可能的(userid, songid)对
输出Y = [0, 100]
假设集合H = 将用户因素和歌曲因子相乘,并由所有可能的因素组合索引

我们以训练数据D为入口,通过演算法A选出H中最好的假设得到g。

四、机器学习和其他领域(Machine Learning and Other Fields)

  • 机器学习与统计

  • 机器学习与数据挖掘

  • 机器学习与人工智能

总结来说:

  • 统计可以实现机器学习
  • 机器学习和数据挖掘相互缠绕,难以区分
  • 机器学习是实现人工智能的一种方式

五、总结

本节主要概括性的讲了机器学习的方方面面,高层笼统,概念清晰,没有太多技术性的东西。

这篇关于林轩田机器学习基石1:机器学习问题(The Learning Problem)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1092554

相关文章

springboot循环依赖问题案例代码及解决办法

《springboot循环依赖问题案例代码及解决办法》在SpringBoot中,如果两个或多个Bean之间存在循环依赖(即BeanA依赖BeanB,而BeanB又依赖BeanA),会导致Spring的... 目录1. 什么是循环依赖?2. 循环依赖的场景案例3. 解决循环依赖的常见方法方法 1:使用 @La

SpringBoot启动报错的11个高频问题排查与解决终极指南

《SpringBoot启动报错的11个高频问题排查与解决终极指南》这篇文章主要为大家详细介绍了SpringBoot启动报错的11个高频问题的排查与解决,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一... 目录1. 依赖冲突:NoSuchMethodError 的终极解法2. Bean注入失败:No qu

MySQL新增字段后Java实体未更新的潜在问题与解决方案

《MySQL新增字段后Java实体未更新的潜在问题与解决方案》在Java+MySQL的开发中,我们通常使用ORM框架来映射数据库表与Java对象,但有时候,数据库表结构变更(如新增字段)后,开发人员可... 目录引言1. 问题背景:数据库与 Java 实体不同步1.1 常见场景1.2 示例代码2. 不同操作

如何解决mysql出现Incorrect string value for column ‘表项‘ at row 1错误问题

《如何解决mysql出现Incorrectstringvalueforcolumn‘表项‘atrow1错误问题》:本文主要介绍如何解决mysql出现Incorrectstringv... 目录mysql出现Incorrect string value for column ‘表项‘ at row 1错误报错

如何解决Spring MVC中响应乱码问题

《如何解决SpringMVC中响应乱码问题》:本文主要介绍如何解决SpringMVC中响应乱码问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Spring MVC最新响应中乱码解决方式以前的解决办法这是比较通用的一种方法总结Spring MVC最新响应中乱码解

pip无法安装osgeo失败的问题解决

《pip无法安装osgeo失败的问题解决》本文主要介绍了pip无法安装osgeo失败的问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 进入官方提供的扩展包下载网站寻找版本适配的whl文件注意:要选择cp(python版本)和你py

解决Java中基于GeoTools的Shapefile读取乱码的问题

《解决Java中基于GeoTools的Shapefile读取乱码的问题》本文主要讨论了在使用Java编程语言进行地理信息数据解析时遇到的Shapefile属性信息乱码问题,以及根据不同的编码设置进行属... 目录前言1、Shapefile属性字段编码的情况:一、Shp文件常见的字符集编码1、System编码

Spring MVC使用视图解析的问题解读

《SpringMVC使用视图解析的问题解读》:本文主要介绍SpringMVC使用视图解析的问题解读,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Spring MVC使用视图解析1. 会使用视图解析的情况2. 不会使用视图解析的情况总结Spring MVC使用视图

Redis解决缓存击穿问题的两种方法

《Redis解决缓存击穿问题的两种方法》缓存击穿问题也叫热点Key问题,就是⼀个被高并发访问并且缓存重建业务较复杂的key突然失效了,无数的请求访问会在瞬间给数据库带来巨大的冲击,本文给大家介绍了Re... 目录引言解决办法互斥锁(强一致,性能差)逻辑过期(高可用,性能优)设计逻辑过期时间引言缓存击穿:给

Java程序运行时出现乱码问题的排查与解决方法

《Java程序运行时出现乱码问题的排查与解决方法》本文主要介绍了Java程序运行时出现乱码问题的排查与解决方法,包括检查Java源文件编码、检查编译时的编码设置、检查运行时的编码设置、检查命令提示符的... 目录一、检查 Java 源文件编码二、检查编译时的编码设置三、检查运行时的编码设置四、检查命令提示符