深度学习入门指南
2017-01-06 13:53
441 查看
最近开始接触深度学习和人工智能相关的内容,在此整理一下一些学习资源和入门指导。人有记忆能力和运算能力,计算机有学习能力和思考能力,要真正地通过图灵测试,计算机必须具备理解语言、学习、记忆、推理、决策的能力。这也延伸到很多不同的学科,比如机器感知(计算机视觉、自然语言处理),学习(模式识别、机器学习、增强学习),记忆(知识表示),决策(规划、数据挖掘)等。所有这些分支学科都可以看成是人工智能的研究范畴。
人工智能是计算机科学的一个分支,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式作出反应的智能机器。研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。人们对文本图像的理解无法从字符串或者图像的底层特征直接获得,它需要使用人们日常生活中积累的大量经验和知识来进行推理和判断。机器学习的主要目的是设计和分析一些学习算法,让计算机从数据中获得一些决策函数,从而帮助人们解决一些特定任务,提高效率。机器学习是人工智能的一个分支,其目的在于使得机器可以根据数据进行自动学习,通过算法使得机器能从大量历史数据中学习规律从而对新的样本进行决策。机器学习最开始的是浅层学习,1980年提出了神经网络,1995加入了支持向量机SVM,2006年提出了深度学习的概念。人工神经网络简称神经网络,是众多机器学习算法中比较接近生物神经网络特性的数学模型。人工神经网络通过模拟生物神经网络的结构和功能,有大量的节点和之间的相互连接构成,可以用来对数据之间的复杂关系进行建模。
深度学习主要以人工神经网络模型为基础,由人工神经元以及之间的连接构成。人工神经元一般采用非线性激活函数。神经元网络是在计算机上把虚拟的神经元排列成层状,模拟真的神经元细胞之间的电信号。借此实现大脑从各式各样的数据中提取本质概念的功能。所谓的“深度”是指网络层数大于1,通常把神经元深化到4-9层,实现接近于大脑的功能。
在深度学习的革命进程中,谷歌使用了10亿个参数,输入了从1000万个YouTube视频中截取的图像,通过1.6万个CPU并行处理的大规模计算,耗费了一周时间实施了训练。那么深度学习是有很多特点的,参数过多,影响训练,非凸优化问题,下层参数比较难调,参数解释起来比较困难,计算资源要求大,数据量要多,算法效率要好,很快收敛。
现在的一个硬件配置是:
•主流配置:
•Four GTX1080GPUs with 8GB of memory per GPU
•64GB DDR4
•Asus X99-E WS workstation class motherboard with 4-wayPCI-E Gen3 x16 support
•Core i7-6850K 6 Core 3.5GHzdesktop processor
•Three 3TB SATA 6Gb 3.5” Enterprise Hard Drive in RAID5 512GB PCI-E M.2 SSDcache for RAID
•标准配置:
•CPU:i7-6700K及以上
•内存:16G及以上
•显卡:GTX1070及以上
•硬盘:500G固态硬盘及以上
•时间:VGG16网络训练10~14天
•价格:约8k
如果经济条件可以的话选择主流配置是很不错的,但是如果经济条件不好的话,选择标准配置也是基本的,低于基本配置的就实现不了深度学习的优势性能。
软件选择:
•系统选择
•Mac OS(Macbook Pro)
•Ubuntu16.04(64bit)
•IDE选择
•Pycharm专业版
•Vim、Emacs
•Python
•2.7
•3.5
目前主流的两种系统是苹果的OS系统,还有一种就是Ubuntu系统,最好使用Ubuntu16.04版本的系统,这个是性能最稳定最常用主流的,很多研究者都使用该系统,对于IDE的选择初学者可以使用Pycharm,不一定要用专业版,因为专业版要授权 ,可以使用普遍版的,可以在github上面自己下载。Python语言的选择可以选择使用较多的2.7版本,但是最近在更新到3版本之后了,在实际使用中很多代码或者github上面分享的例子大部分都是在2.7版本上编写的,不过已经有一部分开始在3.5版本上移植成功了。
学习深度学习要注意八个方面的问题:1,使用深度学习进行处理问题的时候,最好使用Python语言,因为C++语言还是不能够发挥神经网络的全部性能,而且Python其没有过多的语法规则,很灵活,在使用的过程中有很多实现和解决问题的方法。2,在拿到一个框架的时候,可能遇到的工程问题在哪?需要熟悉的基本内容。3,如何组织数据,框架的数据接口设定(图像、HDF5、MAT、视频)。数据量很大时一定要选择合适的数据接口,这是使深度学习发挥作用的基本。4,如何组织网络,网络各层如何设定。前期开始学习的时候可以经常在一些开源网站和论坛上找例程、文档、test文件查阅学习。5,怎样确定评价指标,首先要确定做深度学习和神经网络的目的,是用来进行图像分类、图像语义分割、目标检测、自编码、超分率、图像生成等哪一方面。6,如何训练,怎样设定参数等。7,如何测试,包括怎样查看网络内容,查看网络各层输出,可视化,特征提取等。8,如何finetune,设定各层学习率。这样不断地纠正和改变不断地进行训练和学习,最后得出结果。
入门书籍:
•Python学习手册(语法书)
•LinuxShell 脚本攻略
•OpenCV3计算机视觉(Python语言实现)
必须要熟悉的Python库:
•Numpy
•Scipy
•Scikit-learn
•Python标准库
课程资源:
•UFLDL教程(有中文版)
•http://ufldl.stanford.edu/wiki/index.php/UFLDL%E6%95%99%E7%A8%8B
•谷歌在Udacity开设的深度学习课程(使用Tensorflow)(全程翻墙)
•https://www.udacity.com/course/deep-learning--ud730
•斯坦福机器学习cs229
•http://cs229.stanford.edu/
•斯坦福深度学习+自然语言处理cs224d
•http://cs224d.stanford.edu/
•斯坦福深度学习+计算机视觉cs231n
•http://cs231n.stanford.edu/
•NYU的深度学习课程
•http://cilvr.cs.nyu.edu/doku.php?id=courses:deeplearning2016:start
•牛津大学的机器学习课程
•https://www.cs.ox.ac.uk/teaching/courses/2015-2016/ml/
•Hinton在Coursera上的《机器学习中使用的神经网络》
•https://www.coursera.org/course/neuralnets
补充书籍:
•中文
•《大数据互联网大规模数据挖掘与分布式处理(第2版)》
•《机器学习》周志华
•《机器学习》Mitchell
•《图解机器学习》
•《视觉机器学习20讲》
•《大数据智能》
•《神经网络与机器学习》
•《机器学习实战》
•《数据挖掘:概念与技术》韩家炜
•http://www.deeplearningbook.org/
•PRML
•The Elements of Statistical Learning: Data Mining,Inference, and Prediction
人工智能是计算机科学的一个分支,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式作出反应的智能机器。研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。人们对文本图像的理解无法从字符串或者图像的底层特征直接获得,它需要使用人们日常生活中积累的大量经验和知识来进行推理和判断。机器学习的主要目的是设计和分析一些学习算法,让计算机从数据中获得一些决策函数,从而帮助人们解决一些特定任务,提高效率。机器学习是人工智能的一个分支,其目的在于使得机器可以根据数据进行自动学习,通过算法使得机器能从大量历史数据中学习规律从而对新的样本进行决策。机器学习最开始的是浅层学习,1980年提出了神经网络,1995加入了支持向量机SVM,2006年提出了深度学习的概念。人工神经网络简称神经网络,是众多机器学习算法中比较接近生物神经网络特性的数学模型。人工神经网络通过模拟生物神经网络的结构和功能,有大量的节点和之间的相互连接构成,可以用来对数据之间的复杂关系进行建模。
深度学习主要以人工神经网络模型为基础,由人工神经元以及之间的连接构成。人工神经元一般采用非线性激活函数。神经元网络是在计算机上把虚拟的神经元排列成层状,模拟真的神经元细胞之间的电信号。借此实现大脑从各式各样的数据中提取本质概念的功能。所谓的“深度”是指网络层数大于1,通常把神经元深化到4-9层,实现接近于大脑的功能。
在深度学习的革命进程中,谷歌使用了10亿个参数,输入了从1000万个YouTube视频中截取的图像,通过1.6万个CPU并行处理的大规模计算,耗费了一周时间实施了训练。那么深度学习是有很多特点的,参数过多,影响训练,非凸优化问题,下层参数比较难调,参数解释起来比较困难,计算资源要求大,数据量要多,算法效率要好,很快收敛。
现在的一个硬件配置是:
•主流配置:
•Four GTX1080GPUs with 8GB of memory per GPU
•64GB DDR4
•Asus X99-E WS workstation class motherboard with 4-wayPCI-E Gen3 x16 support
•Core i7-6850K 6 Core 3.5GHzdesktop processor
•Three 3TB SATA 6Gb 3.5” Enterprise Hard Drive in RAID5 512GB PCI-E M.2 SSDcache for RAID
•标准配置:
•CPU:i7-6700K及以上
•内存:16G及以上
•显卡:GTX1070及以上
•硬盘:500G固态硬盘及以上
•时间:VGG16网络训练10~14天
•价格:约8k
如果经济条件可以的话选择主流配置是很不错的,但是如果经济条件不好的话,选择标准配置也是基本的,低于基本配置的就实现不了深度学习的优势性能。
软件选择:
•系统选择
•Mac OS(Macbook Pro)
•Ubuntu16.04(64bit)
•IDE选择
•Pycharm专业版
•Vim、Emacs
•Python
•2.7
•3.5
目前主流的两种系统是苹果的OS系统,还有一种就是Ubuntu系统,最好使用Ubuntu16.04版本的系统,这个是性能最稳定最常用主流的,很多研究者都使用该系统,对于IDE的选择初学者可以使用Pycharm,不一定要用专业版,因为专业版要授权 ,可以使用普遍版的,可以在github上面自己下载。Python语言的选择可以选择使用较多的2.7版本,但是最近在更新到3版本之后了,在实际使用中很多代码或者github上面分享的例子大部分都是在2.7版本上编写的,不过已经有一部分开始在3.5版本上移植成功了。
学习深度学习要注意八个方面的问题:1,使用深度学习进行处理问题的时候,最好使用Python语言,因为C++语言还是不能够发挥神经网络的全部性能,而且Python其没有过多的语法规则,很灵活,在使用的过程中有很多实现和解决问题的方法。2,在拿到一个框架的时候,可能遇到的工程问题在哪?需要熟悉的基本内容。3,如何组织数据,框架的数据接口设定(图像、HDF5、MAT、视频)。数据量很大时一定要选择合适的数据接口,这是使深度学习发挥作用的基本。4,如何组织网络,网络各层如何设定。前期开始学习的时候可以经常在一些开源网站和论坛上找例程、文档、test文件查阅学习。5,怎样确定评价指标,首先要确定做深度学习和神经网络的目的,是用来进行图像分类、图像语义分割、目标检测、自编码、超分率、图像生成等哪一方面。6,如何训练,怎样设定参数等。7,如何测试,包括怎样查看网络内容,查看网络各层输出,可视化,特征提取等。8,如何finetune,设定各层学习率。这样不断地纠正和改变不断地进行训练和学习,最后得出结果。
入门书籍:
•Python学习手册(语法书)
•LinuxShell 脚本攻略
•OpenCV3计算机视觉(Python语言实现)
必须要熟悉的Python库:
•Numpy
•Scipy
•Scikit-learn
•Python标准库
课程资源:
•UFLDL教程(有中文版)
•http://ufldl.stanford.edu/wiki/index.php/UFLDL%E6%95%99%E7%A8%8B
•谷歌在Udacity开设的深度学习课程(使用Tensorflow)(全程翻墙)
•https://www.udacity.com/course/deep-learning--ud730
•斯坦福机器学习cs229
•http://cs229.stanford.edu/
•斯坦福深度学习+自然语言处理cs224d
•http://cs224d.stanford.edu/
•斯坦福深度学习+计算机视觉cs231n
•http://cs231n.stanford.edu/
•NYU的深度学习课程
•http://cilvr.cs.nyu.edu/doku.php?id=courses:deeplearning2016:start
•牛津大学的机器学习课程
•https://www.cs.ox.ac.uk/teaching/courses/2015-2016/ml/
•Hinton在Coursera上的《机器学习中使用的神经网络》
•https://www.coursera.org/course/neuralnets
补充书籍:
•中文
•《大数据互联网大规模数据挖掘与分布式处理(第2版)》
•《机器学习》周志华
•《机器学习》Mitchell
•《图解机器学习》
•《视觉机器学习20讲》
•《大数据智能》
•《神经网络与机器学习》
•《机器学习实战》
•《数据挖掘:概念与技术》韩家炜
•http://www.deeplearningbook.org/
•PRML
•The Elements of Statistical Learning: Data Mining,Inference, and Prediction
相关文章推荐
- AI 初学者入门指南:深度学习的五级分类
- Python入门深度学习完整指南
- 【推荐】Keras教程:Python深度学习超级入门指南
- Python入门深度学习完整指南
- Python入门深度学习完整指南
- Python入门深度学习完整指南
- 深度学习入门之一:Windows10(64)+Anaconda3(Python3.5)+TensorFlow-Gpu1.4+CUDA8.0+cuDNN6安装详解及Pycharm配置指南
- Android 开发入门指南 学习笔记
- C#.Net Castle ActiveRecord学习实践(1):快速入门指南
- jQuery入门指南教程学习
- Castle ActiveRecord学习实践(1):快速入门指南
- SubEclipse入门学习指南
- 正则表达式学习指南(一)----入门简介
- MYSQL 入门操作学习指南(建库,建表 增删改查 、表结构修改、函数、字符集校对等)
- MSDN学习DirectShow——第二章 入门指南
- acm学习入门指南
- Castle ActiveRecord学习实践(1):快速入门指南
- C语言快速学习与入门指南
- jQuery 学习笔记 之二 附: jQuery入门指南教程列表