A.深度学习基础入门篇[一]:神经元简介、单层多层感知机、距离计算方法式、相似度函数

在这里插入图片描述
【深度学习入门到进阶】必看系列,含激活函数、优化策略、损失函数、模型调优、归一化算法、卷积模型、序列模型、预训练模型、对抗神经网络等

在这里插入图片描述
专栏详细介绍:【深度学习入门到进阶】必看系列,含激活函数、优化策略、损失函数、模型调优、归一化算法、卷积模型、序列模型、预训练模型、对抗神经网络等

本专栏主要方便入门同学快速掌握相关知识。声明:部分项目为网络经典项目方便大家快速学习,后续会不断增添实战环节(比赛、论文、现实应用等)

专栏订阅:深度学习入门到进阶专栏

1.神经元

在生物学中,神经元细胞有兴奋与抑制两种状态。大多数神经元细胞在正常情况下处于抑制状态,一旦某个神经元受到刺激并且电位超过一定的阈值后,这个神经元细胞就被激活,处于兴奋状态,并向其他神经元传递信息。基于神经元细胞的结构特性与传递信息方式,神经科学家 Warren McCulloch 和逻辑学家 Walter Pitts 合作提出了“McCulloch–Pitts (MCP) neuron”模型。在人工神经网络中,MCP模型成为人工神经网络中的最基本结构。MCP模型结构如 图1 所示。

图1 MCP 模型结构

从 图1 可见,给定 n 个二值化(0或1)的输入数据 x i x_i xi(1≤i≤n)与连接参数 w i w_i wi(1≤i≤n),MCP 神经元模型对输入数据线性加权求和,然后使用函数 Φ()将加权累加结果映射为 0 或 1 ,以完成两类分类的任务: y = Φ ( ∑ n i = 1 w i x i ) y=Φ(∑_{n_i=1}w_ix_i) y=Φ(ni=1wixi)

其中 w i w_i wi为预先设定的连接权重值(一般在 0 和 1 中取一个值或者 1 和 -1 中取一个值),用来表示其所对应输入数据对输出结果的影响(即权重)。Φ()将输入端数据与连接权重所得线性加权累加结果与预先设定阈值 θ进行比较,根据比较结果输出 1 或 0。

具体而言,如果线性加权累加结果(即 ∑mi=1wixi)大于阈值 θ,则函数 Φ()的输出为1、否则为0。也就是说,如果线性加权累加结果大于阈值 θ,则神经元细胞处于兴奋状态,向后传递 1 的信息,否则该神经元细胞处于抑制状态而不向后传递信息。

从另外一个角度来看,对于任何输入数据 x i x_i xi(1≤i≤n),MCP 模型可得到 1 或 0 这样的输出结果,实现了将输入数据分类到 1 或 0 两个类别中,解决了二分类问题。

2.单层感知机

2.1单层感知机模型¶

1957年 Frank Rosenblatt 提出了一种简单的人工神经网络,被称之为感知机。早期的感知机结构和 MCP 模型相似,由一个输入层和一个输出层构成,因此也被称为“单层感知机”。感知机的输入层负责接收实数值的输入向量,输出层则为1或-1两个值。单层感知机可作为一种二分类线性分类模型,结构如 图2 所示。

单层感知机的模型可以简单表示为: f ( x ) = s i g n ( w ∗ x + b ) f(x)=sign(w∗x+b) f(x)=sign(wx+b)

对于具有 n个输入 x i x_i xi以及对应连接权重系数为 w j w_j wj的感知机,首先通过线性加权得到输入数据的累加结果 z z z z = w 1 x 1 + w 2 x 2 + . . . + b z=w_1x_1+w_2x_2+...+b z=w1x1+w2x2+...+b。这里 x 1 , x 2 , . . . , x n x_1,x_2,...,x_n x1,x2,...,xn为感知机的输入,w1,w2,…,wn
为网络的权重系数,b为偏置项( b i a s bias bias)。然后将 z z z作为激活函数 Φ(⋅)的输入,这里激活函数 Φ(⋅)为 s i g n sign sign函数,其表达式为:

