deeplearning.ai 神经网络和深度学习 week2 神经网络基础 听课笔记
1. Logistic回归是用于二分分类的算法。
对于m个样本的训练集,我们可能会习惯于使用for循环一个个处理,但在机器学习中,是把每一个样本写成一个列向量x,然后把m个列向量拼成一个矩阵X。这个矩阵是nx*m大小,nx是每个样本的特征数量,m是样本个数,X.shape=(nx,m)。也可以把特征写成横向量然后竖着拼成m*n的矩阵,NG说前一种列向量的表示方便运算。输出Y是1*m的向量,Y.shape=(1,m)。
把样本表示成矩阵形式后,可以对它进行线性操作wTx+b,由于二分分类的标签为0或1,所以需要把线性变换的值变换到[0, 1]之间,即y_hat = σ(wTx+b),这里σ(z)=1/(1+e-z)就是sigmoid函数。
Loss (error) function描述了预测的输出y_hat和真实的标签y有多接近。误差平方是个很符合直觉的选择,但是不方便梯度下降法求解。在logistic回归中使用的loss funciton是L(y_hat, y) = -( ylog(y_hat) + (1-y)log(1-y_hat) ). 直观地说为什么这个loss function合理呢?如果y=1,L(y_hat ,y)=-ylog(y_hat),L越小越好,所以y_hat越大越好,又因为输出在[0, 1]区间,所以y_hat会趋向于1;如果y=0, L=-log(1-y_hat), y_hat会趋向于0。更深层次的说,这里的loss function描述的是概率的log,而如果每个样本都是独立同分布的,则整体的概率是每个样本概率的累乘,取log之后就是累加。
Loss function描述了单个样本的损失,Cost function描述了在整个样本空间的损失,J(w, b)是所有样本的loss function的平均值。这种方式构造的cost funciton是凸函数,使得优化问题是一个凸优化问题。
Logistic回归可以被看作是非常小的神经网络。
2. 神经网络的计算过程分为前向传播和反向传播,前向传播是计算神经网络的输出,反向传播是计算对应的梯度。
可以用计算图把复杂计算过程拆分成简单计算的堆叠。
在Logistic回归的例子中,算法使用了2个嵌套的for循环,外层for循环遍历所有的样本,内层for循环遍历单个样本内所有的特征。这样做的缺点是for循环效率低,特别是当数据量越来越大的情况下。所以就要使用向量化技术摆脱for循环。
3. 向量化。为计算 z=wTx+b,w和x都是n*1的向量,python中 z=np.dot(w,x)+b 会比for循环快很多(NG随便跑了个例子就相差300倍的耗时)。这是因为这种内置的dot运算更好地利用了并行化计算SIMD(Single Instruction Multiple Data)。相比于CPU,GPU更擅长SIMD。所以只要有可能,就避免使用for循环。
4. python中的broadcasting机制:做加减乘除等运算的时候,自动会把标量,或者小矩阵,扩展成和大矩阵一样的大小,然后元素对元素的运算。这个机制有好有坏,好处是方便,坏处是易错。
一些建议:
1)不推荐使用 a = np.random.randn(5),得到的a是秩为1的数组,a.shape = (5, ),这种数组和行向量、列向量都不一样。
推荐使用 a = np.random.randn(5, 1),这是指明a为列向量,a.shape = (5, 1)。
2)如果不确定矩阵的形状,可以用 assert( a.shape == (5, 1) )。
3)为保险都可以使用 a = a.reshape(5, 1),reshape的计算很快,所以不用担心耗时。
deeplearning.ai 神经网络和深度学习 week2 神经网络基础 听课笔记的更多相关文章
- deeplearning.ai 改善深层神经网络 week1 深度学习的实用层面 听课笔记
1. 应用机器学习是高度依赖迭代尝试的,不要指望一蹴而就,必须不断调参数看结果,根据结果再继续调参数. 2. 数据集分成训练集(training set).验证集(validation/develop ...
- deeplearning.ai 神经网络和深度学习 week2 神经网络基础
1. Logistic回归是用于二分分类的算法. 对于m个样本的训练集,我们可能会习惯于使用for循环一个个处理,但在机器学习中,是把每一个样本写成一个列向量x,然后把m个列向量拼成一个矩阵X.这个矩 ...
- deeplearning.ai 人工智能行业大师访谈 林元庆 听课笔记
1. 读博士之前,林元庆是学光学,他自认为数学基础非常好.在宾夕法尼亚大学上课认识了他的博士导师Dan Lee,转学机器学习.他从头开始学了很多算法,甚至PCA,之前他完全不知道这些,他觉得非常兴奋, ...
- Deeplearning.ai课程笔记-神经网络和深度学习
神经网络和深度学习这一块内容与机器学习课程里Week4+5内容差不多. 这篇笔记记录了Week4+5中没有的内容. 参考笔记:深度学习笔记 神经网络和深度学习 结构化数据:如数据库里的数据 非结构化数 ...
- 针对深度学习(神经网络)的AI框架调研
针对深度学习(神经网络)的AI框架调研 在我们的AI安全引擎中未来会使用深度学习(神经网络),后续将引入AI芯片,因此重点看了下业界AI芯片厂商和对应芯片的AI框架,包括Intel(MKL CPU). ...
- (转)神经网络和深度学习简史(第一部分):从感知机到BP算法
深度|神经网络和深度学习简史(第一部分):从感知机到BP算法 2016-01-23 机器之心 来自Andrey Kurenkov 作者:Andrey Kurenkov 机器之心编译出品 参与:chen ...
- [DeeplearningAI笔记]神经网络与深度学习人工智能行业大师访谈
觉得有用的话,欢迎一起讨论相互学习~Follow Me 吴恩达采访Geoffrey Hinton NG:前几十年,你就已经发明了这么多神经网络和深度学习相关的概念,我其实很好奇,在这么多你发明的东西中 ...
- 【吴恩达课后测验】Course 1 - 神经网络和深度学习 - 第一周测验【中英】
[吴恩达课后测验]Course 1 - 神经网络和深度学习 - 第一周测验[中英] 第一周测验 - 深度学习简介 和“AI是新电力”相类似的说法是什么? [ ]AI为我们的家庭和办公室的个人设备供电 ...
- Spark MLlib Deep Learning Convolution Neural Network (深度学习-卷积神经网络)3.1
3.Spark MLlib Deep Learning Convolution Neural Network (深度学习-卷积神经网络)3.1 http://blog.csdn.net/sunbow0 ...
随机推荐
- idea和Webstorm上使用git和github,码云
由于之前一直使用svn,现在项目使用git,顾根据网上找的学习资料,自己梳理了下,收获蛮多,这里做个记录,如果能帮助到您那是最好不过的. 1.大致步骤 使用工具:idea,github,码云 webs ...
- FormData自定义上传图片
由于前段时间的项目中 涉及到图纸的上传 前端大神很随意的扔给我一个页面 让我自己修修改改 找了好几个素材站都没有找到合适的上传插件 最后不得已 用formdata 写了一个 顺便记录下吧 html 代 ...
- EclipseIDE设置
对于新安装的Eclipse而言要设置: 1.Window-Preferences-General-Workspace,然后分别设置Text file encoding为UTF-8和设置New text ...
- 完善chrome翻译插件ChaZD,支持有道智云api
首先放上该项目的github地址:https://github.com/codethereforam/ChaZD 之前想找一个chrome支持划词翻译的插件,最终在知乎上看到了这个回答,推荐的是Cha ...
- Pytorch windows10安装教程
强烈建议安装anaconda之后再来安装这个pytorch,具体怎么安装百度搜索就知道了. 温馨提示,在安装anaconda的时候记得将"添加到环境变量"(安装的时候是英文的)这一 ...
- Xamarin android SwipeRefreshLayout入门实例
android SwipeRefreshLayout 是实现的效果就是上滑下拉刷新ListView 获取其他控件数据.基本上每个App都有这种效果.Google提供了一个官方的刷新控件SwipeRef ...
- css盒模型研究
css的盒模型一直是一个重点和难点,最近由后端的学习转到前端,觉得有必要深入研究一下css的盒模型. 1.万物皆盒子 我们必须要有一个理念,在html的世界里,万物皆盒子,那就是任何一个html元素都 ...
- bzoj 3669: [Noi2014] 魔法森林 LCT版
Description 为了得到书法大家的真传,小E同学下定决心去拜访住在魔法森林中的隐士.魔法森林可以被看成一个包含个N节点M条边的无向图,节点标号为1..N,边标号为1..M.初始时小E同学在号节 ...
- 改造 Combo Select支持服务器端模糊搜索
项目中使用了 combo select,为缺省的select增加模糊搜索的功能,一直运行得很好. 1 碰到的问题 但最近碰到一个大数据量的select:初始化加载的数据项有2000多个.我们采用 ...
- jQueryUI Autocomplete插件使用入门教程(最新版)---------转载
前言: jQuery,无需多作介绍,相信各位读者都应该接触或使用过了.jQuery UI,简而言之,它是一个基于jQuery的前端UI框架.我们可以使用jQuery + jQuery UI非常简单方便 ...