個人博客: http://zhangsunyucong.top
最近AlphaGo和AlphaZero的出現(xiàn)草戈,預(yù)示著2017年成為人工智能元年幢炸,人工智能逐漸進入我們的生活和工作的方方面面塘安,如在工作中系洛,阿里巴巴雙十一中劝贸,出現(xiàn)了“千人千面”智能推薦系統(tǒng)碍论,魯班AI設(shè)計師寒砖,小蜜機器人赐劣,IDC智能巡檢機器人,還有京東的無人倉庫等哩都。這些都讓我覺得人工智能越來越重要和越來越感興趣魁兼,所以決定學(xué)習(xí)python和tensorflow。現(xiàn)在就以一個使用tensorflow構(gòu)建一元線性模型開始我的人工智能學(xué)習(xí)吧漠嵌。
人工智能咐汞,機器學(xué)習(xí),深度學(xué)習(xí)關(guān)系
人工智能是計算機學(xué)科的一個分支儒鹿,誕生于1956年化撕。機器學(xué)習(xí)是人工智能的范疇,它包含了深度學(xué)習(xí)挺身。深度是指多層的意思侯谁,模型經(jīng)過多層的神經(jīng)網(wǎng)絡(luò)的訓(xùn)練,不斷的學(xué)習(xí)和調(diào)整模型的參數(shù),最后得到最優(yōu)損失函數(shù)最小的模型墙贱。深度學(xué)習(xí)能夠有效的處理現(xiàn)實生活中的“非線性”問題热芹。tensorflow是目前最受歡迎的深度學(xué)習(xí)框架。
幾個tensorflow的關(guān)鍵詞語惨撇,張量伊脓,流,計算圖魁衙。更多的建議閱讀:《Tensorflow實戰(zhàn)》
下面直接上最簡單的一元線性回歸模型代碼:
電腦環(huán)境:
- python版本:3.6.3.
- tensorflow版本:cpu版报腔,1.3
- window 7 64位
- IDE:PyCharm
import tensorflow as tf
session = tf.Session()
# X軸參數(shù)
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)
# 最少二乘法。損失函數(shù)
loss = tf.reduce_sum(squared_deltas)
# 優(yōu)化器.優(yōu)化函數(shù)
optimizer = tf.train.GradientDescentOptimizer(0.01)
train = optimizer.minimize(loss)
# 初始化所有的變量
init = tf.global_variables_initializer()
session.run(init)
# 開始訓(xùn)練剖淀。訓(xùn)練的過程就是結(jié)合優(yōu)化函數(shù)使損失函數(shù)的損失最少
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})
# 訓(xùn)練的結(jié)果
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))
模型輸出結(jié)果是:
W: [-0.9999969] b: [ 0.99999082] loss: 5.69997e-11
公式表示是:$Y=-0.9999969X + 0.99999082$, 損失為:5.69997e-11