TensorFlow正则化经常被用于Deep-Learn中,泛化数据模型,解决过拟合问题。再深度学习网络只有在有足够大的数据集时才能产生惊人的学习效果。当数据量不够时,过拟合的问题就会经常发生。然而,只选取我们需要的数据量的模型,就会非常难以继续进行泛化和优化。所以正则化技术孕育而生~~~~~~~
正则化的基本思想是向损失函数添加一个惩罚项用于惩罚大的权重,隐式的减少自由参数的数量。可以达到弹性地适应不同数据量训练的要求而不产生过拟合的问题。~~~~~~
1 #正则化 2 import tensorflow as tf 3 import matplotlib.pyplot as plt 4 import numpy as np 5 6 data = [] 7 label = [] 8 np.random.seed(0) 9 for i in range(150): 10 x1 = np.random.uniform(-1,1) 11 x2 = np.random.uniform(0,2) 12 if x1**2+x2**2 <= 1: 13 data.append([np.random.normal(x1,0.1),np.random.normal(x2,0.1)]) 14 label.append(0) 15 else: 16 data.append([np.random.normal(x1,0.1),np.random.normal(x2,0.1)]) 17 label.append(1) 18 19 data = np.hstack(data).reshape(-1,2) 20 label = np.hstack(label).reshape(-1,1) 21 plt.scatter(data[:,0],data[:,1],c=label, 22 cmap="RdBu",vmin=-.2,vmax=1.2,edgecolor="white") 23 plt.show()