本系列主要是我对吴恩达的deeplearning.ai课程的理解和记录,完整的课程笔记已经有不少了,所以只记录我认为重要的东西和本身的一些理解。html
数据类型算法
结构化数据:表格类型的数据,有明确的行和列。网络
非结构化数据:音频、视频、图像、文本等类型的数据。less
网络结构机器学习
标准的NN结构以下图,包含输入层、隐藏层、输出层,前一层的全部节点和下一层的全部节点所有相连。能够认为标准的NN是全链接层组成的。函数
是最多见的网络结构,在数据量充足或者输入层的特征合适的状况下会得到较好的性能。它的输入通常都是性能
对于图像应用,咱们常常在神经网络上使用卷积(Convolutional Neural Network),一般缩写为CNN。学习
正如其名,CNN会包含输入层、卷积层、输出层(还会有池化层)。CNN的最大特色就是使用了卷积来提取特征。spa
对于序列数据,例如音频,有一个时间组件,随着时间的推移,音频被播放出来。做为一维时间序列(两种英文说法one-dimensional time series / temporal sequence)。视频
在序列数据上常用RNN,一种递归神经网络(Recurrent Neural Network)。英语和汉语字母表或单词都是逐个出现的,因此语言也是最天然的序列数据。
固然,现实中的实际问题会有更复杂的状况,好比自动驾驶,会使用一些更复杂的混合的神经网络结构。
假设有一个任务好比说准确率体如今垃圾邮件过滤或者广告点击预测,或者是神经网络在自动驾驶汽车时判断位置的准确性。若是把一个传统机器学习算法的性能与数据量的关系画出来,可能获得一个弯曲的线,以下图。它的性能一开始在增长更多数据时会上升,可是一段变化后它的性能就会像一个高原同样。假设你的水平轴拉的很长很长,它们不知道如何处理规模巨大的数据,而过去十年的社会里,咱们遇到的不少问题只有相对较少的数据量。如今,咱们的任何行为都会产生数据,而且被收集,使用。
神经网络展示出的是,若是你训练一个小型的神经网络,那么这个性能可能会像下图黄色曲线表示那样;若是你训练一个稍微大一点的神经网络,好比说一个中等规模的神经网络(下图蓝色曲线),它在某些数据上面的性能也会更好一些;若是你训练一个很是大的神经网络,它就会变成下图绿色曲线那样,而且保持变得愈来愈好。所以能够注意到两点:若是你想要得到较高的性能体现,那么你有两个条件要完成,第一个是你须要训练一个规模足够大的神经网络,以发挥数据规模量巨大的优势,另外你须要能画到x轴的这个位置,因此你须要不少的数据。
能够发现,想要在神经网络上得到更好的性能,每每就是要么训练一个更大的神经网络,要么投入更多的数据。另外这里说的数据是有标签的数据。
此外,红框部分想要说明的是,在数据量较小的状况下,各类算法的性能没有明确的好坏区分。此时决定算法性能的效果取决于你的特征工程以及后续的一些处理(模型融合)。
最近几年,深度学习算法的创新主要在算法计算速度的提升上,例如激活函数从Sigmoid变为了ReLU一方面为了使梯度降低算法运行更快。
在拥有数据的前提下,算法的速度提升意味着在一样的时间内咱们能尝试更多的想法,从而最后在应用是可以更好。
参考文献:
[1]. 课程视频:Coursera-deeplearning.ai / 网易云课堂
[2]. 深度学习笔记