草庐IT

【机器学习】李宏毅——机器学习基本概念简介

FavoriteStar 2023-03-28 原文

机器学习就是找到一个我们人类无法写出来的函数来完成各种任务

机器学习的任务

回归Regression:输出是一个数值

例如:预测未来某一个时间PM2.5数值

分类Classification:输出是选项

例如:输出是否是电子邮件,Alphago输出为棋盘的某一个位置

结构化学习Structured Learning:产生一个有结构的物件,例如产生一篇文章,写一段文字


机器学习的步骤

Step1、写出一个带有未知参数的函数表达式(Function with Unknown Parameters):选用一个可能的函数表达式(Model)来表达输入与输出的关系,其中的未知参数称为domain knowledge

Step2、Define Loss from Training Data:Loss是关于未知参数的函数

mean absolute error(MAE):就是采用预测值和标签相减绝对值的方式来象征误差

mean square error(MSE):就是采用平方差的方式来象征误差

Step3、求解minL,例如gradient descent梯度下降,其中自己设定的参数(例如学习率)成为hyperparameters,还有local minima和global minima(局部最小和全局最小)

Step4、通过对真实数据的观测,对原有的函数式子进行修改,例如增加周期性或者波动什么的,可能会更加景区


Model Bias:由模型本身带来的限制或者误差,例如线性函数对于非线性的模型的学习始终不够好

例如上图,对于复杂的函数都可以用一个常数加上很多个蓝色函数来构成,而就算是非线性

也可以通过取足够多的点来逼近,从而应用上述方法,因此最关键的就是蓝色函数如何表达,因此有了蓝色函数我们就可以拟合我们希望得到的任何函数

因此就可以引入sigmoid函数,用于逼近我们想要的上方蓝色函数,而各式各样的蓝色函数就是通过调整w,b,c从而改变它的形状达到我们的要求

因此,我们就可以将线性函数转换为具有更多特征的函数,可以拟合各式各样复杂的函数

引入神经网络:

\(\theta\)向量来代表全部的参数构成的向量

因此就可以将这个函数重新代入上述机器学习步骤的Step1,作为我们需要预测的函数

同样利用梯度下降的方式来进行。

由于训练集有可能过大,那么可以对训练集进行划分:

每次update都是对一个batch(一部分训练集)去进行梯度下降(因为梯度下降的计算之中肯定需要计算样本的求和,不同训练集就会导致计算结果不一样),所有训练集过完就是一次epoch

Sigmoid也可以更换:

两个ReLU函数叠加就形成了上图那一个的函数形状,而由于每一个sigmoid需要两个ReLU,因此那里是2i

引入神经元的层数,就是上述过程再进行迭代:

那么每一个Sigmoid或者ReLU就是一个Neuron,整体就称为Neural Network

也可以每一个称为hidden layer,那么整体就是Deep Network

层次越深越好吗?并不是的,可能会出现overfitting,就是过拟合的问题,在测试集上更差

但是需要思考,为什么要弄得很多层,一层然后非常多的layer不是也可以表达任何一个函数的形状吗?

