pytorch的卷积层池化层和非线性变化 和机器学习线性回归

卷积层:

 pytorch的卷积层池化层和非线性变化 和机器学习线性回归_第1张图片两个输出的情况 就会有两个通道 可以改变通道数的

最简单的神经网络结构:

pytorch的卷积层池化层和非线性变化 和机器学习线性回归_第2张图片nn.Mudule就是继承父类

super执行的是 先执行父类函数里面的

forward执行的就是前向网络,就是往前推进的,当然也有反向转播,那就是用来就gradient dicent了,求导计算了。

卷积后的结果展示:

pytorch的卷积层池化层和非线性变化 和机器学习线性回归_第3张图片pytorch的卷积层池化层和非线性变化 和机器学习线性回归_第4张图片这里有个小细节

224 *244输出 224 *224 肯定是加了padding的,如何算出这个padding 官网给了公式pytorch的卷积层池化层和非线性变化 和机器学习线性回归_第5张图片

这个一般用不到,写论文科研可以再去官网查看

下面介绍池化层

mxpool是下采样,mxunpool是上采样,dilation是空洞卷积,ceil——mode来保留,用来对应下面情况

pytorch的卷积层池化层和非线性变化 和机器学习线性回归_第6张图片

pytorch的卷积层池化层和非线性变化 和机器学习线性回归_第7张图片

最大池化操作,这里有一点要注意,stride(每次核移动的步进)默认为卷积核一样大小

pytorch的卷积层池化层和非线性变化 和机器学习线性回归_第8张图片

 pytorch的卷积层池化层和非线性变化 和机器学习线性回归_第9张图片池化的直观感受就是变模糊了,保留了数据的主要特征,减小了数据量。

下面介绍非线性:

pytorch的卷积层池化层和非线性变化 和机器学习线性回归_第10张图片inplace如果是1的话就是替换input,如果是flase的话,就是把输出用另一个变量来承接

一般来说是要false的,保留以前的数据嘛

下面是使用sigmoid函数进行的非线性处理

pytorch的卷积层池化层和非线性变化 和机器学习线性回归_第11张图片

插播stm32学习的:

陀螺仪原理:

pytorch的卷积层池化层和非线性变化 和机器学习线性回归_第12张图片

 

下面介绍机器学习线性回归的问题:

pytorch的卷积层池化层和非线性变化 和机器学习线性回归_第13张图片

x就是各种已知道的特征,这就是回归任务的第一步,线性回归

pytorch的卷积层池化层和非线性变化 和机器学习线性回归_第14张图片,这是实际值

pytorch的卷积层池化层和非线性变化 和机器学习线性回归_第15张图片

第二步 就是我有label 和feartures 用函数预测出预测label,比较好坏。选出比较规则。

 pytorch的卷积层池化层和非线性变化 和机器学习线性回归_第16张图片

利用梯度下降,第三步找到最好loss

 pytorch的卷积层池化层和非线性变化 和机器学习线性回归_第17张图片

这种情况看人品?no 线性回归不需要担心,永远是第一种情况

梯度下降的算法:

 pytorch的卷积层池化层和非线性变化 和机器学习线性回归_第18张图片

用二次拟合更好的model:

pytorch的卷积层池化层和非线性变化 和机器学习线性回归_第19张图片

或者更高的次来拟合更好的model 和更低的loss:

pytorch的卷积层池化层和非线性变化 和机器学习线性回归_第20张图片

直到你用更高次的model来拟合,train 的结果更高了,但是test的结果更差了,这个就是过拟合了overfitting了

pytorch的卷积层池化层和非线性变化 和机器学习线性回归_第21张图片

这个时候我们还要考虑:有时候只考虑一种feature肯定是不够的

pytorch的卷积层池化层和非线性变化 和机器学习线性回归_第22张图片

用冲激函数来乘 来做选择,考虑多种feature

pytorch的卷积层池化层和非线性变化 和机器学习线性回归_第23张图片

pytorch的卷积层池化层和非线性变化 和机器学习线性回归_第24张图片

把全部能想象到的参数都加进去,因为我们不知道有哪些参数是影响的,这样做,我们在train上可以得到很低,但是又可能会过拟合!做到这里,还可以回到第二步,定义model的好坏。第二部只考虑的了预测值的error,regularization是加上额外的wi

pytorch的卷积层池化层和非线性变化 和机器学习线性回归_第25张图片要求参数越小越好,降低敏感度,提高函数的平滑性!

pytorch的卷积层池化层和非线性变化 和机器学习线性回归_第26张图片也不可以太平滑了,就相当于一个水平线,啥也干不成。调整朗木达来调整,为什么朗木达里面没有加上b?因为调整b的大小根本没用

总结:一个输出和多个feature有关,不过我们不确定那些有影响,就会overfiting,可以用正则化来平滑函数

你可能感兴趣的:(机器学习,pytorch,线性回归)