https://www.bilibili.com/video/av27935126/?p=1

第一课:开发环境的配置

Anaconda的安装

库的安装

WindowsTensorFlow的安装

Jupyternotebook 可视化方便,但不能debug

 

第二课:IDE的使用

PyCharm

Eclipce的下载安装环境配置

 

第三课:一个简单的神经网络的代码实现

使用jupyternotebook演示敲代码的过程

例子:只有一个隐藏层的神经网络

不懂:

1.正常传播和反向传播的计算 ,为什么反向计算是x*(1-x)

2.反向:传播时,delta error计算时表示的意义。

 

第四课:对比一下神将网络和softmax区别(说明神经网络的强大)

Softmax分类器的表现:

将一个平面线性(直线)分类为3个区域

神经网络的表现:可以表现出非线性(曲线)分类

 

容易过拟合,体现在训练时表现很好,测试时就表现不理想了。

少量的异常点将严重影响,导致过拟合。

 

第五课:图片分类,多分类问题

5000张训练图片,用来找到最好的wb的值;

500张测试图片

十种分类,用softmax分类函数解决多分类问题。

视频老师的QQ:474241623

还有第六课课也没有看完

 

2018812日星期日

深度学习基础下篇

https://www.bilibili.com/video/av28005781?p=2

第一课:卷积神经网络的应用

分类

推荐(像是图片推荐)

检测(在哪里,是什么)

语义分割(图像分割)

自动驾驶

人脸检测(找关键点)

人的姿势判断,找人的关节

医学疾病识别

汉字识别

路标识别

读图片内容 语义

