最近AlphaGo和AlphaZero的出现,预示着2017年成为人工智能元年,人工智能逐渐进入我们的生活和工作的方方面面,如在工作中,阿里巴巴双十一中,出现了“千人千面”智能推荐系统,鲁班AI设计师,小蜜机器人,IDC智能巡检机器人,还有京东的无人仓库等。这些都让我觉得人工智能越来越重要和越来越感兴趣,所以决定学习python和tensorflow。现在就以一个使用tensorflow构建一元线性模型开始我的人工智能学习吧。
人工智能,机器学习,深度学习关系
人工智能是计算机学科的一个分支,诞生于1956年。机器学习是人工智能的范畴,它包含了深度学习。深度是指多层的意思,模型经过多层的神经网络的训练,不断的学习和调整模型的参数,最后得到最优损失函数最小的模型。深度学习能够有效的处理现实生活中的“非线性”问题。tensorflow是目前最受欢迎的深度学习框架。
几个tensorflow的关键词语,张量,流,计算图。更多的建议阅读:《Tensorflow实战》
下面直接上最简单的一元线性回归模型代码:
电脑环境:
- python版本:3.6.3.
- tensorflow版本:cpu版,1.3
- window 7 64位
- IDE:PyCharm
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| import tensorflow as tf
session = tf.Session() # X轴参数 w = tf.Variable([.3], dtype=tf.float32) # 偏移量 b = tf.Variable([-.3], dtype=tf.float32) # x轴 x = tf.placeholder(tf.float32) # 一元线性模型 linear_model = w * x + b # 实际值 y = tf.placeholder(tf.float32) # 观测值和实际值的误差的平方差 squared_deltas = tf.square(linear_model - y) # 最少二乘法。损失函数 loss = tf.reduce_sum(squared_deltas) # 优化器.优化函数 optimizer = tf.train.GradientDescentOptimizer(0.01) train = optimizer.minimize(loss) # 初始化所有的变量 init = tf.global_variables_initializer() session.run(init) # 开始训练。训练的过程就是结合优化函数使损失函数的损失最少 x_train = [1,2,3,4] y_train = [0, -1,-2,-3] for i in range(1000): session.run(train, {x: x_train, y: y_train}) # 训练的结果 curr_W, curr_b, curr_loss = session.run([w, b, loss], {x: x_train, y: y_train}) print("W: %s b: %s loss: %s"%(curr_W, curr_b, curr_loss))
|
模型输出结果是:
1
| W: [-0.9999969] b: [ 0.99999082] loss: 5.69997e-11
|
公式表示是:$Y=-0.9999969X + 0.99999082$, 损失为:5.69997e-11