热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

吴恩达深度学习《神经网络与深度学习》视频课程笔记总结与习题分享

神经网络和深度学习NeuralNetworksandDeepLearning:第一周:深度学习引言(IntroductiontoDeepLearnin

神经网络和深度学习Neural Networks and Deep Learning:

第一周:深度学习引言(Introduction to Deep Learning)

1.1 欢迎(Welcome)

1.2 什么是神经网络?(What is a Neural Network)

1.3 神经网络的监督学习(Supervised Learning with Neural Networks)

1.4 为什么深度学习会兴起?(Why is Deep Learning taking off?)

1.5 关于这门课(About this Course)

试题练习


第一周:深度学习引言 Introduction to Deep Learning


1.1 欢迎 Welcome

将学习到的内容

第一门课中 神经网络和深度学习,学习如何建立神经网络(包含一个深度神经网络)以及如何在数据上面训练它们,本课程结尾,将用一个神经网络进行辨认猫。

第二门课中 将进行深度学习方面的实际,学习严格地构建神经网络,将要学习超参数调整、正则化、诊断偏差和方差以及高级优化算法,比如Momentum和Adam算法。

第三门课中 将学习如何结构化你的机器学习工程。构建机器学习系统的策略改变了深度学习的错误,也将了解端到端的深度学习。

举个例子,分割数据的方式,分割成训练集、比较集或改变的验证集,以及测试集合,改变了深度学习的错误。

第四门课中:将会提到卷积神经网络 CNNs,它经常被用于图像领域,将学习如何搭建这样的模型。

第五门课中,将会学习到序列模型,以及如何将应用其于自然语言处理,序列模型包括的模型有循环神经网络(RNN)、全称是长短期记忆网络(LSTM)。你将在课程五中了解其中的时期是什么含义,并且有能力应用到自然语言处理(NLP)问题。


1.2什么是神经网络? What is a Neural Network

常用深度学习 Deep Learning 的术语来指训练神经网络的过程。有时它指的是特别大规模的神经网络训练。

举一个房价预测的例子。 假设有一组数据集,包含六栋房子的信息,已知每个房子的面积(输入x) ,还知道其对应的每个房子的价格(输出y)。根据这些输入和输出,我们建立一个函数模型,来预测房价:y=f(x)。将已知的房子的面积和价格关系绘制在二维平面上,如下图所示:

一般情况下,会用一条直线来拟合图中这些离散点,即建立面积与房价的线性模型。但是从现实考虑,知道房价永远不会是负数。所以需要对直线做一点修正,当面积小于某个值时,价格始终为零,如下图所示,蓝色折现就是建立的房价预测模型。

​​​​​​​

作为一个最简单的神经网络(蓝色折线),我们把房屋的面积作为神经网络的输入x,通过中间的神经元,最终输出y是房屋价格,

上图神经元的预测函数(蓝色折线),从趋向于零开始,然后变成了一条直线,这个函数被称作ReLU激活函数,即线性整流函数(Rectified Linear Unit),如下图

上面讲的只是由单个神经元(输入x只是房屋面积一个因素)组成的神经网络,而通常一个大型的神经网络往往是由许多神经元组成。

 

现在,把上面的房价预测例子变得复杂一些,除了考虑房屋面积(size)之外,我们还考虑卧室数目(#bedrooms)。这两点实际上与家庭成员的个数(family size)有关。还有,房屋的邮政编码(zip code/postal code),代表了该房屋位置的交通便利性,是否需要步行还是开车?即决定了可步行性(walkability)。另外,还有可能邮政编码和地区财富水平(wealth)共同影响了房屋所在地区的学校质量(school quality)。如下图所示,该神经网络共有三个神经元,分别代表了family size,walkability和school quality。每一个神经元都包含了一个ReLU函数(或者其它非线性函数)。那么,根据这个模型,我们可以根据房屋的面积和卧室个数来估计family size,根据邮政编码来估计walkability,根据邮政编码和财富水平来估计school quality。最后,由family size,walkability和school quality等这些人们比较关心的因素来预测最终的房屋价格。

所以,在这个例子中,输入x是size,#bedrooms,zip code/postal code和wealth这四个输入;y是房屋的预测价格。这个神经网络模型包含的神经元个数更多一些,相对之前的单个神经元的模型要更加复杂。那么,在建立一个表现良好的神经网络模型之后,在给定输入x时,就能得到比较好的输出y,即房屋的预测价格。

实际上,上面这个例子真正的神经网络模型结构如下所示。它有四个输入,分别是size,#bedrooms,zip code和wealth。在给定这四个输入后,神经网络所做的就是输出房屋的预测价格y。图中,三个神经元所在的位置称之为中间层或者隐藏层(x所在的称之为输入层,y所在的称之为输出层),每个神经元与所有的输入x都有关联(直线相连)。

值得注意的是神经网络给予了足够多的关于𝑥和𝑦的数据,给予了足够的训练样本有关𝑥和𝑦。神经网络非常擅长计算从𝑥到𝑦的精准映射函数。

 


1.3 深度网络的监督学习 Supervised Learning with Neural Networks

到目前几乎所有由神经网络创造的经济价值,本质上都离不开一种叫做监督学习的机器学习类别,监督式学习与非监督式学习本质区别就是是否已知训练样本的输出y。举例:在监督学习中你有一些输入𝑥,你想学习到一个函数来映射到一些输出𝑦,首先,第一个例子还是房屋价格预测。根据训练样本的输入x和输出y,训练神经网络模型,预测房价。第二个例子是线上广告,这是深度学习最广泛、最赚钱的应用之一。其中,输入x是广告和用户个人信息,输出y是用户是否对广告进行点击。神经网络模型经过训练,能够根据广告类型和用户信息对用户的点击行为进行预测,从而向用户提供用户自己可能感兴趣的广告。第三个例子是电脑视觉(computer vision)。电脑视觉是近些年来越来越火的课题,而电脑视觉发展迅速的原因很大程度上是得益于深度学习。其中,输入x是图片像素值,输出是图片所属的不同类别。第四个例子是语音识别(speech recognition)。深度学习可以将一段语音信号辨识为相应的文字信息。第五个例子是智能翻译,例如通过神经网络输入英文,然后直接输出中文。除此之外,第六个例子是自动驾驶。通过输入一张图片或者汽车雷达信息,神经网络通过训练来告诉你相应的路况信息并作出相应的决策。至此,神经网络配合监督式学习,其应用是非常广泛的。

对于一般的监督式学习(房价预测和线上广告问题),我们只要使用标准的神经网络模型就可以了。对于图像应用,我们经常在神经网络上使用卷积(Convolutional Neural Network),通常缩写为CNN。对于序列数据,例如音频,有一个时间组件,随着时间的推移,音频被播放出来,所以音频是最自然的表现。作为一维时间序列(两种英文说法one-dimensional time series / temporal sequence).对于序列数据,经常使用RNN,一种递归神经网络(Recurrent Neural Network),语言,英语和汉语字母表或单词都是逐个出现的,所以语言也是最自然的序列数据,因此更复杂的RNNs版本经常用于这些应用。

 

递归神经网络(RNN)非常适合这种一维序列,数据可能是一个时间组成部分。

CNN一般处理图像问题,RNN一般处理语音信号。他们的结构是什么意思?如何实现CNN和RNN的结构?这些问题我们将在以后的课程中来深入分析并解决。 

数据类型一般分为两种:Structured Data和Unstructured Data。 

你可能也听说过机器学习对于结构化数据和非结构化数据的应用,结构化数据意味着数据的基本数据库。例如在房价预测中,你可能有一个数据库,有专门的几列数据告诉你卧室的大小和数量,这就是结构化数据。或预测用户是否会点击广告,你可能会得到关于用户的信息,比如年龄以及关于广告的一些信息,然后对你的预测分类标注,这就是结构化数据,意思是每个特征,比如说房屋大小卧室数量,或者是一个用户的年龄,都有一个很好的定义。  相反非结构化数据是指比如音频,原始音频或者你想要识别的图像或文本中的内容。这里的特征可能是图像中的像素值或文本中的单个单词。

​​​​​​​


1.4 为什么深度学习会兴起?Why is Deep Learning taking off?

数据规模、计算量及算法的创新推动了深度学习变得热门的主要因素。

深度学习为什么这么强大?下面我们用一张图来说明。如下图所示,横坐标x表示数据量(Amount of data),纵坐标y表示机器学习模型的性能表现(Performance)。

上图共有4条曲线。其中,最底下的那条红色曲线代表了传统机器学习算法的表现,例如是SVM,logistic regression,decision tree等。当数据量比较小的时候,传统学习模型的表现是比较好的。但是当数据量很大的时候,其表现很一般,性能基本趋于水平。红色曲线上面的那条黄色曲线代表了规模较小的神经网络模型(Small NN)。它在数据量较大时候的性能优于传统的机器学习算法。黄色曲线上面的蓝色曲线代表了规模中等的神经网络模型(Media NN),它在在数据量更大的时候的表现比Small NN更好。最上面的那条绿色曲线代表更大规模的神经网络(Large NN),即深度学习模型。从图中可以看到,在数据量很大的时候,它的表现仍然是最好的,而且基本上保持了较快上升的趋势。值得一提的是,近些年来,由于数字计算机的普及,人类进入了大数据时代,每时每分,互联网上的数据是海量的、庞大的。如何对大数据建立稳健准确的学习模型变得尤为重要。传统机器学习算法在数据量较大的时候,性能一般,很难再有提升。然而,深度学习模型由于网络复杂,对大数据的处理和分析非常有效。所以,近些年来,在处理海量数据和建立复杂准确的学习模型方面,深度学习有着非常不错的表现。然而,在数据量不大的时候,例如上图中左边区域,深度学习模型不一定优于传统机器学习算法,性能差异可能并不大。深度学习强大的原因:Data    Computation    Algorithms。

深度学习如此强大的原因归结为三个因素:

* Data:数据量变大,模型性能提高

* Computation:计算能力增加,深度学习应用广泛

* Algorithms:算法提升,模型性能和计算速度提高,并且学习过程迭代加快

在这个小的训练集中,各种算法的优先级事实上定义的也不是很明确,所以如果你没有大量的训练集,那效果会取决于你的特征工程能力,那将决定最终的性能。假设有些人训练出了一个SVM(支持向量机)表现的更接近正确特征,然而有些人训练的规模大一些,可能在这个小的训练集中SVM算法可以做的更好。

构建一个深度学习的流程是首先产生Idea,然后将Idea转化为Code,最后进行Experiment。接着根据结果修改Idea,继续这种Idea->Code->Experiment的循环,直到最终训练得到表现不错的深度学习网络模型。如果计算速度越快,每一步骤耗时越少,那么上述循环越能高效进行。


1.5关于这门课 About this Course

1.Neural Networks and Deep Learning

2.Improving Deep Neural Networks: Hyperparameter tuning, Regularization and Optimization

3.Structuring your Machine Learning project

4.Convolutional Neural Networks

5.Natural Language Processing: Building sequence models

下面是关于第一门课的一些细节,这门课有四周的学习资料:  

第一周:关于深度学习的介绍。在每一周的结尾也会有十个多选题用来检验自己对材料的理解;  

第二周:关于神经网络的编程知识,了解神经网络的结构,逐步完善算法并思考如何使得神经网络高效地实现。从第二周开始做一些编程训练(付费项目),自己实现算法;  

第三周:在学习了神经网络编程的框架之后,你将可以编写一个隐藏层神经网络,所以需要学习所有必须的关键概念来实现神经网络的工作;  

第四周:建立一个深层的神经网络。


Summary

本节课的内容比较简单,主要对深度学习进行了简要概述。

首先,我们使用房价预测的例子来建立最简单的但个神经元组成的神经网络模型。然后,我们将将例子复杂化,建立标准的神经网络模型结构。接着,我们从监督式学习入手,介绍了不同的神经网络类型,包括Standard NN,CNN和RNN。不同的神经网络模型适合处理不同类型的问题。对数据集本身来说,分为Structured Data和Unstructured Data。近些年来,深度学习对Unstructured Data的处理能力大大提高,例如图像处​​​​​​​理、语音识别和语言翻译等。最后,我们用一张对比图片解释了深度学习现在飞速发展、功能强大的原因。

 归纳其原因包含三点:Data,Computation和Algorithms。

试题练习

第 1 题

“人工智能是新电力”这个比喻指的是什么?

A.人工智能为我们的家庭和办公室的个人设备供电,类似于电力。

B.通过“智能电网”,人工智能正在传递新一波的电力。

C.人工智能在计算机上运行,因此由电力驱动,但它让计算机做以前不可能做的事情。

D.与100年前开始的电力类似,人工智能正在改变多个行业。

第 2 题

以下哪些是最近深度学习开始崛起的原因?(选出所有答案)

A.我们拥有了更多的计算能力

B.神经网络是一个崭新的领域。

C.我们有了更多的数据。

D.深度学习在诸如在线广告、语音识别和图像识别等重要应用方面取得了显著的改进。

第 3 题

回想一下这个机器学习迭代的图。以下哪项陈述是正确的?(选出所有正确项)

A.能够快速地尝试各种想法可以让深入学习的工程师更快地迭代。

B.更快的计算有助于加快团队迭代一个好主意所需的时间。

C.在大数据集上训练比在小数据集上训练更快。

D.深度学习算法的最新进展使我们能够更快地训练好的模型(即使不改变CPU/GPU硬件)。

第 4 题

当一个有经验的深度学习工程师处理一个新问题时,他们通常可以在第一次尝试时利用以前问题的洞察力来训练一个好的模型,而不需要在不同的模型中重复多次。

A.对

B.不对

第 5 题

这些图中的哪一个表示ReLU激活函数?

第 6 题

用于猫识别的图像是“结构化”数据的一个例子,因为它在计算机中表示为结构化的数组。

A.对

B.不对

第 7 题

人口数据集包含不同城市人口、人均GDP、经济增长的统计数据,这是“非结构化”数据的一个例子,因为它包含来自不同来源的数据。

A.对

B.不对

第 8 题

为什么RNN(递归神经网络)被用于机器翻译,比如说将英语翻译成法语?(选出所有正确项)

A.它可以训练成一个有监督的学习问题

B.它比卷积神经网络(CNN)更强大

C.当输入/输出是一个序列(例如,一个单词序列)时适用

D.RNN表示 想法->代码->实验->想法->… 的循环过程

第 9 题

在这PPT截图中,水平轴(X轴)和垂直轴(Y轴)代表什么?

A.X轴代表数据量,Y轴代表模型规模

B.X轴代表数据量,Y轴代表模型表现

C.X轴代表模型表现,Y轴代表数据量

D.X轴代表模型的输入,Y轴代表输出

第 10 题

假设前一个问题中所描述的趋势是准确的(并且希望你的坐标轴标签正确),下列哪一个是正确的?(选出所有正确项)

A.增加训练集的大小通常不会影响算法的性能,而且可能会有很大帮助。

B.增加神经网络的规模通常不会影响算法的性能,而且可能会有很大帮助。

C.减小训练集的大小通常不会影响算法的性能,而且可能会有很大帮助。

D.减小神经网络的规模通常不会影响算法的性能,而且可能会有很大帮助。

1-10题 答案

1.D 2.ACD 3.ABD 4.B 5.C 6.B 7.B 8.AC 9.B 10.AB


推荐阅读
  • 题目描述:给定一个区间,支持两种操作:1. 将位置a的值修改为b;2. 查询区间[a, b]内的子序列的最大和,其中子序列中相邻的元素必须具有不同的奇偶性。 ... [详细]
  • 本文介绍了如何在 Spring Boot 项目中使用 spring-boot-starter-quartz 组件实现定时任务,并将 cron 表达式存储在数据库中,以便动态调整任务执行频率。 ... [详细]
  • Leetcode学习成长记:天池leetcode基础训练营Task01数组
    前言这是本人第一次参加由Datawhale举办的组队学习活动,这个活动每月一次,之前也一直关注,但未亲身参与过,这次看到活动 ... [详细]
  • 2020年9月15日,Oracle正式发布了最新的JDK 15版本。本次更新带来了许多新特性,包括隐藏类、EdDSA签名算法、模式匹配、记录类、封闭类和文本块等。 ... [详细]
  • MySQL初级篇——字符串、日期时间、流程控制函数的相关应用
    文章目录:1.字符串函数2.日期时间函数2.1获取日期时间2.2日期与时间戳的转换2.3获取年月日、时分秒、星期数、天数等函数2.4时间和秒钟的转换2. ... [详细]
  • 非计算机专业的朋友如何拿下多个Offer
    大家好,我是归辰。秋招结束后,我已顺利入职,并应公子龙的邀请,分享一些秋招面试的心得体会,希望能帮助到学弟学妹们,让他们在未来的面试中更加顺利。 ... [详细]
  • Spring – Bean Life Cycle
    Spring – Bean Life Cycle ... [详细]
  • 本文介绍了几种常用的图像相似度对比方法,包括直方图方法、图像模板匹配、PSNR峰值信噪比、SSIM结构相似性和感知哈希算法。每种方法都有其优缺点,适用于不同的应用场景。 ... [详细]
  • 单片微机原理P3:80C51外部拓展系统
      外部拓展其实是个相对来说很好玩的章节,可以真正开始用单片机写程序了,比较重要的是外部存储器拓展,81C55拓展,矩阵键盘,动态显示,DAC和ADC。0.IO接口电路概念与存 ... [详细]
  • 本文详细介绍了MySQL数据库的基础语法与核心操作,涵盖从基础概念到具体应用的多个方面。首先,文章从基础知识入手,逐步深入到创建和修改数据表的操作。接着,详细讲解了如何进行数据的插入、更新与删除。在查询部分,不仅介绍了DISTINCT和LIMIT的使用方法,还探讨了排序、过滤和通配符的应用。此外,文章还涵盖了计算字段以及多种函数的使用,包括文本处理、日期和时间处理及数值处理等。通过这些内容,读者可以全面掌握MySQL数据库的核心操作技巧。 ... [详细]
  • 在机器学习领域,深入探讨了概率论与数理统计的基础知识,特别是这些理论在数据挖掘中的应用。文章重点分析了偏差(Bias)与方差(Variance)之间的平衡问题,强调了方差反映了不同训练模型之间的差异,例如在K折交叉验证中,不同模型之间的性能差异显著。此外,还讨论了如何通过优化模型选择和参数调整来有效控制这一平衡,以提高模型的泛化能力。 ... [详细]
  • 技术日志:使用 Ruby 爬虫抓取拉勾网职位数据并生成词云分析报告
    技术日志:使用 Ruby 爬虫抓取拉勾网职位数据并生成词云分析报告 ... [详细]
  • 如何利用正则表达式(regexp)实现高效的模式匹配?本文探讨了正则表达式在编程中的应用,并分析了一个示例程序中存在的问题。通过具体的代码示例,指出该程序在定义和使用正则表达式时的不当之处,旨在帮助读者更好地理解和应用正则表达式技术。 ... [详细]
  • 掌握PHP编程必备知识与技巧——全面教程在当今的PHP开发中,了解并运用最新的技术和最佳实践至关重要。本教程将详细介绍PHP编程的核心知识与实用技巧。首先,确保你正在使用PHP 5.3或更高版本,最好是最新版本,以充分利用其性能优化和新特性。此外,我们还将探讨代码结构、安全性和性能优化等方面的内容,帮助你成为一名更高效的PHP开发者。 ... [详细]
  • 您的数据库配置是否安全?DBSAT工具助您一臂之力!
    本文探讨了Oracle提供的免费工具DBSAT,该工具能够有效协助用户检测和优化数据库配置的安全性。通过全面的分析和报告,DBSAT帮助用户识别潜在的安全漏洞,并提供针对性的改进建议,确保数据库系统的稳定性和安全性。 ... [详细]
author-avatar
l彡id夏日阳光
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有