deeplearning.ai课程学习(1)
本系列主要是我对吴恩达的deeplearning.ai课程的理解和记录,完整的课程笔记已经有很多了,因此只记录我认为重要的东西和自己的一些理解。
第一门课 神经网络和深度学习(Neural Networks and Deep Learning)
第一周:深度学习引言(Introduction to Deep Learning)
1、常用神经网络的结构与对应的数据类型
数据类型
结构化数据:表格类型的数据,有明确的行和列。
非结构化数据:音频、视频、图像、文本等类型的数据。

网络结构
标准的NN结构如下图,包含输入层、隐藏层、输出层,前一层的所有节点和下一层的所有节点全部相连。可以认为标准的NN是全连接层组成的。
是最常见的网络结构,在数据量充足或者输入层的特征合适的情况下会获得较好的性能。它的输入一般都是

对于图像应用,我们经常在神经网络上使用卷积(Convolutional Neural Network),通常缩写为CNN。
正如其名,CNN会包含输入层、卷积层、输出层(还会有池化层)。CNN的最大特点就是使用了卷积来提取特征。

对于序列数据,例如音频,有一个时间组件,随着时间的推移,音频被播放出来。作为一维时间序列(两种英文说法one-dimensional time series / temporal sequence)。
在序列数据上经常使用RNN,一种递归神经网络(Recurrent Neural Network)。英语和汉语字母表或单词都是逐个出现的,所以语言也是最自然的序列数据。

当然,现实中的实际问题会有更复杂的情况,比如自动驾驶,会使用一些更复杂的混合的神经网络结构。
2、为什么深度学习会兴起?
假设有一个任务比如说准确率体现在垃圾邮件过滤或者广告点击预测,或者是神经网络在自动驾驶汽车时判断位置的准确性。如果把一个传统机器学习算法的性能与数据量的关系画出来,可能得到一个弯曲的线,如下图。它的性能一开始在增加更多数据时会上升,但是一段变化后它的性能就会像一个高原一样。假设你的水平轴拉的很长很长,它们不知道如何处理规模巨大的数据,而过去十年的社会里,我们遇到的很多问题只有相对较少的数据量。现在,我们的任何行为都会产生数据,并且被收集,使用。

神经网络展现出的是,如果你训练一个小型的神经网络,那么这个性能可能会像下图黄色曲线表示那样;如果你训练一个稍微大一点的神经网络,比如说一个中等规模的神经网络(下图蓝色曲线),它在某些数据上面的性能也会更好一些;如果你训练一个非常大的神经网络,它就会变成下图绿色曲线那样,并且保持变得越来越好。因此可以注意到两点:如果你想要获得较高的性能体现,那么你有两个条件要完成,第一个是你需要训练一个规模足够大的神经网络,以发挥数据规模量巨大的优点,另外你需要能画到x轴的这个位置,所以你需要很多的数据。

可以发现,想要在神经网络上获得更好的性能,往往就是要么训练一个更大的神经网络,要么投入更多的数据。另外这里说的数据是有标签的数据。
此外,红框部分想要说明的是,在数据量较小的情况下,各种算法的性能没有明确的好坏区分。此时决定算法性能的效果取决于你的特征工程以及后续的一些处理(模型融合)。
3、评估与迭代
最近几年,深度学习算法的创新主要在算法计算速度的提高上,例如激活函数从Sigmoid变为了ReLU一方面为了使梯度下降算法运行更快。
在拥有数据的前提下,算法的速度提高意味着在同样的时间内我们能尝试更多的想法,从而最后在应用是能够更好。

