单输出感知机及其梯度

TensorFlow2教程完整教程目录(更有python、go、pytorch、tensorflow、爬虫、人工智能教学等着你):https://www.cnblogs.com/nickchen121/p/10840284.html

recap

  • \(y = XW + b\)
  • \(y = \sum{x_i}*w_i + b\)

Perceptron

  • \(x_i^0\) i表示当成第i个节点
  • \(w_{ij}^0\) 表示当层的第i个节点,j表示下一个隐藏层的第j个节点
  • \(\sigma\) 表示激活函数后的节点
  • E表示error值
  • t表示target值

Derivative

  • \(E=\frac{1}{2}(O_0^1-t)^2\)
import tensorflow as tf
x = tf.random.normal([1, 3])
w = tf.ones([3, 1])
b = tf.ones([1])
y = tf.constant([1])

with tf.GradientTape() as tape:
    tape.watch([w, b])
    prob = tf.sigmoid(x @ w + b)
    loss = tf.reduce_mean(tf.losses.MSE(y, prob))

grads = tape.gradient(loss, [w, b])
[<tf.Tensor: id=203, shape=(3, 1), dtype=float32, numpy=
 array([[-0.00047306],
        [-0.00288958],
        [-0.00280226]], dtype=float32)>,
 <tf.Tensor: id=201, shape=(1,), dtype=float32, numpy=array([-0.00275796], dtype=float32)>]
grads[0]
<tf.Tensor: id=203, shape=(3, 1), dtype=float32, numpy=
array([[-0.00047306],
       [-0.00288958],
       [-0.00280226]], dtype=float32)>
grads[1]
<tf.Tensor: id=201, shape=(1,), dtype=float32, numpy=array([-0.00275796], dtype=float32)>
posted @ 2019-05-22 21:24  B站-水论文的程序猿  阅读(566)  评论(0编辑  收藏  举报