机器 能 像 人 一样 思考 吗 ?人工智能 (一 )机器 学习 和 神经网络 (2)
你 先 把 這個 數求 出來
求 完 了 之後
我們 說 你 進行 叠代
怎 麽 叠代 呢
就是 新 的 w 就 wₙ₊₁
它 等於 原來 的 wₙ-η∂J/∂w
有 同學 在 數學 上 可能 會 遇到 一點 困難
反正 大概 的 意思 就是說
我 通過 這種 方式 我 可以 怎 麽 樣
我 可以 從 這個 數我 找到 一個 更好 的 這個 w
我作 為 w₂ 對 吧
w₂ 之後 可能 還是 不夠 怎 麽 辦
我們 繼續 去求 在 w₂ 這個 地方 它 的 傾斜 程度
然後 我們 再 去 計算 一個 新 的 叠代 過程
於是 我們 就 又 往下跳 了 一步 就 w₃
你 看 這 w₃ 就 已經 非常 完美 了 對 吧
當然 也 有 可能 我 這 一步 跳過 跳 到 右邊 去 了
那 麽 它 還會 繼續 跳回來
就 通過 這樣 的 式子 反 復 進行 叠代
一步 一步 就 會 找到 這個 最低點 了
那 這個 方式 我們 就 稱 之 為 梯度 下降 算法
那 麽 最終 的 情況 是 什 麽 樣 的
最終 就是 我們 通過 一次 又 一次 的 計算
我們 是 希望 找到 那個 最優化 的 w
也 就是 直到 這個 ∂J/∂w=0
約等於 0 不 可能 嚴格 是 等於 0 的
或者說 這個 wₙ₊₁ 它 已經 約等於 wₙ 了
這個 時候 我們 就 不再 需要 叠代 了
我們 就 找到 了 這個 最優 的 解
事實上 我剛 才 只 考慮 到 這個 參數 w
參數 還有 一個 叫 b 叫 截距
我們 在 進行 梯度 下降 算法 的 時候
實際上 是 w 和 b 同時 進行 優化 的
我們 是 在 一個三維 的 空間 中
尋找 一個 最低點
而 不是 像 我 這畫 的 這個 樣
在 一個 平面 上 尋找 最低點
那剛 才 我們 說 房價 只 取決於 面積
這 很 顯然 不合理 的 對 吧
房價 可能 有 很多 的 影響 因素
比如說 你 是 在 哪個 城市 的 呀
你 距離 市中心 的 遠近
你 小區 的 環境 好不好 對 吧
你 這個 樓層 怎 麽 樣
你 這個 朝向 很多 很 多個 因素
那 我們 把 這 很多 很 多個 因素
作為 輸入 叫 x₁ x₂ ... 一直 到 xₙ
這樣一來 你 就 會 發現
房價 有 可能 是 這樣 一個 函數
叫做 w₁x₁+w₂x₂+...+wₙxₙ
x₁ x₂ ... 一直 到 xₙ 都 是 它 的 輸入 端
而 w₁ w₂ ... 一直 到 wₙ 都 是 參數
最後 我們 再 加上 一個 b
這個 就是 一個 更加 詳細 的 分析 房價 的 一個 模型
我們 通過 一大堆 的 訓練 找到
這個 w₁ w₂ ... wₙ 以及 b
這些 參數 的 最優 值
這個 最優 值 能夠 讓 損失 函數 最小
這 就是 一個 成功 的 訓練 了
我們 找到 了 一個 房價 的 模型
這個 我們 稱之為 回歸 的 一個 分析
除此之外 還有 一個 分類 的 分析
你 比如說 我給 你 一大堆 的 這個 腫瘤 的 CT 照片
哪 一個 是 良性 的 哪 一個 是 惡性 的
我 都 告訴 你
然後 讓 你給 我 一個 新 的 這個 腫瘤 照片
問你 這是 良性 還是 惡性
這種 就 叫 分類
分類 問題 的 本質 其實 也 是畫 一條線
把 良性 和 惡性 給 分開 對 吧
我給 你 一大堆 貓的 照片
給你 一大堆 狗 的 照片
然後 你 去 問貓 和 狗 其實 還是 畫 一條線
所以 說白了 我們 不管 是 什 麽 人工智能 問題
都 可以 把 它 最後 化成 一個 數學 問題
而 這個 數學 問題
就是 尋找 參數 的 最優 值
那 我們 的 方法 就是 所謂 的 梯度 下降 算法
其實 利用 梯度 下降 算法 來 訓練 這個 參數
非常 類似 於 人 的 學習 和 認知 過程
我們 之前 講過 皮亞傑 的 這個 認知 發展 理論
所謂 的 同化 和 順應 吃一塹長一智
這就 和 機器 學習 的 過程 是 一模一樣 的 是 吧
好 那 麽 我們 說完 了 這個 梯度 下降 之後
我們 再 來說 一個
在 人工智能 裏面 經常 會 出現 的 一個 詞
叫做 神經網絡
神經網絡
大家 有 可能 在 搜索 人工智能 的 時候
經常 會 蹦出來 這 麽 一張 圖
一些 小圓圈
然後 怎 麽 著 啊
每 兩個 圓圈 每 兩層 之間 都 有 連接
這種 其實 就是 一個 神經 網絡圖
神經 網絡圖
它 的 意思 就是 左邊 叫做 輸入 層
從 這個 輸入 層 輸入 了 一大堆 的 這個 自變量
比如說 x₁ x₂ ... 一直 到 xₙ
這 就是 輸入 層 輸入 的
輸入 完 了 之後 經過 一大堆 處理
最後 到 右邊 就是 輸出
左邊 是 輸入 右邊 是 輸出
中間 我們 稱之為 隱層
那 麽 這種 神經網絡
實際上 它 是 來源於 人類 對於 大腦 的 認知
說 大腦 裏邊 有 幾百 億個 神經元
說 這些 神經元 怎 麽 組成 的 呢
說 研究 了 人 大腦 中 的 這些 神經元
發現 它們 組成 了 這個 結構
首先 左邊 我們 稱之為 有 樹突
叫做 樹突
它 用於 接收 上 一個 信號
然後 這個 信號 經過 中間 的 這個 神經元 叫做 軸突
經過 軸突 的 處理 之後
它會 有 選擇地 向下 釋放
而 向下 釋放 的 這個 就 叫做 突觸
說 人 的 大腦 裏邊
它 這個 神經元 長 的 就是 這個 樣子
它 可以 從 上面 接收 很多 很 多個 信號
接收 完 了 信號 之後 它會 進行 選擇
也許 會 向下 一級 釋放 信號
也許 不 向下 一級 進行 釋放 信號
在 1943 年 美國 神經 科學家
麥卡 洛克 還有 皮茨
他們 兩個 人 提出 了 一種 理論
這種 理論 是 說 呀
說 這個 每 一個 神經元 它 都 是 一個 什 麽 呢
都 是 一個多 輸入
多 輸入 然後 單 輸出
就是 你 有 很 多個 輸入
你 可以 從 很 多個 神經元 得到 一些 信號
得到 完 了 之後 經過 綜合 處理
如果 你 認為 有 必要
你 就 會 向下 遊 輸出 信號
所以 叫 多 輸入 單 輸出
而且 這個 輸出 的 信號 只有 兩種 可能
要 麽 就是 0 要 麽 就是 1
和 計算機 非常 類似 對 不 對
所以 他們 就 提出 了 一種 模型
人工智能 模型 就 叫 M-P 模型
叫 麥卡 洛克 一 皮茨 模型 是 吧
這個 M-P 模型 就是說
每 一個 神經元 它 其實 都 是 有 很 多個 輸入 端
最後 也 只有 一個 輸出 端
你 看 我們 這個 神經元
這個 神經元 它 有 很 多個 輸入 端
從 一個 兩個 三個 輸入
輸入 完 了 之後 它 只有 一個 輸出
雖然 我們 畫了 兩條線
但 實際上 它 只有 一個 輸出
它 是 把 這 一個 輸出 給了 兩個 刺激 對 吧
你 看 它 接收 了 很 多個 輸入 最後 只有 一個 輸出
再 把 這 一個 輸出 給 很 多個 刺激
這 就是 M-P 模型
如果 我們 再畫 得 仔細 一點
M-P 模型 大概 可以 看成 這個 樣子
有 一個 神經元
左側 有 很 多個 輸入
這 很 多個 輸入 所 接收 到 的 信號
就是 一大堆 的 這個 x
比如 x₁ x₂ x₃ ...
每 一個 x 你 在 輸入 的 時候 都 會 乘 一個 權重
w₁ w₂ w₃ ...
這 就是 我們 剛才 所說 的 這 一部分 對 不 對
最後 你 還會加 一個 b
這個 加 一個 b 叫 閾值
所以 把 它 加 起來
然後 最後 我們 再 加 一個 b
加完 了 這個 數 之後 就 會 得到 一個 值
得到 了 這個 值 你 是否 會 選擇 向下 遊 輸出 呢
此時 就 會 有 一個 函數 f
這個 函數 f 我們 稱之為 激活 函數
就是 它會 進行 選擇
我要 不要 把 這個 數 輸出
剛才 說 了 輸出 要 麽 就是 0 要 麽 就是 1
它 輸出 要 麽 就是 0 要 麽 就是 1
這個 激活 函數 長 什 麽 樣 呢
有 很多很多 種 激活 函數
比如 比較 常用 的 激活 函數 叫 Sigmoid 的 函數
這個 函數 是 長 這個 樣子
橫坐標 縱 坐標 這個 函數 叫
f(y)=1/(1+e⁻ʸ)
所以 它 就 長 的 是 這個 樣子
如果 你 這個 y 要是 0 的話
那 麽 這個 值 正好 是 0.5
如果 y 值 非常 大 它 就 非常 的 接 近於 1
如果 這個 值 是 1 的話 它 就 會 選擇 向下 遊 輸出
如果說 你 這個 值 非常 接 近於 0
算 出來 這個 激活 函數 非常 接 近於 0
它 就 會 不 向下 遊 輸出
如果 你算出 的 激活 函數 是 0.5
它 就 有 50% 的 可能 向下 遊 輸出
也 有 50% 的 可能 不 向下 遊 輸出 去
所以 它 是 一個 未定 的
那 我們 生活 中 不 也 是 一樣 嗎
你 看到 一個 物體 你 可能 會 認為 它 是 個貓
你 也 有 可能 會 認為 它 是 個 狗
你 再 多 看 一會 你 就 會 說
這個 我 有 99% 的 可能性 說 它 是 狗
但 實際上
實際上 它 可能 是 一個 玩偶 是不是
它 可能 既 不是 貓 也 不是 狗 是 一個 玩偶
所以 即便 是 人類 判斷
它 也 是 有 一定 的 可能性 的
所以 它 就 存在 著 這樣 的 一個 激活 函數
選擇 向下 遊 輸出 或者 不 向下 遊 輸出
把 這 一大堆 神經元 組合 起來
就是 我們 所 看到 的 這張 圖 了
那 麽 這個 神經網絡 是 如何 幫助 我們 做 一些 事
比如 識別 圖像 的 呢
我們 也舉 一個 例子
比如說 我們 就要 識別 一個 圖像
這個 圖像 還是 像素 比較 低 的
它 是 一個 5×5 的 圖像
這個 5×5 的 圖像
一共 也 就 只有 五五 二十五個 格子
我 在 這 25 個 格子 裏面 我 寫 了 一個 字母
大家 能 看 出來 我 寫 的 這個 塗黑 的 這個 地方
形成 了 一個 字母 是 什 麽 字母 嗎
能 看 出來 吧
是 x 對 不 對
我們 大腦 就 能夠 識別 它 是 x
現在 我 就問 你 如果 用 計算機 去 識別 的話
你 怎 麽 能 看出 它 是 個 x 呢
實際上 在 我們 看來 這是 一幅 圖
但是 計算機 看來 它 其實 就 一大堆 數
它 每 一個 格子 要 麽 黑 的 要 麽 白 的
比如說 黑 的 是 1 白 的 是 0 吧
所以 它 所 代表 的 就是 一共 x₁ x₂ ... 一直 到 x₂₅
一共 有 25 個 輸入 端
這 25 個 輸入 端 代表 了 一大堆 數字
黑 的 就是 1 白 的 就是 0
就 1 0 ... 這 麽 一直
最後 一 個數 是 1 對 不 對
你 相當於 是 把 這 一大堆 數字 輸入 電腦 之中 了
輸入 完 了 之後
我 就 想問 你 這 一大堆 數字 代表 了 什 麽 字母
那 你 該 怎 麽 做
你 不 就 通過 這 一系列 的 訓練 過程
找到 一大堆 的 參數 以 判斷 它 是不是 一個 x 嗎
有人 說 那 你 這裏 邊 只有 黑和白 兩種 情況
萬一 我 這是 灰度 圖 怎 麽 辦
你 灰度 圖 的話 每個 數字 就 不是 0 和 1 了
就是 0 到 255 的 一個 灰度 值
你 說 我 是 彩色 的 怎 麽 辦
那 就是 R G B 三個 顏色
你 分別 代 進去 把 數據量 擴大 就行了
所以 從 本質 上講
不管 是 什 麽 圖 我 最後 都 能 換成 一大堆 的 數字
我 就 可以 把 這 一大堆 數字 作為 輸入
我 進入 神經元 裏面 去
然後 進行 訓練 訓練 什 麽 訓練 參數
w₁ w₂ ... 一直 到 b
最後 我 找到 一個 誤差 最小 的 函數
這 就是 一個 成功 的 訓練
從此 之後 我 利用 這 一大堆 參數
我 就 能 判斷 這個 玩意 是不是 x
那 麽 如果 只想 判斷 這幅 圖是 x 或者 不是 x
那 也許 一層 神經元 就夠 了
但是 我們 在 現實生活 中說
閱讀文章 要 理解 別人 的 語音 要 進行 圖像識別
你 僅僅 用 一層 神經元 往往 是 達 不到 效果 的
於是 我們 就 設計 了 多層 神經元
那 意思 是 說 你 先 有 一個 輸入
然後 輸入 端的 連接 每 一個 第一個 隱層 的 神經元
然後 第一個 隱層 把 這些 數據 輸 出來 之後
選擇 向下 遊 輸出 輸出 到 第二 隱層
第二 隱層 輸出 的 結果 又 進入 到 第三 隱層
這 就是 所謂 的 多層 神經網絡
每 兩層 神經網絡 之間 的 連接 都 會 有 大量 的 參數
那 我們 通過 一定 的 算法
能夠 讓 大量 的 參數 調節 到 最優