⼈⼯神经⽹络与深度学习学习历程,⼼得及资料分享
免费制作表格的软件⼈⼯神经⽹络(Artificial Neural Network,即ANN ),是20世纪80 年代以来⼈⼯智能领域兴起的研究热点。它从信息处理⾓度对⼈脑神经元⽹络进⾏抽象, 建⽴某种简单模型,按不同的连接⽅式组成不同的⽹络。在⼯程与学术界也常直接简称为神经⽹络或类神经⽹络。神经⽹络是⼀种运算模型,由⼤量的节点(或称神经元)之间相互联接构成。每个节点代表⼀种特定的输出函数,称为激励函数(activation function)。每两个节点间的连接都代表⼀个对于通过该连接信号的加权值,称之为权重,这相当于⼈⼯神经⽹络的记忆。⽹络的输出则依⽹络的连接⽅式,权重值和激励函数的不同⽽不同。⽽⽹络⾃⾝通常都是对⾃然界某种算法或者函数的逼近,也可能是对⼀种逻辑策略的表达。
深度学习的概念源于⼈⼯神经⽹络的研究。含多隐层的多层感知器就是⼀种深度学习结构。深度学习通过组合低层特征形成更加抽象的⾼层表⽰属性类别或特征,以发现数据的分布式特征表⽰。深度学习是机器学习研究中的⼀个新的领域,其动机在于建⽴、模拟⼈脑进⾏分析学习的神经⽹络,它模仿⼈脑的机制来解释数据,例如图像,声⾳和⽂本。深度学习中的“深”指搭建的神经⽹络层数很深。
经过⼀个学期有关神经⽹络和深度学习的摸爬滚打,勉强算是半只脚踏进了这个领域中的图像识别领域。写下这篇学习历程和⼼得,⼀⽅⾯记录和总结所学以让⾃⼰更好地前进,另⼀⽅⾯予以想进⼊这个⽅向的⼈⼀点指导和启发。
tcpip协议簇图
整体上要明⽩深度学习的应⽤形式是通过程序实现,深度学习可以说是⼀类算法。⽽深度学习的核⼼部分是数学理论。在学习其理论知识时,我⼀开始是阅读《⼈⼯神经⽹络理论、设计及应⽤》这本韩⼒的书,同时在⽹易云课堂上观看吴恩达的微专业课程《深度学习⼯程师》(⽹址是:)。《⼈⼯神经⽹络理论、设计及应⽤》这本书对神经⽹络的总体讲述很清楚,能给你理论的总体框架感,适合对神经⽹络⼀⽆所知的⼈阅读,⽽且在BP神经⽹络的学习算法上给出了严谨详细的数学推导。对于只想学习深度学习的⼈来说,这本书只⽤看到第3章就差不多了。吴恩达的微专业课程《深度学习⼯程师》由于免费观看、浅显易懂、详细的讲解,知名度和受欢迎度⾮常⾼,在CSDN博上已有这门课的学习笔记和对应课程的代码实现。这门课程⼀共分为五个单元:01神经⽹络和深度学习,02改善深层神经⽹络、正则化以及优化,03结构化机器学习项⽬,04卷积神经⽹络,05序列模型。如果只想研究图像识别,可观看其中的01,02和04,03也可以在后期观看,⽽05单元主要针对语⾳识别。吴恩达甚⾄就这门课程写了⼀本书,书的电⼦可通过下⾯的百度云链接下载: ( 提取码: 8hcy)
有了⼀定的深度学习理论知识后,就可以着⼿编程了。写深度学习程序最好在⼀个框架内实现。我学习和使⽤的框架是TensorFlow,它由⾕歌开发,是⼀个基于数据流编程(dataflow programming)的符号数学系统,被⼴泛应⽤于各类机器学习(machine learning)算法的编程实现,其前⾝是⾕歌的神经⽹络算法库DistBelief,也是⽬前最受欢迎的深度学习框架。在TensorFlow内的编程是⽤python⾼级程序语⾔,python因为其灵活性和少量代码就能实现复杂功能⽽成为许多深度学习框架的语⾔。我学习这个框架在⼀开始主要通过观看学习视频,视频可通过百度云链接下载:( 提取码: sq77)
这个学习视频共分为10个部分,主要介绍了:如何安装tensorflow,通过全连接神经⽹络实现⼿写数字识别,通过卷积神经⽹络实现⼿写数字识别,如何使⽤tensorboard,循环神经⽹络理论简单讲解及实现,如何保存和使⽤训练好的模型,如何安装GPU版本的TensorFlow,通过微调Inception_v3模型训练⾃⼰的图⽚,以及最后⽐较难理解的验证码识别项⽬。
除了通过看上述视频,同时阅读技术书籍也是必要的。黄⽂坚、唐源编著的《TensorFlow实战》知名度很⾼,它除了简要介绍了TensorFlow编程模型等基础知识,也主要从如何编写代码⾓度分析了如何写⼿写数字识别程序,⾃编码器,多层感知器,简单以及进阶的卷积⽹络。不仅如此,这本书也分析了四种经典卷积神经⽹络的架构和代码——AlexNet,VGGNet,GoogleInceptionNet,ResNet。我看到了本书的这部分,在这之前的代码都是可以运⾏的。除了深度学习关于图像识别的内容,这本书也介绍分析了⽤TensorFlow实现循环卷积神经⽹络及Word2Vec,简单介绍分析了深度强化学习,TensorBoard,多GPU并⾏及分布式并⾏,TF.Learn、TF.Contrib组件。除了这门书之外,何之源编著的《21个项⽬玩转深度学习》知名度也⽐较⾼,⾥⾯分章节介绍了基于TensorFlow深度学习的21个项⽬,我没有全部实现,⾥⾯不少代码不能⼀开始就能运⾏,有⼀些错误,需要⾃⼰花些时间去调通。
以上关于⽤TensorFlow实现深度学习理论的书籍和视频教程其根本来源于TensorFlow官⽹(占主要部分)以及相对应的Github库:;。我在调试关于finetune Inception_V3代码的时候,看了很多CSDN博客,花了将近⼀周的时间也没有把代码调通,最后通过看官⽹的技术⽂档,不到半天就把代码调通了。
这是因为博客会因为TensorFlow的API、版本不断升级拓展⽽过时,⽽官⽹的技术⽂档则会随时更新,由此可见阅读原始官⽹技术⽂档的重要性,即使英⽂有点难阅读。python基础教程电子书百度云>java执行python代码
除了以上提到的视频教程,下⾯链接的关于深度学习与强化学习的视频教程知名度也很⾼,不过我还没有看,所以不做评价 ( 提取码: awmt)。在书籍⽅⾯,下⾯链接关于TensorFlow内核的书也写得⾮常好,评价也很⾼: ( 提取码: nx3e )它由资深技术架构师刘光聪编著,系统介绍了TensorFlow的构建原理,对于想要深度理解TensorFlow的⼈来说,这门书是很值得研究的书籍。很多有关深度学习的也会推送很多⼲货,⽐如AI有道,磐创AI,深度学习与NLP,深度学习这件⼩事,CVer,深度学习⾃然语⾔处理等等。
shiro和spring security用哪个对于想做研究的⼈来说,阅读与深度学习有关的经典论⽂也是必要的,这样能更懂得深度学习这个⿊匣⼦⾥⾯的⼀些实现原理。如果学习深度学习时,还没有python编程基础,也⼤可不必掌握好python之后再学习TensorFlow,完全可以两者同时学习。如果觉得TensorFlow⽐较难学,Pytorch框架相对简单⼀点,知名度也挺⾼。
在学习的过程中,因为会⾯临⼤量代码和⽂件,也会记下很多学习笔记,这个时候管理和记录的能⼒就显得⾮常重要了,我的⽅法是⽤平板记下⼼得和学习笔记,因为相对于纸质笔记本,平板的笔记本软件能更好地进⾏管理。另外将⾃⼰编程的过程记录在CSDN上,既能管理好⾃⼰的程序,⼜能向其他⽹友分享程序和解决问题的过程——毕竟程序员有⼀个编程原则——不要重复造轮⼦。
mongodb支持主键外键关系吗
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论