深度学习是机器学习最重要的一个分支,机器学习是人工智能的一个分支。
深度学习和机器学习在数据预处理上是类似的,核心差别在特征提取环节,深度学习不需要人工提取特征,由机器自主完成
深度学习的概念源于人工神经网络的研究,不完全等于传统的神经网络
深度学习可说是传统神经网络的升级
深度学习≈神经网络 深度学习≠神经网络
深度学习要处理的信息比作水流,处理这些数据的深度学习网络是由管道和阀门组成的庞大的水管网络,网络的入口和出口有许多管道开口,这个水管网络有许多层,每一层都有控制水流流向与流量的调节阀。根据不同的任务,层数,每层调节阀的数量可以有不同的变化组合。水管网络中,每层的每个调节阀通过水管与下一层的每个调节阀连接起来,形成一个从前到后逐层连通的水流系统。
比如,现在要识别田字,就简单将组成这张图片的所有数字(计算机中所有的点都由0和1组成的数字来表示的)全都变成信息的水流,从入口灌入水管网络。预先在水管网络的每一个出口设立一个字牌,当水流流过水管网络的时候,计算机就会跑到管道出口去看一看是否标记为田字的管道出口流出的水流最多,如果是的话,这个管道网咯符合我们的预期要求,如果不是的话,就需要调节每一个调节阀,直到田字出口流出的谁最多。接下来,比如要识别申字,用类似的方法,把每一张写有申字的图片变为大量的数字组成的水流,灌入水管网络,这一次既要保证申字出口的水流最多,又要保证之前学习的田字不受影响。如此反复进行,直到所有的汉字组成的水流都能按照期望的方式流经整个水管网络,这时我们就说,这个水管网络已经是训练好的深度学习模型了,大量的数字流经整个水管网络后,通过调节阀门,整套水管网络就可以识别汉字了,这样就可以将调节好的每个阀门焊死。静候新的水流的到来。新来的图片转换成数字水流后,灌入整个网络,计算机观察一下哪个口流出的水流多,这张图片写的就是哪个字。
深度学习优点:
学习能力强(深度学习的表现非常好,他的学习能力非常强)
覆盖范围广、适应性好(深度学习的神经网络层数很多,宽度很广,理论上可以映射到任意函数,所以能解决很复杂的问题。)
可移植性强(由于深度学习的优异表现,有很多框架可以使用,例如 TensorFlow、Pytorch。这些框架可以兼容很多平台)
数据驱动、上限高(深度学习高度依赖数据,数据量越大,他的表现就越好。在图像识别、面部识别、NLP 等部分任务甚至已经超过了人类的表现。同时还可以通过调参进一步提高他的上限。)
深度学习缺点:
计算量大、便携性差(深度学习需要大量的数据,大量的算力,所以成本很高。并且现在很多应用还不适合在移动设备上使用。目前已经有很多公司和团队在研发针对便携设备的芯片。这个问题未来会得到解决。)
硬件要求高(深度学习对算力要求很高,普通的 CPU 已经无法满足深度学习的要求。主流的算力都是使用 GPU 和 TPU,所以对于硬件的要求很高,成本也很高。)
没有人性,容易存在偏见(由于深度学习依赖数据,并且可解释性不高。在训练数据不平衡的情况下会出现性别歧视、种族歧视等问题。)
模型设计复杂(深度学习的模型设计非常复杂,需要投入大量的人力物力和时间来开发新的算法和模型。大部分人只能使用现成的模型。)
典型的四种深度学习算法:
CNN卷积神经网络
CNN的价值:
能够将大数据量的图片有效的降维成小数据量(并不影响结果)
比如将1000像素的图片降为200像素的,并不会影响肉眼分辨出图片中是一只狗还是一只猫,机器也是如此。
能够保留图片的特征,类似人类的视觉原理
CNN的基本原理:
卷积层:主要作用是保留图片的特征
池化层:把数据降维,有效的避免过拟合
全连接层:根据不同的任务输出我们想要的结果
CNN的实际应用:
图片分类、检索
目标定位检测
目标分割
人脸识别
骨骼识别
自动驾驶
美图秀秀
RNN循环神经网络
RNN是一种能有效处理序列数据的算法,如文章内容、股票价格走向、语音音频。。。
之所以能处理序列数据,是因为在序列中前面的输入会影响后面的输出,也就有了记忆功能。但是是短期的,长期的数据影响很小。于是基于RNN出现了LSTM和GRU等变种算法。这些变种算法主要有几个特点:
可以有效保留长期信息
对于重要信息保留,其余信息可以选择遗忘
RNN的典型应用:
文本生成
语音识别
机器翻译
生成图像描述
视频标记
GANS生成对抗网络
RL深度强化学习