desc | |
神经网络与LR 或者感知机的关系 |
LR 本身也可以视为一个 感知机,只是把 sign 函数转化为 sigmoid 函数
这里既可以说是 LR,也可以说是 感知机
即:神经网络 有 LR 或者感知机组成
|
神经网络中非线性变换的理解 |
神经网络通过 sigmoid 等非线性变换函数可以实现逻辑或,逻辑与
主要工作在这个 sigmoid 层,而前面的系数w 需要预先配置好
|
神经网络 每一层的线性变换与非线性变换的解释 |
对于这种分类情况
第一层构造的是 线性kernel,第二层是 sigmoid 非线性变换(等价于逻辑操作)
两个合起来 构成 神经网络中的一层
|
这是对神经网络为什么能做复杂分类的最好的平面解释 |
神经网络具有表示 AND 与 OR 的功能,因此可以 做任意的平面切分,可以适用各种分类
每一个绿色区域,都是AND 出来的,而多个绿色区域 之间是 OR
所以 所有的 绿色都可以选出来
|
神经网络可以分类的两种解释 |
1. NG 的平面解释:神经网络可以 每一层里面 :直线划分 + 逻辑操作 选定模块区域,然后多块区域之间还能 OR 组合
2. 兴军亮老师的解释:非线性变换可以进行 空间扭曲,从而使得原线性不可以分的变为线性可分
每一个 sigmoid 都是一次扭曲
|
参数共享机制 |
即对于同一个 filter,参数不变 ,for all data in this layer
对于 RNN 来说,各个node 上也是参数共享机制
|
CNN 中的一些参数 |
channel: 3
conv: 3*3
stride: 2*2
zero padding: # 这也是一个 tech ,在配置文件中应该有
|
卷积神经网络的特征 |
就是:非全连接
80年代的神经网络没有显示出威力是因为:
1. 硬件资源差
2. 没有进行 简化
比如 中间不是全连接,但是保存了大部分信息
降低了 复杂度,这是一种进步
|
关于处理去均值 |
训练集上计算均值 a
在测试集上 也减去训练集的均值 a
因为对于新问题上,是不知道新问题的均值,所以 是减去训练集上的均值
|
一个 训练神经网络的tech |
把梯度打印,需要跟一下,看什么时候骤降为0,需要调整
这就是寒老师说的:小心翼翼
|
SGD |
SGD 不是全量上的 梯度,是随机的梯度,好处是:
对于 非凸的函数,可以 跳过局部最低点
所以 这个S 是有用,SGD > GD 全局的
|
关于卷积 |
定义:
一组固定的权重 和 不同窗口内数据(ALL DATA)做内积:卷积
1. 抓住局部信息
2. 是一种优化
是 从第二个的角度 解决Full connect 的 训练问题
|
卷积与池化 |
1. 池化降低的是原始数据的个数,从而下一层的参数减少
2. 卷积直接 降低的是参数的个数,用卷积而不是全连接
|
关于池化 |
downsampling -- 老版叫法
subsampling
pooling
其实都是 池化
因为旧版本的 CNN,但是 没有GPU 所以当时才大量用 pooling
现在可以使用 更细致的 pooling 了,即不是大面积池化
|
图像处理的习惯 |
jpg 转 为levedb 或者 imdb 存储保存
而不是 直接用图片
|
caffe 的形式 |
1. Python 自己写 code
2. 命令行的方式,写 prototxt 这个配置文件
prototxt 是 google 的文件格式,替代json 的格式
现在的趋势:
C 写 core
Python 做接口
docker 作环境配置
|
图片的特征表示 | 使用结果层 前面的一层,用这个向量表征这个 图片 |
关于激励函数 |
1. 不要用sigmoid ,因为
在两层的偏导为0,那么反传系数就趋于0,
此时的现象叫做:
saturate 饱和 或者 vanish 是消失
可能训练不下去了
2. ReLU
仅仅是 求梯度快
但是一旦到了左边 ,那么 偏导数还是0,也就是还是挂掉
解决办法:
1)一般使用ReLU就要 就是用别人的pretrain参数,这样一般ReLU不会挂掉
2)使用改进版本
3. leaky ReLU
4. eLU
小于0 的部分是曲线
因为有指数,所以求导相对慢
5. Maxout
6. 关于 tanh 也不建议,它的好处就是 与 sigmoid 相比,中心点是0
但是也可能出现 偏导为 0 的 情况
所以 你的那个 RNN 别用 sigmoid 和 tanh 了
|
tanh 与 sigmoid 的关系 |
tanh 本质就是 sigmoid,多了些系数而已
|
最大的告诫 |
不要用 sigmoid 函数,no matter CNN 还是 RNN
因为都可能训练不出来, sigmoid 是学术界提出的
选了一个神经网络很可能训练不出来,这是常事,可能假死,可能早停止等等
经过 大量的试验,图像领域不同的网络其实就是超参数不同,都是试出来,所以需要保留
按照那些已经 试出来成功的 来操纵,比如
LeNet,AlexNet
所以 MS 训练处一个极其深的网络的时候,这个的困难可能是指数级的
|
norm layer |
工业界现在 不使用 norm layer
因为实验 发现,它基本不起作用
但是还用 pool layer
|
bp 中第一个求导公式 |
关于 bp 中的间隔一层的求导计算,为什么有一个 Σ 展开
前提是 如果间隔是两层的话,如:
此时如果 dL/dx1 的话,而不是 dz1/dx2,即多间隔了一层,那么
因为有多个 feature,即 如果对 xj 求导的话,xj 与 第一套W1 算过一遍,有
|
pooling 也是可以求导的 | max 也是有导函数,使用了指数函数 I(x) |
如何描述CNN |
两个角度:
1.不仅仅知道 各层的 卷积与 池化后 是 N*M 的计算方式,这个是显示你懂这个的点
2. 每个地方计算 memory 的计算,这个也是功底的体现
refer
PPT 68
|