TF en la regresión lineal

comprensión global

  1. La regresión lineal, utilizando los datos existentes se ajusta darse cuenta de la predicción para un conjunto de datos desconocidos.
  2. Es la muestra de datos de entrada en la muestra marcada con la muestra sin etiqueta; tag es la descripción de una de las llamadas propiedades de la muestra, tales como la clasificación de imágenes, la imagen es una imagen gráfica de la información de categoría etiqueta, esto es las etiquetas de categoría.
  3. Usado en este contexto es un cubo etiqueta, cada muestra se puede utilizar (X, Y) tal representación; el accesorio es obtener una relación de mapeado, denotada h, X obtenido mediante la asignación de la predicción resultado y h '(es decir, h (x) = y'), que construye un modelo, y el supuesto también se conoce como una función de h.
  4. modelo de formación es encontrar una función adecuada hipótesis, el resultado es lo suficientemente cerca para que la etiqueta de predicción; es decir, con los valores de pérdida indican que la pérdida de cercanía, idealmente, el más próximo a 0 como sea posible pérdida.
  5. Hay varios pérdida métodos de representación, como por ejemplo L1, es decir, el valor absoluto y la diferencia; L2 de, es decir, la media fórmula desviación del cuadrado es: pérdida = \ frac {1} {N} \ sum (yh (x)) ^ {2}, L2 de la más ampliamente utilizado.

formación

  1. El entrenamiento para reducir la pérdida con el fin de optimizar constantemente los parámetros de la función que se supone; métodos de optimización incluyen, pero no se limitan al algoritmo de descenso de gradiente.
  2. La llamada pendiente de descenso algoritmo de actualizaciones del parámetro es siempre en la dirección de la iteración de descenso de gradiente, la pérdida total será menor cuando la iteración continua, cuando la pérdida es extremadamente pequeño cambio o un cambio cree que este modelo de convergencia, para detener el entrenamiento.
  3. tamaño gradiente de etapa de descenso es un super-referencia, es decir, la tasa de aprendizaje; Si la tasa de aprendizaje es 0,01, el gradiente de valor de 2,5 determinado, la siguiente iteración se baja desde la posición actual de 0.025.
  4. Además de aprender las tasas de participación son super, capas de red, el número de neuronas en cada capa, los filtros son parámetros Tamaño Super.

Ejemplos de una regresión lineal

  1. En general: la preparación de datos ---> modelos de construcción ---> entrenando modelo ---> pronóstico
  2. import tensorflow as tf
    import numpy as np
    import matplotlib.pyplot as plt
    
    # 数据准备
    np.random.seed(5)
    x_data = np.linspace(-1, 1, 100)
    y_data = x_data*2+np.random.rand(*x_data.shape)*0.4
    plt.figure()
    plt.scatter(x_data, y_data)
    
    
    
    # 构建模型 x*w+b
    x = tf.placeholder('float', name='x')
    y = tf.placeholder('float', name='y')
    w = tf.Variable(1.0, name='w0')
    b = tf.Variable(0.0, name='b0')
    
    
    def model(x, w, b):
        return(tf.multiply(x, w)+b)
    
    # 建立模型操作
    preb = model(x, w, b)
    
    # 超参设定
    train_epochs = 10  # 训练轮数
    learning_rate = 0.05  # 学习率
    loss_function = tf.reduce_mean(tf.square(y-preb))  # 利用均方差做loss
    optimizer = tf.train.GradientDescentOptimizer(learning_rate).minimize(loss_function)
    step = 0  # 步数计数
    disply_step = 10  # 显示loss的粒度
    loss_list = []  # loss集合
    # 运行与训练
    sess = tf.Session()
    init = tf.global_variables_initializer()
    sess.run(init)
    
    # 逐次执行超参设定的轮数
    for epoch in range(train_epochs):
        for xs, ys in zip(x_data, y_data):  # zip将x,y表示为(x,y)格式
            _, loss = sess.run([optimizer, loss_function], feed_dict={x: xs, y: ys})
            loss_list.append(loss)
            step = step + 1
            if step % disply_step == 0:  # 对应粒度下显示loss值
                print(loss)
        b0temp = b.eval(session=sess)  # 在session会话下求值
        w0temp = w.eval(session=sess)
        plt.plot(x_data, x_data*w0temp+b0temp)  # 每次训练一轮将得到的结果绘制
    
    
    plt.figure()
    plt.plot(loss_list, 'r+')  #绘制总的loss
    plt.show()
    
    
    
    Como código específico.
Publicado cinco artículos originales · ganado elogios 0 · Vistas 65

Supongo que te gusta

Origin blog.csdn.net/weixin_41707744/article/details/104668257
Recomendado
Clasificación