下面仅是我的个人认识,说得不正确请轻拍。

(眼下,我仅仅看了一些deep learning 的review和TOM Mitchell的书《machine learning》中的神经网络一章。认识有限。感觉3\4讲得一般。勉强一看。

第五章纯粹是为了做笔记,真的不好表达。看不懂还是看tom的书吧。

本文的组织:

1.我对deep learning的整体认识

2.发展简史

3.感知器模型

4.感知器的梯度下降训练方法

5.反向传播算法(BP)

1.我对deep learning的整体认识

deep learning是一类基于人工神经网络的方法总称。

多层神经网络,由输入层、输出层、还有多层隐藏层构成。

一般,在神经网络的输入层输入的是对象的基本表示,隐藏层是对象的还有一种特征表示,低层的隐藏层表示对象的低级特征表示,高层的隐藏层表示对象的高级特征表示,每层的特征表示通过层与层之间系数来表征,神经网络就是从低级特征表示中提取出对象的高级特征的,输出层输出对象的详细类型。拿图像识别的列子来说,迭代训练时,就是从输入层输入图像的像素,然后抽取图像的高级特征,不停地改变神经网络的系数使得输入图像的像素在最后的输出层能够输出图像的正确类型(说的比較牵强)。

2.发展简史

在20世纪40年代,有人依据神经细胞的执行机制提出了感知器模型(单个人工神经元)。到了20世纪60年代,由于单层的感知器模型表征能力不强。研究热度下降。20世纪80年代,有人提出了反向传播算法,实现了多层网络的训练。但一般都是训练3层的网络。由于训练很多其它层时BP就不够用了。人工神经网络,越多层,它的表征能力就越厉害,隐藏层所须要的节点数也就越少。所以人工神经网络的研究又受到限制了。到了2006年,Hinton大神发表了《Deep belief network》这篇文章,提出了分层训练的方法,使得人工神经网络的研究再次火起来。

3.感知器模型



上图就是感知器的最初模型。

它分为输入部分:x1,x2,…,xn和各个输入相应的系数w1,w2,…,wn(亦称权向量)还有阈值w0,以及激活函数o和输出。感知器模型是简单的线性分类模型,当输入的线性组合(w1.x1+w2.x2+…+wn.xn)大于阈值(w0)时,激活函数输出1,否则输出-1。

假设把w0也归为一个输入的系数,那么上图中的公式就能够解释通了。当扔数据进去训练数据,调整好感知器的系数后,感知器就成为一个实用的分类器。例如以下图:激活函数就是那条直线。



感知器模型仅仅能表征线性方差,不能表征非线性函数,注定是要被改进的。

4.感知器的梯度下降训练方法

对感知器的训练的就是学习最合适的系数,使得系数能够最好地表征激活函数,或者说使得感知器相对于某固定的训练样本的误差最小。

用数学来表达是这种:

激活函数表达为:o=w0+w1.x1+…+wn.xn

误差用公式表示。当中,D是训练例子集合,td是训练例子d的目标输出。od是感知器对训练例子d的输出。

那么如今的任务就是调整函数使得E达到最小。

这事实上是一个优化问题。

假设如今仅仅有两个系数w0和w1。那么E和w0和w1的关系例如以下图:



箭头显示该点的梯度的相反方向。指出了在w0和w1平面中沿误差曲面最陡峭的方向。从图中能够看出仅仅要沿着这个方向就能下降就能到误差曲面中误差E最小的那一点。

怎么办?

为了最小化E,从一个随意的初始权向量開始,然后以非常小的步伐改动这个向量。

每一步都沿着误差曲面产生最陡峭下降的方向改动权向量。循环这个过程直到E最小。

梯度求法例如以下图:



每次的改动:当中。

5.反向传播算法(BP)

多个线性单元的连接仍产生线性函数,而我们更希望得到能表征非线性函数的网络。感知器模型是做不到了,可是sigmoid单元能够。sigmoid单元将用作BP算法训练的神经网络的神经元。

与感知器模型不同的是,sigmoid单元的激活函数换了而已。例如以下图

好了。回到BP算法上来。

多层网络,如图:

BP是如何训练多层网络的?

答:还是用梯度下降方法,仅仅只是改进了一下。

BP既然是用梯度下降方法的改进来训练多层网络,那么误差E是如何定义的呢?

答:

当中,outputs是网络输出单元的集合。tkd是训练例子d在第k个输出单元的目标输出值。okd是训练例子在第k个输出单元的实际输出值。对于网络的每一个输出单元(最后一层的单元)k,它的误差项为

对于以上E的定义发问,隐藏层的神经元有目标输出值这么个定义吗?假设没有。那么E有是怎么定义的?

答:对于每一个隐藏单元h。它的误差项为 。由于训练例子仅对网络的输出提供了目标值tk,所以缺少直接的目标值来计算隐藏单元的误差值。因此採取下面间接办法计算隐藏单元的误差项:对受隐藏单元h影响的每一个单元的误差δk进行加权求和。每一个误差δk权值为wkh,wkh就是从隐藏单元h到输出单元k的权值。这个权值刻画了隐藏单元h对于输出单元k的误差应“负责”的程度。

那么。终于每一个权值就能够按这个公式更新了:,当中,

以上说的yita都是学习率。

$(function () {
$('pre.prettyprint code').each(function () {
var lines = $(this).text().split('\n').length;
var $numbering = $('

    ').addClass('pre-numbering').hide();
    $(this).addClass('has-numbering').parent().append($numbering);
    for (i = 1; i ').text(i));
    };
    $numbering.fadeIn(1700);
    });
    });

对deep learning的第一周调研的更多相关文章

  1. 吴恩达《深度学习》-课后测验-第二门课 (Improving Deep Neural Networks:Hyperparameter tuning, Regularization and Optimization)-Week 1 - Practical aspects of deep learning(第一周测验 - 深度学习的实践)

    Week 1 Quiz - Practical aspects of deep learning(第一周测验 - 深度学习的实践) \1. If you have 10,000,000 example ...

  2. 课程一(Neural Networks and Deep Learning),第一周(Introduction to Deep Learning)—— 1、经常提及的问题

    Frequently Asked Questions Congratulations to be part of the first class of the Deep Learning Specia ...

  3. 课程一(Neural Networks and Deep Learning),第一周(Introduction to Deep Learning)—— 0、学习目标

    1. Understand the major trends driving the rise of deep learning.2. Be able to explain how deep lear ...

  4. 课程一(Neural Networks and Deep Learning),第一周(Introduction to Deep Learning)—— 2、10个测验题

    1.What does the analogy “AI is the new electricity” refer to?  (B) A. Through the “smart grid”, AI i ...

  5. 课程一(Neural Networks and Deep Learning),第二周(Basics of Neural Network programming)—— 4、Logistic Regression with a Neural Network mindset

    Logistic Regression with a Neural Network mindset Welcome to the first (required) programming exerci ...

  6. 课程一(Neural Networks and Deep Learning),第二周(Basics of Neural Network programming)—— 3、Python Basics with numpy (optional)

    Python Basics with numpy (optional)Welcome to your first (Optional) programming exercise of the deep ...

  7. 吴恩达《深度学习》-第一门课 (Neural Networks and Deep Learning)-第三周:浅层神经网络(Shallow neural networks) -课程笔记

    第三周:浅层神经网络(Shallow neural networks) 3.1 神经网络概述(Neural Network Overview) 使用符号$ ^{[

  8. 课程一(Neural Networks and Deep Learning),第二周(Basics of Neural Network programming)—— 2、编程作业常见问题与答案(Programming Assignment FAQ)

    Please note that when you are working on the programming exercise you will find comments that say &q ...

  9. 课程一(Neural Networks and Deep Learning),第二周(Basics of Neural Network programming)—— 0、学习目标

    1. Build a logistic regression model, structured as a shallow neural network2. Implement the main st ...

随机推荐

  1. Mysql修改已有数据的字符集

    Mysql修改已有数据的字符集 问题 在生产环境中跑了很久,发现MysqlClient连接的字符集是默认的latin1,我们一直以为都是utf8,造成这样的误解,是因为在内网环境中,我们是源码编译的M ...

  2. 移动开发 meta元素

    meta标签提供关于HTML文档的元数据.元数据不会显示在页面上,但是对于机器是可读的.它可用于浏览器(如何显示内容或重新加载页面),搜索引擎(关键词),或其他 web 服务.   SEO优化: &l ...

  3. 检测CSS属性 是否支持

    原理是:创建一个节点,判断其的style属性是否含有textOverflow属性,有则进一步判断是否支持ellipsis这个值.当遇到不支持的属性值时,浏览器会直接把这个值抛弃.因此这里就可以先给te ...

  4. 【Kafka源码】SocketServer启动过程

    SocketServer主要用于接收外部的网络请求,并把请求添加到请求队列中. 一.入口 在KafkaServer.scala中的start方法中,有这样的入口: socketServer = new ...

  5. asp.net 自定义的模板方法接口通用类型

    本来想写这个帖子已经很久了,但是公司事情多,做着做着就忘记了.公司因为需要做接口,而且用的还是asp.net的老框架,使用Handler来做,没得办法,自己照着MVC写了一个通过的接口操作模板. 上送 ...

  6. 项目实战1—LNMP的搭建、nginx反向代理和缓存等的实现

    实战一:搭建lnmp及类小米等商业网站的实现 环境:关闭防火墙,selinux 1.安装包,开启服务 yum -y install nginx mariadb-server php-fpm php-m ...

  7. [Bayesian] “我是bayesian我怕谁”系列 - Gaussian Process

    科班出身,贝叶斯护体,正本清源,故拿”九阳神功“自比,而非邪气十足的”九阴真经“: 现在看来,此前的八层功力都为这第九层作基础: 本系列第九篇,助/祝你早日hold住神功第九重,加入血统纯正的人工智能 ...

  8. 一:配置使用阿里云Maven库

    鉴于国内的网络环境,从默认 Maven 库下载 jar 包是非常的痛苦. 速度慢就不说了,还经常是下不下来,然后一运行就是各种 ClassNotFoundException,然后你得找到残留文件删掉重 ...

  9. pandas基本介绍-【老鱼学pandas】

    前面我们学习了numpy,现在我们来学习一下pandas. Python Data Analysis Library 或 pandas 主要用于处理类似excel一样的数据格式,其中有表头.数据序列号 ...

  10. Python字符串之StringIO和struct

    StringIO: 提供类文件接口的字符串缓冲区,可选用性能更好的cStringIO版本: http://docs.python.org/2.7/library/stringio.html#modul ...