《Neural Networks for Machine Learning》学习一

前言

最近报了一下Hinton大牛的coursera的神经网络课程,奈何比较懒,一直没看,还是写个博客督促自己比较好

贴一下课程地址:https://www.coursera.org/learn/neural-networks/home/week/1

第一讲主题是为何需要机器学习,文档可以去课程下载,此处提供一下百度云地址

【Lecture 1a】百度云下载地址:链接:http://pan.baidu.com/s/1dEFCEXV 密码:em4h

为何需要机器学习

什么是机器学习

写一个程序去识别有照明条件的复杂场景中的三维物体是比较困难的:

——我们不知道怎么去写,因为我们并不知道人类看到物体后大脑的运作状况

——即使较好地了解如何去实现它,程序也会非常复杂

写一个程序去计算一场信用卡交易是欺诈性质的概率是多少

——因为可能没有简单可信赖的条件去判别。我们需要结合大量的隐藏规则去判断。

——欺骗是可以转移目标的,程序需要不断更改。

机器学习方法

无需为每一个特定任务书写代码,我们收集了大量的样本,这些样本中指定了对于一个给定输入的正确输出

机器学习算法就是利用这些样本去生成完成指定工作的程序:

——学习算法创造的程序可能会与手写的程序非常不同,可能包含数以百万计的数目。

——如果我们正确做到了这些工作,程序在新样本上的效果就会像训练集上的样本一样。

——如果数据可以更改,那么,那么在新数据上的程序也是可以被更改的。

目前大量的计算比付费给程序员书写一个特定任务的程序便宜很多。【难道是因为并行计算的普及?哈哈,瞎猜的】

通过学习能解决的任务实例

模式识别

——真实场景的目标检测

——面部识别或者面部表情

——说话文字

异常识别

——信用卡交易的不正规序列

——核电厂传感器读数的不正常模式

预测

——将来股价或者货比交换率

——比较受欢迎的电影

标准的机器学习实例

果蝇遗传学研究

——方便研究, 因为繁殖快

——我们对果蝇已经了解了不少

手写数字识别MNIST数据库与果蝇是等价的

——数据公开,可以用一个中型神经网络去快速学习

——我们知道多种机器学习方法能够处理MNIST数据集

我们将使用MNIST作为标准的任务。

很难说生成2的原因到底是什么。


基于MNIST的ImageNet任务

ImageNet是一个比赛,有兴趣的可以关注一下。今年的ImageNet好像中国人获奖很多。Google好像没参赛?

ImageNet共包含1000种不同的对象类别,1.3百万个训练图像

——2010年竞赛的最好方法获得了第一选错率47%和前五选错率25%的结果

Jitendra Malik(一个神经网络学者)说这个竞赛是对于深度神经网络是否能够在对象识别上取得好成绩的一个非常好的测试。

——Krizhevsky等提出的深度神经网络在第一选错率上取得了40%错误率,前五选错率少于20%

这个网络的一个早期版本的一些样本


可以处理大范围的目标


也有一些非常cool的错误



语音识别任务

语音识别包含几个步骤:

——预处理:将音波转换为声系数(acoustic coefficients)向量,每10千秒(mille seconds)提取一个向量。

——声模型(acoustic model):使用声系数的邻接向量为正在说话的麦克风“下注”(place bets)

——解码:寻找适合声音数据的最优的“下注”顺序并且满足为人们说话内容建立的模型。这句话不太会翻译,原始句子:Find the sequence of bets that does the best job of fitting the acoustic data and also fitting a model of the kinds of things people say

George Dahl和Abdel-rahman Mohamed指出在语音建模中,深度神经网络正在替代之前的机器学习方法。

基于TIMIT数据集的音素识别(Phone recognition)

——在标准的后处理之后,使用bi-phone模型(一个深度网络,具有8个层)得到了20.7%的错误率

——在TIMIT数据集上的独立演讲者识别中最好的识别率是24.4%并且需要平均好几个模型的结果

