人工神经网络(Artificial Neural Network,即ANN ),是20世纪80 年代以来人工智能领域兴起的研究热点。它从信息处理角度对人脑神经元网络进行抽象, 建立某种简单模型,按不同的连接方式组成不同的网络。在工程与学术界也常直接简称为神经网络或类神经网络。神经网络是一种运算模型,由大量的节点(或称神经元)之间相互联接构成。每个节点代表一种特定的输出函数,称为激励函数(activation function)。每两个节点间的连接都代表一个对于通过该连接信号的加权值,称之为权重,这相当于人工神经网络的记忆。网络的输出则依网络的连接方式,权重值和激励函数的不同而不同。而网络自身通常都是对自然界某种算法或者函数的逼近,也可能是对一种逻辑策略的表达。

深度学习的概念源于人工神经网络的研究。含多隐层的多层感知器就是一种深度学习结构。深度学习通过组合低层特征形成更加抽象的高层表示属性类别或特征,以发现数据的分布式特征表示。深度学习是机器学习研究中的一个新的领域,其动机在于建立、模拟人脑进行分析学习的神经网络,它模仿人脑的机制来解释数据,例如图像,声音和文本。深度学习中的“深”指搭建的神经网络层数很深。

经过一个学期有关神经网络和深度学习的摸爬滚打,勉强算是半只脚踏进了这个领域中的图像识别领域。写下这篇学习历程和心得,一方面记录和总结所学以让自己更好地前进,另一方面予以想进入这个方向的人一点指导和启发。

整体上要明白深度学习的应用形式是通过程序实现,深度学习可以说是一类算法。而深度学习的核心部分是数学理论。在学习其理论知识时,我一开始是阅读《人工神经网络理论、设计及应用》这本韩力群的书,同时在网易云课堂上观看吴恩达的微专业课程《深度学习工程师》(网址是:吴恩达深度学习课程)。《人工神经网络理论、设计及应用》这本书对神经网络的总体讲述很清楚,能给你理论的总体框架感,适合对神经网络一无所知的人阅读,而且在BP神经网络的学习算法上给出了严谨详细的数学推导。对于只想学习深度学习的人来说,这本书只用看到第3章就差不多了。吴恩达的微专业课程《深度学习工程师》由于免费观看、浅显易懂、详细的讲解,知名度和受欢迎度非常高,在CSDN博上已有这门课的学习笔记和对应课程的代码实现。这门课程一共分为五个单元:01神经网络和深度学习,02改善深层神经网络、正则化以及优化,03结构化机器学习项目,04卷积神经网络,05序列模型。如果只想研究图像识别,可观看其中的01,02和04,03也可以在后期观看,而05单元主要针对语音识别。吴恩达甚至就这门课程写了一本书,书的电子可通过下面的百度云链接下载: (吴恩达书籍 提取码: 8hcy)

