深度学习小白思考

深度学习入门半年小白思考第一篇

  • 一、概论
  • 二、感知器————————————go to cell
    • NO.1认识感知器 -> cell中的分子机制
    • NO.2 常见的激活函数
      • 1.sigmod函数
      • 2.tanh函数
      • 3.ReLU(Rectified Linear Unit)函数
      • 4.ELU函数
      • 5.PReLU函数
    • NO.3 感知器 -> cell中的一个激活函数 -> 就是他↓
  • 三、视觉系统———————————go to layer
    • 3.1、理解大脑的运作
    • 3.2、视觉的形成
  • 四、ICA&PCA———————————机器学习UP
    • 独立分量分析ICA
  • 五、特征—————————————go to weight
    • 5.1、特征表示的粒度
    • 5.2、初级(浅层)特征表示
    • 5.3、结构性特征表示
    • 5.4、需要有多少个特征?
  • 六、霍普菲尔德网络&玻尔兹曼机———go to train 局小
  • 七、DL 入门
    • 7.1、Deep Learning的基本思想
    • 7.2、Shallow Learning V.S. Deep Learning
    • 7.3、Deep learning与Neural Network
    • 7.4、Deep learning训练过程
      • 7.4.1、传统神经网络的训练方法
      • 7.4.2、deep learning训练过程

一、概论

作为一个直接从医学跳到工学,自学了高等数学,矩阵理论和概率论的学沫沫(实在不能在碎了),深度学习学的越久越觉得自己脑子乱得很,市面上太多的书籍,太多的笔记总结,都觉得自己很完美,看过之后呵呵呵了,脑子依旧一团浆糊,于是决定自己来总结。本小白呢,注重原理,算法,不注重应用(主要是不太会用。。。),准备在人工智能的道路上一条道走到黑了。

看我的笔记大概你的脑袋是瓦特掉了因为这个笔记只有骨架,没有肉。。。。。。
概论部分自己找两个AI视频看去就好了啦

推荐一个不是很好看但是比较通俗的启蒙。。。
OK,小白觉得后面的部分写的还是蛮辣鸡的。。。
link.https://blog.csdn.net/zouxy09/article/details/8775360

好了啦,这里呢你还需要学习点基础:
模式识别 up! up! up!
机器学习 up! up! up!

不要以为你可以跳过模式识别和机器学习直接学习深度学习,除非你只是想用一下别人的程序,跑一跑代码。

应用???sorry, I don’t care.(基础不牢地动山摇,实在觉得理论啥也不懂的,搞什么应用呢?)自动驾驶;自然语言处理;语音识别;AI医疗;金融科技;深度法律;德州扑克?AlphaGo;弗林效应?新教育体系。。。
好像呢,你也只需要详细的了解你研究的领域就可以啦。

深度学习的书买了一堆,诸如:
深度学习小白思考_第1张图片
经验告诉你,你根本不会去翻。。。的。。。没事还是来博客看看,或者逛逛B站吧
之后强烈推荐本跟小白同级别的入门的思考书,
深度学习小白思考_第2张图片
Terrence Sejnowski《深度学习》 OMG!!!完美!!!买他!!!

二、感知器————————————go to cell

深度学习小白思考_第3张图片
深度学习小白思考_第4张图片

NO.1认识感知器 -> cell中的分子机制

深度学习小白思考_第5张图片

NO.2 常见的激活函数

1.sigmod函数

深度学习小白思考_第6张图片
输出(0,1)区间,可以联想到概率,但不是严格意义上的概率。可以想象成一个神经元的放电率。

缺陷:
Ø 当输入稍微远离了坐标原点,函数的梯度就变得很小了,几乎为零。在神经网络反向传播的过程中,我们都是通过微分的链式法则来计算各个权重w的微分的。当反向传播经过了sigmod函数,这个链条上的微分就很小很小了,况且还可能经过很多个sigmod函数,最后会导致权重w对损失函数几乎没影响,这样不利于权重的优化,这个问题叫做梯度饱和,也可以叫梯度弥散。
Ø 函数输出不是以0为中心的,这样会使权重更新效率降低。对于这个缺陷,在斯坦福的课程里面有详细的解释。
Ø sigmod函数要进行指数运算,这个对于计算机来说是比较慢的。

2.tanh函数

深度学习小白思考_第7张图片
tanh是双曲正切函数,梯度弥散,距离远,梯度很小,不利于权重更新;
tanh的输出区间在(-1,1),而且整个函数是以0为中心的,这个特点比sigmod的好。

一般二分类问题中,隐藏层用tanh函数,输出层用sigmod函数。

不过这些也都不是一成不变的,具体使用什么激活函数,还是要根据具体的问题来具体分析,还是要靠调试的。

3.ReLU(Rectified Linear Unit)函数

