Skip to content

machine learning example

lanzhiwang edited this page Oct 13, 2018 · 34 revisions

机器学习示例代码

利用 tensorflow 实现线性回归模型

  • 实现步骤:

    • 定义数据输入
    • 定义真实期望的权重
    • 定义真实期望的偏差
    • 定义随机噪声(可选)
    • 通过输入、真实期望权重、真实期望偏差、随机噪声计算真实期望输出
    • ########
    • 定义输入占位符
    • 定义真实期望输出占位符
    • 定义训练权重变量
    • 定义训练偏差变量
    • 定义训练得到的输出
    • ########
    • 定义损失函数(使用 MSE(均方误差) 作为损失函数,计算真实期望输出训练输出的均方误差)
    • 定义学习速率
    • 定义优化器,使用随机梯度下降
    • ########
    • 计算最小误差值
  • 代码示例

利用 tensorflow 实现逻辑回归模型

  • 实现步骤:

    • 定义数据输入
    • 定义真实期望的权重
    • 定义真实期望的偏差
    • 通过输入、真实期望权重、真实期望偏差计算真实期望输出
    • 计算真实期望输出归一化后的结果
    • ########
    • 定义输入占位符
    • 定义真实期望输出归一化占位符
    • 定义训练权重变量
    • 定义训练偏差变量
    • 定义训练得到的输出
    • ########
    • 定义损失函数(使用交叉熵作为损失函数,计算真实期望输出归一结果与训练得到的输出的相似性)
    • 定义学习速率
    • 定义优化器,使用随机梯度下降
    • ########
    • 计算最大相似性
  • 代码示例

利用 tensorflow 构建卷积神经网络(CNN)

  • 实现步骤(以mnist图像数据为例):

    • 定义图像输入数据(网络下载的数据,不需要特征提取)
    • ########
    • 定义输入图像占位符
    • 定义正确的分类标签占位符
    • 将输入图像占位符数据reshape
    • ########
    • 第一层卷积操作
    • 将结果池化
    • 第二层卷积操作
    • 将结果池化
    • 将图像数据平整为一维向量形式
    • 进行全连接操作
    • 进行随机丢弃操作
    • 得到训练结果
    • ########
    • 定义损失函数(使用交叉熵作为损失函数)
    • 使用梯度下降法定义训练过程
    • 定义评估步骤,用来测试模型的准确率
  • 代码示例

利用 tensorflow 构建循环神经网络(RNN)

实现初级的RNN网络
  • 实现步骤:

    • 处理数据输入
    • 定义相关变量和占位符
    • 使用 tf.scan() 方法实现RNN网络训练
    • 将RNN网络训练结果馈入线性全连接
    • 评估网络模型准确性
  • 代码示例

使用 tensorflow 内置的函数创建RNN网络
  • 实现步骤:

    • 处理数据输入
    • 定义相关变量和占位符
    • 使用 tf.contrib.rnn.BasicRNNCell() 和 tf.nn.dynamic_rnn() 方法实现RNN网络训练
    • 将RNN网络训练结果馈入线性全连接
    • 评估网络模型准确性
  • 代码示例

实现 LSTM 网络模型
  • 实现步骤:

    • 处理数据输入
    • 定义相关变量和占位符
    • 使用 tf.contrib.rnn.BasicLSTMCell() 和 tf.nn.dynamic_rnn() 方法实现RNN网络训练
    • 将RNN网络训练结果馈入线性全连接
    • 评估网络模型准确性
  • 代码示例

使用 tensorflow.contrib.learn 实现线性回归模型

  • 实现步骤:

    1. 使用 learn.LinearRegressor() 实例化线性回归模型,并提供关于数据表征和优化器类型的知识

    2. 使用.fit() 对回归器regressor对象进行训练。向它传递协变量和目标变量,并设置步数和批量大小

    3. 使用.evaluate() 计算MSE

  • 代码实现

使用 tensorflow.contrib.learn 实现 DNN 分类器模型

TensorFlow 分布式

Notes:

  • 卷积神经网络(CNN) - CNN主要处理具有空间结构的数据,例如图片

  • 循环神经网络(RNN) - RNN主要处理序列数据

    • 长短期记忆(LSTM)
  • 深度神经网络(DNN)

参考

Clone this wiki locally