![](https://img.haomeiwen.com/i5478327/3a1f56a82a42164e.jpg)
N(0,1)
![](https://img.haomeiwen.com/i5478327/0f090845c704e34c.jpg)
正太分布
![](https://img.haomeiwen.com/i5478327/0d90ed731d08bf85.png)
高维样本的稀疏性问题
import tensorflow as tf
import numpy as np
W = tf.Variable([[1],[1]],dtype=tf.float32)
W
<tf.Variable 'Variable:0' shape=(2, 1) dtype=float32_ref>
x = tf.placeholder(tf.float32,shape=[None,2])
x
<tf.Tensor 'Placeholder:0' shape=(?, 2) dtype=float32>
y = tf.placeholder(tf.float32,shape=[None,1])
y
<tf.Tensor 'Placeholder_1:0' shape=(?, 1) dtype=float32>
loss = tf.losses.absolute_difference(y,tf.matmul(x,W))
optimizer = tf.train.GradientDescentOptimizer(0.01)
train_step = optimizer.minimize(loss)
一条训练数据 ([1,0],0.5)
train_x = np.array([[1,0]],dtype=np.float32)
train_y = np.array([[.5]],dtype=np.float32)
init = tf.global_variables_initializer()
with tf.Session() as sess:
sess.run(init)
for i in range(5):
sess.run(train_step,feed_dict={x:train_x,y:train_y})
W_res = sess.run(W)
print(W_res)
print('==================')
[[0.99]
[1. ]]
==================
[[0.98]
[1. ]]
==================
[[0.97]
[1. ]]
==================
[[0.96000004]
[1. ]]
==================
[[0.95000005]
[1. ]]
==================
加正则后
loss += tf.nn.l2_loss(W)
loss
<tf.Tensor 'add:0' shape=() dtype=float32>
optimizer = tf.train.GradientDescentOptimizer(0.01)
train_step = optimizer.minimize(loss)
init = tf.global_variables_initializer()
with tf.Session() as sess:
sess.run(init)
for i in range(5):
sess.run(train_step,feed_dict={x:train_x,y:train_y})
W_res = sess.run(W)
print(W_res)
print('==================')
[[0.98]
[0.99]]
==================
[[0.9602 ]
[0.98010004]]
==================
[[0.940598 ]
[0.97029907]]
==================
[[0.92119205]
[0.9605961 ]]
==================
[[0.9019801 ]
[0.95099014]]
==================
网友评论