深度学习中常见的几个基础概念

简介: 深度学习中常见的几个基础概念     1. Linear regression :    Linear regression 对监督学习问题来说, 是最简单的建模形式. 上图蓝色点表示 training data point, 红色的线表示用于拟合训练数据的线性函数.

 

深度学习中常见的几个基础概念

  

   1. Linear regression : 

   Linear regression 对监督学习问题来说, 是最简单的建模形式. 上图蓝色点表示 training data point, 红色的线表示用于拟合训练数据的线性函数. 线性函数的总的形式为:

  

  在代码中表示这个模型, 可以将其定义为 单列的向量 (a single column vector) :

  # initialize variable / model parameters. 

  w = tf.Variable(tf.zeros([2, 1]), name = "weights")

  b = tf.Variable(0., name = "bias") 

  def inference(X):

    return tf.matmul(X, W) + b   

  既然我们已经定义了如果计算 loss , 此处 loss 函数我们设置为 squared error. 

        $ loss = \sum_{i} (y_i - y_{predicted_i})^2 $  

  我们统计 i, i 是每一个数据样本. 代码上表示为:

  def loss (X, Y) :

    Y_predicted = inference(X) 

    return tf.reduce_sum(tf.squared_difference(Y, Y_predicted)) 

  

  def inputs():
    weight_age = [[84, 46], [73, 20], [65, 52], [70, 30], [76, 57], [69, 25], [63, 28], [72, 36], [79
    blood_fat_content = [354, 190, 405, 263, 451, 302, 288, 385, 402, 365, 209, 290, 346, 254, 395,
    return tf.to_float(weight_age), tf.to_float(blood_fat_content)  

  我们利用 gradient descent 算法来优化模型的参数 :

  def train(tota_loss) :

    learning_rate = 0.000001 

    return tf.train.GradientDescentOptimizer (learning_rate).minimize(total_loss) 

  当你运行之后, 你会发现随着训练步骤的进行, 展示的 loss 会逐渐的降低. 

  def evaluate(sess, X, Y):

    print sess.run(inference([[80., 25.]]))  # ~ 303 

    print sess.run(inference([[65., 25.]]))  # ~ 256 

 

  Logistic regression.  

  线性回归模型预测的是一个连续的数字 (continuous value) , 或者其他任何 real number. 我们接下来会提供一个可以回答 yes-or-no 问题的模型, 例如 : " Is this email spam ? " 

  有一个在机器学习领域被常用的一个模型, 称为: logistic function. 也被称为 sigmoid function, 形状像 S . 

        $ f(x) = 1/(1+e^{-x}) $ 

  这里你看到了一个 logistic / sigmoid function 的图, 像 "S" 形状. 

  这个函数将 single input value 作为输入. 为了给这个函数输入多维, 或者我们训练数据集样本的特征 , 我们需要将他们组合为一个 value. 我们可以利用 线性回归模型 来做这个事情 . 

  

  # same params and variable initialization as log reg. 

  w = tf.Variable(tf.zeros([5, 1]), name = "weights")

  b = tf.Variable(0., name = "bias") 

  # former inference is now used for combing inputs. 

  def combine_inputs(X) :

     return tf.matmul(X, W) + b 

  # new inferred value is the sigmoid applied to the former. 

  def inference(X) :

    return tf.sigmoid (combine_inputs(X)) 

  

  这种问题 交叉熵损失函数解决的比较好. 

  我们可以视觉上比较 两个损失函数的表现, 根据预测的输出. 

  def loss (X, Y) : 

    return tf.reduce_mean (tf.sigmoid_cross_entropy_with_logits (combine_inputs(X), Y) 

  

  What "Cross-entropy" means

  

  加载数据 : 

  def read_csv (batch_size, file_name, record_defaults) : 

    filename_queue = tf.train.string_input_producer([os.path.dirname(__file__) + "/" + file_name]) 

    reader = tf.TextLineReader (skip_header_lines = 1) 

    key, value = reader.read(filename_queue) 

  

    # decode_csv will convert a Tensor from type string (the text line) in 

    # a tuple of tensor columns with the specified defaults, which also sets the data type for each column . 

    decoded = tf.decode_csv(value, record_defaults = record_defaults) 

 

    # batch actually reads the file and loads "batch_size" rows in a single tensor 

    return tf.train.shuffle_batch(decoded, batch_size=batch_size, capacity = batch_size * 50, min_after_dequeue = batch_size) 

  

  


 

  def inputs (): 

    passenger_id, survived, pclass, name, sex, age, sibsp, parch, ticket, fare, cabin, embarked = \ 

      read_csv (100, "train.csv", [[0.0], [0.0]] ........) 

    # convert categorical data . 

    is_first_class = tf.to_float (tf.equal(pclass, [1])) 

    is_second_class = tf.to_float (tf.equal(pclass, [2])) 

    is_third_class = tf.to_float (tf.equal (pclass, [3])) 

    gender = tf.to_float (tf.equal (sex, ["female"])) 

    # Finally we pack all the features in a single matrix ; 

    # We then trainspose to have a matrix with one example per row and one feature per column. 

    features = tf.transpose (tf.pack([is_first_class, is_second_class, is_third_class, gender, age])) 

    survived = tf.reshape(survived, [100, 1]) 

    return features, survived 

 

  


  

  

  

  

 

  

  

  

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

相关文章
|
机器学习/深度学习 自然语言处理 算法
深度学习算法概念介绍
深度学习算法概念介绍
|
4月前
|
机器学习/深度学习 人工智能 供应链
从概念到商业价值:AI、机器学习与深度学习全景指南
在这个科技飞速发展的时代🚀,人工智能正以惊人的速度渗透到我们的生活和工作中👀。但面对铺天盖地的AI术语和概念,很多人感到困惑不已😣。"AI"、"机器学习"、"深度学习"和"神经网络"到底有什么区别?它们如何相互关联?如何利用这些技术提升工作效率和创造价值?
|
9月前
|
机器学习/深度学习 算法 安全
从方向导数到梯度:深度学习中的关键数学概念详解
方向导数衡量函数在特定方向上的变化率,其值可通过梯度与方向向量的点积或构造辅助函数求得。梯度则是由偏导数组成的向量,指向函数值增长最快的方向,其模长等于最速上升方向上的方向导数。这两者的关系在多维函数分析中至关重要,广泛应用于优化算法等领域。
492 36
从方向导数到梯度:深度学习中的关键数学概念详解
|
机器学习/深度学习 算法 数据可视化
【从零开始学习深度学习】46. 目标检测中锚框的概念、计算方法、样本锚框标注方式及如何选取预测边界框
【从零开始学习深度学习】46. 目标检测中锚框的概念、计算方法、样本锚框标注方式及如何选取预测边界框
|
10月前
|
机器学习/深度学习 自然语言处理 语音技术
Python在深度学习领域的应用,重点讲解了神经网络的基础概念、基本结构、训练过程及优化技巧
本文介绍了Python在深度学习领域的应用,重点讲解了神经网络的基础概念、基本结构、训练过程及优化技巧,并通过TensorFlow和PyTorch等库展示了实现神经网络的具体示例,涵盖图像识别、语音识别等多个应用场景。
355 8
|
机器学习/深度学习 分布式计算 数据可视化
对深度学习概念的基础理解与认识
一、神经网络的组成 人工神经网络(Artificial Neural Networks,简写为ANNs)是一种模仿动物神经网络行为特征,进行分布式并行信息处理的算法数学模型。 这种网络依靠系统的复杂程度,通过调整内部大量节点之间相互连接的关系,从而达到处理信息的目的,并具有自学习和自适应的能力。神经网络类型众多,其中最为重要的是多层感知机。为了详细地描述神经网络,我们先从最简单的神经网络说起。 感知机 感知机是1957年,由Rosenblatt提出会,是神经网络和支持向量机的基础。 感知机是有生物学上的一个启发,他的参照对象和理论依据可以参照下图:(我们的大脑可以认为是一个神经网络,
213 9
对深度学习概念的基础理解与认识
|
11月前
|
机器学习/深度学习 数据采集 自然语言处理
通过深度学习实践来理解深度学习的核心概念
通过实践,不仅可以加深对深度学习概念的理解,还能发现理论与实际之间的差距,进而对模型进行改进和优化。实践中遇到的问题(如梯度消失、过拟合、训练效率低等)能促使你深入思考,进而更加全面地掌握深度学习的核心概念。
125 4
|
机器学习/深度学习 自然语言处理 算法
深度学习基础知识:介绍深度学习的发展历程、基本概念和主要应用
深度学习基础知识:介绍深度学习的发展历程、基本概念和主要应用
6862 0
|
机器学习/深度学习 人工智能 并行计算
现代深度学习框架构建问题之线性代数的常见概念定义如何解决
现代深度学习框架构建问题之线性代数的常见概念定义如何解决
97 3
|
机器学习/深度学习 自然语言处理 算法
深度学习的关键概念和网络结构
度学习是人工智能和机器学习的一个重要分支,它通过模拟人脑神经元的工作方式来处理复杂的模式识别和数据分析任务。深度学习已经在许多领域取得了显著的成果,如图像识别、语音识别和自然语言处理。
308 1

热门文章

最新文章