前言
作者来自北京某不知名985,现在是本科在读学生,专业是数据科学与大数据技术,班上同学都太卷了,没办法,需要学习深度学习,经大佬介绍,在B站上找到了一个很不错的资源,李沐老师的《动手学深度学习v2》,不仅有全套视频,讲解细致,而且配套资料全部公开免费,不用加公众号也不用私别人的vx,我觉得挺不错,在这里做一个学习记录,也想跟大家一起讨论深度学习相关的问题。新的一年,不要摆烂,一起加油!!!
这里附上连接:
1. 引言 — 动手学深度学习 2.0.0 documentation
相关的视频和书籍的pdf都有介绍,可以免费下载,然后还有jupyter,非常nice,ok下面咱们进入正题,本博客的图片基本来自李沐老师的视频
本文章包含了《动手学深度学习v2》视频中的 08
视频合集如下:
08 线性回归 + 基础优化算法【动手学深度学习v2】_哔哩哔哩_bilibili
目录
线性回归
线性回归是我们理解深度学习模型的一个基础
第一个例子:在美国买房
出的价格低于系统估价就赚到了!
那么,影响系统对于房价评估的几个因素有什么呢?这里我们就引入线性回归模型!
引入线性回归
拓展到一般的线性模型
输出的维度是1就是,之所以叫做单层,是因为带权重的只有一层
这里就介绍了神经网络的由来,最初的神经网络确实是可以追溯到神经元的原理的,从神经末梢接收到输入,然后在细胞核进行处理,之后再在髓鞘之间进行信息的传递,如果信号大于阈值,就能传送到下一个髓鞘,但是目前深度学习的发展及其迅速,许多神经网络已经大大超越了该基础模型的概念
区别越小,估计的越准确(没有完全猜中真实值所带来的损失),\frac{1}{2}这个系数出现在这里是方便后面求导的时候消去
对每个预测值与真实值做差后平方,再进行累加后计算其平均值,得到训练损失,我们需要得到一个使得训练损失函数最小的w和b,来构建一个更准确的模型,这里还要有个 是为了方便我们求导后消去
这里我们可以通过计算梯度,并根据凸函数性值令梯度等于0求得最优解,大家可以动手算一算。
这里我们需要注意的是,像这样能求出最优解的模型太过于简单,无法拟合复杂的问题,后面我们碰到的 模型基本都无法取得最优解,只能通过不断进行训练得到较好的解
这里我们复习一下矩阵运算的性质:包括逆矩阵和转置的运算规则
矩阵转置的运算规则:
逆矩阵的运算规则:
接下来大家可以动手算一算上面这个简单的最优解求解问题
基础优化方法
梯度下降法
当模型没有显式解得时候,可以使用梯度下降法进行解决
直观解释
-
首先图中的一圈一圈的线即为等高线,可以理解为类似之类的,首先随机选取一个点我们记为,然后求这一点的梯度,也就在这一点是下降最快的方向,于是我们向着损失函数值更低的一条等高线移动,从而不断降低损失函数的值,从而提高预测的准确度
-
用就得到,其中代表梯度的方向, 朝着梯度方向移动的距离,
-
就像爬山的时候一直沿着当前视线内最陡的地方走
-
学习率为超参数,一般需要人为指定
-
如果太小,计算梯度过多,代价昂贵
-
如果学习率太大,则会一直震荡
就是用随机采样来替代整体的损失函数,从全部数据中取一个batch来进行近似损失
不需要知道显式解是什么,只需要不断求导即可
今天出去玩了一天,没有学很多东西,惭愧,于是具体的代码从零实现就放到明天更新吧,明天一定会干货满满的!!
预告一下,明天有我们线性回归的从零实现,也有利用torch包的快速实现,其中一些比较存有疑问的地方我会在更新之后再更一期说明!加油!!!