纳金网

标题: 快速入门——深度学习理论解析与实战应用 [打印本页]

作者: kuaidaoshou    时间: 2018-7-15 19:22
标题: 快速入门——深度学习理论解析与实战应用
1. 前言

说实话,我也是一个美剧迷,特别是一些烧脑的美剧,更是一追再追。前端时间,《西部世界》第二季也完结了。我一鼓作气,看完之后,大呼过瘾,深深地被其中栩栩如生的人工智能机器人所吸引。不禁感叹:现实世界真的会出现这样厉害的人工智能吗?


这虽然是一个看似遥远的事情,但也真的不好说没有可能!纵观这几年,深度学习发展非常迅速,发展势头一直高歌猛进。无论是 AlphaGo 最终以 4:1 战胜李世石,还是苹果 Siri、谷歌翻译、自动驾驶,等等。深度学习无不在影响着我们的日常生活和行为方式。因此,可以毫不夸张地说,我们有理由相信《西部世界》中的人工智能有望成为现实,说不定哪一天,你的同事就是一个超级人工智能机器人!


深度学习,以深而复杂的神经网络模型为基础,更能挖掘海量数据深层蕴藏的数据规律,具备强大的学习能力。可以毫不夸张地说,深度学习彻底改变了传统机器学习算法的解决问题方式。下面,我用一张图来做比较。


1.png


上图中的 4 条曲线,从下往上分别为传统机器学习算法、规模较小的神经网络、规模中等的神经网络、规模较大的神经网络。从每条曲线的趋势可以看出,当数据量较少的时候,传统机器学习模型的表现是不错的,与神经网络模型差别不大。但随着数据量越来越大,传统机器学习模型的性能表现开始增长缓慢,似乎到达了瓶颈。而神经网络模型的性能仍然表现出较快的上升趋势,且规模越大,性能提升越明显。这主要是因为深度学习模型网络结构更加复杂,更能从大数据中提取有效的特征,准确性较高。所以,近些年来,深度学习在处理大数据和建立复杂准确的学习模型方面,有着非常不错的表现。


在机器视觉、图像处理方面,深度学习可以说是带来了革命性的变化。例如,在全球知名的图像识别竞赛 ILSVRC 中,深度学习模型,尤其是各种 CNN 模型在错误率方面,不断刷新纪录,相比之前传统机器学习算法,性能提升有质的飞跃。


2.png


从 2010 年开始,ILSVRC 有人开始使用 CNN 模型。转折点是 2012 年, AlexNet 的出现,直接将错误率降低了近 10 个百分点。这是之前所有机器学习模型无法做到的。2015 年,包含 152 层神经元的 ResNet 模型,竟然将错误率降低至 3.57%,这甚至比人类肉眼识别的准确率还高!


除了在图像识别方面,深度学习在机器翻译领域也取得了飞跃式的发展。基于 RNN 的机器翻译最典型的代表就是谷歌翻译,让机器能够在深度学习中不断完善答案,给用户最想要的信息。说白了就是更智慧、更精准了。直接改善了之前逐词直译的效果,而是升级为以整个句子为单位进行翻译。从性能上来说,谷歌翻译整合神经网络,翻译质量已经接近人工笔译。


不止这些,深度学习在诸如自动驾驶、推荐系统、人脸识别等领域都取得了重大进展。


近些年来,深度学习发展太快了,正在慢慢改变着我们的生活方式。深度学习技术日新月异,对相关人才的需求也越来越大。所有的互联网公司,例如 Google、 微软、百度、腾讯等巨头,无不在布局人工智能技术和市场。各大公司也迅速开展了人工智能人才争夺战。百度、腾讯、阿里巴巴、京东等互联网巨头甚至都在美国硅谷不惜高薪挖掘人工智能人才。现在北京、上海等地,深度学习算法岗位,年薪 3、40w 都十分正常!


