林轩田机器学习基石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

相关文章

线上Java OOM问题定位与解决方案超详细解析

《线上JavaOOM问题定位与解决方案超详细解析》OOM是JVM抛出的错误,表示内存分配失败,:本文主要介绍线上JavaOOM问题定位与解决方案的相关资料,文中通过代码介绍的非常详细,需要的朋... 目录一、OOM问题核心认知1.1 OOM定义与技术定位1.2 OOM常见类型及技术特征二、OOM问题定位工具

Vue3绑定props默认值问题

《Vue3绑定props默认值问题》使用Vue3的defineProps配合TypeScript的interface定义props类型,并通过withDefaults设置默认值,使组件能安全访问传入的... 目录前言步骤步骤1:使用 defineProps 定义 Props步骤2:设置默认值总结前言使用T

Web服务器-Nginx-高并发问题

《Web服务器-Nginx-高并发问题》Nginx通过事件驱动、I/O多路复用和异步非阻塞技术高效处理高并发,结合动静分离和限流策略,提升性能与稳定性... 目录前言一、架构1. 原生多进程架构2. 事件驱动模型3. IO多路复用4. 异步非阻塞 I/O5. Nginx高并发配置实战二、动静分离1. 职责2

解决升级JDK报错:module java.base does not“opens java.lang.reflect“to unnamed module问题

《解决升级JDK报错:modulejava.basedoesnot“opensjava.lang.reflect“tounnamedmodule问题》SpringBoot启动错误源于Jav... 目录问题描述原因分析解决方案总结问题描述启动sprintboot时报以下错误原因分析编程异js常是由Ja

MySQL 表空却 ibd 文件过大的问题及解决方法

《MySQL表空却ibd文件过大的问题及解决方法》本文给大家介绍MySQL表空却ibd文件过大的问题及解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考... 目录一、问题背景:表空却 “吃满” 磁盘的怪事二、问题复现:一步步编程还原异常场景1. 准备测试源表与数据

解决Nginx启动报错Job for nginx.service failed because the control process exited with error code问题

《解决Nginx启动报错Jobfornginx.servicefailedbecausethecontrolprocessexitedwitherrorcode问题》Nginx启... 目录一、报错如下二、解决原因三、解决方式总结一、报错如下Job for nginx.service failed bec

SysMain服务可以关吗? 解决SysMain服务导致的高CPU使用率问题

《SysMain服务可以关吗?解决SysMain服务导致的高CPU使用率问题》SysMain服务是超级预读取,该服务会记录您打开应用程序的模式,并预先将它们加载到内存中以节省时间,但它可能占用大量... 在使用电脑的过程中,CPU使用率居高不下是许多用户都遇到过的问题,其中名为SysMain的服务往往是罪魁

Unity新手入门学习殿堂级知识详细讲解(图文)

《Unity新手入门学习殿堂级知识详细讲解(图文)》Unity是一款跨平台游戏引擎,支持2D/3D及VR/AR开发,核心功能模块包括图形、音频、物理等,通过可视化编辑器与脚本扩展实现开发,项目结构含A... 目录入门概述什么是 UnityUnity引擎基础认知编辑器核心操作Unity 编辑器项目模式分类工程

MySQ中出现幻读问题的解决过程

《MySQ中出现幻读问题的解决过程》文章解析MySQLInnoDB通过MVCC与间隙锁机制在可重复读隔离级别下解决幻读,确保事务一致性,同时指出性能影响及乐观锁等替代方案,帮助开发者优化数据库应用... 目录一、幻读的准确定义与核心特征幻读 vs 不可重复读二、mysql隔离级别深度解析各隔离级别的实现差异

C++ vector越界问题的完整解决方案

《C++vector越界问题的完整解决方案》在C++开发中,std::vector作为最常用的动态数组容器,其便捷性与性能优势使其成为处理可变长度数据的首选,然而,数组越界访问始终是威胁程序稳定性的... 目录引言一、vector越界的底层原理与危害1.1 越界访问的本质原因1.2 越界访问的实际危害二、基