吴恩达 Deeplearning 神经网络和深度学习第一周笔记

最近开始补学 Coursera 上吴恩达 Andrew Ng 老师的深度学习课程 Deeplearning.ai 为了避免上一次刷课效率低下,刷了就忘的情况出现,所以这一次就决定在 Blog 上持续更新。

关于这门课,网上已经有无数大佬的笔记了,在这里我也是记录我自己的学习过程,笔记的中如果有纰漏或者是有更好的记录方式,希望各位读者能指出。

本次笔记会记录吴恩达 Deeplearning 课程的第一个专项课程神经网络和深度学习 Neural Networks and Deep Learning 的第一周课程内容。

什么是神经网络?

课程以房价预测为例,简单讲解了什么是神经网络。
Housing Price Prediction
这里横轴是房屋面积,纵轴是价格,如果是从简单的线性回归来说,就会拟合出来斜向上的一条直线。并且由于卖方的不会倒贴你钱,所以直线跟 X 轴交接的地方会直接跟 0 相接成一条与 X 轴重合的直线。

这条一横一斜的组合线条构成的也算是机器学习中非常经典的激活函数 activation function 线性整流函数Rectified Linear Unit, ReLU.
The Simplest NN
整个拟合的结构也可以称之为最简单神经网络结构。我们用房子的大小 x 作为对神经网络的输入 它进入到这个节点(这个小圈)中。然后这个小圈就输出了房价,我们叫做 y. 所以这个小圈,也就是一个神经网络中的一个神经元,就会执行上面提到的方程。
Housing Price Prediction
如果我们引入的条件再多一点,比如需要考虑卧室数量,住宅区位,还有社区是否富有等等,就会形成一个相对复杂一点儿的神经网络。

从人的角度来思考,住宅面积和卧室数量可以一同反映家庭规模,而邮政编码和社区富裕程度则能决定生活的便利程度等等。一般而言我们要做的是将所有数据进行输入到输入层,然后由神经网络自行决定是否各个因素之间的关系权重等。当我们给定足够多的 x 和 y 的时候,神经网络就会拟合出来一条函数去建立 x 和 y 之间的映射关系。
这也是一个典型的监督式学习 Supervised Learning 的应用场景。所谓监督式学习,就是在训练的时候将一个 x 和 y 对应起来。

监督式学习

监督式学习 Supervised learning,是一个机器学习中的方法,可以由训练资料中学到或建立一个模式(函数 / learning model),并依此模式推测新的实例。训练资料是由输入物件(通常是向量)和预期输出所组成。函数的输出可以是一个连续的值(称为回归分析 regression),或是预测一个分类标签(称作分类 classification )。

下面是一些监督式学习的例子:

Input(x)Output(y)ApplicationNN Type
Home
features
PriceReal
Estate
Standard NN
Ad,
user info
Click
on ad? (0/1)
Online
Advertising
ImageObject
(1,…,1000)
Photo
tagging
CNN
AudioText
transcript
Speech
recognition
RNN
EnglishChineseMachine
translation
Image,
Radar info
Position
of other cars
Autonomous
driving
Hybrid NN

一般而言,我们倾向于使用卷积神经网络 Convolution Neural Network (CNN) 去处理图像方面的应用,用时间递归神经网络 Recurrent Neural Network (RNN) 去处理一维序列数据。而至于说自动驾驶这种就需要用到混合神经网络 Hybrid Neural Network 了。
Neural Network Examples

结构化数据和非结构化数据

一般结构化数据 Structured Data 代表的类似于有着具体而确切意义的行数据,比如价格、年龄等等;而非结构化数据 Unstructured Data 一般指的是文本、图像、音频等类型的数据。
Supervised Learning

近年来神经网络高速发展的原因

人工神经网络 Artificial Neural Network (ANN) 的雏形和算法早在上个世纪就已经提出,但为什么直到现在才有相对成规模的应用呢?

主要原因是数字社会所带来的海量可分析数据更快的计算能力以及神经网络算法的创新
Scale drives deep learning progress
有两点极大的促进了效率的提高:

  • 我们现在有能力处理足够大的神经网络
  • 我们拥有最够多的已标记数据 Labeled Data

在上图中,可以注意到的是,图像的左侧无论是传统的回归模型还是各种神经网络,都有非常高的效率,因此在训练集不大的情况下,也可能会出现普通回归模型的精度高于神经网络的现象。总体来说,但样本越多,神经网络规模越大,神经网络的表现也就越好。

神经网络训练的迭代

Neural Network Iteration
开发神经网络是一个需要不断重复的过程,具体过程如上图所示。由最开始的构思到代码,进行实验并不断修正。由于整个过程机器耗费时间,因此更快的计算速度对迭代速度和新算法的开发是大有裨益的。

Powered by Hexo and Hexo Theme Hiker

Copyright © 2016 - 2018 WoadZS's Blog All Rights Reserved.

WoadZS 保留所有权利