本系列文章如果没有特殊说明,正文内容均解释的是文字上方的图片卷积神经网络 | DeepLearning.AI2021吴恩达深度学习-卷积神经网络_bilibili
@TOC
2 深度卷积网络模型:案例研究2-2 经典网络LeNet-5LeNet-5的结构为conv-avg pool-conv-avg pool-fc-fc-分类器
上图中没有画出最后一个池化层输出的结果展开为400维向量的过程
LeNet-5论文中使用的分类器现在已经不用,现在用softmax层来替代
产生了60k个参数,而现在的神经网络中可能会有上亿个参数
LeNet-5论文中用了sigmoid/tanh非线性函数,现在一般用ReLU非线性函数
能看到在神经网络中,图像的宽度和高度逐渐变小,而通道数逐渐增加
AlexNetAlexNet的结构为conv-max pool-conv-max pool-conv-conv-conv-max pool-fc-fc-softmax(上图中的same指的是使用same padding)
AlexNet用Softmax输出结果
AlexNet使用ReLU非线 ...
本系列文章如果没有特殊说明,正文内容均解释的是文字上方的图片卷积神经网络 | DeepLearning.AI2021吴恩达深度学习-卷积神经网络_bilibili
@TOC
1 卷积神经网络的基础1-1 计算机视觉1-2 边缘检测实例
左侧矩阵为原图像,中间矩阵为卷积核(这是一个垂直边缘检测过滤器),右侧为结果图像,星号表示卷积运算
结果中的第一行第一列的值为:把卷积核放在原图像最左上角,然后用原图像中每一格的值乘卷积核中对应的那一个的值,每一格都这样算一遍,一共有九项,加起来就得到结果(上图绿色式子就是计算过程)
把卷积核往右移一格再计算的结果就是结果图像中第一行第二列的值用这个卷积核进行垂直边缘检测的例子↑↑↑
1-3 更多边缘检测
上图第一行的三个矩阵是三个可能的垂直边缘检测过滤器,他们的转置就是水平边缘检测过滤
第二行:可以把过滤器的九个参数让神经网络自己学习,以便挑选出最适合输入图像的过滤器
1-4 填充(padding)
设原图像大小为n×n,卷积核大小为f×f,则输出结果图像大小为(n-f+1)×(n-f+1)
按照之前卷积的方法,输出图像变小了,并且 ...
@TOC
1.找不到头文件问题概要
在正点原子stm32的TFTLCD显示实验例程中插入OLED显示功能时提示了找不到头文件的错误
在main.c文件中#include "oled.h"报错HARWARE文件夹中已经添加了oled.c文件
编译报错:main.c(7): error: #5: cannot open source input file "oled.h": No such file or directory
解决方法1.主窗口中点击Options for Target...按钮2.选择C/C++选项卡,点击Include Paths右侧的...按钮3.点击New(Insert)按钮添加新的路径4.选择OLED文件夹的路径添加5.确认保存6.再次编译就能看到没有报错了
2.重复定义问题概要
在把oled例程和lcd例程合并的时候出现错误
(这里以遥控例程为例,遥控例程中有lcd),在把oled复制到hardware文件夹里面之后编译,出现重复定义错误报错信息中的变量asc2_××××是lcd的头文件Font.h和oled的头 ...
本系列文章如果没有特殊说明,正文内容均解释的是文字上方的图片机器学习 | Coursera吴恩达机器学习系列课程_bilibili
@TOC
15 异常检测15-1 问题动机以飞机发动机的异常检测为例,$x_1$和$x_2$分别表示发动机的两个特征,先有一堆数据集表示正常的发动机(如上图红色叉),可以认为越靠近圆圈中间越正常,现在有一个新的发动机$x_{test}$,将他放进坐标系中比较,越靠近中心表示$p\left(x_{\text {test }}\right)$越大,设定一个阈值$\varepsilon$,如果$p\left(x_{\text {test }}\right) \geqslant \varepsilon$则表示该新发动机正常,如果$p\left(x_{\text {test }}\right) < \varepsilon$则表示发动机异常异常检测常被用来进行用户的欺诈监测(检测异常的用户)
15-2 高斯分布(正态分布)
$x \sim \mathcal{N}\left(\mu, \sigma^{2}\right)$
$x$是实数,$\sim$表示以 ...
本系列文章如果没有特殊说明,正文内容均解释的是文字上方的图片机器学习 | Coursera吴恩达机器学习系列课程_bilibili
@TOC
14 降维14-1 目标I:数据压缩如上图,将数据从二维压缩为一维,以表示同一个物体的长度为例,$x_1$为用厘米表示,$x_2$为用英尺表示,由于四舍五入产生的误差,坐标系中的样本坐标没有完全练成一条直线,对其进行线性拟合,得到一条直线,让这些点投影在另一条坐标轴$z$上,这样,可以用一个一维的数字$z^{(i)}$来表示原来的一个二维向量$x^{(i)}$如上图,将数据从三维压缩为二维,(在实际应用中可能是将10000维的数据压缩为1000维),空间中所有的点几乎都在一个平面的周围,将所有的点投射到这个平面上,用$z_1$和$z_2$来表示平面的两个坐标轴,这样就把一个三维空间压缩为二维平面,原来的数据用一个二维向量$z^{(i)}$即可表示,$z^{(i)}$中有两个特征$z_1^{(i)}$和$z_2^{(i)}$
降维后的数据可以提高学习算法的运算效率并且节省磁盘存储空间
14-2 目标II:可视化一般取k=2 or ...
本系列文章如果没有特殊说明,正文内容均解释的是文字上方的图片机器学习 | Coursera吴恩达机器学习系列课程_bilibili
@TOC
13 聚类算法13-1 无监督学习无监督学习的数据集是一堆不带标签的数据,他们没有$y$的值,只有$x$的值
13-2 K均值(K-means)算法 K均值算法的第一步(簇分配):确定两个聚类中心(图中蓝色叉和红色叉),遍历每一个样本(图中绿点),判断离哪个聚类中心更近,将样本分为两个簇,分完之后如下图K均值算法的第二步(移动聚类中心):计算每一簇中所有点的均值,并将聚类中心移动到该均值处,移动后如下图然后再重复第一步判断每一个样本离哪个聚类中心近,并改变他的颜色(分类),改变后再重复第二步。这样不断重复,得到最终结果这样就可以说K均值已经聚合了输入一个$K$表示想要将数据分为几类,输入不带标签的训练集设训练集是一个n维向量(按照惯例不考虑$x_0=1$这一项)如上图用$K$表示想要将数据分为$K$类用$\mu_k$表示第$k$个聚类中心的位置(他是一个向量/矩阵),随机初始化获得用$c^{(i)}$表示样本中第$i$ ...
本系列文章如果没有特殊说明,正文内容均解释的是文字上方的图片机器学习 | Coursera吴恩达机器学习系列课程_bilibili
@TOC
12 支持向量机(SVM)12-1 优化目标
上图左侧坐标系为$y=1$时代价函数的图像,支持向量机时画出粉色的曲线,命名为$Cost_1(z)$,下标指$y$的值为$1$
同样的,右侧坐标系为$y=0$时代价函数的图像,支持向量机时画出粉色的曲线,命名为$Cost_0(z)$,下标指$y$的值为$0$
在逻辑回归中,代价函数为:$$J(θ)=-\frac{1}{m}\left[\sum_{i=1}^my^{(i)}log(h_θ(x^{(i)}))+(1-y^{(i)})log(1-h_θ(x^{(i)}))\right]+\frac{λ}{2m}\sum_{j=1}^{n}θ_j^2$$要支持向量机,先将上式里的负号放到求和里面去,然后把$\frac{1}{m}$去掉($\frac{1}{m}$是一个常数,虽然去掉它会改变代价函数的值,但是仍然能求得一样的最小值对应的$\theta ...
本系列文章如果没有特殊说明,正文内容均解释的是文字上方的图片机器学习 | Coursera吴恩达机器学习系列课程_bilibili
@TOC
9 神经网络:Learning9-1 应用于神经网络的代价函数
用$L$表示神经网络的总层数(Layers)
用$s_l$表示第$l$层单元(神经元)的数量(不包括偏置单元)
$h_\Theta(x)\in\mathbb{R}^K$($h_\Theta(x)$为$K$维向量,即神经网络输出层共有$K$个神经元,即有$K$个输出)
$(h_\Theta(x))i=i^{th} output$($(h\Theta(x))_i$表示第$i$个输出)
应用于神经网络的代价函数为:
$$J(\Theta)=-\frac{1}{m}\left[\sum_{i=1}^m\sum_{k=1}^Ky^{(i)}log(h_\Theta(x^{(i)}))k+(1-y_k^{(i)})log(1-(h\Theta(x^{(i)}))k)\right]+\frac{λ}{2m}\sum{l=1}^{L-1}\ ...
本系列文章如果没有特殊说明,正文内容均解释的是文字上方的图片机器学习 | Coursera吴恩达机器学习系列课程_bilibili
@TOC
8 神经网络的表示8-1 非线性假设对于一幅图像来说,如果取出每个像素点的灰度值或其他特征表示方法来作为一个数据样本的话,数据集将会非常庞大,如果运用之前的回归算法来计算,将会产生非常大的计算成本
8-2 神经元与大脑8-3 前向传播-模型展示I
上图指一个带有Sigmoid激活函数的人工神经元,在神经网络术语中,$g(z)=\frac{1}{1+e^{-θ^TX}}$称作激活函数
神经网络指的其实是一组神经网络的集合,第一层(Layer 1)称为输入层(Input Layer),第二层(Layer 2)称为隐藏层(Hidden Layer),第三层(Layer 3)称为输出层(Output Layer)
用$a_i^{(j)}$来表示第$j$层的第$i$个神经元的激活项(”activation” of unit $i$ in layer $j$),所谓激活项是指由一个具体的神经元计算并输出的值
用$\Theta^{(j)}$ ...
本系列文章如果没有特殊说明,正文内容均解释的是文字上方的图片机器学习 | Coursera吴恩达机器学习系列课程_bilibili
@TOC
7 正则化7-1 过拟合问题
上图左侧坐标系为欠拟合,用一条直线不能很好的表示这个数据集,偏差很大
上图中间为合适的拟合
上图右侧为过度拟合,拟合的曲线波动很大,假定函数中的变量过多,虽然代价函数非常接近0,但不能泛化到其他数据集中
上图为在逻辑回归中的欠拟合、合适的拟合、过度拟合
解决过拟合:1.减少特征数量2.正则化
7-2 (正则化更改)代价函数使用正则化更改代价函数
直接使用上图右侧的假定函数及其代价函数会导致过拟合
在不去掉$θ_3$和$θ_4$的前提下,可以在代价函数上加上对于$θ_3$和$θ_4$的惩罚项:$1000θ_3^2+1000θ_3^2$,(1000只是随便一个比较大的数),加上惩罚项之后的代价函数在运算中会让参数$θ_3$和$θ_4$变得尽可能小,让$θ_3$和$θ_4$对假定函数的图像影响变小,这样就可以在保留$θ_3$和$θ_4$参数的情况下不产生过拟合。
加上惩罚项后的假定函数变为:$$J(θ) ...