第二次作业
【第一部分】视频学习心得及问题总结
1.绪论
(1)现状:我国人工智能供给不足问题严重
(2)教育部措施:加快培养人工智能高端性人才
(3)人工智能定义的关键点:感知、认知、决策、执行
(4)人工智能之父:麦卡锡、明斯基(1956年组织达特矛斯会议,AI诞生)
(5)图灵与人工智能(验证码系统;模仿游戏,二战期间破解Enigma系统)
(6)人工智能高速发展期:2006年->2010年->2012年
(7)人工智能三个层面:计算智能、感知智能、认知智能
(8)人工智能>机器学习>深度学习(范围上)
(9)机器学习:机器自动训练数据
过程:建模(问题建模,确定假设空间) 策略(确定目标函数) 算法(求解模型参数)
监督学习:样本有标记 无监督学习:样本没有标记
半监督学习:部分有标记,部分没有
强化学习:样本没有标记,但知道与输出目标相关的反馈
参数模型:对数据分布进行假设(待求解的数据映射用一组参数刻画)
非参数模型:不对数据分布进行假设(数据所有统计特性来源于本身)
生成模型:对联合分布P(X,Y)建模
判别模型:对条件分布P(Y|X)建模
(10)深度学习:错误率低于人类(2015年ResNet) 应用:Google无人自行车
2.深度学习概述
深度学习的“不能”
(1)算法输出不稳定,容易被“攻击”
(2)模型复杂度高,难以纠错和调试
(3)模型层次复合程度高,参数不透明
(4)端对端训练方式对数据依赖性强,模型增量性差
(5)专注直观感知类问题,对开放性推理问题无能为力
(6)人类知识无法有效引入监督,机器偏见难以避免
总结:稳定性差。可调试性差、参数不透明、机器偏见、增量性差、推理能力差
从专家学习、统计机器学习、到概率图模型再到深度学习,模型准确率不断提高,解释性却没有提高
神经网络
激活函数
(1)S性函数:容易饱和,输出不对称(没有负值)
(2)双极S性函数:解决输出不对称问题
(3)ReLU修正线性单元:解决饱和区问题
(4)Leaky ReLU
非线性激活函数(以S性函数为例):近似实现逻辑非、逻辑与、逻辑或
单层感知器(缺点:无法实现异或、同或)
例:三层感知器实现同或门,组合单层感知器,解决非线性问题
万有逼近定理:如果一个隐层包含足够多的神经元,三层前馈神经网络(输入-隐层-输出)能以任意精度逼近任意预定的连续函数
双隐层感知器逼近非连续函数(输入-隐层1-隐层2-输出)
神经网络将原始输入空间投影到线性可分的空间去分类/回归
(1)增加节点数:增加维度,即增加线性变换能力
(2)增加层数:增加激活函数的次数,即增加非线性转换次数
增加网络深度比增加宽度带来更强的网络能力,深度对函数复杂度的贡献高
深层神经网络的问题:梯度消失、局部极小值。所以,很长一段时间,三层神经网络是主流
解决方法:逐层预训练(相对更加收敛,训练更快)
疑问:什么样的数据集适合节点数多的模型,什么样的数据集适合层数多的模型,模型具体是怎么训练的,为什么加了ReLU激活函数之后,准确率大大提高
【第二部分】代码练习
2.1 pytorch基础练习
编写时出现的问题
当使用这个@运算符时,报错提示数据类型有问题,于是通过百度,更改了一下类型,使用了.float()这个方法,运行成功,问题解决。
2.2 螺旋数据分类