有关【机器学习】李宏毅——机器学习基本概念简介的更多相关文章

  1. ruby - 在 Windows 机器上使用 Ruby 进行开发是否会适得其反? - 2

    这似乎非常适得其反,因为太多的gem会在window上破裂。我一直在处理很多mysql和ruby​​-mysqlgem问题(gem本身发生段错误,一个名为UnixSocket的类显然在Windows机器上不能正常工作,等等)。我只是在浪费时间吗?我应该转向不同的脚本语言吗? 最佳答案 我在Windows上使用Ruby的经验很少,但是当我开始使用Ruby时,我是在Windows上,我的总体印象是它不是Windows原生系统。因此,在主要使用Windows多年之后,开始使用Ruby促使我切换回原来的系统Unix,这次是Linux。Rub

  2. Unity 热更新技术 | (三) Lua语言基本介绍及下载安装 - 2

    ?博客主页:https://xiaoy.blog.csdn.net?本文由呆呆敲代码的小Y原创,首发于CSDN??学习专栏推荐:Unity系统学习专栏?游戏制作专栏推荐:游戏制作?Unity实战100例专栏推荐:Unity实战100例教程?欢迎点赞?收藏⭐留言?如有错误敬请指正!?未来很长,值得我们全力奔赴更美好的生活✨------------------❤️分割线❤️-------------------------

  3. LC滤波器设计学习笔记(一)滤波电路入门 - 2

    目录前言滤波电路科普主要分类实际情况单位的概念常用评价参数函数型滤波器简单分析滤波电路构成低通滤波器RC低通滤波器RL低通滤波器高通滤波器RC高通滤波器RL高通滤波器部分摘自《LC滤波器设计与制作》,侵权删。前言最近需要学习放大电路和滤波电路,但是由于只在之前做音乐频谱分析仪的时候简单了解过一点点运放,所以也是相当从零开始学习了。滤波电路科普主要分类滤波器:主要是从不同频率的成分中提取出特定频率的信号。有源滤波器:由RC元件与运算放大器组成的滤波器。可滤除某一次或多次谐波,最普通易于采用的无源滤波器结构是将电感与电容串联,可对主要次谐波(3、5、7)构成低阻抗旁路。无源滤波器:无源滤波器,又称

  4. CAN协议的学习与理解 - 2

    最近在学习CAN,记录一下,也供大家参考交流。推荐几个我觉得很好的CAN学习,本文也是在看了他们的好文之后做的笔记首先是瑞萨的CAN入门,真的通透;秀!靠这篇我竟然2天理解了CAN协议!实战STM32F4CAN!原文链接:https://blog.csdn.net/XiaoXiaoPengBo/article/details/116206252CAN详解(小白教程)原文链接:https://blog.csdn.net/xwwwj/article/details/105372234一篇易懂的CAN通讯协议指南1一篇易懂的CAN通讯协议指南1-知乎(zhihu.com)视频推荐CAN总线个人知识总

  5. 深度学习部署:Windows安装pycocotools报错解决方法 - 2

    深度学习部署:Windows安装pycocotools报错解决方法1.pycocotools库的简介2.pycocotools安装的坑3.解决办法更多Ai资讯:公主号AiCharm本系列是作者在跑一些深度学习实例时,遇到的各种各样的问题及解决办法,希望能够帮助到大家。ERROR:Commanderroredoutwithexitstatus1:'D:\Anaconda3\python.exe'-u-c'importsys,setuptools,tokenize;sys.argv[0]='"'"'C:\\Users\\46653\\AppData\\Local\\Temp\\pip-instal

  6. 计算机毕业设计ssm+vue基本微信小程序的小学生兴趣延时班预约小程序 - 2

    项目介绍随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱小学生兴趣延时班预约小程序的设计与开发被用户普遍使用,为方便用户能够可以随时进行小学生兴趣延时班预约小程序的设计与开发的数据信息管理,特开发了小程序的设计与开发的管理系统。小学生兴趣延时班预约小程序的设计与开发的开发利用现有的成熟技术参考,以源代码为模板,分析功能调整与小学生兴趣延时班预约小程序的设计与开发的实际需求相结合,讨论了小学生兴趣延时班预约小程序的设计与开发的使用。开发环境开发说明:前端使用微信微信小程序开发工具:后端使用ssm:VU

  7. HBase Region 简介和建议数量&大小 - 2

    Region是HBase数据管理的基本单位,region有一点像关系型数据的分区。region中存储这用户的真实数据,而为了管理这些数据,HBase使用了RegionSever来管理region。Region的结构hbaseregion的大小设置默认情况下,每个Table起初只有一个Region,随着数据的不断写入,Region会自动进行拆分。刚拆分时,两个子Region都位于当前的RegionServer,但处于负载均衡的考虑,HMaster有可能会将某个Region转移给其他的RegionServer。RegionSplit时机:当1个region中的某个Store下所有StoreFile

  8. ruby-on-rails - 使用 HTTParty 的非常基本的 Rails 4.1 API 调用 - 2

    Rails相对较新。我正在尝试调用一个API,它应该向我返回一个唯一的URL。我的应用程序中捆绑了HTTParty。我已经创建了一个UniqueNumberController,并且我已经阅读了几个HTTParty指南,直到我想要什么,但也许我只是有点迷路,真的不知道该怎么做。基本上,我需要做的就是调用API,获取它返回的URL,然后将该URL插入到用户的数据库中。谁能给我指出正确的方向或与我分享一些代码? 最佳答案 假设API为JSON格式并返回如下数据:{"url":"http://example.com/unique-url"

  9. ruby - 我的 Ruby IRC 机器人没有连接到 IRC 服务器。我究竟做错了什么? - 2

    require"socket"server="irc.rizon.net"port="6667"nick="RubyIRCBot"channel="#0x40"s=TCPSocket.open(server,port)s.print("USERTesting",0)s.print("NICK#{nick}",0)s.print("JOIN#{channel}",0)这个IRC机器人没有连接到IRC服务器,我做错了什么? 最佳答案 失败并显示此消息::irc.shakeababy.net461*USER:Notenoughparame

  10. ruby - 我正在学习编程并选择了 Ruby。我应该升级到 Ruby 1.9 吗? - 2

    我完全不是程序员,正在学习使用Ruby和Rails框架进行编程。我目前正在使用Ruby1.8.7和Rails3.0.3,但我想知道我是否应该升级到Ruby1.9,因为我真的没有任何升级的“遗留”成本。缺点是什么?我是否会遇到与普通gem的兼容性问题,或者甚至其他我不太了解甚至无法预料的问题? 最佳答案 你应该升级。不要坚持从1.8.7开始。如果您发现不支持1.9.2的gem,请避免使用它们(因为它们很可能不被维护)。如果您对gem是否兼容1.9.2有任何疑问,您可以在以下位置查看:http://www.railsplugins.or

随机推荐