机器学习笔记(持续更新)

2021课程地址:https://speech.ee.ntu.edu.tw/\~hylee/ml/2021-spring.html

2022课程地址:https://speech.ee.ntu.edu.tw/\~hylee/ml/2022-spring.php

这一节主要为机器学习中的监督式学习的回归问题

1、线性模型机器学习的三个步骤

(1)function with unknown(找一个带有未知参数的函数)

现找一个我们都所熟悉的简单线性函数 y = b + wx

其中b、w为未知参数,我们称b为bias,称w为weight;x为feature。

(2)Define loss function from Training Data(定义损失函数)L(b,w)

假设现在我们已经获取了大量的数据,而我们就是要从大量的数据中找到我们的损失函数。现在我们的目的就是求到b和w,是我们的损失函数最小。

首先我们可以随便选取一组b、w,找到一个x带入,得到y',然后我们与实际x处y的值进行相减,得到差值e,然后我们把我们得到的差值e的绝对值(MAE)累加,得到损失函数

(3)optimization(最优化)

我们不断的去改变b和w的值,使损失函数最小。用到的方法是梯度下降法(Gradient Descent),我们通过学习率(learning rate)控制学习的速度。至于什么时候停止,一种是梯度为0,一种是你不想训练了,这取决于你的迭代次数。

当我们做完上述工作并不是我们的工作就完成了,我们可以通过实验,对比得到的数据,不断地去改进我们的模型。

以上是一种特别简单的线性回归模型,但是我们现实生活中模型是非常复杂的,我们怎么都找不到合适的线性模型解决我们的问题,因此我们就将模型改进,进一步得到分段线性模型。

2、分段线性模型机器学习的三个步骤

其实步骤还是和线性模型一样

(1)function with unknown(找一个带有未知参数的函数)

All Piecewise Linear Curves = content + surn of a set of

上面这个公式的意思就是,将一个常数和若干个折线相加起来就可以得到分段线性模型了

比如这张图,我们想要得到红色的这一条线,我们就使用所有蓝色的线相加起来就可以了,但是问题又来了如果我们碰到曲线这样的怎么办呢?

我们就可以把曲线分成有若干个折线组成的,而我们分的越多就近似为曲线了

但是由于考虑到我们的折线不是很容易表达,我们又把折线近似为曲线,如下图:

这个曲线称为Sigmod Function

其中w、b、c均为未知参数,x为feature。w:change slopes(斜率)、b:shift(平移)、c:change height(高度)// 公式多写了一个c

然后我们可以使用矩阵的方式表达我们下面的这个式子

当然我们去更多的值,不局限于3项

我们可以将用矩阵表示的形式简化为以下公式

(2)Define loss function from Training Data(定义损失函数)L()

损失函数的由来和线性模型相同,得到损失函数的目标也相同,都是找到一组参数使损失函数最小(我们把所有的未知参数统称为

(3)optimization(最优化)

我们将每次得到的损失函数进行微分,就得到了梯度,然后我们将得到的微分值减去梯度乘于学习率得出下一步我们下一步应该往哪里走,进一步得到我们新的损失函数,然后我们可以据此一直循环,就是进行迭代,迭代到你不想迭代为止。

我们还可以将我们得到的数据进行随机分割,分割成的每一组数据叫做batch,然后我们用一组数据对我们的模型进行训练,再用下一组数据进行训练,两组数据训练的递进叫做Update,当我们把所有的数据都完成训练,我们叫做Epoch。

上述介绍了我们如何使用sigmod函数进行机器学习,是否还记得我们曾经说过使用Sigmod进行机器学习是比较简单的,那我们可不可以使用Hard Sigmod进行机器学习训练呢?当然也是可以的,就是BeLU。

3、Rectified Linear Unit(ReLU)

如下图,将第二个图的两个折线相加就可以得到我们的Hard Sigmod:

以上两个函数统称为Activation function (激活函数),当然含有其他的激活函数。

得到的公式就是

最后来总结以下,我们每进行一次的学习称之为1个layer,然后我们用我们训练后的模型再一次进行训练,一直训练,逐次深入,知道不想训练为止,整个过程就叫做深度学习,也叫做神将网络。

但有的时候并不是训练的次数越多就越好,有时候layer次数的增加会带来使误差增大的效果,这种情况我们叫做overfitting。

这只是一个学习笔记,不做任何的商业用途,课程都是基于李宏基老师的2021/2022春机器学习而来,其中漂亮的图都来自课程截图,如有侵权,联系我,我将删除。

相关推荐
咔叽布吉1 小时前
【论文阅读笔记】CamoFormer: Masked Separable Attention for Camouflaged Object Detection
论文阅读·笔记·目标检测
johnny2331 小时前
《大模型应用开发极简入门》笔记
笔记·chatgpt
亦枫Leonlew1 小时前
微积分复习笔记 Calculus Volume 1 - 4.7 Applied Optimization Problems
笔记·数学·微积分·1024程序员节
小肥象不是小飞象1 小时前
(六千字心得笔记)零基础C语言入门第八课——函数(上)
c语言·开发语言·笔记·1024程序员节
星LZX1 小时前
WireShark入门学习笔记
笔记·学习·wireshark
努力变厉害的小超超3 小时前
ArkTS中的组件基础、状态管理、样式处理、class语法以及界面渲染
笔记·鸿蒙
aloha_7897 小时前
从零记录搭建一个干净的mybatis环境
java·笔记·spring·spring cloud·maven·mybatis·springboot
dsywws8 小时前
Linux学习笔记之vim入门
linux·笔记·学习
A-超11 小时前
vue3展示pag格式动态图
笔记
u01015265811 小时前
STM32F103C8T6学习笔记2--LED流水灯与蜂鸣器
笔记·stm32·学习