【Datawhale X 李宏毅苹果书 AI夏令营】深度学习详解笔记 1.2
第 1 章 机器学习基础
1.2 线性模型
把输入的特征 乘上一个权重 ,再加上一个偏置 就得到预测的结果,这样的模型称为线性模型(linear model)。
e.g. 根据前七天的观看数据推测接下来的观看数据,模型为:
1.2.1 分段线性曲线
(1)模型
线性模型有很大的限制,这一种来自于模型的限制称为模型的偏差,无法模拟真实的情况。比如线性模型无法拟合分段线性曲线。
所以需要添加一些更复杂的、更有灵活性的、有未知参数的函数。可以用一个常数再加上一群 Hard Sigmoid 函数表示分段线性曲线。Hard Sigmoid 函数是直线组成的分段函数,特性是先水平,再斜坡,再水平。
直接写 Hard Sigmoid 有时不是很容易,但是可以用 Sigmoid 函数来逼近 Hard Sigmoid。
Sigmoid 函数 是一个映射 。表达式是:
一般采用这样的变形来制造各种不同形状的 Sigmoid 函数:
此外,我们可以不只用一个特征,可以用多个特征代入不同的 ,组合出各种不同的函数,从而得到更有 灵活性(flexibility) 的函数。
如果采用 个特征,模型可以表示为:
写成向量矩阵形式:
时的计算过程:
分段曲线可以逼近任何连续曲线。
(2)损失
直接用向量 来统设所有的参数,所以损失函数就变成 。
把一种特征 代进去,得到估测出来的 ,再计算一下跟真实的标签之间的误差 。把所有的误差通通加起来,就得到损失。
(3)优化
对向量 做梯度下降即可,每次按照如下式子更新:
实际使用梯度下降的时候,会把 N 笔数据随机分成一个一个的批量(batch)。拿一个个批量算出来的 L1, L2, L3 来计算梯度。把所有的批量都看过一次,称为一个回合(epoch),每一次更新参数叫做一次更新。
1.2.2 模型变形
HardSigmoid 可以看作是两个修正线性单元(Rectified Linear Unit,ReLU)的加总。
ReLU 的特征是先平后斜,解析式可表示为:
在机器学习里面,Sigmoid 或 ReLU 称为激活函数(activation function)。激活函数为模型引入非线性因素,从而能够学习非线性的关系。
深度学习中,模型中的激活函数称为神经元(neuron),很多的神经元称为神经网络(neural network)。神经网络内部的每一层,称为隐藏层(hiddenlayer),很多的隐藏层就“深”,人们把神经网络越叠越多越叠越深,这套技术称为深度学习。
训练数据和测试数据上的准确率结果不一致,且模型越复杂可能偏差越大,这种情况称为过拟合(overfitting)。深度学习的训练会用到反向传播(BackPropagation,BP),其实它就是比较有效率、算梯度的方法。
1.2.3 机器学习框架
一开始,我们会收集到一堆训练的数据以及测试数据。
训练的过程是 3 个步骤。
- 确定模型。先写出一个有未知数 的函数, 代表一个模型里面所有的未知参数。模型 的意思就是函数叫 ,输入的特征为 ;
- 定义损失。损失 是一个函数,其输入就是一组参数,去判断这一组参数的好坏;
- 最优化模型。解一个优化的问题,找一个 ,该 可以让损失 的值越小越好。让损失的值最小的 为 。
有了 以后,就把它拿来用在测试集上。将模型 里面未知的参数 用 来取代,输入是测试集,输出的结果存起来,上传到 Kaggle 就结束了。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)