机器学习基础(一)
核心:数据—算法—算力
(人工)神经网络(NN)
原理:基于tensorflow的NN:用张量表示数据,用计算图搭建神经网络,在会话里执行计算图,优化参数(权重),得到模型。
过程:训练(数据集-前向传播-反向传播)——推理-预测和分类(前向传播)
张量——多维数组;
计算图——搭建神经网络的计算过程,是承载一个或多个计算节点的一张图,只搭建网络,不运算;
会话——执行计算图的过程;
数据集——准备数据集,提取其特征灌入NN;
前向传播——入、出、中间(权重、神经网络层配置等);
反向传播——不断循环训练优化使loss最小(损失-loss(均方误差、交叉熵等)、训练方法(梯度下降、迭代、自适应法等)
注:(本人较为浅显的认识~~~)
一个神经网络模型的有效性、可靠性(本科信息类,惯用这两个词)也是相互矛盾,此消彼长。想提高模型的可靠性、准确度可以从以下几个方面着手:(按影响程度排序)
a、换为更牛X的模型(如MNIST由LR——>CNN,预测准确率大幅度提升)——模型网络种类;
b、增加NN层数——模型网络层数;
c、换为更牛X的训练方法——训练方法;
d、增加训练次数——训练次数;
e、调整网络参数——权重(以上几个,就是要得到最好的参数)
模型的可靠性提升了,有效性必然下降,训练和推理的耗时将大大增加。(所以要在二者间折中~~呵呵,才怪勒!!!能用钱解决的问题就不是问题,AlphaGo的能耗==200个李世石,那又怎样,Google随手一挥,一堆GPU搞起来,那算法在你的PC机器上怕是永远跑不起来,但是人家那处理器,拿钱堆起来的,速度限制?不存在的……)
有效性这个东西说白了就是靠硬件,对大公司来说其实问题不大,可靠性上去了,就是牛X。当然,从普及层面(咱普通人能够用起来)来说,你自己的PC机上还是权衡一下算法的可靠性和有效性吧。
说到这里,又拐到硬件上了,就像寒武纪的梦想“让每个人的手机上都可以有AlphaGo”。确实,目前还比较遥远,不过万一实现了呢,你拿个手机就可以当钢铁侠~~~想想还是很不错的~~~
附:Google的DeepMind的AlphaGo采用的是深度学习+强化学习,利用强化学习得到深度学习网络的最优参数(权重),使其性能大幅度提高。在某些其他领域用这个框架去搞也是所向披靡,把人类碾压的体无完肤。但是它不是万能的,比如。。。。。。。(星际争霸要是你技术高了,可以打败AlphaGo~~~)。现在他们团队用这些正在搞医疗,已有很大进展,期待~~~
(哦,对了,有朝一日能进Google,此生无憾~~~Come on!!!)
领取专属 10元无门槛券
私享最新 技术干货