首页 > 其他分享 >李宏毅机器学习笔记:从0到写AI

李宏毅机器学习笔记:从0到写AI

时间:2022-11-30 11:25:47浏览次数:44  
标签:loss Loss AI 李宏毅 模型 笔记 参数 我们 就是

part1.基本介绍

1.机器学习的三个任务

一般情况下,我们在机器学习中有三个基本任务,分别是Regression Classification和Structured

Regression是计算数值解

而Classification则是求离散解(分类),也就是做选择题

Structured则是找一个结构,这种结构除了数据结构,还包括文字、绘画等广义的结构或者说某种意义上,让机器学习了之后创造一种东西出来

2.找函数三步骤

2.1写出一个带有为止参数的函数

image

也就是面对一些我们位置的问题,仙写出一个带有未知参数的函数,也就是先猜测一下我们要如何求这个问题的解,比如一下这个简单的线性函数:

image

image

这个猜测来自于作者对问题本质的了解,我们管这种带未知参数的函数为模型,也就是数学模型

2.2 定义Loss

第二部要定义一个Loss

image

这个所谓的Loss其实就是一个Function,输入的值就是我们定义的未知参数,在上述就是我们给定的b和w(参数,变量是x),这个Loss输出的值代表 现在如果我们把这一组未知的参数设定为某个值的时候,这个数值好还是差。

就像我们在计算一组数据的线性回归方程的时候,是不是会有一部分和实际上的值偏差?某种意义上来说,这个Loss函数就是在对这个偏差值的情况做出评价

image

这里我们可以把每个离散值的误差加起来然后求个平均(原文中引用的视频播放量作为参考,但我觉得这个比较好理解,就随便放张图了)

image

这种就是绝对差值叫MAE Mean Absolute error 还有就是把这个插值的平方算出来的,就叫Mean Square error,或者MSE,作业利用的MAR比较多

image

计算出来得到一个Error surface

2.3 优化

当然了,第三步就是优化问题,最佳化问题的结果,其实也就是我们要去找最好的w和b,让loss最小化

在这们课程里我们会用到的优化方式就只有梯度下降,现在我们简化一下,假设我们的未知参数只有一个,就是w

那当我们有不同的w,就会有不同的 loss,这时候我们的error surface就是一条曲线,如下图:

image

那我们要怎么去找这么一个w呢?

image

看着复杂,其实也就是跟着这条曲线的斜率变化去做调整:斜率为负,则向右找;斜率为正,就向左找

那每次走多少呢?这就涉及到一个调参了:

image

注:loss是自己定义的,所以可以是负的

当然这里老师也注意到了局部最优解的问题,其实我也想到了,就是如果只根据这个逼近“极小值”的方法,其实是找不到最小值的,这个确实是梯度下降方法的一个问题。下面是老师的一段那话:

image

现在我们回到之前的有两个参数的模型,也就是有w和b的那个,这时候我们如何梯度下降呢?

image

这个η就是我们定义的步长,或者说叫learning rate

image

其实由上可以看出,整个loss的收敛方向其实是朝着 多个维度进行的,并不是单指一个方向,当多个维度下的数据都有不同的方向时,其效应就像带有引力的洞一样,会将我们的点向最深不见底的洞吸引过去。

什么时候停下来?两种情况

1.一开始就设定好最多迭代多少次,设定好迭代次数

2.最好的情况就是直接找到了极小值 w' = 0,当然这个...

线性模型

以上三个步骤:定义模型,写出loss,优化参数这三个步骤合起来就被我们称作训练,当然了,这个训练是在我们知道答案的基础上进行的,但是这并不是我们想要的,某种意义上来说这只是对过去规律的总结,真正对于我们重要的是未来的发展,预知未来。

那我们来拿着数据来预测一下试试看

image

然后我们发现,真实的数据和我们预测的数据 还是有很大的差距的,实际的数据有一定的周期,周末看的人多,工作日看的人少,然后七天一个循环

那我们假设给定它一个这样的参数列表:

image

我们之前只考虑了一天,那我们最低的loss是0.58k的误差,其实这里计算出来的误差是0.33k,这两个数据至今的差距,就不言而喻了。

那我们考虑一个月,甚至考虑一年,又怎么样呢?我们管这种模型称作线性模型,之后会浅谈怎么把线性模型做得更好。

part2.基本介绍p2

当然了线性的模型当然是比较简单的,但是现实肯定不可能处处都有线性的模型

标签:loss,Loss,AI,李宏毅,模型,笔记,参数,我们,就是
From: https://www.cnblogs.com/Leventure/p/16937833.html

相关文章

  • Effective C++试读笔记
    Part1习惯C++1.视C++为一个语言联邦C++非常的屌,除了开发效率和编译效率不高,其他的都非常屌C++可以视为一系列的语言联邦构成的紧密结合体,分为以下四个部分C2.C......
  • Linux高级-2.3编辑器vim-笔记
    基础操作建议记住,常用的也就20个命令vi简介vi是“Visualinterface”的简称,它在Linux上的地位就仿佛Edit程序在DOS上一样。它可以执行输出、删除、查找、替换、块操作等众多......
  • Linux高级-2.4在pycharm中使用vim编辑器-笔记
    如果没有Linux系统,可以在windows系统中利用pycharm的JetBrainsPlugins插件模拟使用vim。1.基本使用激活码BIG3CLIK6F-eyJsaWNlbnNlSWQiOiJCSUczQ0xJSzZGIiwibGljZW5zZWVOY......
  • 【服务器数据恢复】nas存储服务器raid6硬盘故障离线导致磁盘阵列失效的数据恢复案例
    服务器数据恢复环境:nas存储服务器,14块硬盘组建raid6磁盘阵列。服务器故障&分析:服务器在正常运行过程中突然有硬盘出现故障离线,导致磁盘阵列失效,服务器无法正常访问了。......
  • 重构:改善既有代码的设计 第七章 读书笔记
    第7章封装7.1封装记录(EncapsulateRecord)曾用名:以数据类取代记录;做法:1- 对持有记录的变量使用封装变量,将其封装到一个函数中。记得为这个函数取一个容易搜......
  • Linux高级-基本命令(二)-笔记
    1.输出重定向命令:>Linux允许将命令执行结果重定向到一个文件,本应显示在终端上的内容保存到指定文件中。如:ls>test.txt(test.txt如果不存在,则创建,存在则覆盖其内容)注......
  • Linux高级-2.1软件安装与卸载-笔记
    更新Ubuntu软件下载地址1.寻找国内镜像源所谓的镜像源:可以理解为提供下载软件的地方,比如Android手机上可以下载软件的91手机助手;iOS手机上可以下载软件的AppStore2.备份Ub......
  • AI大模型驱动智能客服大脑,斩获《哈佛商业评论》数字化转型大奖
    近日,《哈佛商业评论》创刊百年中国年会举办,备受瞩目的“2022·「鼎革奖」数字化转型先锋榜”榜单于会上揭晓,浪潮信息基于“源”大模型的智能客服机器人荣获“年度新技术突破......
  • 主定理学习笔记
    分析复杂度时可能有用。(主定理狗都不学)若有递归式\(T(n)=aT(\dfrac{n}{b})+f(n)\)则分以下三种情况:\(f(n)=O(n^{\log_ba-\epsilon}),\epsilon>0\),此时\(T(n)=\The......
  • Android AIDL相关
    AndroidAIDL相关AIDL是Android接口定义语言(AndroidInterfacedefinitionlanguage)它是一种android内部进程通信接口的描述语言,通过它我们可以定义进程间的通信(IPC)接......