小C的第一宇宙
wangc
Oct 11, 2017
阅读本文需要 5 分钟(按字数)

笔记学习自网易云课堂-微专业-深度学习工程师

什么是神经网络?

神经网络(也称之为人工神经网络,ANN),顾名思义,是结合了对大脑工作机理的研究,应用在计算机领域的一种模型(算法)。

神经网络模型

经典的神经网络模型如下,红色的是输入层,绿色的是输出层,中间是隐含层。其实就是像人的神经系统一样,圆圈对应神经元,连线对应神经元之间的突触。 image

分类

根据上面的模型,神经网络的层数是可以调整的。根据层数(一般说的隐含层)的多少,分为单层,两层或多层神经网络模型

与其他概念的关系

  • 神经网络是一门重要的机器学习技术。
  • 神经网络是深度学习的基础,深度学习其实就是传统的神经网络发展到了多隐藏层的情况。
  • 神经网络是一种现代优化算法(又称为现代启发式算法,是一种具有全局优化性能、通用性强、且适合于并行处理的算法。)

神经网络的应用

神经网络广泛应用与解决各种问题,如函数拟合、模式识别、分类和聚类等。随着多层神经网络的研究,神经网络的应用变得越来越广泛。

实例 房价预测

用神经网络进行房价预测是神经网络应用的一个经典实例,了解这个问题的解决将是学习神经网络一个很好的起点,问题的解决大概有这么几步:

  1. 用大量数据对你创建好的神经网络进行训练,这些数据是已经销售的房子的价格和房子的相关信息。
  2. 训练好后,直接就能用用看了,你只需输入你想要预测价格的房子相关信息,比如房子面积,所在地理位置等,然后就能输出预测出来的价格
  3. 当然,往往需要多次试验,不断根据结果调制模型,以达到更好的效果。

房价预测问题,实际就是用神经网络进行拟合,寻找输入和输出的关系,比如房子面积,几室几厅和处在区域等和实际销售价格之间的关系。按一般经验来说,房子面积越大,房间越多,地理位置越好(比如市中心),那么房子就会买的越贵。但是实际情况会更复杂,影响房子价值的因素会很多,而且相关因素不一定是线性的,因素之间还会互相影响,这时候我们就可以用神经网络模型来进行预测,只需输入大量的有效数据,就可以自动帮我们综合考虑这一切。

link

Matlab的Neural Network Toolbox上有这个实例,有Matlab的同学可以看着参考文档上手试一试。

用神经网络进行监督学习

这里需要理解一个概念,就是监督学习(或称指导学习。supervised Learning)。监督学习是一种机器学习方法,思路是“已知问题的答案,反向找出解题的逻辑。”好比有一类数学题完全不会,一般我们都会自然而然的先看几道例题和答案,在慢慢摸索解题思路,这就是监督学习。 而上面的房价预测例子中,便是先输入大量已知的房价,对神经网络进行训练,然后预测未知的房价,这就是用神经网络进行监督学习。可以说,区别一种机器学习方法是否为监督学习,只需看预先有没有训练的过程。

监督学习的应用

监督学习的应用范围很广,比如很多预测类问题,语音识别,图像识别,机器翻译,自动驾驶技术等等 image

两个概念

  • 结构化数据:一些问题中,很多信息我们很方便把它量化出来的,比如房价预测中,大小,卧室数量都是现成的数字,这样就很方便处理。
  • 非结构化数据:但是现实世界中,大多数据我们是难以量化的,比如图片识别是猫还是狗,虽然图片本身可以存储为数据矩阵,但是什么样的图片是猫,也就是图片中包含的具体信息(猫和狗的特征),难以量化描述。

image

为什么深度学习会兴起

实际上,每一种技术,包括机器学习,神经网络,深度学习什么的,虽然最近很火,好像新技术一样。其实它们从产生到发展过程中都经历过很多起伏。比如神经网络技术,发展了70年了,中间一度被新技术取代,现在随着深度学习的兴起有重回人们的视野。 所以说,现在技术迭代太快,学的东西一不小心就会被淘汰,所以了解技术本身的同时,也要了解这个技术为什么会兴起,以便更从容的应对将来的变化。

课程中吴恩达分析对深度学习会什么会兴起做了两方面的分析。

大数据时代

如今被称为大数据时代,因为我们每时每刻,只要是使用联网的电子设备都会产生数据,并且人们把现实中的各种实体都在加以数据化,所以如今的现成数据是海量的,并且获取新的数据也变的很方便。 而神经网络需要的就是海量的数据进行训练,理论上来讲,神经网络层数越多,可以驾驭的数据量也就越大,而训练所用的数据量越大,性能就会越好。如今数据越来越大,多层神经网络(深度学习)的优势就体现出来了,而面对数据量的增加,其他的机器学习方法也比不上深度学习了。

更好的算法和机器

硬件技术和软件技术都在迅猛的发展,人们对应神经网络模型也提出了更好的算法,现在训练一个网络是很快的,比如Matlab,在一般笔记本电脑上用几万的样本数据训练一个网络只需要几分钟。这样我们很方便的可以不断的调制我们的模型,再不断的训练,多试验一下就可以找到更好的模型。

参考的网址