ML 神经网络 NeuralNetworks
神经网络
Neural Networks
1 为什么要用神经网络?
既然前面降了逻辑回归,为什么还需要神经网络呢?前面我们制定在非线性分类问题中,也可以使用逻辑回归进行分类,不过我们的特征变量就变成了原始特征的高阶多项式。假设有100个特征变量,要使用逻辑回归进行分类的话,特征就呈指数增长,不仅计算量十分大,而且很容易过拟合。

2 模型表示
神经元模型
单个神经元可以是一个逻辑回归模型。

基本神经网络
由多个神经元组成,一般有输入层、隐层和输出层。


写成向量形式:

3 举例Examples and intuitions
首先我们看看sigmoid函数的大致图像,对于线性的分类,我们使用一个神经元就可以完成了。

而对于非线性的分类,例如XNOR运算,我们将多个神经元组成一个神经网络可以表达更复杂的模型。

多分类

4 代价函数 cost function

先回顾一下逻辑回归的代价函数:

现在给出神经网络的代价函数:

正则项其实就是把除了偏置外所有的参数相加。
5 后向传播算法Backpropagation algorithm
我们要使用梯度下降来计算参数时,需要计算出
和
先使用前向传播算法:

然后计算出每层的残差,进行后向传播:

由于输入层直接使用的是输入数据,不存在误差,所以只用计算到第二层。
具体的算法:
|
Backpropagation algorithm Training set Set For Set Perform forward propagation to compute Using Compute
|
梯度检验
在进行后向传播算法训练参数前,为了确保我们的代码计算偏导是正确的,我们可以使用梯度检验。其实就是用数值计算偏导的方法。不过在训练时,一定要记得把梯度检验关掉,因为数值计算偏导十分耗时。


6 随机初始化 Random initialization
在线性回归和逻辑回归中,我们对参数初始化都是赋值为0,那么我们在神经网络中是否也可以全部赋值为0 呢?这样是不行的,如果全部赋值为0,那么每层的每个单元会学习到同样的参数,每个单元也就无法体现出自己的效果了。所以我们要打破这种情况,采取随机初始化。


7 总结 Putting it together
对于一个神经网络,有输入,输出和隐层,那么我们如何去选择每层有多少单元呢?输入层和输出层的结构我们根据要解决的问题要选定,那么对于隐层我们一般会选取含有同样个数的单元。

训练一个神经网络的主要步骤:
- 随机初始化权重。
- 使用向前传播算法,对于每一个输入
计算得到
- 计算代价函数
- 使用后向传播算法计算偏导
- 用梯度检验验证
的正确性(训练的时候记得要把梯度检验关掉) - 使用梯度下降法最小化
,求出参数。
是一个非凸的,可能收敛到局部最小。
ML 神经网络 NeuralNetworks的更多相关文章
- 初识神经网络NeuralNetworks
1.神经网络的起源 在传统的编程方法中,我们通常会告诉计算机该做什么,并且将一个大问题分解为许多小的.精确的.计算机可以轻松执行的任务.相反,在神经网络中,我们不告诉计算机如何解决问题,而是让计算机从 ...
- Multimodal —— 看图说话(Image Caption)任务的论文笔记(二)引入attention机制
在上一篇博客中介绍的论文"Show and tell"所提出的NIC模型采用的是最"简单"的encoder-decoder框架,模型上没有什么新花样,使用CNN ...
- (原创)Stanford Machine Learning (by Andrew NG) --- (week 4) Neural Networks Representation
Andrew NG的Machine learning课程地址为:https://www.coursera.org/course/ml 神经网络一直被认为是比较难懂的问题,NG将神经网络部分的课程分为了 ...
- [置顶] NB多项式事件模型、神经网络、SVM之函数/几何间隔——斯坦福ML公开课笔记6
转载请注明:http://blog.csdn.net/xinzhangyanxiang/article/details/9722701 本篇笔记针对斯坦福ML公开课的第6个视频,主要内容包括朴素贝叶斯 ...
- 一位ML工程师构建深度神经网络的实用技巧
一位ML工程师构建深度神经网络的实用技巧 https://mp.weixin.qq.com/s/2gKYtona0Z6szsjaj8c9Vg 作者| Matt H/Daniel R 译者| 婉清 编辑 ...
- ML(5)——神经网络3(随机初始化与梯度检验)
随机初始化 在线性回归和逻辑回归中,使用梯度下降法之前,将θ设置为0向量,有时会习惯性的将神经网络中的权重全部初始化为0,然而这在神经网络中并不适用. 以简单的三层神经网络为例,将全部权重都设置为0, ...
- ML(5)——神经网络2(BP反向传播)
上一章的神经网络实际上是前馈神经网络(feedforward neural network),也叫多层感知机(multilayer perceptron,MLP).具体来说,每层神经元与下一层神经元全 ...
- ML(5)——神经网络1(神经元模型与激活函数)
上一章介绍了使用逻辑回归处理分类问题.尽管逻辑回归是个非常好用的模型,但是在处理非线性问题时仍然显得力不从心,下图就是一个例子: 线性模型已经无法很好地拟合上面的样本,所以选择了更复杂的模型,得到了复 ...
- Coursera ML笔记 - 神经网络(Representation)
前言 机器学习栏目记录我在学习Machine Learning过程的一些心得笔记,涵盖线性回归.逻辑回归.Softmax回归.神经网络和SVM等等,主要学习资料来自Standford Andrew N ...
随机推荐
- 如何使用NSOperations和NSOperationQueues
原文地址: http://www.raywenderlich.com/19788/how-to-use-nsoperations-and-nsoperationqueues 本文由 大侠自来也(泰然教 ...
- CodeIgniter框架——CI中视图路径问题
答: 视图中的所有路径全部和 index.php 同级,也就是和 index.php 属于一个目录下,也就是网站根目录. 因为 index.php 后面看似是路径的东西其实那只是一种 URL 参数而已 ...
- codeblocks在进行多线程出现phread问题
undefined reference to 'pthread_create' 出现这个错误是因为编译默认不会链接进程库. 可以选择用gcc进行编译 加上-lpthread 比如:gcc exampl ...
- Partial Sum
Partial Sum Accepted : 80 Submit : 353 Time Limit : 3000 MS Memory Limit : 65536 KB Partial Sum ...
- 网络安装CentOS6.4
第一步:所需工具安装包下载地址: http://115.com/file/antbtamu#网络安装CentOS.rar(或者下载NetbootM.exe和hfs.exe) 第二步:将CentOS6. ...
- jquery.fileDownload plugin: Success msg alert before actual pdf download completed
Currently , I use jquery fileDownload plugin to download multiple pdf that in a list page, which eve ...
- 前端基础 DOM & BOM
推荐阅读:http://www.cnblogs.com/yuanchenqi/articles/6893904.html#_label3 BOM对象 window 对象 所有浏览器都支持 window ...
- hive批量执行sql命令及使用小技巧
root@hadoop-senior hive-0.13.1]$ bin/hive -helpusage: hive -d, --define <key=value> Variable s ...
- uuid的使用
1.mysql中直接使用uuid()函数,可以生成一个随机的uuid 正常的uuid是36位长度的,其中有4个字符是‘-’,在mysql中可以使用replace()函数来替换‘-’ insert in ...
- __init__和__new__
一.__init__方法是什么 __init__方法通常用在初始化一个类实例的时候, class Person(object): """Silly Person" ...