图片合成(CVPRappPrisma

(内容加风格 产生新的图片)

 

第二课:卷积神经网络

复习神经网络的概念:

全连接层

激活函数

反向传播 lossw2 w1 w0

梯度计算  梯度的反向传播

 

第三课:卷积神经网络(激活之前需要卷积,激活之后需要池化)

组成:

input输入层

conv卷积层(增加了)

Relu激活函数

pool池化层(增加了) 西瓜书称之为 采样层

FC全连接层

 

什么是卷积?特征提取的过程

Filter 过滤器/核函数:提取特征(视频老师称filter为提取特征的 小助手)

卷积操作的作用:用来提取特征;卷积次数少时提取的特征称为低微特征,多次之后就称为高维特征(一种说法)

对图像的相同区域提取多次不同的特征,得到多个特征图,作为一次卷积的结果。

 

卷积的计算过程,图片是一个三维的数据,一张原始图分解成有RGB的三张图,卷积计算的过程中每张图之间是单独处理的;图片中的像素点就是输入x;

 

感受野(每次处理的一小块区域)

 

卷积之后图片的大小

感受野是一个小区域。

特征图的大小计算公式(需要其保持不变):(w-f)/s +1

w:原始图片的宽度

f:感受野的宽度

S:感受野右移的步长

 

第四课:特征图的生成过程,pad的设置和使用

增加pad(在原始图片周围增加一圈或者多圈0值,相当于增加原始图片的宽度和高度),保证多次卷积之后,特征图的大小保持不变。

注意:设置的感受野大小和步长必须合理,即使计算公式结果是整数;

通常的取值:感受野的大小 周围0圈的大小对应关系

F=3时,pad=1

F=5时,pad=2

F=7时,pad=3

 

卷积中的参数共享原则:提取每一层特征图时的权重wb都是相同的。w的个数是感受野中点的个数*3RGB三层都需要设置权重w*特征图的层数;

一次卷积操作时,会将RGB三层原始图片,转成多层特征图。对于同一个感受野,不同的RGB层和不同的特征层,对应不同的权重;但对同一个感受野,不同的RGB使用相同的b,不同的特征图使用不同的b;

目的是减少参数wb的数量,如果每一个感受野计算的每一个特征成参数全部不相同的话,参数太多,计算难度急剧增加,且容易过拟合。

 

第五课:池化层

卷积层不改变图片的大小;改变图片的深度(将RGB3层,转正多层特征层)

池化层改变图片的大小;不改变图片的深度;

例如:

maxpooling:提取其中最大那个特征作为新的特征(通常是将4个中提取一个最大的)。

Avgpooling:(提取平均的特征值),基本会使用这种方法了。

整体的神经网络过程通常是:

多次循环conv  relu  conv  relu  pool之后再全连接处理

 

第六课:case study  论文举例讲解 卷积 池化 全连接

AlexNet     Krizheskuu et al.2012

感受野大小:11*11  5*5

池化的大小:

VGGNet     Simonyan and Zisserman,2014

感受野大小:3*3 更小提取的特征更加细腻

池化的大小:2*2中提取一个

 

深度残差网络(深度学习的趋势,他的层数越多,效果越好,计算量却不会明显增加) 可以达到120

全连接层的参数远多于前面卷积时的参数。池化使不使用参数的。

 

第七章:卷积神经网络 应用实例

分类和定位(classification and location

应用在:

对图片分类

对图片中的对象分类并定位

目标检测(detectionfaster CNN

分割

 

用回归来定位,通过不断找到更加合适的区域(方框)来定位;

实现分类和定位的过程:

最后是两个全连接层, 用来分类、回归定位

步骤1:训练一个分类模型(alexNet, VGG , GoogleNet

参数初始化:第一种是高斯初始化,自己训练,通常很慢;第二种是fine tune 直接使用别人训练好的参数,只需要改变最后的全连接层的参数。

步骤2:更具自己的实际需求更改全连接层。

步骤3:训练,使用SGD随机梯度下降 和L2 loss值的计算(如使用欧式距离)来评估训练效果。

步骤4:测试,同时得到分类和定位。

回归模块添加在哪里?卷积层之后还是全连接层之后,效果通常差别较大,试了才知道效果。

 

应用在人体关键点检测 pose estimation

 

概念:滑动窗口Sliding window 。特点:思路简单,计算量大

取不同的scale 大小变换,进行滑动窗口测试。因为在不同图中的大小会不同,所以需要使用不容的窗口大小来滑动。

 

不同的卷积神经网络在imageNet 中的表现:

AlexNet2012  <  overFeat 2013  <  VGG  <  resNet(2015深度残差网络)(有一个经典的例子是134152层)

 

第八章:物体检测

RCNN

Region proposals 区域建议, RCNN的处理方法是一张图提取2K个框再处理。

实现的方法:Selective serach,将相邻的相似的区域归为一种,最后就将一张图分割层多个对象。

 

RCNN 2014是 物体检测的开篇之作

套用RCNN的步骤:

步骤1fine tune ,使用别人的卷积参数

步骤2:更改最后的全连接层(改成我们自己要的分类数量,改成20个分类)

步骤3:卷积提取特征,将池化处理后的数据存储在磁盘上,

步骤4:从磁盘上提取特征,再使用分类方法。使用SVM分类20个种类。

步骤5:从磁盘上提取特征,再使用回归定位。

 

数据集:data set

20180813视频笔记 深度学习基础上篇(1)之必备基础知识点 深度学习基础上篇(2)神经网络模型视频笔记:深度学习基础上篇(3)神经网络案例实战     和    深度学习基础下篇

 

RCNN 的缺点:

测试时间慢

特征先存储后提取来分类和定位

 

Fast R-CNN 改进:1.卷积共享 2.将所有操作整合在一起(end to end),使用两个全连接层,分别在实现分类和定位(集成在了神经网络中,CNN是分成两段实现的)

20180813视频笔记 深度学习基础上篇(1)之必备基础知识点 深度学习基础上篇(2)神经网络模型视频笔记:深度学习基础上篇(3)神经网络案例实战     和    深度学习基础下篇

20180813视频笔记 深度学习基础上篇(1)之必备基础知识点 深度学习基础上篇(2)神经网络模型视频笔记:深度学习基础上篇(3)神经网络案例实战     和    深度学习基础下篇

测试一张图片需要2.3秒。

 

Fater RCNN  https://www.bilibili.com/video/av28005781/?p=8

将分类的特征框提取Selective serach改进

Fast cnn 是将Selective serach和卷积网络 单独处理

Faster cnn 将特征提取Region proposals和卷积集成在一起,之后再分类处理,更快。

 

Faster RCNN : region Proposal network CNN之后,利用卷积层数据提取候区域。 将每一个框变换成9种不同大小的框来处理。

 20180813视频笔记 深度学习基础上篇(1)之必备基础知识点 深度学习基础上篇(2)神经网络模型视频笔记:深度学习基础上篇(3)神经网络案例实战     和    深度学习基础下篇

20180813视频笔记 深度学习基础上篇(1)之必备基础知识点 深度学习基础上篇(2)神经网络模型视频笔记:深度学习基础上篇(3)神经网络案例实战     和    深度学习基础下篇

 

 20180813视频笔记 深度学习基础上篇(1)之必备基础知识点 深度学习基础上篇(2)神经网络模型视频笔记:深度学习基础上篇(3)神经网络案例实战     和    深度学习基础下篇

 

 

第九课:技巧:设计神经网络的技巧,注意事项

2018813日星期一

感受野大小的变化

连续的多次卷积之后,图层的大小不会改变,但是每一个像素点能表示的原始图片的信息更多。

 

得到一个7*7的感受野的方法(一个点表示原始图像的49个像素点)

第一种模型:直接卷积一次,用7*7的感受野(卷积一次),7*7=49个参数

第二种模型:用三次3*3的卷积(连续卷积3次),3*3*3=27个参数

第二种模型的优势:参数更少,非线性更强(3个激活函数ReLU

 

深度残差网络:先1*1卷积,再3*3,再1*1

Pooling之后图片会变小,可能会丢失一些信息,通常会通过增加pool之后的层数来弥补可能造成的不必要的信息丢失。(常见的的层数翻倍)

 

第十课:技巧:数据增加,扩展数据

原因:深度学习,数据越多越好;数据越多,模型越不容易过拟合。

图片处理方法:

  1. 图片翻转(左右镜像变化)
  2. Random crops/scales  图片随机裁剪/大小变换,模拟对面出现遮挡的情况
  3. 平移
  4. 旋转
  5. 拉升
  6. 压缩
  7. ……

图片处理是将多种方法混合处理,随机选择做种方法,随机选择多种具体的处理参数(如左右平移的距离大小,旋转角度)

 

第十一课:技巧:transfer learning

目的/原因:节约大量训练时间,别人通常都是训练一两天的到的;

模型:数据量不够时。使用公认的比较好的模型(要求别人的训练数据集和自己的相识,如人脸识别)来使用,

步长:Transfer learning 时,自己只需要微调,步长的设置通常是正常设置时的0.1倍,或者更小,因为只需要在别人的基础上微调参数。

自己的数据越大,借用的模型越匹配越好,只需要Finetune a few layers 更改一点;

数据足够,但模型不相似,就大改别人的模型 finetune a larger number of layers

模型刚好,但数据不够时,use liner classifter on top layer;

 

模型在哪里找?

Model zoo

Http://github.com/BVLC/caffe/wiki/model-zoo

 

第十二课:框架 caffe

caffe.berkeleyvision.org