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

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春机器学习而来,其中漂亮的图都来自课程截图,如有侵权,联系我,我将删除。

相关推荐
moxiaoran575320 分钟前
uni-app学习笔记二十三--交互反馈showToast用法
笔记·学习·uni-app
scdifsn7 小时前
动手学深度学习12.7. 参数服务器-笔记&练习(PyTorch)
pytorch·笔记·深度学习·分布式计算·数据并行·参数服务器
jackson凌10 小时前
【Java学习笔记】SringBuffer类(重点)
java·笔记·学习
huangyuchi.11 小时前
【Linux】LInux下第一个程序:进度条
linux·运维·服务器·笔记·进度条·c/c++
大写-凌祁12 小时前
论文阅读:HySCDG生成式数据处理流程
论文阅读·人工智能·笔记·python·机器学习
Unpredictable22212 小时前
【VINS-Mono算法深度解析:边缘化策略、初始化与关键技术】
c++·笔记·算法·ubuntu·计算机视觉
傍晚冰川13 小时前
FreeRTOS任务调度过程vTaskStartScheduler()&任务设计和划分
开发语言·笔记·stm32·单片机·嵌入式硬件·学习
Love__Tay14 小时前
【学习笔记】Python金融基础
开发语言·笔记·python·学习·金融
半导体守望者15 小时前
ADVANTEST R3764 66 R3765 67爱德万测试networki connection programming网络程序设计手册
经验分享·笔记·功能测试·自动化·制造
柠石榴16 小时前
【论文阅读笔记】《A survey on deep learning approaches for text-to-SQL》
论文阅读·笔记·深度学习·nlp·text-to-sql