最近参加了伯禹教育的动手学习深度学习项目,现在对第一章(线性回归)部分进行一个总结. 这里从线性回归模型之从零开始的实现和使用pytorch的简洁两个部分进行总结. 损失函数,选取平方函数来评估误差,公式如下: 1)从零开始实现 首先设置真实的权重和偏差w,b.随机生成一个二维数组并由此生成对应的真实labels. num_inputs = 2 #二个自变量 num_examples = 1000 # set true weight and bias in order to generate c…
过拟合.欠拟合及其解决方案 过拟合.欠拟合的概念 权重衰减 丢弃法   模型选择.过拟合和欠拟合 训练误差和泛化误差 在解释上述现象之前,我们需要区分训练误差(training error)和泛化误差(generalization error).通俗来讲,前者指模型在训练数据集上表现出的误差,后者指模型在任意一个测试数据样本上表现出的误差的期望,并常常通过测试数据集上的误差来近似.计算训练误差和泛化误差可以使用之前介绍过的损失函数,例如线性回归用到的平方损失函数和softmax回归用到的交叉熵损…
卷积神经网络基础 本节我们介绍卷积神经网络的基础概念,主要是卷积层和池化层,并解释填充.步幅.输入通道和输出通道的含义.   二维卷积层 本节介绍的是最常见的二维卷积层,常用于处理图像数据.   二维互相关运算 二维互相关(cross-correlation)运算的输入是一个二维输入数组和一个二维核(kernel)数组,输出也是一个二维数组,其中核数组通常称为卷积核或过滤器(filter).卷积核的尺寸通常小于输入数组,卷积核在输入数组上滑动,在每个位置上,卷积核与该位置处的输入子数组按元素相乘…
多层感知机(multi perceptron,MLP).对于普通的含隐藏层的感知机,由于其全连接层只是对数据做了仿射变换,而多个仿射变换的叠加仍然是一个仿射变换,即使添加更多的隐藏层,这种设计也只能与仅含输出层的单层神经网络等价.解决问题的一个方法是引入非线性变换,对隐藏变量使用非线性变化,然后作为下一个全连接层的输入,这个非线性函数被称为激活函数. 激活函数主要有ReLu.Sigmoid.tanh.其中ReLu计算简单,且不像其他两个哪个容易造成梯度消失,使用较多. 多层感知机pytorch实…
代码及解释 错题整理…
Convolutional Neural Networks 使用全连接层的局限性: 图像在同一列邻近的像素在这个向量中可能相距较远.它们构成的模式可能难以被模型识别. 对于大尺寸的输入图像,使用全连接层容易导致模型过大. 使用卷积层的优势: 卷积层保留输入形状. 卷积层通过滑动窗口将同一卷积核与不同位置的输入重复计算,从而避免参数尺寸过大.   LeNet 模型 LeNet分为卷积层块和全连接层块两个部分.下面我们分别介绍这两个模块. 卷积层块里的基本单位是卷积层后接平均池化层:卷积层用来识别图…
内容太多,捡重要的讲. 在分类问题中,通常用离散的数值表示类别,这里存在两个问题.1.输出值的范围不确定,很难判断值的意义.2.真实标签是离散值,这些离散值与不确定的范围的输出值之间的误差难以衡量. softmax运算符解决了这两个问题.它把输出值变成了值为正且和为1的概率分布. 对于一个分类问题,假设有a个特征,b个样本,c个输出,单层的全连接网络,那么有a*b个w(权重),c个b(偏差). 为了提升计算效率,常对小批量数据做矢量计算.softmax回归的矢量计算表达式如下. 计算loss用交…
03_利用pytorch解决线性回归问题 目录 一.引言 二.利用torch解决线性回归问题 2.1 定义x和y 2.2 自定制线性回归模型类 2.3 指定gpu或者cpu 2.4 设置参数 2.5 训练 2.6 保存模型 三.代码汇总 四.总结 一.引言 上一篇文章我们利用numpy解决了线性回归问题,我们能感觉到他的麻烦之处,很多数学性的方法都需要我们自己亲手去实现,这对于数学不好的同学来说,简直就是灾难,让你数学又好并且码代码能力又强,臣妾做不到呀!因此我们说到,可以利用torch这个框架…
TCP是一个十分复杂的协议,通过前面几篇文章只涉及了TCP协议中一些基本的概念. 虽然说都是一些TCP最基本的概念,但是试验过程中一直在踩坑,例如:TCP flag设置错误,seq.ack号没有计算正确,TCP状态变迁错误等等. 通过Pcap.Net真正实验一下才发现了很多TCP协议中要注意的细节,例如:Ack.Seq号的计算,EthernetLayer.IpV4Layer .TcpLayer的层层包装,不同TCP flags的含义等等. TCP中还有很多重要的内容,先做个记录,后面再深入了解.…
前面两篇文章介绍了TCP状态变迁,以及通过实验演示了客户端和服务端的正常状态变迁. 下面就来看看TCP状态变迁过程中的几个特殊状态. SYN_RCVD 在TCP连接建立的过程中,当服务端接收到[SYN]包后,就会发送[SYN, ACK]包,然后进入SYN_RCVD状态. 根据前面文章的介绍,服务器的上述行为被称为被动打开,并且会等待来自客户的的[ACK]包来完成TCP连接的建立.但是,如果此时客户端没有响应,服务端就会超时重传[SYN, ACK]包. 回想一下我们在"动手学习TCP: 环境搭建&…