深度学习三步骤:
step1.定义一个函数y(模型:这个模型可以是简单模型,也可以是多层神经网络)
srep2.定义一个合适的损失函数loss(L(w,b)=|y-y|)用来衡量模型预测值与真实值之间的差异,直到模型进行优化
step3.根据损失对模型进行优化,使得损失函数最小化(预测值与实际值差额越小越好,这样代表模型预测准确度越高),从而提高模型性能
注解:y表示预测值,y表示实际值;
梯度下降算法:这是深度学习中用来优化模型参数的一种常见算法,其通过迭代模型参数,使得损失函数逐渐减小,从而找到使损失函数最小化的参数值
η (learning rate):这是梯度下降算法中一个超参数,他决定了再每次迭代中模型参数更新的幅度大小
η的重要性:
- 学习率过大会导致损失函数再最小值附近来回跳跃,无法稳定,甚至可能导致loss值增加
- 学习率过小会导致收敛速度非常慢,可能需要更多的迭代次数才能达到最优解
注:学习率的选择并没有一个明确的标准,需要根据实际情况灵活调整,所以我们都常常将深度学习称为炼丹,一炉子下去,谁也不知道最后出来的是个什么东西
激活函数:被应用在每一个神经元的输出,决定了该神经元是否应该被激活,从而对下层神经元产生影响,激活函数引入了非线性因素,使得神经网络能够学习和表示更复杂的模式
例题:有激活函数与没有激活函数对于输出来说有什么区别?
- 没有激活函数,那么每一层神经网络实际上都只是执行线性变换(加权输入的线性组合),其实简单来说就是无论你的神经网络模型有多少层,有多么庞大,它最后的行为等同于一个单层的简单神经网络模型,但是现实中问题都不会是简单的线性关系,更多的是非线性关系
- 有激活函数,每个神经元的输出在激活函数的作用下,可以做到非线性变换,使得神经网络能够逼近任意复杂的非线性函数
具体例子:
设有一个简单的两层神经网络,没有激活函数的情况下,其计算过程可以简化为:
y = W_2(W_1x + b_1) + b_2
这里W_1, W_2是权重矩阵,b_1, b_2是偏置项,x是输入向量。可以看到,这个表达式本质上是一个线性变换。
如果有激活函数,比如ReLU,则计算过程变为:
y = W_2 *ReLU(W_1x + b_1) + b_2
在这种情况下,尽管形式上看似增加了复杂度,但实际上赋予了网络学习非线性映射的能力,这对其性能至关重要。
常见的激活函数:
- Sigmoid函数:
公式:f(x)=1/(1+)
函数图像:

2.ReLU函数
公式:f(x)=mac{0,x};
函数图像:

拟合:构建一个数学模型(例如回归模型或者分类模型),使之能够最好地逼近给定的数据集(其实就是预测结果与实际结果高度重合),但是在实践中模型往往面临过拟合或欠拟合的问题
过拟合:当模型过于复杂时,它可能会学习到训练数据中的噪声和细节,而不是普遍的模式。这样的模型在训练数据上表现很好,但在新数据上的泛化能力较差。(可以理解为让复杂模型从数据中学习一般规律,但是模型把数据学习的过分详细,使之得出的规律并不太普遍)
欠拟合:如果模型过于简单,它可能无法捕捉数据中的所有相关模式和关系,导致在训练数据和新数据上都表现不佳

913

被折叠的 条评论
为什么被折叠?