有了一定的深度学习理论知识后,就可以着手编程了。写深度学习程序最好在一个框架内实现。我学习和使用的框架是TensorFlow,它由谷歌开发,是一个基于数据流编程(dataflow programming)的符号数学系统,被广泛应用于各类机器学习(machine learning)算法的编程实现,其前身是谷歌的神经网络算法库DistBelief,也是目前最受欢迎的深度学习框架。在TensorFlow内的编程是用python高级程序语言,python因为其灵活性和少量代码就能实现复杂功能而成为许多深度学习框架的语言。我学习这个框架在一开始主要通过观看学习视频,视频可通过百度云链接下载:(tensorflow学习视频 提取码: 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库:tensorflow官网;tensorflow的Github网址。我在调试关于finetune Inception_V3代码的时候,看了很多CSDN博客,花了将近一周的时间也没有把代码调通,最后通过看官网的技术文档,不到半天就把代码调通了。这是因为博客会因为TensorFlow的API、版本不断升级拓展而过时,而官网的技术文档则会随时更新,由此可见阅读原始官网技术文档的重要性,即使英文有点难阅读。

除了以上提到的视频教程,下面链接的关于深度学习与强化学习的视频教程知名度也很高,不过我还没有看,所以不做评价 (深度学习与强化学习视频 提取码: awmt)。在书籍方面,下面链接关于TensorFlow内核的书也写得非常好,评价也很高: (tensorflow内核书 提取码: nx3e )它由资深技术架构师刘光聪编著,系统介绍了TensorFlow的构建原理,对于想要深度理解TensorFlow的人来说,这门书是很值得研究的书籍。很多有关深度学习的微信公众号也会推送很多干货,比如AI有道,磐创AI,深度学习与NLP,深度学习这件小事,CVer,深度学习自然语言处理等等。

对于想做研究的人来说,阅读与深度学习有关的经典论文也是必要的,这样能更懂得深度学习这个黑匣子里面的一些实现原理。如果学习深度学习时,还没有python编程基础,也大可不必掌握好python之后再学习TensorFlow,完全可以两者同时学习。如果觉得TensorFlow比较难学,Pytorch框架相对简单一点,知名度也挺高。

在学习的过程中,因为会面临大量代码和文件,也会记下很多学习笔记,这个时候管理和记录的能力就显得非常重要了,我的方法是用平板记下心得和学习笔记,因为相对于纸质笔记本,平板的笔记本软件能更好地进行管理。另外将自己编程的过程记录在CSDN上,既能管理好自己的程序,又能向其他网友分享程序和解决问题的过程——毕竟程序员有一个编程原则——不要重复造轮子。

人工神经网络与深度学习学习历程,心得及资料分享相关推荐

  1. 《基于卷积神经网络的深度迁移学习,用于燃气轮机燃烧室的故障检测》论文阅读

    目录 突出 抽象 引言 1.1动机 1.2文献综述获得的结论 1.3贡献 1.4组织 2方法 2.1燃汽轮机组故障知识共享 2.2迁移学习 2.3 基于卷积神经网络的深度迁移学习 2.4用于燃气轮机燃 ...

  2. ann人工神经网络_深度学习-人工神经网络(ANN)

    ann人工神经网络 Building your first neural network in less than 30 lines of code. 用不到30行代码构建您的第一个神经网络. 1.W ...

  3. 机器学习算法汇总:人工神经网络、深度学习及其它

    转载自:http://blog.csdn.net/icyzbb/article/details/37883461 学习方式 根据数据类型的不同,对一个问题的建模有不同的方式.在机器学习或者人工智能领域 ...

  4. 浙江大学机器学习(胡浩基)学习笔记二:人工神经网络、深度学习

    一.人工神经网络 1.1 概念 仿生学: 人工智能模拟的是人类大脑对世界的认识.研究大脑认知机理,总结大脑处理信息的方式是实现人工智能的先决条件. 数理学派: 在现在及可预见的未来,人类无法完全了解人 ...

  5. 人工神经网络与深度神经网络

    想学习深度学习需要什么样的基础 很多小伙伴对深度学习的理解都有一些误解,今天就为你一一解答.很多人第一反应是深度学习特别高大上,需要一定基础才能学习,但是关于需要学习深度学习所需要的基础其实存在很多误 ...

  6. 人工神经网络和深度神经网络

    简述深度学习的基本方法. 深度学习,需要怎么做到? 最佳答案1.深度学习,首先要学会给自己定定目标(大.小.长.短),这样学习会有一个方向:然后要学会梳理自身学习情况,以课本为基础,结合自己做的笔记. ...

  7. 学习cairo的心得及资料

    最近一直忙于cairo渲染接口的封装,目前该任务已接近尾声,在此记录一下学习cairo的心得体会. cairo是linux系统上一款高质量2D图形渲染库,与Gdiplus库相比,其优势是支持绘制< ...

  8. OpenCV学习之路(附加资料分享)

    目录 一.前言 二.学习历程 三.学习资料 书籍 网站 视频教程 四.学习建议 入门 强化 灵通 一.前言 有人问我,学习opencv从哪里学起?有人问我,我学习opencv用到了哪些资料?所以在今天 ...

  9. 谈谈半年的信安学习和一些学习感悟(附收藏资料分享)

    学习信安也有半年左右的时间了,期间也收集了很多的资源,但是大多都在收藏夹里吃灰了,不过也看了不少的视频,现在的感觉就是感觉啥都会,但是真到比赛的时候,就腌了,知识没有很好的融会贯通,当初只是囫囵吞枣的 ...

最新文章

  1. 【大数据】Zookeeper学习笔记
  2. 2021年春季学期-信号与系统-第七次作业参考答案-第四小题
  3. MAX487制作RS485总线接口模块
  4. 32. Longest Valid Parentheses
  5. Android 系统Dimension和间距参数详解
  6. 荣耀6手机升级android版本,华为荣耀6手机系统是什么?荣耀6能升级安卓4.3吗?...
  7. 怎么用centos7运行c语言程序_写C语言程序,如何提升程序运行效率?我的一点经验分享给你们!...
  8. mybatis @sqlprovider
  9. Django启动服务器时,报错mysql的2059错误的原因。
  10. django-模板的继承
  11. JAVA软件项目研发流程
  12. php3d饼状图,php 生成饼图 三维饼图
  13. 跳石头(最小最大问题)
  14. ansys icem cfd网格划分技术实例详解_详解航空燃油滑油3D打印热交换器设计流程...
  15. 图书馆学应掌握计算机知识,图书馆学专业基础知识点整理.doc
  16. Java Web开发实战(一)—JDK安装及环境变量配置
  17. Centos7 固定 ip
  18. 哦豁,女朋友都能被别人撩走,还不赶快去Coding回来
  19. Domain Adaptive简介
  20. 几何光学学习笔记(18)- 5.1光阑在光学系统中的作用

热门文章

  1. 第一天总结管理员用户的登录页面
  2. Elasticsearch实战(八)--- 词条为中心的 CrossFields 多字段搜索策略
  3. 常见的地图绘制方法,这个包全包了~~
  4. Laravel 模版集成与包含以及引用
  5. 2020NDSS论文Carnus Exploring the Privacy Threats of Browser Extension Fingerprinting
  6. go语言原生web框架 golang项目-书城商店
  7. 基于ATMEGA32的指纹识别防盗门锁的设计
  8. 尘缘浅悟之蹒跚学步:linux命令整理
  9. C# List分页处理
  10. 判断文件是否存在,如果不存在,则创建