不仅如次,人工智能连续两年都被写入政府工作报告中,可见国家对人工智能是相当重视的。就在今年,我国第一本面向中学生的人工智能教材——《人工智能基础(高中版)》正式发布,人工智能相关课程已经进入高中课堂。


面对这样的人工智能趋势和浪潮,为了不被新技术淘汰,为了获得更好的工作机会和薪资收入,实现人生价值,我们更应该深入了解深度学习,利用深度学习解决实际问题,成为一名优秀的深度学习专家。


2. 如何进行深度学习

深度学习,是机器学习的一个重要分支和延伸,是包含多隐层的神经网络结构。深度学习通过组合低层特征形成更加抽象的高层表示属性类别或特征,从而学习到数据本身最关键的特征。简单来数,深度学习的核心结构是神经网络,深入了解神经网络,是我们掌握深度学习本质的关键因素。


下面是我总结的深度学习入门路线图:


3.png


编程语言与开发工具


深度学习首选 Python,Python 已经成为深度学习主导性的编程语言。而且,现在许多主流的深度学习框架,例如 PyTorch、TensorFlow 也都是基于 Python 的。Anaconda 作为 Python 的一个集成管理工具,它把 Python 相关数据计算与分析科学包都集成在了一起,省去了各个安装的麻烦,非常方便。而且,Anaconda 自带了 Jupyter Notebook,Jupyter Notebook 是一个非常强大的工具,允许使用者为数据分析、教育、文件等任何你可以想到的内容创建漂亮的交互式文档,已迅速成为数据分析、机器学习、深度学习的必备工具。


夯实深度学习理论基础


有人说深度学习就像一个黑匣子,完全不知道内部发生了什么。也有人说深度学习不需要数学理论,只要会调参数就行了。其实,这两种说法都有失偏颇。掌握基本的深度学习理论非常重要。例如神经网络的正向传播过程,激活函数的选择与比较,反向传播参数优化的过程,等等。只有对神经网络模型结构和推导过程有清晰的认识才能更好地建立模型优化直觉,构建性能良好的神经网络模型。而不是做只会使用框架和库,知其然不知其所以然的“调包侠”。


积累丰富的实战


俗话说:纸上得来终觉浅,觉知此事要躬行!理论与模型的建立都是为了更好地实践,为了解决实际问题。深度学习也是这样,掌握每个理论知识后,更重要的是将理论用于实践。例如,使用深度学习模型解决图像识别、语音识别等,或者参加 kaggle。通过实战,更能加深自己的理解,帮助自己更加熟练地掌握深度学习应用技巧。


灵活使用深度学习框架


使用深度学习框架,俗话说灵活地使用“轮子”,方便我们构建更大、更复杂的深度学习模型,能帮助我们更快地构建模型来解决实际问题。当然,这一步,个人觉得还是要建立在具备扎实的深度学习理论基础上。常用的深度学习框架有 TensorFlow、PyTorch、Keras 等。简单来说, TensorFlow 适合工业应用构建大型项目,PyTorch 适合学术研究构建小型项目。个人推荐使用 PyTorch,原因很简单,因为简单易懂。而且,它还弥补了 Tensorflow 静态构图的致命弱点。PyTorch 是可以构建动态计算图。也就是说你可以随时改变神经网络的结构,而不影响其计算过程。而 Tensorflow 这种静态图模块,一旦搭建好了神经网络, 你想修改结构也不行。


3. 深度学习知识网络


重点来了,为了更加详细地对深度学习进行理论解析,讲解实战经验,《深度学习理论解析与实战应用》课程应运而生。《深度学习理论解析与实战应用》针对深度学习的复杂性和难点进行讲解和分析,主要体现在神经网络模型的数学推导、神经网络模型的优化,以及如何构建一个优秀的深度学习模型解决实际问题。希望通过课程内容的学习,大家可以扫清学习过程中的障碍,再上新台阶。本课程具有以下特色:









欢迎光临 纳金网 (http://old.narkii.com/club/) Powered by Discuz! X2.5