{ + 1 x ≥ 0 − 1 x < 0 \begin{cases}+1 & x \geq0 \\-1 & x < 0\end{cases} {+11x0x<0

Φ(⋅)会将 z z z 与某一阈值(此例中,阈值为0)进行比较,如果大于等于该阈值则感知器输出为 1,否则输出为 −1。通过这样的操作,输入数据被分类为 1或 −1这两个不同类别。

2.2 训练过程

给定一个 n维数据集,如果它可以被一个超平面完全分割,那么我们称这个数据集为线性可分数据集,否则,则为线性不可分的数据集。单层感知机只能处理线性可分数据集,其任务是寻找一个线性可分的超平面将所有的正类和负类划分到超平面两侧。单层感知机与 M C P MCP MCP模型在连接权重设置上是不同的,即感知机中连接权重参数并不是预先设定好的,而是通过多次迭代训练而得到的。单层感知机通过构建损失函数来计算模型预测值与数据真实值间的误差,通过最小化代价函数来优化模型参数。

其具体的训练过程为:

2.3 单层感知机存在的问题¶

图4 单层感知机模拟不同逻辑函数功能的示意图

单层感知机可被用来区分线性可分数据。在 图3 中,逻辑与(AND)、逻辑与非(NAND)和逻辑或(OR)为线性可分函数,所以可利用单层感知机来模拟这些逻辑函数。但是,由于逻辑异或(XOR)是非线性可分的逻辑函数,因此单层感知机无法模拟逻辑异或函数的功能。

3. 多层感知机

由于无法模拟诸如异或以及其他复杂函数的功能,使得单层感知机的应用较为单一。一个简单的想法是,如果能在感知机模型中增加若干隐藏层,增强神经网络的非线性表达能力,就会让神经网络具有更强拟合能力。因此,由多个隐藏层构成的多层感知机被提出。

如 图5所示,多层感知机由输入层、输出层和至少一层的隐藏层构成。网络中各个隐藏层中神经元可接收相邻前序隐藏层中所有神经元传递而来的信息,经过加工处理后将信息输出给相邻后续隐藏层中所有神经元。

在多层感知机中,相邻层所包含的神经元之间通常使用“全连接”方式进行连接。所谓“全连接”是指两个相邻层之间的神经元相互成对连接,但同一层内神经元之间没有连接。多层感知机可以模拟复杂非线性函数功能,所模拟函数的复杂性取决于网络隐藏层数目和各层中神经元数目。

4.向量距离与相似度

假设当前有两个 n n n维向量 x x x y y y(除非特别说明,本文默认依此写法表示向量),可以通过两个向量之间的距离或者相似度来判定这两个向量的相近程度,显然两个向量之间距离越小,相似度越高;两个向量之间距离越大,相似度越低。

4.1 常见的距离计算方式¶

4.1.1 闵可夫斯基距离(Minkowski Distance)

Minkowski Distane 是对多个距离度量公式概括性的表述,当p=1时,Minkowski Distane 便是曼哈顿距离;当p=2时,Minkowski Distane 便是欧式距离;Minkowski Distane 取极限的形式便是切比雪夫距离。

 Minkowski Distance  = ( ∑ i = 1 n ∣ x i − y i ∣ p ) 1 p \text { Minkowski Distance }=\left(\sum_{i=1}^n\left|x_i-y_i\right|^p\right)^{\frac{1}{p}}  Minkowski Distance =(i=1nxiyip)p1

4.1.2 曼哈顿距离(Manhattan Distance)

 Manhattan Distance  = ( ∑ i = 1 n ∣ x i − y i ∣ ) \text { Manhattan Distance }=\left(\sum_{i=1}^n\left|x_i-y_i\right|\right)  Manhattan Distance =(i=1nxiyi)

4.1.3 欧式距离/欧几里得距离(Euclidean distance)

 Euclidean Distance  = ∑ i = 1 n ( x i − y i ) 2 \text { Euclidean Distance }=\sqrt{\sum_{i=1}^n\left(x_i-y_i\right)^2}  Euclidean Distance =i=1n(xiyi)2

4.1.4 切比雪夫距离(Chebyshev Distance)

lim ⁡ p → ∞ ( ∑ i = 1 n ∣ x i − y i ∣ p ) 1 p = max ⁡ ( ∣ x i − y i ∣ ) \lim _{p \rightarrow \infty}\left(\sum_{i=1}^n\left|x_i-y_i\right|^p\right)^{\frac{1}{p}}=\max \left(\left|x_i-y_i\right|\right) limp(i=1nxiyip)p1=max(xiyi)

4.1.5 明距离(Hamming Distance)

在信息论中,两个等长字符串之间的海明距离是两个字符串对应位置的不同字符的个数。假设有两个字符串分别是: x = [ x 1 , x 2 , . . . , x n ] x=[x1,x2,...,x_n] x=[x1,x2,...,xn] y = [ y 1 , y 2 , . . . , y n ] y=[y1,y2,...,y_n] y=[y1,y2,...,yn],则两者的距离为:

\text { Hamming Distance }=\sum_{i=1}^n \mathrm{II}\left(x_i=y_i\right)

其中 I I II II表示指示函数,两者相同为1,否则为0。

4.1.6 KL散度

给定随机变量 X X X和两个概率分布 P P P Q Q Q,KL散度可以用来衡量两个分布之间的差异性,其公式如下:

K L ( P ∥ Q ) = ∑ x ∈ X p ( x ) log ⁡ P ( x ) Q ( x ) K L(P \| Q)=\sum_{x \in X} p(x) \log \frac{P(x)}{Q(x)} KL(PQ)=xXp(x)logQ(x)P(x)

5.常见的相似度函数

5.1 余弦相似度(Cosine Similarity)

 Cosine Similarity  = x ⋅ y ∣ x ∣ ⋅ ∣ y ∣ = ∑ i = 1 n x i y i ∑ i = 1 n x i 2 ∑ i = 1 n y i 2 \text { Cosine Similarity }=\frac{x \cdot y}{|x| \cdot|y|}=\frac{\sum_{i=1}^n x_i y_i}{\sqrt{\sum_{i=1}^n x_i^2} \sqrt{\sum_{i=1}^n y_i^2}}  Cosine Similarity =xyxy=i=1nxi2 i=1nyi2 i=1nxiyi

5.2皮尔逊相关系数 (Pearson Correlation Coefficient)

给定两个随机变量X和Y,皮尔逊相关系数可以用来衡量两者的相关程度,公式如下:

ρ x , y = cov ⁡ ( X , Y ) σ X σ Y = E [ ( X − μ X ) ( Y − μ Y ) ] σ X σ Y = ∑ i = 1 n ( X i − X ˉ ) ( Y i − Y ˉ ) ∑ i = 1 n ( X i − X ˉ ) 2 ∑ i = 1 n ( Y i − Y ˉ ) 2 \begin{aligned} \rho_{x, y} & =\frac{\operatorname{cov}(X, Y)}{\sigma_X \sigma_Y}=\frac{E\left[\left(X-\mu_X\right)\left(Y-\mu_Y\right)\right]}{\sigma_X \sigma_Y} \\ & =\frac{\sum_{i=1}^n\left(X_i-\bar{X}\right)\left(Y_i-\bar{Y}\right)}{\sqrt{\sum_{i=1}^n\left(X_i-\bar{X}\right)^2} \sqrt{\sum_{i=1}^n\left(Y_i-\bar{Y}\right)^2}} \end{aligned} ρx,y=σXσYcov(X,Y)=σXσYE[(XμX)(YμY)]=i=1n(XiXˉ)2 i=1n(YiYˉ)2 i=1n(XiXˉ)(YiYˉ)

其中 μ X μ_X μX μ Y μ_Y μY分别表示向量X和Y的均值, σ X σ_X σX σ Y σ_Y σY分别表示向量X和Y的标准差。

5.3Jaccard 相似系数(Jaccard Coefficient)

假设有两个集合X和Y(注意这里的两者不是向量),则其计算公式为:

Jaccard ⁡ ( X , Y ) = X ∪ Y X ∩ Y \operatorname{Jaccard}(X, Y)=\frac{X \cup Y}{X \cap Y} Jaccard(X,Y)=XYXY

  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
单层感知机无法解决异或门问题,因为异或门不是线性可分的。但是,可以通过堆叠多个单层感知机来实现多层感知机,从而解决异或门问题。 具体地,可以使用一个含有两个隐层节点的两层感知机来实现异或门函数。其中,第一层由两个单层感知机组成,每个单层感知机有两个输入节点和一个输出节点;第二层仅有一个输出节点,它的输入是第一层的输出。具体的实现如下: 1. 对于输入为 (0,0) 或 (1,1),输出为 0; 2. 对于输入为 (0,1) 或 (1,0),输出为 1。 其中,第一层的两个单层感知机的权重和阈值如下所示: 对于第一个单层感知机(输入为 $x_1$ 和 $x_2$,输出为 $y_1$): $w_{11} = -1, w_{12} = 1, \theta_1 = 0$ 对于第二个单层感知机(输入为 $x_1$ 和 $x_2$,输出为 $y_2$): $w_{21} = 1, w_{22} = -1, \theta_2 = 0$ 第二层的输出节点的权重和阈值如下所示: $w_{31} = 1, w_{32} = 1, \theta_3 = -1.5$ 其中,$w_{ij}$ 表示连接第 $i$ 层的第 $j$ 个节点和第 $i+1$ 层的第 $j$ 个节点的权重,$\theta_i$ 表示第 $i$ 层的阈值。 这样,当输入为 (0,0) 或 (1,1) 时,第一层的两个单层感知机的输出均为 0,第二层的输出节点的输入为 0,因此输出为 0;当输入为 (0,1) 或 (1,0) 时,第一层的两个单层感知机的输出分别为 1 和 -1,第二层的输出节点的输入为 0,因此输出为 1。 这样,就实现了异或门函数的定义。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

汀、人工智能

谢谢支持

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值