①感知机
解决分类问题
有n个输入数据,通过权重与各数据之间的计算和,比较激活函数结果,得出输出
很容易解决 与或问题
与问题:所有的输入为1,输出就为1
或问题:只要有一个为1,输出就为1
异或问题:相同为0,不同为1
可以利用两个感知机构建出两条直线进行分类
②神经网络基本知识
神经网络组成:
层:输入层、隐层、输出层
组成:结构(神经网络中的权重)、激活函数、学习规则(网络中的权重怎么随着时间推进而调整)
多分类问题:输出是属于哪个类别的概率 输出是有几个类别就输出几个
softmax回归:
经过隐藏层计算后得出各个类别的值------怎么转化---->各个类别的概率
通过softmax函数进行转化----->哪个概率大就属于哪一类
损失计算--交叉熵损失
$$
Hy'(y)=-\sum{y'ilog(yi)}
$$
y'i为真实结果,yi为softmax之后的结果
一个样本就有一个交叉熵损失
目标:减少交叉熵损失,代表预测结果越来越好
③CNN
是属于深度神经网络中的一种(深度是指中间的隐含层有多个,比较深)
CNN与简单神经网络对比
全连接神经网络的缺点:
-
参数过多(比较大的缺陷)。如果有120000个特征,要输出10个类别,那应该有120000*10个权重(过多)
-
层数限制
CNN结构
组成:输入层、隐藏层、输出层(只是隐藏层分为卷积层和池化层)
对于一个样本的特征数据变化:(主要是特征数减少----->最后的全连接层的权重减少)
卷积层:
通过在原始图像上平移来提取特征(实际上就是用于提取特征)
定义过滤器(观察窗口),就是一个观察窗口在原始图像中进行平移移动去获取特征
那这个过滤器需要定义:
-
过滤器大小(就是权重):实际上就是一个矩阵,一般会选择奇数。一般选择1*1的矩阵
3*3(大部分就选择这个)
5*5
-
步长(一次平移多少):移动的像素数量(一般选择1)
输入是55的矩阵,经过过滤器之后变成了33的矩阵(步长为1)
输入是55的矩阵,经过过滤器之后变成了22的矩阵(步长为2)
在进行观察图片的时候,步长设置问题会导致越过图片(就是移动到边界的时候会出现filter覆盖的地方没有图片)--------->零填充(在图片像素周围补上零)
卷积层的输入和输出:
-
输入:向量特征
-
层内四个超参数:
-
Filter数量
-
filter大小
-
步长
-
零填充大小
-
-
输出:观察图片得到结果
激活函数:relu函数
sigmoid激活函数的缺点:
-
采用sigmiod函数时,反向传播求误差梯度时计算量相对大,采用Relu激活函数时整个活成的计算量节省很多
-
对于深层网络,sigmoid函数反向传播时,很容易出现梯度爆炸的情况
增加激活函数:增加网络的非线性分割能力(当没有激活函数的时候很难进行分类,当设置一个激活函数时分类很快)
池化层:
通过特征后稀疏参数来减少学习的参数,降低网络的复杂度(最大池化和平均池化)
主要是进行特征提取,去掉不重要的样本,进一步减少参数数量,Pooling的方法很多,最常用的就是MaxPooling(一般选择2*2的观察窗口,步长也为2)
经过卷积层后池化层的输入是[224,224,64],经过池化层输出是[112,112,64]
进行特征提取:
全连接层:
前面的卷积和池化相当于做特征工程,选择特征,后面的全连接层相当于做特征加权,最后的全连接层在卷积神经网络中起到“分类器”的作用