参考文献:
[1]. 课程视频:Coursera-deeplearning.ai / 网易云课堂
[2]. 深度学习笔记
deeplearning.ai课程学习(1)的更多相关文章
- deeplearning.ai课程学习(2)
第二周:神经网络的编程基础(Basics of Neural Network programming) 1.逻辑回归的代价函数(Logistic Regression Cost Function) 逻 ...
- deeplearning.ai课程学习(3)
第三周:浅层神经网络(Shallow neural networks) 1.激活函数(Activation functions) sigmoid函数和tanh函数两者共同的缺点是,在z特别大或者特别小 ...
- deeplearning.ai课程学习(4)
第四周:深层神经网络(Deep Neural Networks) 1.深层神经网络(Deep L-layer neural network) 在打算使用深层神经网络之前,先去尝试逻辑回归,尝试一层然后 ...
- Deeplearning.ai课程笔记--汇总
从接触机器学习就了解到Andrew Ng的机器学习课程,后来发现又出来深度学习课程,就开始在网易云课堂上学习deeplearning.ai的课程,Andrew 的课真是的把深入浅出.当然学习这些课程还 ...
- Deeplearning.ai课程笔记-神经网络和深度学习
神经网络和深度学习这一块内容与机器学习课程里Week4+5内容差不多. 这篇笔记记录了Week4+5中没有的内容. 参考笔记:深度学习笔记 神经网络和深度学习 结构化数据:如数据库里的数据 非结构化数 ...
- Deeplearning.ai课程笔记-改善深层神经网络
目录 一. 改善过拟合问题 Bias/Variance 正则化Regularization 1. L2 regularization 2. Dropout正则化 其他方法 1. 数据变形 2. Ear ...
- 机器学习策略——DeepLearning.AI课程总结
一.什么是ML策略 假设你正在训练一个分类器,你的系统已经达到了90%准确率,但是对于你的应用程序来说还不够好,此时你有很多的想法去继续改善你的系统: 收集更多训练数据 训练集的多样性不够,收集更多的 ...
- Deeplearning.ai课程笔记-结构化机器学习项目
目录 一. 正交化 二. 指标 1. 单一数字评估指标 2. 优化指标.满足指标 三. 训练集.验证集.测试集 1. 数据集划分 2. 验证集.测试集分布 3. 验证集.测试集大小 四. 比较人类表现 ...
- Coursera深度学习(DeepLearning.ai)编程题&笔记
因为是Jupyter Notebook的形式,所以不方便在博客中展示,具体可在我的github上查看. 第一章 Neural Network & DeepLearning week2 Logi ...
随机推荐
- Unity3d在各个平台读取Sqlite3数据库
这也是我第一次在Unity3d中使用Sqlite来作为配置表文件,当然了,SQLite有优秀的读写性能. 如果这个项目用着稳定的话,我会一直使用下去. Android平台: 1,下载libsqlite ...
- android 界面控件 textview 全解
textview基本使用: <TextView 10. android:id="@+id/txtOne" 11. android:layout_width="200 ...
- Oracle 序列的创建删除插入
今天学习的是序列的创建蟹盖和删除插入 创建: create Sequence Seq_name increment by n ----序列变化的程度,默认为1,可以为负数表示递减 start ...
- HTTP状态保持的原理
a)在用户登录之后,浏览器返回响应的时候会在响应中添加上cookieb)浏览器接收到cookie之后会自动保存c)当用户再次请求同一服务器中的其他网页的时候,浏览器会自动带上之前保存的cookied) ...
- collections模块的使用
1. Counter counter是collections中的一个模块, 它能够统计出字符串/文本中的每一个元素出现的次数, 并可以对结果进行进一步的处理. 使用方法 传入: 字符串 默认返回: C ...
- 二维数组快速排序(sort+qsort)
二维数组快速排序 qsort是c中快速排序,如果简单的一维数组排序,想必大家的懂.现在看一下二维数组的排序,虽然可以冒泡但是太费时间了,我们这里使用qsort来快速排序,看代码应该看得懂吧. 代码: ...
- POJ2553 汇点个数(强连通分量
The Bottom of a Graph Time Limit: 3000MS Memory Limit: 65536K Total Submissions: 12070 Accepted: ...
- 链栈的c++实现
2013-08-30 20:58 1876人阅读 评论(0) 收藏 举报 链栈是借用单链表实现的栈.其不同于顺序栈之处在于: 1.链栈的空间是程序运行期间根据需要动态分配的,机器内存是它的上限.而顺序 ...
- nodejs环境变量配置
步骤 创建文件夹:安装包 配置环境变量: export NODE_HOME=/root/安装包/node-v7.6.0-linux-x64 export PATH=$NODE_HOME/bin:$PA ...
- [ACM] POJ 2409 Let it Bead (Polya计数)
参考:https://blog.csdn.net/sr_19930829/article/details/38108871 #include <iostream> #include < ...