|
如何学习机器学习
首先: 我们要了解:什么是TensorFlow???
TensorFlow是谷歌基于DistBelief进行研发的第二代人工智能学习系统,其命名来源于本身的运行原理。Tensor(张量)意味着N维数组,Flow(流)意味着基于数据流图的计算,TensorFlow为张量从流图的一端流动到另一端计算过程。TensorFlow是将复杂的数据结构传输至人工智能神经网中进行分析和处理过程的系统。
TensorFlow可被用于语音识别或图像识别等多项机器学习和深度学习领域,对2011年开发的深度学习基础架构DistBelief进行了各方面的改进,它可在小到一部智能手机、大到数千台数据中心服务器的各种设备上运行。TensorFlow将完全开源,任何人都可以用。
https://baike.baidu.com/item/TensorFlow/18828108?fr=aladdin
其次: 我们要学会一些概念
神经网络:由很多个神经元组成,每个神经元接收很多个输入:[X1,X2…Xn],加权相加然后加上偏移量后,看是不是超过了某个阀值,超过了发出1,没超过发出0。
激活函数: 激活函数就是解决这个问题,你把值给我,我来判断怎么输出。想要成为激活函数,需要处处可微(可微分才能求导,求极值)。二是要非线性的(线性模型的表达能力不够)。
目前主流的几个激活函数是:sigmoid,tanh,ReLU。
Sigmoid Function:采用S形函数,取值范围[0,1]
Tanh Function:双切正切函数,取值范围[-1,1]
ReLU(线性整流函数):大于0的留下,否则一律为0。
损失函数(Loss Function):损失函数是模型对数据拟合程度的反映,拟合得越好损失应该越小,拟合越差损失应该越大,然后我们根据损失函数的结果对模型进行调整。(交叉熵/…)
交叉熵:交叉熵通俗的讲就是现在的训练程度和圆满之间的距离,我们希望距离越小越好,所以交叉熵可以作为一个损失函数,来衡量和目标之间的距离。
梯度下降:这个概念可以这样理解,从山顶到山底的过程。
再其次: 我们要学会整个机器学习的思路
建立一个机器学习的Model:
1)制定一个Model是线性的还是非线性的
2)使用一个最简单的单层的神经网络进行学习
3)选择Loss Function(线性0/1; cross-entropy交叉熵)
4) 选择Activation激活函数(=模型的相关参数:Sgmoid, Elu, Selu, Softplus, linear线性的 /…)
5)选择Optimizers(优化器: SGD; RMSprop; Adagrad; Adam; Adamax )
然后: 明确方法(怎么学)
第一个方法: 要先了解什么是Keras???
Keras 是一个高级的Python 神经网络框架,其文档详。Keras 已经被添加到 TensorFlow 中,成为其默认的框架,为TensorFlow 提供更高级的API。
Keras的英文文档地址: https://keras.io
Keras的中文文档地址: https://keras-cn.readthedocs.io/en/latest/
(建议看英文文档,中文文档翻译的一般般~)我们可以通过在文档中使用API来学习机器学习.
第二个方法: Kaggle是比较大型机器学习竞赛,网站里会有代码可以供我们学习,提高准确度
Kaggle的网址: https://www.kaggle.com
|
|