zoukankan      html  css  js  c++  java
  • 跟我学算法-图像识别之图像分类(上)(基础神经网络, 卷积神经网络(CNN), AlexNet,NIN, VGG)

    1.基础神经网络:

        输入向量x,权重向量w, 偏置标量b, 激活函数sigmoid(增加非线性度)

                   优化手段: 梯度下降优化, BP向后传播(链式规则)

                    梯度下降优化: 

                                1. 使用得目标函数是交叉熵  c = 1/nΣΣ[yj*lnaj^2 + (1-yj)*ln(1-aj^2)]  yj表示得是样本标签, aj表示的是输出值
                                2.批量梯度下降:每次迭代一部分样本,进行参数跟新。

                                3. 随机梯度下降:每次迭代只选择单个样本

                                4. 梯度更新的方向:选择动量算法(momentum),思想是指数加权平均

    2. 卷积神经网络(CNN)

                     CNN的基本层:

                            卷积层  - 卷积层和激活层

                            池化层 - (平均池化, 最大化池化)

                            全连接层(Fully - Connected layer)

                            批归一化层

                     CNN卷积层:

                           3D滤波器卷积核:
                                 以扫描窗的方式对图像做卷积

                                 每层含有多个核,每个核对应输出通道

                                 提取局部特征

                                 权重参数自学习

                                 参数共享: 指的是这些参数用一个神经元来扫描一张图

                           (output number) 滤波器, 卷积核数量

                            核尺寸 (kernel size)

                             步长(stride)

                             零填充(zero padding)

                            卷积后的尺寸计算(W, H, D)

                                      W = (W - size + 2*padding)/stride + 1 

                                      H = (H - size + 2*padding)/stride + 1 

                                      D = output number 

                              对于输入的卷积,我们通常使用权值相加,即每个输出层与卷积核分别点乘。

                              卷积层中的非线性激活函数:

                                        sigmoid, Relu

                               sigmoid  :  б(z)=  1 / (1+e^-z)

                               Relu :  б(z)= max(0, x), 分段线性函数, 无饱和问题,明显减轻了梯度消失得问题,一定程度上可以提高通道得深度

                      CNN池化层

                              作用:特征融合,降维

                              特点: 无参数需要学习

                              超参数: 尺寸, 步长

                              计算类别: 最大化池化, 平均池化
                        CNN全连接层 

                               作用: 推理器, 分类器

                                           普通神经网络

                                            全局感受野, 去除空间信息。

                                            需要学习参数

                                            等效于全局卷积

                               CNN-softmax: 指数归一化函数,将一个实数值向量压缩到(0, 1),使得所有元素和为1 

                                                        б(Z) = e^zj / (Σe^zj)

            最后一层是全连接层,为了得到1000类标签的概率

                                 loss =Σ -yi * log(ai)  ai表示的是预测的结果, yi表示的是当前的标签        

                          图像像素中心化

                                    (R,G,B)减去各自通道的均值

                           防过拟合,提高泛化能力

                                     1.数据增强*10 (数据量增强)

                                            256*256 提取中心和边缘,使得图片的维度变成224*224, 图片的数目*5 

                                            水平翻转  图片的数目*2

              2. droupout

                                            训练过程中,随机让一些神经元的输出设为0 

                                      3. weight decay 权重衰减(L2正则)

                                            C = C0 + λ/2n * ΣW^2   λ表示衰减系数, n表示参数个数,ΣW^2表示参数的平均加和

    3. AlexNet

                五个卷积层 + 三个全连接层

                      进行了一次分组计算

                 新技术: 

                      Relu非线性激活

                      MaxPooling 池化

                      Dropout regulation (dropout正则化)

                      局部相应归一化: 在某个位置上实现跨通道的归一化
                输入图片 224*224*3, 第一层卷积的尺寸,11*11*3 *96  第二层卷积尺寸,256*5*5*48, 第三层卷积尺寸, 384*3*3*256,第四层卷积尺寸, 384*3*3*192, 第五层卷积,256*3*3*192

    4.NIN 

               提出了1*1卷积的思想,一般有增加通道数的作用,也可用来降低,以此来使数据的特征更加的紧凑

                提高CNN的局部感知区域

                卷积层 -> 1*1卷积层 -> Max池化层, 

    5. VGG网络

             思想是一个大卷积分解成多个小卷积核的过程

             核分解:7*7 - 3个3*3的卷积核,每次卷积以后由relu连接

             参数数量 49C2 - > 27C2

             减少了参数,降低计算,增加深度,VGG的深度是16, alexNEt的深度为8 

                          

              

  • 相关阅读:
    php 内置的 webserver 研究。
    php 系列
    git 以及 github 使用系列
    中午和同事聊天,了解的一点网络方面的东西。
    javascript中0.01*2324=23.240000000000002 ?
    javascript的 replace() 方法的使用讲解
    PHP中的ORM
    javascript 函数 add(1)(2)(3)(4)实现无限极累加 —— 一步一步原理解析
    animate.css
    面向对象编程
  • 原文地址:https://www.cnblogs.com/my-love-is-python/p/9792130.html
Copyright © 2011-2022 走看看