一、神经元和大脑
1. 概述
-
起源:
研究可以模拟大脑的算法。
-
应用:
语音、视觉、文本 (自然语言) ......
(1) 大脑神经元与算法
注:当下重点已不在生物层面,而是在利用工程原理构建更有效的算法。
(2) 深度学习的起飞
2. 需求预测
(1) 神经网络的符号与描述
(2) 不需要自己手动自己设计特征
神经网络将自己决定它将在隐藏层使用哪些数据
3. 例子:图像识别
随着层数增加,窗口大小在增大。
二、工作原理
1. 神经网络的层
【注】上标表示所在层数
-
第一层
-
第二层
-
预测结果 (可省略)
-
每一层输入一组数字向量,并对应一组逻辑回归单元, 计算出另一组数字向量并传到另一层。直到得到最终的输出。
2. 计算激活
第 l 层激活的一般形式:
( g 也称为激活函数 —— 输出激活值的函数)
三、神经网络代码的实现
1. 前向传播算法算法推导
以区分手写数字 0 和 1 为例
-
前向传播:从左向右传播神经元的激活
-
计算第一层激活
-
计算第二层激活
-
计算最后一层激活 (输出)
-
(可选)
隐藏层的单元数量随着越来越接近输出层而在减少
-
2. 使用 TensorFlow 实现
1. 从前往后构建层
(1) 以烤咖啡豆为例 (输入为温度、时间长度):
(2) 以识别手写数字为例:
2. 数据表示
由于历史原因,tensorflow 和 numpy 的数据表示方式冲突 —— t 为矩阵,n 为一维数组。
(1) 在 numpy 中的数据表示:
线性回归和逻辑回归通常用一维向量来表示数据,TensorFlow通常使用矩阵来表示。
(2) 在 tensor 中的数据表示:
tf.Tensor() 是由 TensorFlow 团队创建的数据类型,用于存储和执行矩阵上的运算 —— 即矩阵的一种表示方式
a1.numpy() 可将 tensor 转为 numpy 数组
3. 构建一个深度神经网络
Sequential() 函数可将不同层连接起来
model.fit(x,y) 表示在数据 x 和 y 上训练模型
model.predict(x_new) 表示在新数据上,用该神经网络模型进行推理
代码的实现细节请见 下一篇博客
3. 使用 python 和 numpy 实现
1. 硬实现
以前面提到的 烘焙咖啡 为例:
-
计算 a1 :
-
计算 a2 :
2. 一般实现 (简化版)
(该部分理解即可 —— 用于调试模型代码)
条件:
-
dense() 实现神经网络的单层:
输入:上一层的激活、神经元参数 w 和 b
-
输出:当前层的激活
-
def dense(a_in, W, b, g) : units = W.shape[1] #3 a_out = np.zeros (units) for j in range(units): #0,1,2 W= W[:,j] z = np.dot(w,a_in) + b[j] a_out [j] = g(z) return a_out
-
sequential() 将各层串联起来:
def sequential(x): a1 = dense(x, W1, b1) a2 = dense(a1, W2, b2) a3 = dense(a2, W3, b3) a4 = dense(a3, W4, b4) f_x = a4 return f_x
【注】python 中大写字母代表矩阵,小写字母指向量和标量
3. 使用向量化使得算法更高效
X = np.array([[200, 17]) W = np.array([[1, -3, 5], [-2, 4, -6]]) B = np.array([[-1, 1, 2]]) def dense(A_in, W, B) : Z = np.matmul(A_in, W) + B A_out = g(z) return A_out
四、偏差(bias) 和方差(variance)
1. high bias
取决于 Training Data
-
解决方法:选择一个新的网络
-
采用更多隐藏层或隐藏单元
-
训练更长的时间
-
使用更高级的优化算法
-
找到更适合当前问题的神经网络结构
-
2. high variance
是否具有一般化的能力:取决于 Set Data
-
解决方法:
-
获取更多的数据
-
采用正则化
-
找到更适合当前问题的神经网络结构
-
在早期机器学习时代,通常低偏差和低误差不可兼得。在当下深度学习的时代,可获取更多数据,使两者同时实现。
五、神经网络与通用人工智能 AGI
1. AI 包涵的两个部分
-
(artificial narrow intelligence) ANI - 狭义人工智能
E.g.: smart speaker, self-driving car, web search, Al in farming and factories....
-
(artificial general intelligence) AGI - 广义人工智能
做任何人类可以做的事情
2. 待解决的问题
-
模拟的神经元十分简单,与生物神经元有大的差距
-
我们至今仍未知道大脑如何工作
3. 未来的希望
动物实验:仅给定输入,小部分的组织边可学会听、说、写(如感觉细胞可学会看)
也许一种算法给定数据输入,就可以学会处理