嵌入式学习-(李宏毅)机器学习(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 就是在看过的资料上表现更好,在没看过的资料是表现更差

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

相关推荐
一隅论数智4 天前
给AI一张“业务概念地图“:本体如何从哲学走向企业智能
大数据·人工智能·经验分享·笔记·学习·学习方法·政务
XiHongShi20164 天前
STM32F407 RTC定时器例程,建议保存
stm32·单片机·学习
爱吃苹果的日记本4 天前
离散数学第六课
学习·离散数学
AI职业加油站4 天前
AI智能体应用工程师证书:政策红利下的职业新风口
大数据·运维·人工智能·学习·职场发展
旖旎夜光4 天前
力控面试题 01.01: 判定字符是否唯一(位运算) —— 题解
c++·学习·算法·leetcode·力控
奇思妙想聪明勤奋的小羊4 天前
DeepAgents第5章:子Agent 与上下文隔离—让 Agent学会委派
人工智能·python·学习·语言模型
霍霍的袁4 天前
【C++】map 和 set 的使用 | 从用法到底层
开发语言·c++·学习·visual studio
彧azz4 天前
Linux 环境下 Redis 学习总结:数据类型、持久化、锁、事务、主从与缓存问题
linux·redis·笔记·学习·面试
我爱cope4 天前
【操作系统 | 计算机硬件:CPU、内存与 I/O 如何支撑操作系统?】
学习·操作系统