吴岸成《NN and DL》

机器学习和神经网络入门

微软有一个图形化的深度学习在线工具–为了简化技术–技术的进步

历史

geoffery hinton辛顿、lecun勒邱恩、bengio
某个内向的德国人、李飞飞

自图灵提出机器和智能之后,两派,一个是自顶向下,用逻辑和符号系统(控制论);另一派是字下而上,模拟生物学大脑,想要获得意识。

定义

标准的机器学习问题

机器学习算法是普通算法的优化

回归问题(多分类问题):

选择一个橙子:training data

用一个表格来包括物理属性:feature和吃的时候的感觉:output variable

决策树算法,上述模型即规则库。如果用到香蕉,就是迁移学习。更多样本,增强学习。

神经网络

(人工)神经网络是机器学习的分支。

神经元的特征:兴奋性(阈值)和传导性

学习过程:神经元之间的关系变迁(有自组织性)

构造神经网络

构造一个神经元

树突 — 信号处理(s=信号乘以强度)— 传递函数

感知机

感知机:最简单的神经网络

感知机的学习:训练方法,就是监督学习。通过期望值不断修正权重。

用Java实现感知机–Neuroph:基于Java的神经网络框架

一部分是用来创建神经网络的API,另一部分是图形工具–帮助构造多层神经网络。

第一部分的api分为三块:1、neuroph.core核心库,多个类库

输入层、隐藏层、输出层:每层由神经元组成

训练规则包含一个训练集,训练集由单个训练元素组成。

类neuron,表示单个神经元的构造

类connection,表示神经元的连接

代码实现

实践

构造神经网络

迭代几次才能使网络给出正确输出是不确定的

and要5次,or要12次,那为什么异或几十万也无法实现:线性不可分问题

如何解决:多层神经网络,如具有第一隐层,第二隐层。利用多层感知机。

更多层,会更耗时,但会更更精确

实际问题解决

输入层和输出层一般按照数据集和需求确定,隐层的神经元个数需大于输入层,需求是精度高还是运行速度快

分类和特征识别问题:疫情、比赛、股票

深度学习

深度学习是神经网络的一个大的分支,深度学习的基本结构是深度神经网络

深度神经网络大部分是至少有一个隐层的神经网络,其余小部分是递归神经网络和卷积神经网络。

机器学习的三种方式

机器学习:通过算法,从大量数据中学习规矩,从而对新的样本做预测

监督学习:

训练数据:输入数据(包括正确的训练集和错误的训练集),不断地与人工标注过的数据库作比较,然后不断调整模型

非监督学习:

模型自己去做聚类学习,常见算法:Apriori算法、K-Means算法

强化学习:

连续决策的过程。与监督学习的区别是,当不知道标注是什么的时候,给一个回报函数,回报函数决定当前状态得到什么样的结果,数学本质是一个马尔科夫决策过程。最终的目的是决策过程中整体的回报函数期望最优。

或者说,通过一个过程来回的调整所谓的“标注数据”

但是,当遇到高维数据的时候(游戏),处理数据的速度跟不上画面速度。此时要求助于深度学习

通过强化学习引入深度学习

深度学习是神经网络的一个大的分支,深度学习的基本结构是深度神经网络。用韦恩图来表示

特征

特征是机器学习的原材料

特征粒度:我们在一个什么粒度上表示特征,才能发挥作用?

任何事物都可以划分成粒度合适的浅层特征,而这个浅层特征一般就是我们的第二层输入

结构性特征具有明显的层级概念,从较小粒度划分,再用划分的基本特征组成上层特征,以此类推,可以展示特征的结构性。

从2006年开始深度学习爆火,为什么?几篇划时代性的论文:

1、a fast learning algorithm for deep belief nets

2.advances in neural information processing systems

3.advances in neural information processing systems

具体而言,1、非监督学习被用来训练各个层

2、每个层次学习的内容作为下一个层的输入

3、用监督学习来调整层与层之间的权重

如何训练有多个隐层的感知机:bp算法

由信号正向传播和误差反向传播

核心思想:在反向传播上将所得误差分摊给各层所有的单元,修正权值

一般在5层以内的神经网络中使用

深度学习的常用方法

深度学习是一个算法,但是特征的抽取过程是一个抽象的问题

以前如k-means等聚类都是对一个问题有解,但是深度学习不同

如何选取和如何训练?

卷积神经网络cnn

一个模型架构:一种特殊的对图像识别的方式,属于带有前向反馈的网络

循环神经网络

杂项