zoukankan      html  css  js  c++  java
  • 深度学习入门资料

    https://easyai.tech/ai-definition/deep-learning/

    https://www.jiqizhixin.com/articles/Recent-Advances-in-Deep-Learning-An-Overview

    https://zhuanlan.zhihu.com/p/39996321

     https://cnbeining.github.io/deep-learning-with-python-cn/3-multi-layer-perceptrons/ch10-project-multiclass-classification-of-flower-species.html

    1. 编码输出便签
    多类分类问题与二类分类问题类似,需要将类别变量(categorical function)的输出标签转化为数值变量。这个问题在二分类的时候直接转换为(0,1)(输出层采用sigmoid函数)或(-1,1)(输出层采用tanh函数)。类似的,在多分类问题中我们将转化为虚拟变量(dummy variable):即用one hot encoding方法将输出标签的向量(vector)转化为只在出现对应标签的那一列为1,其余为0的布尔矩阵。keras中的np_utils.to_categorical函数来进行。

     2. 构建神经网络模型
    Keras是基于Theano或Tensorflow底层开发的简单模块化的神经网络框架,因此用Keras搭建网络结构会比Tensorflow更加简单。这里我们将使用Keras提供的KerasClassifier类,这个类可以在scikit-learn包中作为Estimator使用,故利用这个类我们就可以方便的调用sklearn包中的一些函数进行数据预处理和结果评估(此为sklearn包中模型(model)的基本类型)。
    对于网络结构,我们采用3层全向连接的,输入层有4个节点,隐含层有10个节点,输出层有3个节点的网络。其中,隐含层的激活函数为relu(rectifier),输出层的激活函数为softmax。损失函数则相应的选择categorical_crossentropy(此函数来着theano或tensorflow,具体可以参见这里)(二分类的话一般选择activation=‘sigmoid’, loss=‘binary_crossentropy’)。
    PS:对于多类分类网络结构而言,增加中间隐含层能够提升训练精度,但是所需的计算时间和空间会增大,因此需要测试选择一个合适的数目,这里我们设为10;此外,每一层的舍弃率(dropout)也需要相应调整(太高容易欠拟合,太低容易过拟合),这里我们设为0.2。

    多分类问题是要softmax激活函数配合分类交叉熵函数使用,而二分类问题要使用sigmoid激活函数配合二进制交叉熵函数适用,源自“Keras中的多分类损失函数用法categorical_crossentropy

    from keras.metrics import categorical_accuracy
    model.compile(loss='binary_crossentropy', optimizer='adam', metrics=[categorical_accuracy])

    model.compile(loss=’categorical_crossentropy’, optimizer=’adam’,metrics=[‘accuracy’])


    分类指标
  • 相关阅读:
    Spring RESTful Web Services
    Uploadify自定义提示信息
    linux下查找进程及终止进程操作的相关命令
    SecureCRT+SecureFX 7.1.1.264整合版
    关于JSP的语法和常用的内置对象,EL表达式的使用方法
    Servlet的几个常用对象
    使用bootstrap写的简单页面
    bootstrap的使用方法
    EasyUi的使用方法
    Ajax与jQuery的使用方法
  • 原文地址:https://www.cnblogs.com/WindyZ/p/14234494.html
Copyright © 2011-2022 走看看