——MSR的Li Deng意识到这个结果可能会改变说话人识别的方法


MSR、IBM、Google的单词误识别率


什么是神经网络

学习神经计算的原因

了解人脑的实际工作方法

——非常巨大和复杂并且当你刺它的时候会有许多组成材料死亡。所以需要计算机仿真

了解由神经元激发的并行计算风格以及他们的自适应连接

——与顺序计算非常不同的风格

※处理大脑擅长的东西时候效果比较好(比如视觉)

※处理大脑不擅长的东西时候效果比较差(比如计算23*31)

由大脑启发的使用新颖的学习算法解决实际问题

——学习算法需要是有用的,即使它们并不是大脑实际工作的那样

典型的大脑皮层神经

总的物理结构:

——下图是一个神经元轴突分值

——是一个接受其他神经元输入的树突树

在突触的地方神经元会连接树突树

——在一个神经元活动的刺激导致的电流会被传导到突触有关的神经元

刺激的生成

——当有足够的能量流动到突触去极化细胞膜,神经元小丘就生成向外传播的刺激


突触

当活动刺激沿着神经元到达一个突触,便产生传递化学递质的小囊泡

——有许多种传递介质

传递分子在突触裂隙中播散,影响到后突神经元接收分子,因此改变了它们的形态

——这些打开的洞允许指定离子出入

突触如何适应

突触的有效部分会被改变

——改变传递分子的小囊泡数量

——改变接收分子的数量

突触比较慢,但是比RAM(随机存储器?)更具优势

——非常小,非常低能量

——它们使用本地可用信号做出改变(adapt)

※但是如何决定使用什么规则去做出何种改变呢?

大脑是如何运行的on one slide

每个神经元接受其他神经元的输入

——有些神经元连接接收器

——皮层神经元使用刺激交流

一个神经元的每一个输入队列的影响都是由一个突触权重控制的

——权重可以是积极的也可以说消极的

突触权重具有自适应性,因此才能让整个网络做出有用的计算

——认知对象,理解语言,做出计划,控制身体

你有10^11神经元,每一个具有10^4个权重

——巨大的权重数目影响到了短时间内的计算,比工作站更好的带宽。


模块化与大脑

不同小片的皮质做不同的事情

——大脑的局部损坏具有特定的影响,(比如喝醉了就会晃)

——指定的任务会加速血液流动到指定的区域

但是皮质看起来几乎都一样

——早期大脑损伤使得功能重置relocate

皮层是由具有依据经验转换为特定意图物质的一般意图物质组成的

——这赋予了快速并行计算和灵活性

——传统计算机通过存储一系列程序获得灵活性,但是这需要非常块的中央处理器去处理长时间序列的计算

神经元的一些简单模型

理想化神经元

为了为事物建模,我们需要理想化他们(比如原子)

——理想化移除了那些对理解主要原理无用的复杂细节

——允许我们使用算术以及对其它类似系统做推理

——只要明白基本原理,增加模型复杂性去让模型更加准确是非常简单的

理解模型为什么出错是非常必要的(但是我们必须不能忘记,他们是出错的)

——比如那些交流真实值的神经元,而不是那些离散的活动刺激。(也就是有些神经元没事到处跑,我们要关注的是那些携带“基本原理”的神经元)

线性神经元

比较简单,但是计算受限

——如果我们让它们学习的更多,那么就可以了解更复杂的神经元



二值阈值神经元

McCulloch -Pitts:影响冯洛伊曼

——首先计算输入的加权和

——如果加权和超过阈值,则送出一个固定的活动激励

——McCulloch和Pitts认为每一个激励就像每一个提议(proposition)的真实值,而且每一个神经元结合真实值去计算另一个提议的真实值。


下面是二值阈值神经元的两种等价写法:


矫正线性神经元(Rectified Liner Neurons,有时候称为线性阈值神经元)

计算输入的线性加权和

输出是所有输入的非线性函数


sigmoid神经元

