一、什么是机器学习
人工智能是使一部机器像人一样进行感知、认知、决策、执行的人工程序或系统。其实现的一种方法是机器学习。而深度学习是机器学习的一种,也是近年来较为热门的方法。
人工智能主要有如下三个层面
计算智能 | 能存能算 |
感知智能 | 能听会说,能看会认 |
认知智能 | 能理解,会思考 |
目前研究主要在第二个层面
二、适用范围
问题尺度和规则复杂度均极大时适用机器学习,这是大体原则,还有一些其它限制举例如下
有大量数据 | 机器学习需要一定的数据量来进行训练 |
有意义的模式 | 问题需要在某方面可以研究或预测等 |
无解析解 | 一般用来求无解析解或解析解难以求解的问题的近似解 |
三、机器学习方法
如下图
机器学习依据模型类型等可以再进行分类,这里就不再赘述
四、深度学习
下表是机器学习、神经网络和深度学习的关系
机器学习 | 是/否应用了神经网络 | 传统机器学习 | |
神经网络 | 深度学习(应用了深度神经网络) |
传统机器学习vs深度学习
传统机器学习 | 数据+专家知识驱动的特征设计+专家选择的分类器 |
深度学习 | 数据+专家选择深度模型+机器优化深度模型 |
下附几张图来详细描述
显然,深度学习效率要高得多
五、深度学习的局限性
1、算法输出不稳定,容易被“攻击”
2、模型复杂度高,难以被纠错和调试
3、模型层级复合程度高,参数不透明
4、端到端训练方式对数据依赖性强,模型增量性差
5、专注直观感知类问题,对开放推理问题无能为力
6、人类知识无法有效引入进行监督,机器偏见难以避免
六、神经网络概述
原理简单概括:选定带激活函数的模型,使用训练数据通过误差反向传播等方式对参数进行学 习、更新。下图为模型的基本表示形式及其对模型可完成的变换(以分类问题举 例),以及误差传播方法的简单原理。
七、深度神经网络
一般来说,增加神经网络的层数可以有利于提高训练结果的准确性,但由于训练过程中的梯度消失问题,可能导致误差传递到某一层时数据极小从而不利于模型的训练,因此我们在一些情况下采用逐层训练的方式。逐层训练主要有以下两种方式。
1、自编码器:没有额外的监督信息,每层输入信息同时作为监督信息进行训练
2、受限玻尔兹曼机:由隐藏层得到可见层,使其与原本的可见层分布一致。
八、其它
本次学习基于pytorch框架进行,使用谷歌的colab运行,具体操作方法老师的学习材料已给出,注意较使用colab时需要翻墙,操作较为简单,不再赘述,下面给出配置好后用老师所给代码试运行的截图