深度学习小白思考_第8张图片
ReLU(Rectified Linear Unit)函数
优点:

  1. 在输入为正数的时候,不存在梯度饱和问题。
  2. 计算速度要快很多。ReLU函数只有线性关系,不管是前向传播还是反向传播,都比sigmod和tanh要快很多。(sigmod和tanh要计算指数,计算速度会比较慢)
    缺点:
  3. 当输入是负数的时候,ReLU是完全不被激活的,这就表明一旦输入到了负数,ReLU就会死掉。这样在前向传播过程中,还不算什么问题,有的区域是敏感的,有的是不敏感的。但是到了反向传播过程中,输入负数,梯度就会完全到0,这个和sigmod函数、tanh函数有一样的问题。
  4. 我们发现ReLU函数的输出要么是0,要么是正数,这也就是说,ReLU函数也不是以0为中心的函数。

4.ELU函数

深度学习小白思考_第9张图片
ELU函数是针对ReLU函数的一个改进型,相比于ReLU函数,在输入为负数的情况下,是有一定的输出的,而且这部分输出还具有一定的抗干扰能力。这样可以消除ReLU死掉的问题,不过还是有梯度饱和和指数运算的问题。

5.PReLU函数

深度学习小白思考_第10张图片
ReLU的一个改进型:
在负数区域内,PReLU有一个很小的斜率,这样可以避免ReLU死掉的问题。相比于ELU,PReLU在负数区域内是线性运算,斜率虽然小,但是不会趋于0。
里面的参数α一般是取0~1之间的数,一般比较小,如零点零几。
当α=0.01时,我们叫PReLU为Leaky ReLU,是PReLU的一种特殊情况。

NO.3 感知器 -> cell中的一个激活函数 -> 就是他↓

深度学习小白思考_第11张图片

三、视觉系统———————————go to layer

3.1、理解大脑的运作

感受器 -> 传入神经 (一层一层的分子-细胞) -> 中枢神经系统神经 -> 传出神经 -> 效应器
深度学习小白思考_第12张图片
其实呢,这里有个好一点的高中生物学基础就ok了。

3.2、视觉的形成

复杂的图像都是由简单的基础特征组成的。
深度学习小白思考_第13张图片
深度学习小白思考_第14张图片深度学习小白思考_第15张图片深度学习小白思考_第16张图片深度学习小白思考_第17张图片深度学习小白思考_第18张图片深度学习小白思考_第19张图片深度学习小白思考_第20张图片

四、ICA&PCA———————————机器学习UP

深度学习小白思考_第21张图片稀疏性

深度学习小白思考_第22张图片

独立分量分析ICA

ICA滤波器得到的图片特征
与初级视觉皮层中的简单细胞得到的定向、局部特征类似
深度学习小白思考_第23张图片深度学习小白思考_第24张图片
将信息扩展到更高维度空间
视网膜——100万个神经节细胞——紧凑编码
初级视觉皮层——1亿个神经元——高度分布且高度稀疏的新编码
-> 压缩感知编码

对 “THE REAL 智能” 的思考
作为人类,我们体内有许多网络,信息从一个网络层到另一个网络层,从分子到突触,到神经元,到神经群,直到形成决策树,所有这些都可以用物理学和生物化学的法则来解释。
但我们都有这样的感受,是我们自己,而非物理或者生物化学反应,在操控我们的一言一行。
这些远远低于我们意识水平的决定,在某种程度上是由神经元通过基于分子机制的经验形成的突触相互作用形成的。但从我们人类的视角来看,是我们的决定导致了所有这些事情在我们的脑中发生:内省行为告诉我们,因果关系中的因和果,似乎与物理和生物化学领域中的因和果相反。如何调和这两个观点,是一个深刻的科学问题。

深度学习小白思考_第25张图片深度学习小白思考_第26张图片

五、特征—————————————go to weight

5.1、特征表示的粒度

网络模型中的节点表示图像中的特征,网络中的连接实现了特征间的约束条件。
互相兼容的节点具有积极的相互作用,不兼容的节点间具有消极的相互作用。
在视觉中,必须找到满足所有约束条件的所有特征的和谐表达。
深度学习小白思考_第27张图片
20种基本的声音结构,其余的声音可以由这20种基本结构合成。

深度学习小白思考_第28张图片

5.2、初级(浅层)特征表示

5.3、结构性特征表示

深度学习小白思考_第29张图片找到 make sense 的小 patch,再将其进行 combine ,得到上一层的feature,递归地向上 learning feature .不同 object 上做 training 所得的 edge basis 非常相似,但object parts和models 会 completely different
对于文本,比如doc表示的概念 -> topic(千-万量级)-> term(10万量级)-> word(百万量级)

5.4、需要有多少个特征?

