生活常识网生活常识网生活常识网

欢迎光临
我们一直在努力

深度学习是什么(深度学习研究方法实践)

为什么要研究深度学习

深度学习构建能够模仿人类大脑行为的神经网络。这些多层次的电脑网络像人类大脑一样, 可以收集信息,并基于收集到的信息产生相应的行为。这些电脑网络可以逐渐对事物的外形和声音进行感知和理解,也就是“认识”事物。 构建类同于人类的心智模式。

让机器能像人一样解决问题,而互联网,区块链技术的发展,产生了大量的数据,仅靠人脑的心智来处理,效率远远不够。只能训练机器来承担此项工作,也就是AI。

深度学习的提纲

 

深度学习是机器学习中的一种,通过模拟生命神经元网格来训练自动识别功能。

深度学习当前应该应用了模式识别,自然语言处理,语音识别等。

整个知识结构图及应用范围

 

线性回归 (+ 非线性激励) → 神经网络

有线性映射关系的数据,找到映射关系,非常简单,只能描述简单的映射关系

大部分关系是非线性的,所以改进方法就是加一个非线性激励,某种程度是一个 NORMALIZE,但是是非线性的,对参数有更强的描述能力+非线性激励,描述稍微复杂的映射关系,形成神经网络

神经网络输入是 1 维信息,普通网络之间进行的是代数运算,然后经过非线性激励,形成新的神经网络

神经网络 (+时域递归) → RNN

 

神经网络处理一维信息,然而一维信息很可能是有前后的时间联系的,如人的语音,前面说的话与后面是有联系的,RNN 学习前后关系

相当于某一刻的输出同时也作为下一刻的输入,所以这一刻的输入不仅是这一刻的输入+上一刻输出的信息

RNN (+记忆GATE) → LSTM

RNN 只考虑前一刻信息,Tn 时刻只考虑 Tn-1 的,那么 Tn-2,就是 Tn-2 → Tn-1 → Tn 逐层衰减,信息也会越来越弱

如果很久之前的记忆很重要,要把它记下来,就相当于有一个记忆方程,那么就可以用 LSTM,实现长记忆短记忆

Gate 来分析哪一部分存储,哪一部分进行传递

应用: 语句生成 → 自动翻译智能对话

神经网络 (+卷积核) → CNN

基本的代数运算用卷积核来代替。一维到二维甚至是三维的转化,相当于一个空间上的扩展

应用: 图片分类 → 目标分类(人脸识别/物品识别/场景识别/文字识别)、目标检测(安防/自动驾驶)

深度,宽度,递归的变化

增加深度(网络层数),E.g.OverFeat-accurate,VGG

增加宽度(filter数),E.g.zf-big,OverFeat-accurate

递归的变化,可以跳过下一层,传到后面几层

结构与性能

特定问题的具体结构

比如说人脸识别,我们知道人脸有大体结构,用 CNN 来做识别时,可以让不同位置的像素不共享参数,眼睛有处理眼睛部分的卷积核,鼻子有处理鼻子部分的卷积核,它们之间不共享参数,这样的话参数会很多,但这样训练的结果可能会更好一些,专门对眼睛/鼻子进行训练

LSTM 卷积化(LSTM + CNN)

 

应用: 产生理解图片的语言 → 图片描述/标注 → 看图说话,时域的图片 → 视频分类 → 视频搜索

NLP 方向比较成熟的只有语音识别,语义挖掘方面还是目前的热点

外部反馈 → 增强学习

模仿人类学习的模型

CNN 能理解,把它放在游戏中,做决策,给出反馈,让它学会决策的能力

应用: 围棋,德州扑克,自动游戏,路径规划

生成网络 + 判别网络 → 对抗网络

生成网络学会怎么生成数据,如输入有表情图片,学习怎么输出没有表情的图片,实际生成质量不是很好

判别网络判断生成网络生成的图片是不是真的

两者结合生成网络生成的图片越来越逼真,判别网络鉴别图片的能力也越来越强

作用: 生成数据,相当于无监督学习

深度学习的历史发展

