在机器学习中为了便于理解,我们经常要绘制各种图形,如:散点图、折线图、柱状图等,matplotlib是一个非常强大的绘图库,今天咱们就来看看如何使用matplotlib绘制各种图形。
损失函数与代价函数
在机器学习领域,线性回归模型以其简洁性而著称,它通过一条直线来拟合数据点,如下面的图表所示:
上面这张图还可以用下面的数学公式表示:
[ y = \mathbf{w}^T \cdot \mathbf{x} + b ]
其中 ( \mathbf{w} ) 表示权重向量,( b ) 是偏置项。
线性回归广泛用于预测连续数值,如房价、气温、销售额等。此外,通过引入激活函数,线性回归模型也能够解决二元分类问题。激活函数,如sigmoid函数,可以将线性回归的输出转换为概率值,非常适合用来处理分类问题。
例如,判断一张图像中是否包含猫,这是一个典型的二元分类问题。为了将线性回归应用于二元分类,我们需要执行一个关键步骤:将线性回归的输出映射到区间 [0,1] 内。在这个映射中,( y=1 ) 表示图像中存在猫,而 ( y=0 ) 表示没有猫。这将问题转化为一个概率估计问题,可以表示为 ( \hat{y} = P(y=1 \mid \mathbf{x}) )。
实现这种映射的关键是一个数学函数:sigmoid函数 ( \sigma(f) ),其定义为:
[ \sigma(f) = \frac{1}{1 + e^{-f}} ]
在这个函数中,( e ) 是自然对数的底数,( f ) 是线性回归的输出值。当 ( f ) 是一个非常大的正数时,( e^{-f} ) 趋近于 0,导致 ( \sigma(f) ) 的值接近于 1;反之,如果 ( f ) 是一个非常大的负数,( e^{-f} ) 会变得非常大,使得 ( \sigma(f) ) 的值接近于 0。这种函数的图形如下所示:
推而广之,通过将多个激活函数与线性回归模型结合,我们可以得到一个多层感知机(Multilayer Perceptron, MLP),它能够解决更为复杂的非线性问题,如图像分类、物体检测、语音识别等。
ncnn如何加载keras模型?
我们通常会遇到想让ncnn加载tensorflow、pytorch训练的深度学习模型,但实际上,ncnn是无法直接加载tensorflow或者pytorch模型的。
但我们可以通过一种变通的手段让ncnn加载它们,方法就是先将tensorflow、pytorch训练的模型转成通用深度学习模型onnx,然后再利用ncnn工具onnx2ncnn
将onnx格式的模型转成ncnn模型。
下面我们以keras训练的模型(.keras)为例,向你详细介绍一下具体的操作步骤。
有哪些GPU免费资源?
学习深度学习GPU是必不可少的,我们有很多方法可以获得GPU资源,如自己攒一台具有单独显卡的计算机、花钱在各种云服务商处租一些GPU服务等。
当然,我们有时候还可以白嫖一些GPU资源。下面我就简要介绍几个我认为不错的免费GPU资源。
如何使用keras训练的模型识别手写字
今天我们来介绍如何使用keras训练的模型识别手写字。
其完整的过程分为以下几个步骤:
- 获取训练数据集,构建模型并进行训练
- 保存模型和权重
- 加载模型和权重
- 对用户输入的手写字图片进行预处理
- 对手写字进行识别
下面我们就按照上面的步骤一步步操作吧。
Tensorflow-Keras可视化
VSCode远程连接的几种方式
我们都知道VSCode是最近几年特别流程的一款编辑器,尤其是当你做深度学习开发时,更可以大大提高我们的工作效率。但如果我们所搭建的深度开发环境是在服务器上或是在Docker中,是否还可以使用VSCode呢?
带着这个问题我在网上找了大半天,终于发现几种可行性的方案,记录在这里希望可以帮助到你。
WSL2下安装Docker
Docker入门
编译带nvenc的ffmpeg
我们在转码时,为了提高转码效率,通常我们都会使用nvenc来转码。今天我们就来介绍如何编译带nvenc的ffmpeg。