感知机与线性可分

感知机

感知机是一个线性分类模型,由于与神经网络类似而得名。它解决的是二分类问题,当我们输入的样本\(X= (x_1, x_2, \ldots, x_n)^T\)(其中\(x_i\)为向量),对应标签为\(Y = (y_1, y_2, \ldots, y_n)^T\)(其中\(y_i \in \{-1, 1\}\)),目标是找到超平面\(w^T x +b = 0\)将数据划分开来。

\(f(x)=sign(w^T x + b)\)
\(sign(x)\)是一个符号函数

我们的数据通过上式,可以得出对应的属性\(\hat{y}\),划分完,出现误分类,即原本+1的被误分为-1,或[……]

阅读更多

最小二乘法

最小二乘法是机器学习最最基础的部分了,我们在线性拟合数据(回归)的时候,会用到此法。同时也在一些模型作为模型的优化指标,即均方误差MSE

投影

首先来扯一扯投影这个概念,对于线段之间的投影,如下图将向量b投影至向量a上,得到投影p,其关键就是向量b到投影p的线段是正交与向量a的,也即\(a \cdot e = a \cdot (b-p) = 0\),投影:\(p=\hat{x}a\)

\(a \cdot (b-\hat{x}a) = 0\)
\(\hat{x}=\frac{a^T b}{a^T a}\)
\(p = \hat{x}a = \frac{a^T b}{a^T a} a[……]

阅读更多

正则化

开始

先从最小二乘法开始讲起吧,我们在拟合数据时,我们常常用到的指标就是最小二乘误差MSE。

我们的目标是最小化MSE:

\(\min \parallel y_{pred} – y_{true} \parallel ^2_2\)
\(y_{pred} = w^T x\)

当我们进行拟合数据时,我们考虑到的是我们模型训练得到的预测y值与真实y值的距离,通过训练得到最小的MSE损失。当我们的数据趋向于线性时,我们采用线性模型就可以有很好的表现。但是当我们的遇到的是下面图片的数据时,我们使用线性模型则会让我们预测时出现很大的偏差。我们采用非线性模型去拟合,就会出现后面两种情况[……]

阅读更多

洪水算法–python实现

开始

近来通过项目接触了一个填充算法—洪水算法。

洪水算法是一种局部填充的方法,算法将同一区域的颜色填充成同一颜色,从起始坐标开始,往四周扩散。所以有四邻域像素填充八领域像素填充,还有基于扫描线的洪水填充方法。这三种算法详细可以在reference 1中看到。这三种方式的递归算法十分简单,但是遇到图片较大的情况下,则可能会出现栈溢出。

解决的方法则是通过人为设置存放扫描的起始坐标点的栈,来代替函数调用栈。通过比较简单。

算法

算法思路:
1.选择填充区域的起始点
2.入栈起始点
3.将起始点所在列填充颜色
4.将起始点的左右侧’起始点’压入栈
5.控制左右上下移动的范[……]

阅读更多

激活函数-bias shift

开始

开始接触神经网络/深度学习了,在各种平台刷到这个mystery,各个领域也在使用它。机器学习学了这么久,没有太多的进展,只是一个个算法的慢慢啃。看着其他同学使用神经网络都是迅猛的搞着自己的东西,着实让我酸意满满。

当然这篇博文不是来吐槽的。问题是来自于自己选的入门书(Reference: 4)中:激活函数若不是零中心化的,上层的输出会使下一层的神经元的输入发生偏置偏移(bias shift),并进一步使得梯度下降的收敛速度变慢。

激活函数sigmoid/tanh

sigmoid: \(\sigma (x) = \frac{1}{1+e^{-x}}\),其导数为[……]

阅读更多

特征选择–CFS

当数据预处理完成后,我们需要选择有意义的特征输入机器学习的算法和模型进行训练。

特征选择的两个大方向是:

  • wrapper: 使用学习算法本身去选择有用的特征
  • filter: 根据数据的一般特征启发式的选择特征

大多数的应用表明,filter方法的数据会比wrapper的速度快,filter方法的缺点是只应用于离散数据的特征选择问题当中。

本文讨论的是correlations-based feature selection,即CFS,被Hall.M提出的filter方法(reference中论文(1)),并应用于连续问题、离散问题中。在朴素贝叶斯方法(文末reference[……]

阅读更多