特征 ↑ ,参考信息 ↑ ,准确性 ↑ 。
BUT 特征多意味着计算 ↑ ,探索的空间大,可以用来训练的数据在每个特征上就会稀疏,会带来各种问题(过拟合),并不一定特征越多越好。
深度学习小白思考_第30张图片

六、霍普菲尔德网络&玻尔兹曼机———go to train 局小

深度学习小白思考_第31张图片在这里插入图片描述
模拟退火:
——out of 局部最小值
—— go to 全局最小值
深度学习小白思考_第32张图片

七、DL 入门

7.1、Deep Learning的基本思想

I =>S1=>S2=>……=>Sn => O

信息处理不等式:信息处理不会增加信息,大部分处理会丢失信息.

输入I(如一堆图像或者文本)
-> 设计系统S(有n层)
-> 通过调整系统中参数,使得它的输出O仍是I

-> 获取得到输入 I 的一系列层次特征,即S1,…, Sn。

深度学习 -> 堆叠多个层,实现对输入信息进行分级表达。

————使得输入与输出的差别尽可能地小即可————

7.2、Shallow Learning V.S. Deep Learning

20世纪80年代末期,反向传播算法(BP算法)发明 -> 基于统计模型的机器学习

20世纪90年代,浅层机器学习模型相继提出(SVM、 Boosting、最大熵方法(如LR,Logistic Regression)等),有一层隐层节点(如SVM、Boosting),或没有隐层节点(如LR)

2006年,深度学习 up :
1)多隐层的人工神经网络具有优异的特征学习能力,学习得到的特征对数据有更本质的刻画,从而有利于可视化或分类;
2)深度神经网络在训练上的难度,可以通过“逐层初始化”(layer-wise pre-training)来有效克服。

浅层结构算法 -> 局限性:有限样本和计算单元情况下,对复杂函数的表示能力有限,
针对复杂分类问题其泛化能力受到一定制约

深度学习 -> 深层非线性网络结构,实现复杂函数逼近,从少数样本集中学习数据集 本质特征的能力。(多层的好处是可以用较少的参数表示复杂的函数)
深度学习小白思考_第33张图片

DL 实质: 通过构建具有很多隐层的机器学习模型和海量的训练数据,来学习更有用的特征,从而最终提升分类或预测的准确性。

“深度模型”是手段,“特征学习”是目的。

特征学习的重要性:通过逐层特征变换,将样本在原空间的特征表示变换到一个新特征空间,从而使分类或预测更加容易。(能够刻画数据的丰富内在信息)

7.3、Deep learning与Neural Network

深度学习:模仿人脑的机制来解释数据,例如图像,声音和文本。深度学习是无监督学习的一种 ?!(瓦特?)
含多隐层的多层感知器就是一种深度学习结构。深度学习通过组合低层特征形成更加抽象的高层表示属性类别或特征,以发现数据的分布式特征表示。

about 20y,NN ↓ (BP过拟合&速度慢),SVM & boosting ↑。
痴心的老先生Hinton坚持 -> DL (话说从传统 NN -> DL)

NN v.s. DL: 分层结构,输入层、隐层(多层)、输出层->多层网络
只有相邻层节点之间有连接,同一层以及跨层节点之间相互无连接(每一层可以看作是一个logistic regression模型?!)

传统NN,采用迭代的算法BP来训练整个网络,随机设定初值,计算当前网络的输出,然后根据当前输出和label之间的差,去改变前面各层的参数,直到收敛(整体是一个梯度下降法,对于一个DN(7层+),残差传播到最前面的层已经变得太小,出现所谓的gradient diffusion(梯度扩散))。
BUT DL 整体上是一个layer-wise训练机制

7.4、Deep learning训练过程

7.4.1、传统神经网络的训练方法

7.4.2、deep learning训练过程

所有层同时训练 ?-> Are you kidding me? all cell,all parameter -> time↑
每次训练一层? -> error 逐层传递

2006,hinton :每次训练一层 + 调优
1)逐层构建 单层神经元,每次都是训练一个 单层网络。
2)当所有层训练完后,使用 wake-sleep 算法调优。(↑ 权重用于“认知”,↓ 权重用于“生成”,使用Wake-Sleep算法调整所有的权重。)
Wake-Sleep算法分为醒(wake)和睡(sleep)两个部分:
wake阶段:认知过程,通过外界的特征和向上的权重(认知权重)产生每一层的抽象表示(结点状态),并且使用梯度下降修改层间的下行权重(生成权重)。也就是“如果现实跟我想象的不一样,改变我的权重使得我想象的东西就是这样的”。
sleep阶段:生成过程,通过顶层表示(醒时学得的概念)和向下权重,生成底层的状态,同时修改层间向上的权重。也就是“如果梦中的景象不是我脑中的相应概念,改变我的认知权重使得这种景象在我看来就是这个概念”。

未完待续

你可能感兴趣的:(DeepLearning,深度学习,神经网络)