生物的学习系统由相互连接的神经元(neuron)组成的异常复杂的网格。而人工神经网络由一系列简单的单元相互密集连接构成的,其中每一个单元有一定数量的实值输入,并产生单一的实数值输出。

20世纪80年代末期,用于人工神经网络的反向传播算法(也叫Back Propagation算法或者BP算法)的发明,给机器学习带来了希望,掀起了基于统计模型的机器学习热潮。这个热潮一直持续到今天。人们发现,利用BP算法可以让一个人工神经网络模型从大量训练样本中学习统计规律,从而对未知事件做预测。这种基于统计的机器学习方法比起过去基于人工规则的系统,在很多方面显出优越性。这个时候的人工神经网络,虽也被称作多层感知机(Multi-layer Perceptron),但实际是种只含有一层隐层节点的浅层模型。

20世纪90年代,各种各样的浅层机器学习模型相继被提出,例如支撑向量机(SVM,Support Vector Machines)、 Boosting、最大熵方法(如LR,Logistic Regression)等。这些模型的结构基本上可以看成带有一层隐层节点(如SVM、Boosting),或没有隐层节点(如LR)。这些模型无论是在理论分析还是应用中都获得了巨大的成功。相比之下,由于理论分析的难度大,训练方法又需要很多经验和技巧,这个时期浅层人工神经网络反而相对沉寂。

深度学习的现状

 

google开源了TensorFlow,可以用来训练RNN,CNN,LSTM等模型。

TensorFlow是一个编程系统,使用图来表示计算任务.图中的节点被称之为op(operation的缩写).一个op获得0个或多个Tensor,执行计算,产生0个或多个Tensor.每个Tensor是一个类型化的多维数组.例如,你可以将一小组图像集表示为一个四维浮点数数组,这四个维度分别是[batch,height,width,channels].使用图(graph)来表示计算任务.在被称之为会话(Session)的上下文(context)中执行图.使用tensor表示数据.通过变量(Variable)维护状态.使用feed和fetch可以为任意的操作(arbitraryoperation)赋值或者从其中获取数据.

importtensorflowastfdefg_theta(self,x):"""MLPHelperFunctionfortheG_ThetaObjectLogic."""h1=tf.nn.relu(tf.matmul(x,self.G1_W)+self.G1_b)h2=tf.nn.relu(tf.matmul(h1,self.G2_W)+self.G2_b)h3=tf.nn.relu(tf.matmul(h2,self.G3_W)+self.G3_b)h4=tf.nn.relu(tf.matmul(h3,self.G4_W)+self.G4_b)returnh4

怎么给小白讲明白深度学习

 

深度学习模拟人脑结构,使用计算机单元构架神经网络,实现图像识别,语句分析,目标分类等人工智能。跟据模拟思考层次不一样,有神经网络,RNN,CNN,LSTM等模型。而google开源的TensorFlow通过一个图计算来实现相应模型算法。

有个狗它会学习,刚出生时什么都不会什么都不知道。这时你拿着一个香蕉告诉它是香蕉,再拿着一个苹果告诉它是苹果,然后再拿着一个水果(苹果或者香蕉),让它猜,它就能猜出结果了,这就是分类。给狗狗一堆水果,里边有若干个香蕉,若干个苹果,若干个橘子,让它根据观察分成几堆。狗狗会根据每种水果的特征、颜色、气味把水果分成了三堆,一小堆全是香蕉、一小堆全是苹果、一小堆全是橘子。好,那狗狗就会聚类了。给狗狗几个小苹果,告诉它每个苹果的质量和价格,然后再给它一个苹果只告诉它苹果的质量,狗狗自己能够猜这个苹果的价格,我们就认为狗狗已经会回归了。

这个狗狗就是深度学习的TensorFlow。

狗狗就是中间这一堆蓝色的功能块。

牛人的肩膀

 

徐阿衡的博客简洁介绍了几篇论文的学习过程;

各种系统推荐,图像识别,自然语言处理应用在TensorFlow实现的案例;

打赏
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《深度学习是什么(深度学习研究方法实践)》
文章链接:https://www.freety.cn/wangluo/sdxxssmsdxxyjffsj.html

评论