学习目录:
- (python自然语言处理实战-核心技术与算法书籍《涂铭 刘详 刘树春》)—推荐
- (吴恩达-深度学习)[http://mooc.study.163.com/smartSpec/detail/1001319001.htm]—推荐
- (莫烦系列-深度学习与机器学习)[https://morvanzhou.github.io/tutorials/machine-learning/tensorflow/]
- (麦子学院-深度学习)[https://www.bilibili.com/video/av15200856/]
- (中文网)(http://www.tensorfly.cn/) (英文网)[https://www.tensorflow.org/]—推荐
- (炼数成金-深度学习框架Tensorflow学习与应用)[https://www.bilibili.com/video/av20542427/]
总结深度学习的笔记,如果写的不对请评论指出、我会修改。
1、传送门:GitHub比较库,喜欢收下(https://github.com/andyczy/czy-study-py-ml-deepLearning)
你将学到:
- 1、大白话理解什么是神经网络?
- 2、TensorFlow实现神经网络?
1、什么是神经网络?
它就是一个数学函数:有输入、输出、计算逻辑(节点)。
把房屋的面积作为神经网络的输入(我们称之为x ),通过一个节点(一个小圆圈),最终输出了价格(我们用y
表示)。这个函数被称作ReLU激活函数,它的全称是Rectified Linear Unit。rectify可以理解成max(0,x)
但这个函数太简单了,往往现实没那么简单,比如房价的高低是有很多因素影响的:如位置、房间面积等等。
在图上每一个画的小圆圈都可以是ReLU(激活函数)的一部分,也就是指修正线性单元,或者其它稍微非线性的函数。
这里有四个输入的神经网络,这输入的特征可能是房屋的大小、卧室的数量、邮政编码和区域的富裕程度。给出这些输入的特征之后,神经网络的工作就是预测对应的价格。同时也注意到这些被叫做隐藏单元圆圈。
神经网络理解为:是一个多输入、多个节点(计算逻辑)、一个输出的函数。
2、TensorFlow 实现神经网络
- TensorFlow 实现简单例子(还不了解它的可以去官网看看):
# 定义两个常量
a = tf.constant(10)
b = tf.constant(32)
# 相加
s = tf.add(a,b)
# s= sess.run(a + b)
# 输出
print("两个数相加:",s)
控制台输出:(tensor是TensorFlow用来表示数据的,这不是我们想要的结果)
两个数相加: Tensor("Add:0", shape=(), dtype=int32)
# 启动TensorFlow默认的图
sess = tf.Session()
s = sess.run(s)
print("两个数相加:",s)
控制台输出:
两个数相加: 42
- 实现简单的神经网
import numpy as np
import tensorflow as tf
# 定义参数w,在TensorFlow中,你要用tf.Variable()来定义参数
w = tf.Variable(0,dtype = tf.float32)
# 定义损失函数(就是一个函数,别想那么复杂):
cost = w**2-10*w+25 # tensorflow 也能识别
# cost = tf.add(tf.add(w**2,tf.multiply(- 10.,w)),25)
# 定义损失函数:(让我们用0.01的学习率,目标是最小化损失)
train = tf.train.GradientDescentOptimizer(0.01).minimize(cost)
# 开启了一个TensorFlow session。
session = tf.Session()
# 用来初始化全局变量。
init = tf.global_variables_initializer()
session.run(init)
# 定义train为学习算法,它用梯度下降法优化器使损失函数最小化,但实际上我们还没有运行学习算法,所以session.run(w)评估了w等于0
print(session.run(w))
# 运行了梯度下降的1000次迭代,最后w变成了4.99999(4.9999886),记不记得我们说〖(w-5)〗^2最小化,因此w的最优值是5,这个结果已经很接近了
for _ in range(10000):
session.run(train)
print(session.run(w))
控制台输出(训练10000,结果接近于5了,这就是我们想要的结果):
0.0
4.9999886