昨天简单和队友聊了一下,我们做的预测模型是多输入多输出的,输入是向量输出也是向量。
回归分析很难做到,通常传统机器学习算法都是单输出的(一个样本要么输出一个分类结果,要么输出一个回归数值)但是对于神经网络来说,网络可以输出的是个向量甚至是个多维的张量,因此用神经网络来做多输出是一件比较容易的事(至于使用什么样的网络结构,则是具体问题具体考虑的事情了)。
于是我今天转战开始学神经网络了。
准备从最基础的开始学。
其实我数模用的就是神经网络预测,也靠这个投了一篇很好的期刊,但是还是对原理迷迷糊糊的,心里其实很想学好神经网络。
所以这个算是一举多得了~
另外spss都能很好的实现神经网络和回归分析等一系列功能,但是我们会对其中的原理一无所知,考虑到我的远大理想,还是自己码代码实现比较好。
(话说做数模的时候都不屑于用spss
step 1:神经网络是什么什么是神经网络?按我的理解,就和人的生物神经一样。
人一生下来,对这个世界近乎无知,通过不断地训练,认识新事物,了解新事物,最终有了自己的一套认知体系。
机器的神经网络也一样,通过大量的数据训练,学习到一些规律,就可以很好的预测数据了!(所以我们还需要大量的数据,据学长说用双目视觉采集。
所以这个不用担心哈哈
另外还有模型选择问题,共有二十几类模型,找到适用的模型,最好还能结合其他方法,这算一个创新点吧~
step 2:基本用法大致流程就是:建立好每一个神经网络系统的每一个部件,把每个部件有序的联系起来,再把数据放进去进行运算,得到最后的结果。
开始写代码,又遇到了一个很难安装的库theano,于是开始打开csdn找解决方法,,,
这篇博客写的很好
(11条消息) 【python深度学习】theano环境搭建/安装_竹聿Simon的博客-CSDN博客_python theano
键入安装时,又遇到了pip版本太低的问题。
。
开始更新pip版本
2.1MB下载了几分钟,,
开始安装theano,速度真的很慢,有加速的方法吗??小白落泪
step3:神经网络选择大致查了一些资料
keras是一个非常方便的深度学习框架,支持多个输入和混合输入(混合输入即为不同类型的数据)。
它以TensorFlow或Theano为后端。
用它可以快速地搭建深度网络,灵活地选取训练参数来进行网路训练。
总之就是:灵活+快速。
深度学习通常意味着建立具有很多层的大规模的神经网络。
除了输入X,函数还使用一系列参数,其中包括标量值、向量以及最昂贵的矩阵和高阶张量。
在训练网络之前,需要定义一个代价函数,常见的代价函数包括回归问题的方差以及分类时候的交叉熵。
训练时,需要连续的将多批新输入投入网络,对所有的参数求导后,代入代价函数,从而更新整个网络模型。
这个过程中有两个主要的问题:1. 较大的数字或者张量在一起相乘百万次的处理,使得整个模型代价非常大。
2. 手动求导耗时非常久。
所以 TensorFlow 的对函数自动求导以及分布式计算,可以帮我们节省很多时间来训练模型。
另外还看了BP神经网络和卷积神经网络。
看了很多算法,后续就是敲定算法→学算法+获得数据→实现预测了,其实不难做hh
(又水了一天,看资料果然比上手码代码幸福得多~
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)