问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

深度学习基本概念简介

创作时间:
作者:
@小白创作中心

深度学习基本概念简介

引用
1
来源
1.
https://www.cnblogs.com/GeekDragon/p/18136797

深度学习是当前人工智能领域的核心技术之一,它通过构建多层神经网络来实现对复杂数据的建模和预测。本文将从线性模型的局限性出发,逐步介绍Sigmoid函数、ReLU函数以及神经网络的基本结构,帮助读者理解深度学习的核心概念。

一、Linear Models' Bias

在机器学习中,我们通常会使用线性模型来拟合数据,例如 $y = b + wx_0$。然而,这种简单的线性模型在实际应用中往往存在局限性,因为它无法很好地拟合复杂的非线性关系。

为了克服这一问题,我们可以使用多个线性函数的组合来逼近复杂的曲线。例如,上图中的红色曲线可以通过多个蓝色函数的叠加来近似表示。

二、如何找“蓝色函数”?

为了更好地逼近复杂的函数关系,我们可以使用Sigmoid函数。Sigmoid函数的表达式为:

$$y = c\frac{1}{1 + e ^ {-(b + wx_1)}} = c*sigmoid(b + wx_1)$$

其函数图像如下:

通过调整Sigmoid函数中的参数,我们可以得到不同形状的函数曲线。具体来说:

  • 改变w可以改变sigmoid函数的斜率;
  • 改变b可以左右移动其位置;
  • 改变c可以改变其高度。

因此,我们可以通过组合多个Sigmoid函数来逼近目标函数:

$$y = b + \sum_{i}c_isigmoid(b_i + w_ix_1)$$

三、深度学习里的三个步骤

深度学习的过程可以分为三个主要步骤:定义函数、定义损失函数和优化。

1. Function with unknown parameters

在深度学习中,我们使用更复杂的模型来替代简单的线性模型。具体来说,我们可以将线性表达式代入Sigmoid函数:

$$y = b + \sum_{j}w_jx_j \longrightarrow y = b + \sum_{i}c_isigmoid(b_i + \sum_{j}w_{ij}x_i)$$

其中:

  • (j)代表第(j)个特征(例如第(j)天的点击量);
  • (i)代表选择第(i)个Sigmoid函数;
  • (w_{ij})表示在第(i)个Sigmoid函数中(x_j)的权重。

通过矩阵运算,我们可以将上述表达式简化为:

$$r = b + W x$$

$$\begin{bmatrix}r_1 \ r_2 \ r_3 \end{bmatrix} = \begin{bmatrix}b_1 \ b_2 \ b_3 \end{bmatrix} + \begin{bmatrix} w_{11} & w_{12} & w_{13} \ w_{21} & w_{22} & w_{23} \ w_{31} & w_{32} & w_{33} \end{bmatrix} \begin{bmatrix}x_1 \ x_2 \ x_3 \end{bmatrix}$$

然后将(r)代入Sigmoid函数,记作(a = \sigma(r)),乘上系数(c),再加上(b)就得到最后的(y),即(y = b + c^Ta)。

最终得到:

$$y = b + c^T \sigma({\bf b} + Wx)$$

2. Define Loss from Training Data

损失函数用于衡量模型预测值与真实值之间的差异。定义函数(L(\theta)):

先给定一组参数代入(y = b + c^T \sigma({\bf b} + Wx))计算出(y)的值,然后将其与真实值(label)(\widehat{y})比较,得到误差(e),最后便可得Loss函数的表达式:

$$L = \frac{1}{N}\sum_{n}e_n$$

3. Optimization

优化过程的目标是找到使损失函数最小化的参数值。具体步骤如下:

  • 随机选择初始值(\theta^0)
  • 计算梯度(g = \begin{bmatrix} \dfrac{\partial L}{\partial \theta_1}|{\theta = \theta^0} \ \dfrac{\partial L}{\partial \theta_2}|{\theta = \theta^0} \ . \ . \ . \end{bmatrix})
  • 可以记作:(g =\nabla L(\theta^0))(就是梯度符号)

然后重复计算梯度并更新参数:

$$g =\nabla L(\theta^0)$$
$$\theta^1 \leftarrow \theta^0 - \eta g$$
$$g =\nabla L(\theta^1)$$
$$\theta^2 \leftarrow \theta^1 - \eta g$$
$$g =\nabla L(\theta^2)$$
$$\theta^3 \leftarrow \theta^2 - \eta g$$

还有一种计算方式,将整个L中的数据分成N个batch(批),每批数据中有B个数据,与上面的方法略有差异,每次update时,是依次从每个batch里取出数据来update,当把所有的batch更新过一遍,叫1个epoch(时期)

四、从sigmoid到ReLU

ReLU(Rectified Linear Unit)是另一种激活函数,其表达式为:

$$c*max(0, b + wx_1)$$

使用ReLU函数可以简化模型的表达式:

$$y = b + \sum_{i}c_isigmoid(b_i + \sum_{j}w_{ij}x_i)$$
$$\longrightarrow$$
$$y = b + \sum_{2i}c_{i}max(0, b_i + \sum_{j}w_{ij}x_j)$$

注意换成ReLU函数后,(i)变为原来的2倍,因为2个ReLU函数才能合成一个Sigmoid函数。

五、到底为什么叫Deep Learning?

在深度学习中,我们通过堆叠多层神经元来构建复杂的模型。每一层神经元都使用激活函数(如Sigmoid或ReLU)来处理输入数据。

其中,每一排的神经元称为hidden layer(隐含层)。通过堆叠多层隐含层,模型能够学习到更复杂的特征表示,这就是为什么这种技术被称为Deep Learning

然而,增加层数并不总是能提高模型性能。在实际应用中,过多的层数可能导致overfitting(过拟合),即模型在训练数据上表现很好,但在新数据上泛化能力较差。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号