学习笔记01·什么是深度学习?什么…

鸡汤文里写道:尚未佩妥剑,转眼已江湖。但愿千帆过,归来仍少年。
确实,自己感觉还是太空,从学校出来已经半年多了,工作了才感觉自己要学的东西太多,今年给我的项目是一个关于语音识别的项目,对于我这个门外汉来说,简直就是一头雾水,不知道从何下手。正好利用这个机会给自己充充电。
于是在网上搜索看看大神推荐哪些资料,看了知乎上的两个个问答: https://www.zhihu.com/question/20398418
https://www.zhihu.com/question/20962240?rf=19633865
看完感觉像是了解了些东西,但又说不上来知道了什么,看来还是得进行系统的学习啊。
买了2本书:
解析深度 学习 :语音识别实践》 作者:俞栋 出版社:电子工业出版社 出版时间:2016年06月 
《深度学习:21天实战Caffe》 作者:赵永科   出版社: 电子工业出版社 出版时间:2016年06月 

        先是翻开了第一本书,看完简介发现,对于我这个从来没有接触过类似学科的人来说,太多专业性的术语了,再看到第一部分里面的公式的时候,就懵逼了。这时候才感觉到自己在学校里白混日子了。
再翻开第二本书,这个书的名字有点low,跟我的这个文章名字一样,工科直男,想不出其他的题目了,这本书相当于是一个教程,我心想,没吃过猪肉,那就先看看猪是怎么跑的吧。
就从这本书入手。
第一章:
        书中形象的比喻了“学习”的概念,上课跟着老师一步一步学习,就是有监督学习;课后作业需要自己独立完成,就是无监督学习;课后作业就是“训练数据集”,考试试卷就是“测试数据集”;学霸训练效果好,对测试数据如数家珍,学渣训练不充分,对测试数据的效果跟随机猜测差不多,学痴平时做题滚瓜烂熟,一考试就懵逼属于“过拟合”;所谓“学习”就是给机器输入输出的对应关系,自动去实现内部算法,使其能够举一反三的能力,这样就可以对于未参加训练的测试数据得到正确的输出结果。
第二章:
        “深度学习”即是多层的学习,至于这个“层”是个什么概念,目前还不太明确,随着慢慢深入学应该会了解吧,这个问题先记到小本本上,以后再来回答。
前向传播
学习笔记01·什么是深度学习?什么是语音识别?·从-1开始深度学习语音识别
自己理解的推导过程:
学习笔记01·什么是深度学习?什么是语音识别?·从-1开始深度学习语音识别  后向传播   
学习笔记01·什么是深度学习?什么是语音识别?·从-1开始深度学习语音识别代价函数E,我这里理解的就是误差函数,  大致理解的传导过程就是这样吧,  学习笔记01·什么是深度学习?什么是语音识别?·从-1开始深度学习语音识别
  卷积神经网络
          书上写的,没有看的很明白,看了下面这篇文章才看懂一些。下面摘录其中一些内容。

      卷积神经网络是一种特殊的深层的神经网络模型,它的特殊性体现在两个方面,一方面它的神经元间的连接是非全连接的, 另一方面同一层中某些神经元之间的连接的权重是共享的(即相同的)。它的非全连接和权值共享的网络结构使之更类似于生物 神经网络,降低了网络模型的复杂度(对于很难学习的深层结构来说,这是非常重要的),减少了权值的数量。

     回想一下BP神经网络。BP网络每一层节点是一个线性的一维排列状态,层与层的网络节点之间是全连接的。这样设想一下,如果BP网络中层与层之间的节点连接不再是全连接,而是局部连接的。这样,就是一种最简单的一维卷积网络。如果我们把上述这个思路扩展到二维,这就是我们在大多数参考资料上看到的卷积神经网络。具体参看下图:

学习笔记01·什么是深度学习?什么是语音识别?·从-1开始深度学习语音识别

