【动手学深度学习】Task4 多层感知机

文章介绍了感知机的基本概念,包括其模型、训练过程、收敛定理以及无法解决XOR问题的原因。接着,文章讨论了多层感知机如何通过隐藏层和非线性激活函数解决线性不可分问题,如Sigmoid、Tanh和ReLU函数的作用。此外,还提到了模型选择中的训练误差、泛化误差、验证数据集和测试数据集的概念,以及过拟合和欠拟合的讨论,包括模型容量、VC维等理论。
摘要由CSDN通过智能技术生成


@[TOC](文章目录)


前言

主要学习第四章:多层感知机

一、感知机

1、感知机模型

- 给定输入x,权重w,和偏移b,感知机输出:

感知机其实就是一个二分类问题,输出大于0则为1;否则为0 

 - 二分类问题和其他模型的区分:

        - 感知机输出离散的分类

        - 回归模型输出实数

        - Softmax回归会输出概率

2. 训练感知机

\\ initialize \ \omega = 0 \ and\ b = 0 \\ repeat \\ \{ if \ y_i[<\omega, x_i> +\ b] \le 0\ then \\ \omega \leftarrow \omega\ +\ y_ix_i\ and\ b \leftarrow b\ +\ y_i\\ end\ if \}\\ until\ all\ classified\ correctly

y_i表示真实标签, <\omega_i,\ x_i>+b表示预测值,当两者乘积小于0的时候,预测失败,说明此时参数并不准确。需要更新参数,直到所有类都分类正确了。

【这里为什么这么更新】

这个算法等价于使用批量大小为1的梯度下降,并使用如下的损失函数:

\iota(y,x,w) = max(0,-y<w,x>)

即:分类正确的话,max输出为0,梯度是一个常数,就不会更新。

3. 收敛定理

也就是判断感知机什么时候训练结束。

- 数据在半径r内

- 余量\rho分类两边

y(x^Tw\ +\ b) \geqslant \rho

对于{\left \| w \right \|}^2 + b^2 \leqslant 1,感知机保证在\frac{r^2+1}{\rho^2}步后收敛。

4. XOR问题

感知机不能拟合XOR异或函数,它只能产生线性分割面。

5. 总结

感知机是一个二分类模型,它的求解算法等价于使用批量大小为1的梯度下降。

它不能拟合XOR函数,导致了第一次AI寒冬 

二、多层感知机

1.学习XOR

先学习蓝色的线,可以得到1、3区为负,2、4区为正。

在学习黄色的线,可以得到1、2区为正,3、4区为负

两两相乘,会发现最后1、4为正,2、3为负

 也就从一层感知机,变为多层感知机

输入和输出层是不能改变的,但隐藏层取决于模型。

2. 单隐藏层—单分类

\sigma必须是非线性激活函数,否则o仍然是线性的,那还是单层感知机。

3. 激活函数

- Sigmoid

将输入投影到(0,1)

 sigmoid(x) = \frac{1}{1+exp(-x)}

- Tanh

将输入投影到(-1,1)

tanh(x) = \frac{1-exp(-2x)}{1+exp(-2x)}

- ReLU

ReLU:rectified linear unit。跟前两个比起来,不用做指数运算,简单。

ReLU(x) = max(x,0)

4.多类分类

跟Softmax回归比起来,只是多了隐藏层

y_1,y_2,....,y_k = softmax(o_1,o_2,...,o_k)

 多隐藏层的话,超参数就有:

- 隐藏层数。

- 每层隐藏层的大小。低层应该更大,高层减小,也就是一个压缩的过程。

5. 总结

- 多层感知机使用隐藏层和激活函数来得到非线性模型

- 常用激活函数

- 使用softmax来处理多分类

- 超参数为隐藏层数,和各个隐藏层大小

三、模型选择

1.训练误差和泛化误差

- 训练误差:模型在训练数据上的误差

- 泛化误差:模型在新数据上的误差

2. 验证数据集和测试数据集

- 训练数据集

- 验证数据集:一个用来评估模型好坏的数据集。

        不能和训练数据混在一起!

- 测试数据集:只用一次的数据集!也就是一个新的数据集,比如考试成绩,发生了就无法改变。

3.K-则交叉验证

- 在没有足够多数据时使用

- 算法:

        - 将训练数据分割成k块

        - for i = 1,...,K

                - 使用第i块作为验证数据集,其余的作为训练数据集

        - 报告K个验证集误差的平均

四、过拟合和欠拟合

1. 模型容量

- 拟合各种函数的能力

- 低容量的模型难以拟合训练数据

- 高容量的模型可以记住所有的训练数据

泛化误差要降低到接近训练误差 

2. 估计模型容量

- 难以在不同种类的算法之间比较:如树模型和神经网络

- 给定一个模型种类,将有两个主要因素:

        - 参数的个数

        - 参数值的选择范围

3.VC维

- 统计学习理论的一个核心思想

- 对于一个分类模型,VC等于一个最大的数据集的大小,不管如何给丁标号,都存在一个模型来对它进行完美分类。

- 它可以提供为什么一个模型好的理论依据,衡量训练误差和泛化误差之间的间隔

- 但深度学习中很少使用,因为不是很准确且计算困难

4. 线性分类器的VC维

- 2维输入的感知机,VC = 3

也就是说,能够分类任何三个点

- 支持N维输入的感知机的VC维是N+1

- 一些多层感知机的VC维O(Nlog_2N) 


 

总结

这个task主要是学习了感知机的原理、代码实现,以及模型的一些有关知识

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值