嵌入式学习-(李宏毅)机器学习(3)-day30

难懂的来了:

第一个式子误差太大,所以用很多的sigmod函数叠加来逼近原始数据的折线就得到第二个式子;第二个式子只是考虑了前一天的数值,但是多考虑前几天的数的话,效果会更好,所以我们将第三个式子引入到第二个式子中,这个时候第四个式子就出现了。

r1, r2, r3的意思是将前三天的浏览量都和一个weight乘再加上一个bias后得出的东西,这个和前一节课讲的一样,可以降低10%的loss左右,就得到r1,r2,r3,如果没有用前三天的数据,只用了前一天的数据,那么这里的 r 也就是 bi+wix1

我们再将这个公式简化为矩阵的形式

我们再将r1,r2,r3通过sigmod 就得到了y

把东西连起来以后就是下面的这个式子

回到机器学习的三个步骤

我们现在改写了第一步,将一个简单的一元一次方程变成了现在这个由多个sigmod函数拼出来的函数而成

来到第二步,我们要定Loss

和之前都是一样的,将这些参数给定一个初始值,写进去,然后把一组feature带进去,估算一下是多少,再看和真实值差多少,差值平均就是Loss

optimization也和之前一样,没有什么不同,就算我们换了一个模型,演算法还是梯度下降

步骤是初始一个值 ,再对每一个未知数计算微分,把微分集合起来以后作为一个向量g,

倒三角形的意思是所有的参数对L做微分,

更新参数和之前的更新是一样的。

我们从所有N拿出来算loss 换成一个batch1拿出来算loss ,叫L1

再算出gradient,拿这个gradient更新参数

再拿另一个batch2,算出来loss,叫L2

再算出gradient,拿这个gradient更新参数

所有的batch更新完了,就叫一个epoch

为什么要分一个一个batch,我们下周才学

超参数就是自己设置的东西,Learning rate,sigmod ,batch 都是超参数

我做了一个epoch训练不知道更新了几次参数,要看batch size有多大

不止有sigmod函数,还有一个叫ReLU这个东西,其实也就是pytorch里面的非线性激活就是这么来的

把下面的ReLU加起来,就是上面的sigmod

不想用sigmod,想用ReLU的话,也可以,但是两个ReLU才可以变成一个sigmod,所以求和下面就是两倍,他们都叫做 Activation function(激活函数)

真实的资料上,100个ReLU有显著差别

接下来我们可以继续改我们的模型

我么可以经过一连串的变换产生a,再将a再做一连串的变换产生a撇,多做几次

要做几次?这又是一个超参数,第二轮的参数也第一轮的参数也不一样。

再加几层,多做几次ReLU,看起来是有进步的

这就是神经网络,就是deep learning

有很多层

为什么要有那么多层而不把这些都集中在一层呢?这个问题后面会讲

现在开始讲 Overfitting 过拟合

什么是over fitting 就是在看过的资料上表现更好,在没看过的资料是表现更差

用训练出来的预测新的东西,用三层的还是四层的,当然用三层的,用没有看过的资料上训练的最好的

相关推荐
西岸行者6 天前
学习笔记:SKILLS 能帮助更好的vibe coding
笔记·学习
悠哉悠哉愿意6 天前
【单片机学习笔记】串口、超声波、NE555的同时使用
笔记·单片机·学习
别催小唐敲代码6 天前
嵌入式学习路线
学习
毛小茛6 天前
计算机系统概论——校验码
学习
babe小鑫6 天前
大专经济信息管理专业学习数据分析的必要性
学习·数据挖掘·数据分析
winfreedoms6 天前
ROS2知识大白话
笔记·学习·ros2
在这habit之下6 天前
Linux Virtual Server(LVS)学习总结
linux·学习·lvs
我想我不够好。6 天前
2026.2.25监控学习
学习
im_AMBER6 天前
Leetcode 127 删除有序数组中的重复项 | 删除有序数组中的重复项 II
数据结构·学习·算法·leetcode
CodeJourney_J6 天前
从“Hello World“ 开始 C++
c语言·c++·学习