e智团队实验室项目-第一周-神经网络的学习

时间:2022-10-23 19:52:17

e智团队实验室项目-第一周-神经网络的学习

张钊 *, 赵雅玲* , 迟梦瑶,贾小云,赵尉,潘玉,刘立赛,祝大双,李月,曹海艳,

(淮北师范大学计算机科学与技术学院,淮北师范大学经济与管理学院,安徽 淮北)

*These authors contributed to the work equllly and should be regarded as co-first authors.

????欢迎来到深度学习的世界 
????博客主页:卿云阁

????欢迎关注????点赞????收藏⭐️留言????

????本文由卿云阁原创!

????本阶段属于练气阶段,希望各位仙友顺利完成突破

????首发时间:????2022年10月23日????

✉️希望可以和大家一起完成进阶之路!

????作者水平很有限,如果发现错误,请留言轰炸哦!万分感谢!


目录

???? 数字的表示

 ????神经网络

一、神经网络的发展史:

二、神经网络的提出背景:

三、神经网络算法结构

????正向传播和反向传播算法(back propagation algorithm)

????神经网络实战

 

e智团队实验室项目-第一周-神经网络的学习

???? 数字的表示

      灰度图片:在灰色图中会把每一个像素用0-255之间的数字表示,越接近白色,数字越接近255。RGB彩色图片:RGB色彩模式也就是红(Red)、绿(Green)、蓝(Blue)色彩模式。指的是通过R、G、B三个色彩通道,它们相互叠加再得到各式各样的颜色。它们的范围都是0~255,这样叠加起来就能够得到256*256*256=16777216(大约1678w)的颜色种类。一张有颜色的图像由一个三维数组表示。因此,要表示彩色值,我们需要3个维度,也就是3个图像通道,每个像素值用3个数字表示,如(255,255,255)表示白色,(255,0,0)表示红色,(255,255,0)表示黄色。

e智团队实验室项目-第一周-神经网络的学习

为了存储图像,计算机要存储三个独立的矩阵。

e智团队实验室项目-第一周-神经网络的学习

例如,

此图像的存储在计算机中就是这样的,

e智团队实验室项目-第一周-神经网络的学习

# 三维矩阵

[[[231 222 218]

  [227 221 216]

  [219 216 212]

  ...

  [ 24  68  61]

  [ 20  65  56]

  [ 20  65  56]]



 [[231 222 218]

  [227 221 216]

  [219 216 212]

  ...

  [ 24  68  61]

  [ 19  63  56]

  [ 19  64  55]]



 [[236 229 226]

  [232 227 224]

  [223 222 218]

  ...

  [ 23  67  60]

  [ 18  62  55]

  [ 18  62  55]]



 ...



 [[209 205 200]

  [209 205 200]

  [208 204 199]

  ...

  [ 34  83  81]

  [ 38  92  93]

  [ 49 104 107]]



 [[209 205 200]

  [209 205 200]

  [208 204 199]

  ...

  [ 28  78  74]

  [ 41  95  95]

  [ 54 110 111]]



 [[209 205 200]

  [209 205 200]

  [208 204 199]

  ...

  [ 23  73  69]

  [ 40  94  94]

  [ 56 112 113]]]

#B通道 opencv中是按照BGR的顺序存的

[[231 227 219 ...  24  20  20]

 [231 227 219 ...  24  19  19]

 [236 232 223 ...  23  18  18]

 ...

 [209 209 208 ...  34  38  49]

 [209 209 208 ...  28  41  54]

 [209 209 208 ...  23  40  56]]

# G通道

[[222 221 216 ...  68  65  65]

 [222 221 216 ...  68  63  64]

 [229 227 222 ...  67  62  62]

 ...

 [205 205 204 ...  83  92 104]

 [205 205 204 ...  78  95 110]

 [205 205 204 ...  73  94 112]]

# R通道

[[218 216 212 ...  61  56  56]

 [218 216 212 ...  61  56  55]

 [226 224 218 ...  60  55  55]

 ...

 [200 200 199 ...  81  93 107]

 [200 200 199 ...  74  95 111]

 [200 200 199 ...  69  94 113]]

 ????神经网络

一、神经网络的发展史:

McCulloch和Pitts提出该模型的初衷只是为了解释大脑是如何运行的,他们不会想到这个模型会成为神经网络的先驱,为人工智能领域带来天翻地覆的影响。

二、神经网络的提出背景:

1、神经元的结构:

神经元的基本结构包括细胞体和突起两部分。神经元的突起包括的轴突和的树突。神经元与神经元之间相邻接的部位叫突触。一个神经元的轴突末梢经过多次分支,最后每一小支的末端膨大呈杯状或球状,叫做突触小体。这些突触小体可以与多个神经元的细胞体或树突相接触,形成突触。

e智团队实验室项目-第一周-神经网络的学习

 

e智团队实验室项目-第一周-神经网络的学习

 

2、神经元的工作流程:

神经元与神经元之间需要进行信息交换,因此可以把神经元看成“加工”的过程。输入信号从突触(dendrites)进入后,转化为化学信号,经过神经元细胞一系列的处理,最终在轴突末梢(axon terminals)转换为输出信号。借鉴大脑的这一生理结构,我们可以把信号在神经元中的处理过程用激活函数g(z)来抽象表示,因此神经元的等效简单数学模型为:

e智团队实验室项目-第一周-神经网络的学习

 

其中x为输入信号,θ可以理解为用来区分不同神经元的重要程度,毕竟不同神经元对相同外部输入信号的处理过程是不同的。Z可以理解为所有神经元信息的整合,代表整个输入,激活函数g(z) 的输入z一般为:e智团队实验室项目-第一周-神经网络的学习

大脑对外界的反应过程,需要若干个神经元一起工作,这个工作过程可以看成神经网络的处理,因此得到神经网络的结构:

e智团队实验室项目-第一周-神经网络的学习

其中Layer1为输入层;Layer2为隐藏层,隐藏层的层数不局限于单个,可以理解为多个神经元在不同时刻的处理过程;Layer3为输出层,为单层,可以理解为多个神经元在同一时刻的处理过程。根据这一原则,神经网络的结构也可以变身为下图:

e智团队实验室项目-第一周-神经网络的学习

 

其中黄圈的代表输入层,黑圈的代表隐藏层以及蓝圈的代表输出层。

三、神经网络算法结构

1、正向传播(forward propagation)

其中表示第l层的所有神经元把信息传递给第l+1层的第一个神经元,单个值表示l层的第一个神经元的重要程度。

e智团队实验室项目-第一周-神经网络的学习

其中e智团队实验室项目-第一周-神经网络的学习表示第l层的所有神经元把信息传递给第l+1层的第一个神经元,e智团队实验室项目-第一周-神经网络的学习单个值表示l层的第一个神经元的重要程度。

e智团队实验室项目-第一周-神经网络的学习

2、偏差项(bias)的必要性

e智团队实验室项目-第一周-神经网络的学习

e智团队实验室项目-第一周-神经网络的学习 e智团队实验室项目-第一周-神经网络的学习

我也来举个例子,现有一任务,要识别图片中的动物是猫、狗还是猪,加入偏差项的目的是为了区分开输出图像,提高准确率。

3、激活函数g(z)的选取:

当整体输入强度达到某种界限(threshold)时,神经元细胞才会被激活,产生高电平并刺激下一层神经元。就比如说你睡着了,如果要把你叫醒,假设有三个影响因素分别是闹钟、电话、学习任务,这三个影响因素构成的整体的干扰强度超过某一界限才能成功把你叫醒,可能这种说法相对于医学中的神经元作用机制不够严谨,但我相信整体逻辑是相一致的。根据这种作用机制,我们很快就能想到阶跃函数。

(1)阶跃函数的数学表达式为:

e智团队实验室项目-第一周-神经网络的学习

 

但是阶跃函数作为激活函数有一个很大的弊端:在猫、狗、猪的分类问题中,神经网络的输出单元有3个,当阶跃函数作为激活函数时,就会有很大概率出现多个输出单元都为1的情况,而导致无法做出预测。而如果我们可以把输出值变为连续值,通过比较每个输出值的大小来选择类别,便可以改善这一弊端,于是我们就有了线性函数。

(2)线性函数