上图左:全连接网络。如果我们有1000x1000像素的图像,有1百万个隐层神经元,每个隐层神经元都连接图像的每一个像素点,就有1000x1000x1000000=10^12个连接,也就是10^12个权值参数。

       上图右:局部连接网络,每一个节点与上层节点同位置附件10x10的窗口相连接,则1百万个隐层神经元就只有100w乘以100,即10^8个参数。其权值连接个数比原来减少了四个数量级。

       根据BP网络信号前向传递过程,我们可以很容易计算网络节点的输出。例如,对于上图中被标注为红色节点的净输入,就等于所有与红线相连接的上一层神经元节点值与红色线表示的权值之积的累加。这样的计算过程,很多书上称其为卷积。

       事实上,对于数字滤波而言,其滤波器的系数通常是对称的。否则,卷积的计算需要先反向对折,然后进行乘累加的计算。上述神经网络权值满足对称吗?我想答案是否定的!所以,上述称其为卷积运算,显然是有失偏颇的。但这并不重要,仅仅是一个名词称谓而已。只是,搞信号处理的人,在初次接触卷积神经网络的时候,带来了一些理解上的误区。

        卷积神经网络另外一个特性是权值共享。例如,就上面右边那幅图来说,权值共享,也就是说所有的红色线标注的连接权值相同。这一点,初学者容易产生误解。

      我们知道,隐含层的每一个神经元都连接10x10个图像区域,也就是说每一个神经元存在10x10=100个连接权值参数。那如果我们每个神经元这100个参数是相同的呢?也就是说每个神经元用的是同一个卷积核去卷积图像。这样我们就只有多少个参数??只有100个参数啊!!!亲!不管你隐层的神经元个数有多少,两层间的连接我只有100个参数啊!亲!这就是权值共享啊!亲!这就是卷积神经网络的主打卖点啊!亲!(有点烦了,呵呵)也许你会问,这样做靠谱吗?为什么可行呢?这个……共同学习。

       好了,你就会想,这样提取特征也忒不靠谱吧,这样你只提取了一种特征啊?对了,真聪明,我们需要提取多种特征对不?假如一种滤波器,也就是一种卷积核就是提出图像的一种特征,例如某个方向的边缘。那么我们需要提取不同的特征,怎么办,加多几种滤波器不就行了吗?对了。所以假设我们加到100种滤波器,每种滤波器的参数不一样,表示它提出输入图像的不同特征,例如不同的边缘。这样每种滤波器去卷积图像就得到对图像的不同特征的放映,我们称之为Feature Map。所以100种卷积核就有100个Feature Map。这100个Feature Map就组成了一层神经元。到这个时候明了了吧。我们这一层有多少个参数了?100种卷积核x每种卷积核共享100个参数=100x100=10K,也就是1万个参数。才1万个参数啊!亲!(又来了,受不了了!)见下图右:不同的颜色表达不同的滤波器。

学习笔记01·什么是深度学习?什么是语音识别?·从-1开始深度学习语音识别      嘿哟,遗漏一个问题了。刚才说隐层的参数个数和隐层的神经元个数无关,只和滤波器的大小和滤波器种类的多少有关。那么隐层的神经元个数怎么确定呢?它和原图像,也就是输入的大小(神经元个数)、滤波器的大小和滤波器在图像中的滑动步长都有关!例如,我的图像是1000x1000像素,而滤波器大小是10x10,假设滤波器没有重叠,也就是步长为10,这样隐层的神经元个数就是(1000x1000 )/ (10x10)=100x100个神经元了,假设步长是8,也就是卷积核会重叠两个像素,那么……我就不算了,思想懂了就好。注意了,这只是一种滤波器,也就是一个Feature Map的神经元个数哦,如果100个Feature Map就是100倍了。由此可见,图像越大,神经元个数和需要训练的权值参数个数的贫富差距就越大。


      看完前两章,并没有对深度学习有整体的认识,只是相当于新学习了两个概念,但具体这两个概念应用在什么地方,如何应用,还需要后续的学习啊,路漫漫啊,路远远啊。


后悔没有好好的练写字啊!!!!!
 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值