深度学习一些概念与小例子

深度学习的应用

语音识别
图像应用
大规模图片识别(分类/聚类)
基于图片的搜索服务
图片内容识别(具体图片内容信息)
NP(自然语言)处理
游戏 机器人等
常见的机器学习领域应用(聚类 分类 回归问题)

神经网络之深度神经网络
增多中间层(隐层)的神经网络就叫做深度神经网络(DNN),可以认为深度学习是神经网络的一个发展

解决神经网络过拟合的方法
1.交叉验证
训练集(子集)
验证集(评估模型的性能和指标)
测试集(预测)
2.剪枝
每次训练的epoch结束时,将计算的accuracy跟上一次进行比较,如果连续几次accuracy都不再变化,则停止训练
3.正则化
就是在目标函数上加上一个参数,用来惩罚那些权重很大的向量,称之为一个正则化处理
两种正则化规则:L1(想知道哪一个特征对于最后结果产生较大影响)
L2(如果不在意对于特征分析)

神经网络之激活函数
S函数:
双SS函数:

神经网络之BP算法
神经网络的一种求解w的算法,分为信号“正向传播(FP)”求损失,“反向传播(BP)”回传误差;根据误差值修改每层的权重,继续迭代,使用梯度下降法来优化参数

神经网络之SGD
误差E有了,那么为了使误差越来越小,可以采用随机梯度下降的方式进行w和u的求解,即求得w和u使误差E最小

使用jupyter notebook来一步一步执行,观察结果

用深度学习来做线性回归问题
In[1]:	import numpy as np
		import tensorflow as tf
		import matplotlib.pyplot as plt
In[2]:	# 随机生成一千个点,围绕在y=0.1x+0.3的直线范围内
		num_points = 1000
		vectors_set = []
		for i in range(num_points):
			# 生成一个均值为0.0,方差为0.55的高斯分布
			x1 = np.random.normal(0.0, 0.55)
			# 声明一个y=0.1x+0.3的函数,增加一些抖动(wx+b)
			y1 = x1*0.1 + 0.3 + np.random.normal(0.0, 0.03)
			# 放入vectors_set中
			vectors_set.append([x1,y1])
In[3]:	# 生成一些样本
		x_data = [v[0] for v in vectors_set]
		y_data = [v[1] for v in vectors_set]
		plt.scatter(x_data, y_data)
		plt.show()
In[4]:	# 模拟训练
		# 生成一个一维的w矩阵,取值范围在[-1,1]之间
		W = tf.Variable(tf.random_uniform([1], -1, 1), name='W')
		print(W)
In[5]:	# 生成一个一维的矩阵b,初始值为0
		b = tf.Variable(tf.zeros([1]), name='b')
In[6]:	# 经过计算得出预估值y
		y = W * x_data + b
In[7]:	# 以预估值y和实际值y_data之间的协方差作为损失
		loss = tf.reduce_mean(tf.square(y-y_data), name='loss')
		# 使用梯度下降法来优化参数
		op = tf.train.GradientDescentOptimizer(0.5) # 每次更新的幅度为0.5
		# 训练的过程就是最小化这个误差值
		train = op.minimize(loss, name='train')
		# 建立会话
		sess = tf.Session()
		# 全局变量的初始化
		init = tf.global_variables_initializer()
		# 初始化训练变量
		sess.run(init)
		# 查看初始化的W和b的值
		print('W=', sess.run(W), 'b=', sess.run(b), 'loss=', sess.run(loss))
In[8]:	# 进行训练,训练30次
		for step in range(30):
			sess.run(train)
		# 输出训练完的W和b的值,看一下能否接近0.1和0.3
		print('W=', sess.run(W), 'b=', sess.run(b), 'loss=', sess.run(loss))
In[9]:	# 完成线性回归
		plt.scatter(x_data, y_data)
		plt.plot(x_data, sess.run(W)*x_data + sess.run(
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值