线性函数的数学表达式为:f(x)=cx,还是以猫、狗、猪的分类为例,假设我们的输入图像是一个小猫,我们会发现最后得到该图像是猫、狗、猪的概率只和C有关,这是我们不想看到的。本质在于输出函数也是一个线性函数,这使得我们不能用来解决非线性分类的问题!因此,为了改善这一弊端,便有了sigmoid函数。

e智团队实验室项目-第一周-神经网络的学习

 

(3)sigmoid函数

sigmoid函数的数学表达式为:

e智团队实验室项目-第一周-神经网络的学习

sigmoid函数能解决之前线性函数带来的弊端,它的弊端在于它的左右两侧斜率很小甚至为0,这会让神经网络的参数在反向传播时有可能会陷入更新速度很慢甚至不更新的情况,不过在现实中,sigmoid函数是最常用的激活函数之一。

(4)Tanh函数

Tanh函数的数学表达式为:

e智团队实验室项目-第一周-神经网络的学习 

 

tanh函数与sigmoid函数作用类似,区别在于两者的值域范围不同,以及tanh在中间区域的导数比sigmoid的要大。除了以上的选项,激活函数还可以选取ReLu,Leaky ReLu以及softmax函数等等。


????正向传播和反向传播算法(back propagation algorithm)

1、正向传播算法

损失函数(怎么衡量参数训练效果的好坏?)

神经网络既可以做分类也可以做回归,针对不同的功能,需要不同的损失函数

e智团队实验室项目-第一周-神经网络的学习

正向传播的整个过程:

第一部分:得到输出

第二部分:计算损失函数

e智团队实验室项目-第一周-神经网络的学习

 

2.反向传播算法

反向传播的整个过程:

怎么去更新参数让效果变得更好?--损失值更小

e智团队实验室项目-第一周-神经网络的学习

 

训练过程:找到使得损失函数最小的权重。

梯度下降:求得每个参数相对于损失函数的偏导,

(用偏导数乘以学习率得到需要改变的量,用原权重减去改变的量,得到新的权重。再进行正向传播,计算新的损失值,重复此过程使得损失函数为零或在设定的范围,完成训练。)

损失函数loss的表示如下:

a是预测值,y是样本标签值

e智团队实验室项目-第一周-神经网络的学习

 

  目的是让损失函数越小越好,我们的目的是找到loss的最小值,loss的值与(w,b)组成,其中,我们用θ表示(w,b),loss是关于其的一个函数。

e智团队实验室项目-第一周-神经网络的学习

 


e智团队实验室项目-第一周-神经网络的学习

 

 


????神经网络实战

1、手写数字识别

灰度图像:

e智团队实验室项目-第一周-神经网络的学习

 

输入层表示输入图像( 64 维向量)本身。如果将各个点的像素值存储在长度为 64 的一维数组的元素中,则可以将其视为 64 维向量来处理。下面通过神经网络来学习使用上述方法得到的 64 维向量。

中间层使用 Sigmoid 等非线性函数计算输入层传来的数据。使维度变大可以学习更加复杂的边界,但是容易发生过拟合。本次设置中间层为 16 维。

输出层也同样使用非线性函数计算中间层传来的数据。本次任务是对 0 ~ 9 这 10 个数字进行 分类。因此,输出层输出的是输入手写图像分别为 0 ~ 9 这 10 个数字的概率。

from sklearn.datasets import load_digits

from sklearn.neural_network import MLPClassifier

from sklearn.model_selection import train_test_split

from sklearn.metrics import accuracy_score

# 读取数据

data = load_digits()

X = data.images.reshape(len(data.images), -1)

y = data.target

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3)

model = model = MLPClassifier(hidden_layer_sizes=(16, ))

model.fit(X_train, y_train) # 训练

y_pred = model.predict(X_test)

accuracy_score(y_pred, y_test) # 评估
  1. 猫、青蛙、车的分类任务

e智团队实验室项目-第一周-神经网络的学习

e智团队实验室项目-第一周-神经网络的学习  

再经过激活函数和一系列的处理,就可以得到每个种类的概率值,再选取最大的概率值当前图片的预测种类。

Institutional Review Board Statement: Not applicable.

Informed Consent Statement: Not applicable.

Data Availability Statement: Not applicable.

Author Contributions:All authors participated in the assisting performance study and approved the paper.

Conflicts of Interest: The authors declare no conflict of interest.