人工智能實踐課程-北京大學

  • 名稱:人工智能實踐課程-北京大學
  • 分類:人工智能  
  • 觀看人數(shù):加載中
  • 時間:2019/10/18 15:30:36

這是人工智能入門課,將用八次課幫你梳理人工智能概念、機器學習方法、深度學習框架。如果你還不知道什么是人工智能、機器學習、深度學習,歡迎進來學習交流。結(jié)課時,你將會用Python搭建人工神經(jīng)網(wǎng)絡(luò),實現(xiàn)特定物體的識別。一起編碼感受人工智能 機器學習 深度學習吧!

什么是機器學習

如果一個程序可在任務(wù)T上,隨經(jīng)驗E的增加,效果P隨之增加,則認為這個程序可以從經(jīng)驗中學習。

Tensorflow

基于Tensorflow的神經(jīng)網(wǎng)絡(luò)

張量表示數(shù)據(jù),用計算圖搭建神經(jīng)網(wǎng)絡(luò),用會話執(zhí)行計算圖,優(yōu)化線上的權(quán)重(參數(shù)),得到模型。

張量、計算圖、會話和簡單的Tensorflow例子

import tensorflow as tf
a = tf.constant([1.0, 2.0])b = tf.constant([3.0, 4.0])result = a + bprint(result)with tf.Session() as sess:
    print(sess.run(result))

結(jié)果為:

Tensor("add_3:0", shape=(2,), dtype=float32)[4. 6.]

再有

import tensorflow as tf
a = tf.constant([[1.0, 2.0]])b = tf.constant([[3.0], [4.0]])result = tf.matmul(a, b)print(result)with tf.Session() as sess:
    print(sess.run(result))

結(jié)果為:

Tensor("MatMul:0", shape=(1, 1), dtype=float32)[[11.]]

張量(tensor):多維數(shù)組(列表) 階:張量的維數(shù)
計算圖(Graph):搭建神經(jīng)網(wǎng)絡(luò)的計算過程,只搭建不運算
會話(Session):執(zhí)行計算圖中的節(jié)點運算

參數(shù) tf.Variable

w = tf.Variable(tf.random_normal([2,3], stddev=2, mean=0, seed=1))

stdev 標準差; mean 均值; seed 隨機數(shù)種子;
tf.random_normal 表示 正態(tài)分布
tf.truncated_normal() 去掉過大偏離點的正態(tài)分布
tf.random_uniform() 平均分布

變量的初始化

init_op = tf.global_variables_initializer()sess.run(init_op)

tf.placeholder占位,在sese.run中用feed_dict喂數(shù)據(jù)

x = tf.placeholder(tf.float32, shape=(1,2))sess.run(y, feed_dict={x:[[0.5,0.6]]})x = tf.placeholder(tf.float32, shape=(None,2))sess.run(y, feed_dict={x:[[0.1,0.2], [0.3,0.4], [0.5,0.6]]})

神經(jīng)網(wǎng)絡(luò)實現(xiàn)過程

  1. 準備數(shù)據(jù)集,提取特征,作為輸入喂給神經(jīng)網(wǎng)絡(luò)

  2. 搭建NN結(jié)構(gòu),從輸入到輸出(先搭建計算圖,再用會話執(zhí)行)前向傳播算法計算輸出

  3. 大量特征數(shù)據(jù)喂給NN,迭代優(yōu)化NN參數(shù),反向傳播算法優(yōu)化參數(shù)訓練模型

  4. 將訓練好的模型投入實際使用

兩層簡單神經(jīng)網(wǎng)絡(luò)示例

import tensorflow as tf
x = tf.placeholder(tf.float32, shape=(None,2))w1 = tf.Variable(tf.random_normal([2,3], stddev=1, seed=1))w2 = tf.Variable(tf.random_normal([3,1], stddev=1, seed=1))a = tf.matmul(x,w1)y = tf.matmul(a,w2)with tf.Session() as sess:
    init_op = tf.global_variables_initializer()
    sess.run(init_op)
    print(sess.run(y, feed_dict={x:[[0.7,0.5], [0.2,0.3], [0.3,0.4], [0.4,0.5]]}))
    print(sess.run(w1))
    print(sess.run(w2))
丰城市| 公主岭市| 雷波县| 鲁甸县| 叶城县| 祁门县| 华安县| 石城县| 章丘市| 开封县| 叶城县| 尼玛县| 汉中市| 马关县| 南阳市| 南昌县| 苍南县| 辉南县| 政和县| 肇源县| 蛟河市| 肥乡县| 南郑县| 洛宁县| 锡林郭勒盟| 时尚| 进贤县| 博客| 江达县| 兴化市| 乌鲁木齐县| 孟津县| 丹凤县| 东辽县| 大埔县| 德清县| 昭觉县| 长宁区| 靖远县| 江津市| 宜兴市|