《Machine Learning》系列学习笔记之第四周
第四周
Model Representation I
让我们来看看如何使用神经网络来表示假设函数。在非常简单的水平上,神经元基本上是将输入(树突)作为输入到输出(轴突)的电输入(称为“尖峰”)的计算单元。在我们的模型中,我们的树突像输入特征x1 ... xn,输出是我们的假设函数的结果。在这个模型中,我们的x0输入节点有时被称为“偏置单元”。它总是等于1.在神经网络中,我们使用与分类11 + e-θTx相同的逻辑函数,但我们有时称之为S形(逻辑)激活函数。在这种情况下,我们的“theta”参数有时称为“权重”。
在视觉上,一个简单的表示形式如下:
|
⎡⎣x0x1x2⎤⎦→[ ]→hθ(x) |
我们的输入节点(层1),也称为“输入层”,进入另一个节点(层2),其最终输出称为“输出层”的假设函数。
我们可以在输入和输出层之间有称为“隐藏层”的中间节点层。
在这个例子中,我们标记这些中间或“隐藏”层节点a 20 ... a 21n并将其称为“激活单元”。
a(j)i =层j中单元i的“激活”=控制从层j到层j + 1的函数映射的权重矩阵
|
a(j)i="activation" of unit i in layer j Θ(j)=matrix of weights controlling function mapping from layer j to layer j+1 |
如果我们有一个隐藏层,它看起来像:
|
⎡⎣⎢⎢x0 x1 x2 x3⎤⎦⎥⎥→⎡⎣⎢⎢⎢a(2)1 a(2)2 a(2)3⎤⎦⎥⎥⎥→hθ(x) |
每个“激活”节点的值如下获得:
|
a(2)1=g(Θ(1)10x0+Θ(1)11x1+Θ(1)12x2+Θ(1)13x3) a(2)2=g(Θ(1)20x0+Θ(1)21x1+Θ(1)22x2+Θ(1)23x3) a(2)3=g(Θ(1)30x0+Θ(1)31x1+Θ(1)32x2+Θ(1)33x3) hΘ(x)=a(3)1=g(Θ(2)10a(2)0+Θ(2)11a(2)1+Θ(2)12a(2)2+Θ(2)13a(2)3) |
这就是说,我们通过使用3×4的参数矩阵来计算我们的激活节点。我们将每行参数应用到我们的输入,以获得一个激活节点的值。我们的假设输出是应用于我们的激活节点的值的和的逻辑函数,其已经被包含用于我们的第二层节点的权重的又一参数矩阵Θ(2)相乘。
每个层获得其自己的权重矩阵Θ(j)。
这些权重矩阵的尺寸确定如下:
如果网络在层j中具有sj
个单元并且在层j
+ 1中具有sj+1
个单元,则Θ(j)将具有尺寸sj+1×(sj+1)。
+1来自“偏置节点”的Θ(j)中的加法,x0和Θ(j)0。换句话说,输出节点将不包括偏置节点,而输入将会。下面的图像总结了我们的模型表示:
示例:第1层有2个输入节点,第2层有4个激活节点。Θ(1)的尺寸将为4×3,其中sj=2
和sj+1=4,因此sj+1×(sj+1)=4×3。
Model
Representation II
为了重复,以下是神经网络的示例:
a(2)1=g(Θ(1)10x0+Θ(1)11x1+Θ(1)12x2+Θ(1)13x3)
a(2)2=g(Θ(1)20x0+Θ(1)21x1+Θ(1)22x2+Θ(1)23x3)
a(2)3=g(Θ(1)30x0+Θ(1)31x1+Θ(1)32x2+Θ(1)33x3)
hΘ(x)=a(3)1=g(Θ(2)10a(2)0+Θ(2)11a(2)1+Θ(2)12a(2)2+Θ(2)13a(2)3)
在本节中,我们将对上述函数进行向量化实现。
我们要定义一个新的变量z(j)k,它包含了g函数中的参数。
在我们前面的例子中,如果我们用变量z替换所有的参数,我们会得到:
|
a(2)1=g(z(2)1) a(2)2=g(z(2)2) a(2)3=g(z(2)3) |
换句话说,对于层j
= 2和节点k,变量z将是:
|
z(2)k=Θ(1)k,0x0+Θ(1)k,1x1+⋯+Θ(1)k,nxn |
The
vector representation of x and zj is:
|
x=⎡⎣⎢⎢x0x1⋯xn⎤⎦⎥⎥z(j)=⎡⎣⎢⎢⎢⎢z(j)1z(j)2⋯z(j)n⎤⎦⎥⎥⎥⎥ |
Setting
x=a(1),
we can rewrite the equation as:
|
z(j)=Θ(j−1)a(j−1) |
我们通过具有高度(n
+ 1)的矢量a(j−1)将我们的矩阵Θ(j−1)乘以尺寸sj×(n+1)sj×(n+1)(其中sj
是我们的激活节点的数目)。这给出了我们具有高度sj的向量z(j)。现在我们可以得到我们的层j的激活节点的向量如下:
a(j)=g(z(j))
其中我们的函数g可以元素地应用于我们的向量z(j)。
然后,我们可以在计算a(j)之后向层j添加偏置单元(等于1)。这将是元素a(j)0
并且将等于1.为了计算我们的最终假设,让我们先计算另一个z向量:
z(j+1)=Θ(j)a(j)
我们通过将Θ(j-1)之后的下一个θ矩阵与我们刚刚得到的所有激活节点的值相乘来获得这个最终z向量。该最后θ矩阵Θ(j)将仅具有乘以一列a(j)的一行,使得我们的结果是单个数。然后我们得到我们的最终结果:
hΘ(x)=a(j+1)=g(z(j+1))
注意,在这最后一步,在层j和层j
+
1之间,我们做的事情与在logistic回归中做的完全相同。将所有这些中间层添加到神经网络中允许我们更优雅地产生有趣的和更复杂的非线性假设。
《Machine Learning》系列学习笔记之第四周的更多相关文章
- [Machine Learning]学习笔记-Logistic Regression
[Machine Learning]学习笔记-Logistic Regression 模型-二分类任务 Logistic regression,亦称logtic regression,翻译为" ...
- Machine Learning 学习笔记
点击标题可转到相关博客. 博客专栏:机器学习 PDF 文档下载地址:Machine Learning 学习笔记 机器学习 scikit-learn 图谱 人脸表情识别常用的几个数据库 机器学习 F1- ...
- [Python & Machine Learning] 学习笔记之scikit-learn机器学习库
1. scikit-learn介绍 scikit-learn是Python的一个开源机器学习模块,它建立在NumPy,SciPy和matplotlib模块之上.值得一提的是,scikit-learn最 ...
- Machine Learning 学习笔记1 - 基本概念以及各分类
What is machine learning? 并没有广泛认可的定义来准确定义机器学习.以下定义均为译文,若以后有时间,将补充原英文...... 定义1.来自Arthur Samuel(上世纪50 ...
- Coursera 机器学习 第6章(上) Advice for Applying Machine Learning 学习笔记
这章的内容对于设计分析假设性能有很大的帮助,如果运用的好,将会节省实验者大量时间. Machine Learning System Design6.1 Evaluating a Learning Al ...
- Structuring Machine Learning Projects 笔记
1 Machine Learning strategy 1.1 为什么有机器学习调节策略 当你的机器学习系统的性能不佳时,你会想到许多改进的方法.但是选择错误的方向进行改进,会使你花费大量的时间,但是 ...
- machine learning学习笔记
看到Max Welling教授主页上有不少学习notes,收藏一下吧,其最近出版了一本书呢还,还没看过. http://www.ics.uci.edu/~welling/classnotes/clas ...
- [Machine Learning]学习笔记-线性回归
模型 假定有i组输入输出数据.输入变量可以用\(x^i\)表示,输出变量可以用\(y^i\)表示,一对\(\{x^i,y^i\}\)名为训练样本(training example),它们的集合则名为训 ...
- 吴恩达Machine Learning学习笔记(一)
机器学习的定义 A computer program is said to learn from experience E with respect to some class of tasks T ...
随机推荐
- Linux笔记(十三) - 系统管理
(1)进程管理1.判断服务器健康状态2.查看进程a.查看系统中所有进程:ps 例:ps aux(使用BSD操作系统命令格式) a 显示所有前台进程 x 显示所有后台进程 u 显 ...
- 安装Hadoop及Spark(Ubuntu 16.04)
安装Hadoop及Spark(Ubuntu 16.04) 安装JDK 下载jdk(以jdk-8u91-linux-x64.tar.gz为例) 新建文件夹 sudo mkdir /usr/lib/jvm ...
- 光荣与梦想 | XMove动作捕捉系统(一)
XMove是我和几个死党从2010年开始开发的一套人体动作捕捉系统,软硬件全部自行开发,投入了大量的精力,历经三年,发展四个版本. 今年春节回到老家,翻出了2011年春节时焊电路用过的松香和和硬盘角落 ...
- 未来手机Alo即将问世!全息投影手机的新高峰!全息3d 网
文章来源:网络 编辑:大熊 [摘要]全息投影手机很早就开始炒,网络上的概念机也是丛出不穷,那么这款出自法国的概念机又是多么的奇葩?全息 3d 网带你一探究竟. 据外媒报道,在不久将来语 ...
- windows下安装redis以及redis扩展,设置redis为windows自启服务
windows下安装reids windows下redis下载地址:https://github.com/MSOpenTech/redis/releases. 启动redis服务:在redis目录下启 ...
- 读书笔记 effective c++ Item 8 不要让异常(exceptions)离开析构函数
1.为什么c++不喜欢析构函数抛出异常 C++并没有禁止析构函数出现异常,但是它肯定不鼓励这么做.这是有原因的,考虑下面的代码: class Widget { public: ... ~Widget( ...
- Python开发项目:大型模拟战争游戏(外星人入侵)
外星人入侵 游戏概述: 现在准备用python开始搞一个大型游戏,模拟未来战争,地球人狙击外星人大战(其实就是小蜜蜂游戏2333),玩家控制一个飞船,用子弹歼灭屏幕上空的外星飞船:项目用到了Pygam ...
- 转: 尽己力,无愧于心 FastReport.Net 常用功能总汇
FastReport.Net 常用功能总汇 一.常用控件 文本框:输入文字或表达式 表格:设置表格的行列数,输入数字或表达式 子报表:放置子报表后,系统会自动增加一个页面,你可以在此页面上设计需要 ...
- Fragment 学习笔记(1)
网上关于Fragment相关的博客资料很多,写关于这个知识笔记是加深记忆,大神略过: 0x01 了解Fragment 当然看官方文档(http://www.android-doc.com/refere ...
- AngularJS自定义指令之可选参数replace
replace是一个可选参数,如果设置了这个参数,值必须为true,因为默认值为false.默认值意味着模板会被当作子元素插入到调用此指令的元素内部: 如: <my-directive>& ...