[翻译]用神经网络做回归(Using Neural Networks With Regression)
本文英文原文出自这里, 这个博客里面的内容是Java开源, 分布式深度学习项目deeplearning4j的介绍学习文档.
简介:
一般来说, 神经网络常被用来做无监督学习, 分类, 以及回归. 也就是说, 神经网络可以帮助对未标记数据进行分组, 对数据进行分类, 或者在有监督训练之后输出连续的值. 典型的神经网络在分类方面的应用, 会在网络的最后一层使用逻辑回归分类器(之类)的将连续(continue)的值转换成为离散值如: 0/1, 比如, 给定一个人的身高, 体重, 以及年龄, 你可以给出它有心脏病或者没有心脏病的判断. 而真正的回归是将一组连续的输入映射到另一组连续的输出.
例如, 给定一座房子的房龄, 面积, 以及到一所好学校的距离, 你将对这座房子的价格进行预测: 这就是连续型输入映射到连续性输出. 这里面没有分类任务中的0/1, 而仅仅是将独立变量 x 映射到连续的输出y.
NN-Regression结构:
在上图中, x表示输入, 特征在网络前面的层进行前向传播, 很多x's与最后隐层的每个神经元相连接, 每个x将会乘上一个相应的权重w. 这些乘积之和再加上一个偏置, 被送到一个激活函数ReLU(=max(x,0)), 这个一个被广泛应用的激活函数, 它不会像sigmoid激活函数那样出现饱和. 对于每个隐层神经元, ReLUctant输入一个激活值a, 在网络的输出节点, 计算这些激活值之和作为最后的输出. 也就是说, 利用神经网络来做回归将有一个输出节点, 而且这个节点仅是对前面节点的激活值进行相加. 得到的 ŷ就是由你所有的x映射得到的独立变量.
训练过程:
为了进行网络的反向传播以及网络的训练, 你可以简单地使用网络的输出ŷ与真实值y进行比较, 通过调整权重和偏置使得网络的error达到最小. 可以使用Root-means-squared-error(RMSE)作为loss函数.
可以使用Deeplearning4j来建立多层神经网络, 在网络的最后增加一个输出层, 具体的代码参考如下:
//Create output layer
.layer()
.nIn($NumberOfInputFeatures)
.nOut()
.activationFunction('identity')
.lossFunction(LossFunctions.LossFunction.RMSE)
其中, nOut输出层的神经元数目, nIn为特征向量的维度, 在上图中, 这应该设置为4, activationFunction应该被设置为'identity'.
我的问题:
- 如果要输出多个值, 怎么做? 训练多个模型?
- 还有没有其他的方式做回归?
[翻译]用神经网络做回归(Using Neural Networks With Regression)的更多相关文章
- AlexNet论文翻译-ImageNet Classification with Deep Convolutional Neural Networks
ImageNet Classification with Deep Convolutional Neural Networks 深度卷积神经网络的ImageNet分类 Alex Krizhevsky ...
- 论文翻译:2018_Source localization using deep neural networks in a shallow water environment
论文地址:https://asa.scitation.org/doi/abs/10.1121/1.5036725 深度神经网络在浅水环境中的源定位 摘要: 深度神经网络(DNNs)在表征复杂的非线性关 ...
- 深度神经网络入门教程Deep Neural Networks: A Getting Started Tutorial
Deep Neural Networks are the more computationally powerful cousins to regular neural networks. Learn ...
- 卷积神经网络用于视觉识别Convolutional Neural Networks for Visual Recognition
Table of Contents: Architecture Overview ConvNet Layers Convolutional Layer Pooling Layer Normalizat ...
- 机器学习入门14 - 神经网络简介 (Introduction to Neural Networks)
原文链接:https://developers.google.com/machine-learning/crash-course/introduction-to-neural-networks/ 神经 ...
- 强化学习之二:Q-Learning原理及表与神经网络的实现(Q-Learning with Tables and Neural Networks)
本文是对Arthur Juliani在Medium平台发布的强化学习系列教程的个人中文翻译.(This article is my personal translation for the tutor ...
- 卷积神经网络(Convolutional Neural Networks)CNN
申明:本文非笔者原创,原文转载自:http://www.36dsj.com/archives/24006 自今年七月份以来,一直在实验室负责卷积神经网络(Convolutional Neural ...
- 一目了然卷积神经网络 - An Intuitive Explanation of Convolutional Neural Networks
An Intuitive Explanation of Convolutional Neural Networks 原文地址:https://ujjwalkarn.me/2016/08/11/intu ...
- 利用Caffe做回归(regression)
Caffe应该是目前深度学习领域应用最广泛的几大框架之一了,尤其是视觉领域.绝大多数用Caffe的人,应该用的都是基于分类的网络,但有的时候也许会有基于回归的视觉应用的需要,查了一下Caffe官网,还 ...
随机推荐
- Servlet路径跳转1---使用相对路径和绝对路径,在页面上调用servlet的路径写法(超链接的方式和表单的方式)
课程1-13 http://www.imooc.com/video/5554 Servlet路径跳转: 绝对路径:放在任何地方都对的路径 相对路径:相对于当前资源的路径 index文件 加上/,表 ...
- web前端基础篇④
1.BFC-块级元素-块级格式化上下文布局规则:独立区域,与外部毫不相关内部box会在垂直方向,一个个放置box垂直方向距离由margin决定BFC的区域不会与float box重叠计算BFC高度时, ...
- hadoop优化之拙见
map-reduce的优化: 需要内存的地方: map/reduce任务运行时内存.存放中间数据的内存缓存区.map输出数据排序内存, 需要操作磁盘的地方: map输出数据缓冲区达到阀值的溢出写文件 ...
- 三部曲一(数据结构)-1011-Sorting It All Out
每次加入一个关系都要进行拓扑排序,不过在排序过程中需要判断是否出现多个入度为0的点,如果出现了就说明不能确定大小关系.不论出不出现多个入度为0的点拓扑排序都要进行到最后来判断是否出现环,因为一旦出现环 ...
- Spring MVC的常用注解
一.@Controller @Controller 负责注册一个bean 到spring 上下文中,bean 的ID 默认为类名称开头字母小写,你也可以自己指定. 二.@RequestMapping ...
- Node.js高级编程读书笔记 - 4 构建Web应用程序
Outline 5 构建Web应用程序 5.1 构建和使用HTTP中间件 5.2 用Express.js创建Web应用程序 5.3 使用Socket.IO创建通用的实时Web应用程序 5 构建Web应 ...
- 腾讯优测优分享 | 这些年,我们追过的 fiddler
腾讯优测是专业的移动云测试平台,提供全面兼容性测试,远程真机租用,漏洞分析等多维度的测试服务,旗下优分享提供大量的移动研发及测试相关的干货! 一.fiddler原理简介 fiddler是目前最强大最好 ...
- popwindow设置背景半透明
WindowManager.LayoutParams lp = getWindow().getAttributes(); lp.alpha = 0.5f; //0.0-1.0 getWindow(). ...
- CSS3-transition,过渡实例
过渡:transition[由Webkit内核浏览器提出] 通过CSS实现元素从一个样式渐变成另一个种. IE不支持,其他需后缀. transition:transition-property/dur ...
- thinkphp 内置标签volist 控制换行
thinkphp 内置标签volist 控制换行 volist标签通常用于查询数据集(select方法)的结果输出,通常模型的select方法返回的结果是一个二维数组,可以直接使用volist标签进行 ...