人工智能AI 起于1950 图灵测试
图灵测试是人通过常识无法判断制造出某些效果的对方是人还是机器,可认为机器是智能的。
整体进展经历了大致3个阶段:
- 50-60年代 推理期(重要事件:达特茅斯会议1955.8.31,AI被首次提出)
- 70-80年代 知识期
- 90-2000年代 学习期(2005 深度学习)
机器学习是从输入到输出的映射过程,将训练数据喂给机器学习算法得到一个满意的模型,用来对未知数据进行预测其分类或回归值。
学习算法可以分成
- 监督式学习
- 非监督学习
- 半监督学习
- 强化学习
机器学习可以看作是一个最优化问题,在训练模型过程中依据损失函数做为优化目标,常用的有
- 0-1 loss function
- square loss function
- 交叉熵 (负对数似然):评估当前训练得到的概率分布与真实分布的差异情况
优化方法常用的是梯度下降法(batch gradient decent损失求和,整体更新一次,stochastic gradient decent(SGD)每个样本都更新,mini-batch gd……),学习率(步长)选择不能过大,也不宜过小。过大导致收敛迅速,容易陷入局部最优;过小造成学习速度较慢
线性模型
- 线性回归,最小二乘法,正则化 lasso regression(L1), ridge regression(L2)
- Logistis回归(一种二分类方法),logistic函数把线性函数值域压缩到(0,1)之间
softmax回归(多分类方法)softmax函数
本质上是线性模型,对于非线性可分问题,对特征进行非线性变换(kenel,特征组合) - 神经网络前身--- 感知器perceptron,线性分类器,由于感知器无法处理异或问题,因此遭到质疑,神经网络研究进入第一次寒冬。
- 支持向量机svm, 最大分割面
特征工程
- 特征预处理
- 特征抽取
- 特征选择
- 特征转换
raw data ->preprocessing -> extraction -> selection -> transfer -> prediction
对于图像、语音、自然语言处理的特征是难以获取获取,无法保留全部描述信息。而深度学习的优势就在于能自动学到多层次特征信息(底层、中层、高层特征),从数据中学习一个“深度模型”。
深度学习 = 表示学习 + 浅层学习
raw data -> 底层特征 -> 中层特征 ->高层特征 -> prediction
深度学习在一定程度上可以看做是一种表示学习
技术,通过多层非线性变换,把原始数据编程更高层次、更抽象的表示。学习到的特征代替人工设计的特征,避开了“特征工程”。传统机器学习是浅层学习/浅层模型。
几种常见的神经网络结构
- 前馈神经网络:从输入到输出单向传播
- 循环神经网络:不仅可以接受其他神经元信号,还可以是自身信号
- 有记忆的神经网络:引入一组神经单元保存中间结果
1974年webo提出反向传播算法,有效解决了异或问题,使多层神经网络变成可能。
使用sigmoid激活函数,误差经过每一层都会衰减,甚至消失,使得网络很难训练,这就是梯度消失问题(梯度弥散)
卷积神经网络是一种前馈神经网络,受生物学感受野的启发,结构上有三个特性:1.局部连接 2.权重共享 3.空间或时间上次采样
这样做的好处是减少权重数量,使网络构造更深,表达能力更强。
- 滑动步长
- 零填充: 两端添加两个0,使得输出层与输入层数量一致
- 窄卷积、宽卷积、等长卷积
典型的卷积网络 - LeNet --- OCR识别,7层
- AlexNet --- 8层(5卷积,3全连接)
- InceptionNet --- 22层
- ResNet -- 152层 残差网络
循环神经网络RNN
由于产生梯度爆炸或梯度消失问题,实际上只能学习到短周期的依赖关系。(Long-Term dependencies problem)
解决办法是改变模型结构 -- 长短时记忆神经网络(long short-term memory,LSTM)[schmidhuber 1997],引入门机制gating控制信息的传递。
- 堆叠循环神经网络
- 双向循环神经网络Bi-RNN 擅长处理带有上下文,前后时间的内容
- 递归神经网络
神经网络的缺点:
- 神经网络是一个非凸优化函数,很难进行优化,容易产生梯度消失问题
- 参数多,调参复杂,训练效率低
- 容易过拟合
参数初始化不能全部是0,Gaussian初始化(高斯分布),Xavier初始化(均匀分布)
取值区间归一化,可提高最优解搜索效率
正则化防止过拟合,提高网络的泛化能力(数据增强、早期停止、dropout,权重衰减)
使用一般经验:使用ReLU作为激活函数,交叉熵作为损失函数,数据预处理,动态学习率,正则化处理, SGD+mini batch
记忆和注意力机制(Memory & Attention)
注意力是解决信息超载的方法,将计算资源分配给重要任务
长期记忆、短期记忆,联想记忆