给出了实值(real - valued )输出,是对于所有输入的光滑有界函数

——典型地使用logistic 函数

——有非常好的求导能力,使得学习很简单


学习的一些简单案例

理解手写形状的简单方式

以具有两层神经元的神经网络为例

——顶层神经元代表已知的形状

——底层神经元代表像素强度

当一个像素有墨迹的时候,就会得到一票

——每一个墨迹像素点可以为不同的形状投票

得到最多票数的形状获胜


如何显示权重

给定输入图像的输出单元的“map”(我经常称为特征图),展示在特征图中对应来自每一个像素的权重

使用黑或者白的blob(我称为斑点块)代表权重大小,颜色代表符号


如何学习权重

展示一张图片的网络和来自活跃像素的增长权重到正确的类别

活跃像素的权重衰减到网络猜想的其他任何类别








这些学习算法的细节在未来的课程会有介绍

为什么简单的算法会低效

顶层具有单赢策略的双层网络等价于对于每一个形状具有固定(rigid)的模板

——获胜者是模板中具有最大重叠墨迹者

手写数字的书写方法是多变的,使用简单的模板去匹配整个形状是非常麻烦的

——为了获取所由允许的数字变化,我们需要学习这些组成特征(the features that it is composed of )

手写数字的样本在首次展示在屏幕上的时候可以正确识别


学习的三种方法

学习任务的类型

监督学习(supervised learning)

——给定一个输入向量,学习着去预测一个输出

增强学习(Reinforcement learning )

——学习选择一种行为(action)去最大化报酬(payoff)

无监督学习(unsupervised learning)

——发现输入的一种内在表示方法

监督学习的两个类型

每个训练案例包含输入向量x和目标输出t

回归(regression):目标输出是一个真实值,或者真实值的整个向量

——六个月时间内的股价

——明天中午的温度

分类(classification):目标输出是一个类别标签

——最简单的案例就是选择1或者0

——也可以具有多个可选标签

监督学习如何工作

选择一个模型-类别:y=f(x;w)

——模型-类别,f,是运用一系列数值参数W,去映射每一个输入向量x到预测输出y

学习经常意味着调整参数去降低训练案例的真实输出 t 与由模型产生的实际输出y 的矛盾

——对于回归(y-t)²/2经常是衡量矛盾的好的测量方法

——对于分类,有许多其他衡量的方法,也可能更有效(他们经常也产生更好的效果)

增强学习

在增强学习中,输出是一个行为或者一系列的活动,而且唯一的监督信号是一个临时的梯度奖励(occasional scalar reward)

——选择每一个行为的目标是最大化将来奖励的期望和

——我们常为延迟奖励(delayed rewards)使用一个折扣因素(discount factor),因此无需展望过久的未来。

增强学习是困难的

——奖励经常延迟,因此很难知道哪里出错了或者是正确的

——梯度奖励并没提供太多信息

这个课程无法包含所有的事情,而且增强学习是一个非常重要的话题,但是遗憾的是本课不会包含

无监督学习

40年来,无监督学习在机器学习领域被很大程度上忽视了

——机器学习上一些广泛使用的定义排除它在外

——很多研究认为聚类是无监督学习的唯一形式

非常难说无监督学习目标是什么

——其中一个重要的目标是生成输入数据的内在表示,这个表示对于后来的监督学习和增强学习很有用

——可以使用两个图像的不一致来计算距离。但是你不想无数次触碰到你的脚尖去计算不一致(没看懂啥意思),You can compute the distance to a surface by using the disparity between two images. But you don’t want to learn to compute disparities by stubbing your toe thousands of times

无监督学习的其他目标

提供了输入数据的简单低维表示

——高维输入经常接近一个低维流行(manifold)(或者多个这样的流行结构)

——PCA是广泛使用的寻找低维表示的线性方法

根据学习到的特征,提供了比较合算的输入数据的高维表示

——二值特征是非常合算的economical

