1.代码实现 from __future__ import print_function import theano import theano.tensor as T import numpy as np import matplotlib.pyplot as plt class Layer(object): def __init__(self, inputs, in_size, out_size, activation_function=None): self.W = theano.shar…
如下图所示(回归的过拟合问题):如果机器学习得到的回归为下图中的直线则是比较好的结果,但是如果进一步控制减少误差,导致机器学习到了下图中的曲线,则100%正确的学习了训练数据,看似较好,但是如果换成另外一批数据,则不能较好的反应数据,造成过大的误差,这就是过拟合问题 再看下图这是分类问题的过拟合问题 2. 正规化方法 (1)l1正规化:使用权重绝对值和的方式惩罚误差 (2)l2正规化:使用权重平方和的方式惩罚误差 3. 代码实现: from __future__ import print_fun…
1. 为何保存神经网络 保存神经网络指的是保存神经网络的权重W及偏置b,权重W,和偏置b本身是一个列表,将这两个列表的值写到列表或者字典的数据结构中,使用pickle的数据结构将列表或者字典写入到文件中,保存神经网络只须保存权重W和偏置b,神经网络的结构下次再次定义为一样的,只需从文件中加载权重W和偏置b参数即可,无需重新训练神经网络 2. 代码实现: from __future__ import print_function import numpy as np import theano i…
1. 代码实现 from __future__ import print_function import numpy as np import theano import theano.tensor as T def compute_accuracy(y_target, y_predict): correct_prediction = np.equal(y_predict, y_target) accuracy = np.sum(correct_prediction)/len(correct_p…
1. 代码实现 from __future__ import print_function import theano import theano.tensor as T import numpy as np import matplotlib.pyplot as plt class Layer(object): def __init__(self, inputs, in_size, out_size, activation_function=None): self.W = theano.sha…
1. 代码如下: #!/usr/bin/env python #! _*_ coding:UTF-8 _*_ import numpy as np import theano.tensor as T import theano class Layer(object): ''' 定义一个神经层 ''' def __init__(self, inputs, in_size, out_size, activation_function=None): '''神经层的初始化方法''' self.W = t…
1. 代码实现 #!/usr/bin/env python #! _*_ coding:UTF-8 _*_ import numpy as np import theano.tensor as T import theano if __name__ == "__main__": # 用一个累加器来测试共享变量 state = theano.shared(np.array(0, dtype=np.float64), 'state') inc = T.scalar('inc', dtype…
1. 代码如下: #!/usr/bin/env python #! _*_ coding:UTF-8 _*_ import numpy as np import theano.tensor as T import theano x = T.dmatrix('x') # 定义一个激励函数 s = 1 / (1 + T.exp(-x)) logistic = theano.function([x], s) print logistic([[0, 1], [-2, -3]]) # 一个函数输出多个变量…
1. 代码实现如下: #!/usr/bin/env python #! _*_ coding:UTF-8 _*_ # 导入numpy模块,因为numpy是常用的计算模块 import numpy as np # 导入theano的矢量 import theano.tensor as T # 导入theano的函数定义 from theano import function # 导入theano的结果的计算公式查看 from theano import pp if __name__ == "__m…
1. 什么是交叉验证 所谓交叉验证指的是将样本分为两组,一组为训练样本,一组为测试样本:对于哪些数据分为训练样本,哪些数据分为测试样本,进行多次拆分,每次将整个样本进行不同的拆分,对这些不同的拆分每个拆分都有一个打分或者损失,将这些打分或者损失进行平均形成一个平均打分或者平均损失. 2. 不使用交叉验证(即没有对样本进行多次不同的分组) 例如: X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=4) kn…