摘要:讓我們觀察一下這個(gè)例子中的損失函數(shù)到底長什么樣子。因此,我們可以通過梯度下降的方法求解使得損失函數(shù)達(dá)到最小值的。
機(jī)器學(xué)習(xí)基礎(chǔ)
線性回歸
邏輯回歸
Softmax分類
神經(jīng)網(wǎng)絡(luò)
線性回歸 什么是回歸?
通俗地講:給定X1, X2, ..., Xn,通過模型或算法預(yù)測數(shù)值Y,即是回歸。如上圖所示。
例如,預(yù)測測試分?jǐn)?shù):
x(hours) | y(score) |
---|---|
10 | 90 |
9 | 80 |
3 | 50 |
2 | 30 |
以下面的數(shù)據(jù)闡述什么是線性回歸:
x | y |
---|---|
1 | 1 |
2 | 2 |
3 | 3 |
1.如下圖所示,我們把上述數(shù)據(jù)中的點(diǎn)(x, y)在坐標(biāo)中描繪出來,可以發(fā)現(xiàn)(x,y)呈線性趨勢。
2.試圖用一條直線H(x)=wx+b去擬合坐標(biāo)中的觀察值,例如圖中的3條直線。
那么,圖中的3條直線哪個(gè)能更好地?cái)M合觀察值(x,y)呢?如下圖所示:我們可以用觀察值到直線的豎直距離的平方(H(x)-y)^2來衡量模型的擬合效果,如圖中的損失函數(shù):cost。
讓我們觀察一下這個(gè)例子中的損失函數(shù)到底長什么樣子。如下圖所示:cost(W)為平滑可導(dǎo)的凸函數(shù),在w=1處取得最小值。因此,我們可以通過梯度下降的方法求解使得損失函數(shù)達(dá)到最小值的W。
TensorFlow實(shí)現(xiàn)線性回歸1.添加線性節(jié)點(diǎn)H(x) = Wx + b
# 訓(xùn)練數(shù)據(jù)集x,y x_train = [1, 2, 3] y_train = [1, 2, 3] W = tf.Variable(tf.random_normal([1]), name="weight") b = tf.Variable(tf.random_normal([1]), name="bias") # 線性假設(shè) XW + b hypothesis = x_train * W + b
2.計(jì)算損失函數(shù)
cost = tf.reduce_mean(tf.square(hypothesis - y_train))
3.梯度下降
optimizer = tf.train.GradientDescentOptimizer(learning_rate=0.01) train = optimizer.minimize(cost)
4.更新圖并獲取結(jié)果
# 開啟session會(huì)話 less = tf.Session() # 初始化全局變量 sess.run(tf.global_variables_initializer()) # 擬合直線 for step in range(2001): sess.run(train) if step % 20 == 0: print(step, sets.run(cost), sess.run(W), sets.run(b))
完整代碼:
import tensorflow as tf # 訓(xùn)練數(shù)據(jù)集x,y x_train = [1, 2, 3] y_train = [1, 2, 3] W = tf.Variable(tf.random_normal([1]), name="weight") b = tf.Variable(tf.random_normal([1]), name="bias") # 線性假設(shè) XW + b hypothesis = x_train * W + b # 損失函數(shù) cost = tf.reduce_mean(tf.square(hypothesis - y_train)) # 梯度下降 optimizer = tf.train.GradientDescentOptimizer(learning_rate=0.01) train = optimizer.minimize(cost) # 開啟session會(huì)話 sess = tf.Session() # 初始化全局變量 sess.run(tf.global_variables_initializer()) # 擬合直線 for step in range(2001): sess.run(train) if step % 20 == 0: print(step, sess.run(cost), sess.run(W), sess.run(b))
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/40968.html
摘要:圖和之間的關(guān)系圖例與各版本之間的環(huán)境依賴關(guān)系的原裝驅(qū)動(dòng)并不支持,因此需要禁用掉并且重裝卡官方驅(qū)動(dòng)。會(huì)有很多同學(xué)在不知道的情況下安裝了,最后導(dǎo)致和無法使用或者無法安裝等問題。 ...
當(dāng)談到機(jī)器學(xué)習(xí)模型訓(xùn)練和部署時(shí),TensorFlow是最流行的框架之一。TensorFlow 2.0是TensorFlow的最新版本,它提供了許多新的功能和改進(jìn),使得模型訓(xùn)練和部署更加容易和高效。在這篇文章中,我們將討論如何將TensorFlow 1.x代碼遷移到TensorFlow 2.0。 1. 張量(Tensors)和變量(Variables)的改變 在TensorFlow 1.x中,我...
摘要:簡介是針對(duì)移動(dòng)設(shè)備和嵌入式設(shè)備的輕量化解決方案,占用空間小,低延遲。支持浮點(diǎn)運(yùn)算和量化模型,并已針對(duì)移動(dòng)平臺(tái)進(jìn)行優(yōu)化,可以用來創(chuàng)建和運(yùn)行自定義模型。此外,轉(zhuǎn)換的方式有兩種,的方式和命令行方式。生成為了將模型轉(zhuǎn)為,模型需要導(dǎo)出。 簡介 Tensorflow Lite是針對(duì)移動(dòng)設(shè)備和嵌入式設(shè)備的輕量化解決方案,占用空間小,低延遲。Tensorflow Lite在android8.1以上的設(shè)...
閱讀 1304·2021-11-22 09:34
閱讀 2168·2021-10-08 10:18
閱讀 1730·2021-09-29 09:35
閱讀 2462·2019-08-29 17:20
閱讀 2143·2019-08-29 15:36
閱讀 3408·2019-08-29 13:52
閱讀 783·2019-08-29 12:29
閱讀 1188·2019-08-28 18:10