——全部接近0的实值特征也是同样

找到了输入数据比较合乎情理的聚类(sensible clusters)

——这是系数斑马的一个案例,其中仅仅只有一个特征是非零的(only one of the features is non-zero)



本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/246680.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

《Neural Networks for Machine Learning》学习二

前言 课程地址:https://www.coursera.org/learn/neural-networks/home/week/1‘’ 【Lecture 2】百度云下载地址:链接:http://pan.baidu.com/s/1nvMynhR 密码:ru3y 神经网络架构概览 前馈神经网络(Feed-Forward neural network)…

入门 | 初学者必读:解读14个深度学习关键词

作者:Matthew Mayo 机器之心编译 参与:Xuwen Wang、Chen Chen 微信公众号:(almosthuman2014)授权转载,禁止二次转载,点此为原文链接 本文介绍了包括 LSTM、ANNS、生物神经元、反向传播、多元感知…

深度 | 一篇文章带你进入无监督学习:从基本概念到四种实现模型(附论文)

作者:Eugenio Culurciello 机器之心编译 参与:李亚洲、武竞 微信公众号:(almosthuman2014)授权转载,禁止二次转载,点此为原文链接 这是今年 6 月份普渡大学副教授 Eugenio Culurciello 写的一篇…

【caffe-Windows】微软官方caffe之 Python接口配置及图片生成实例

前言 发现许多代码还是用python写的,所以还是配置一下接口吧,虽然博主不会Python,咳咳。在这里使用的python安装包是anaconda2,注意使用Python2.7版本的那个安装包。 官网地址:https://www.continuum.io/downloads …

判别模型的玻尔兹曼机论文源码解读

前言 三号要去参加CAD/CG会议,投了一篇关于使用生成模型和判别模型的RBM做运动捕捉数据风格识别的论文。这段时间一直搞卷积RBM了,差点把原来的实验内容都忘记了,这里复习一下判别式玻尔兹曼机的训练流程。 国际惯例,贴几个链接…

Jacobian矩阵和Hessian矩阵

原文转自:http://jacoxu.com/?p146 1. Jacobian 在向量分析中, 雅可比矩阵是一阶偏导数以一定方式排列成的矩阵, 其行列式称为雅可比行列式. 还有, 在代数几何中, 代数曲线的雅可比量表示雅可比簇:伴随该曲线的一个代数群, 曲线可以嵌入其中. 它们全部都…

为什么梯度下降法对于非线性可分数据有效

前言 晚上逛微博看到的,顺便拿过来翻译一下,做做笔记 国际惯例,来个原文链接: 原文地址:Why is gradient descent robust to non-linearly separable data? PDF拷贝:http://download.csdn.net/detail/…

卷积RBM源码解读

前言 卷积RBM相对RBM来说具有很多优势,详细的我也不说了,看文章就行。主要还是为了加深自己对细节部分的理解吧。 国际惯例,贴几个链接 卷积RBM的创始人Honglak Lee:http://web.eecs.umich.edu/~honglak/hl_publications.html#…

c语言:递归法求n的阶乘|练习题

一、题目 输入一个数n&#xff0c;用递归法求n的阶乘 二、思路分析 1、因为n!(n-1)!*n,所以&#xff0c;可以选择用递归法 三、代码截图【带注释】 四、源代码【带注释】 #include <stdio.h> //思路&#xff1a; //因为n!(n-1)!*n,所以&#xff0c;可以选择用递归法 int…

【caffe-Windows】cifar实例编译之model的生成

参考&#xff1a;<span style"font-family: Arial, Helvetica, sans-serif;">http://blog.csdn.net/chengzhongxuyou/article/details/50715455</span> 准备工作 按照之前的教程&#xff0c;成功生成过caffe&#xff0c;并且编译整个caffe.sln项目工程&a…

机器学习性能改善备忘单:32个帮你做出更好预测模型的技巧和窍门

文章来源&#xff1a;大数据文摘 作者 | Jason Brownlee 选文 | Aileen 翻译 | 姜范波 校对 | 寒小阳 机器学习最有价值(实际应用最广)的部分是预测性建模。也就是在历史数据上进行训练&#xff0c;在新数据上做出预测。 而预测性建模的首要问题是&#xff1a; 如何才能得…

【caffe-Windows】新层添加——LSTM

前言 原始的【caffe-Windows】是没有LSTM层的&#xff0c;维护以后的caffe的windows版本也懒得配置了&#xff0c;因为大部分文章的代码还是基于老版caffe。其实大部分的添加层方法都可以参考本博客&#xff0c;仅限Windows。 需要的文件有&#xff1a; 1. 原始的caffe-Wind…

【caffe-Windows】关于LSTM的使用-coco数据集

前言 建议大家使用Linux&#xff0c;因为Linux下的配置就没这么麻烦&#xff0c;各种make就行啦。Linux用户请绕道&#xff0c;因为此博客只针对Windows&#xff0c;可能比Linux麻烦很多倍。 在caffe-Windows新增LSTM层以后&#xff0c;相信很多人和我一样很好奇如何使用这一…

【caffe-Windows】关于LSTM的简单小例子

前言 这里主要是看到了一个简单的LSTM例子&#xff0c;比上一个coco简单很多&#xff0c;所以在这里记录一下&#xff0c;便于后续的分析&#xff0c;参考博客在上一篇文章的末尾提到过&#xff1a;Recurrent neural nets with Caffe 需要说明的是这个例子也并非原原本本的使…

概率有向图模型

1. 前言 主要参考书籍《深度学习导论及案例分析》、维基百科“贝叶斯网络”、老笨妞的博客、PRML中文翻译&#xff0c;重点还是概念的掌握和几个小理论的推导&#xff0c;比较枯燥。加入了自己的一些简单理解。 个人感觉概率有向图模型最大的意义在于&#xff1a;一个特定的有…

概率无向图模型

1. 前言 前面看了概率有向图模型&#xff0c;必然对无向图模型也要研究一下。而且这个概率无向图模型对学习RBM有很大的帮助&#xff0c;它关系到能量函数的来源&#xff0c;所以还是看看吧。参考资料依旧是概率有向图模型中参考的三个资料。 有向图将一组变量上的联合概率分…

softmax理论及代码解读——UFLDL

前言 看了各种softmax以后迷迷糊糊的&#xff0c;还是研究一下UFLDL的教程稳点。当然还是得参考挺多教程的&#xff1a;UFLDL-softmax 、Softmax的理解与应用 、Logistic 分类器与 softmax分类器 、详解softmax函数以及相关求导过程 、Exercise:Softmax Regression 。 【UFLDL…

二值RBM与实值RBM理论及代码解读

1. 前言 虽然推导过二值形式的RBM&#xff0c;但是对于可见层为实值的输入还是半知半解的。最近写个深度学习相关综述&#xff0c;看了一些关于RBM的文献&#xff0c;这里做一下对比总结。但是不倾向于对实值RBM的推导&#xff0c;而是相关代码的实现。 2. RBM回顾 RBM是具有…

【caffe-Windows】添加工程-以classification为例

前言 兴趣所向&#xff0c;研究一下如何在caffe工程之外建立一个属于自己的工程&#xff0c;这里以分类为例&#xff0c;将classification.cpp提取出来&#xff0c;然后调用相应的三方库和libcaffe.lib进行编译。这里比较建议有一丢丢C功底的同志参考学习&#xff0c;主要涉及…

MKL学习——数学运算库安装调试

前言 最近要用C折腾一些东西&#xff0c;涉及到矩阵运算&#xff0c;看了一下网上推荐的数学库&#xff0c;貌似MKL还是蛮不错滴&#xff0c;放到VS2013里面试试 国际惯例&#xff0c;来波地址 blas, cblas, openblas, atlas, lapack, mkl性能对比 Compiling and Linking I…