Hey Hey Hey


  • Home

  • Archives

  • Tags

  • Search

Machine Learning - Week 10

Posted on 2018-02-03 |

数据为王

It’s not who has the best algorithm wins, it’s who has the most data.

如何判断数据是否真的为王,以及多少数据就可以称王,可以使用learning curve帮助判断。
复习learning curve:

  • 横轴是训练集大小,纵轴是cost,
    • 先使用大小为m1的training set;求解后算cost,再带入CV set求cost,画两个点。
    • 使用大小为m2的训练集。。。
  • 当训练集足够大,两条曲线贴近的时候,说明

如何解决数据集太大的问题

Stochastic Gradient Descent

传统Gradient descent 我们叫batch Gradient Descent,就是说算的时候所有数据都放进去。
Stochastic Gradient Descent, 换了一种思路,把数据一组一组取出来,使用当前选中的数据组调整参数,再取下一组数据。

1
2
3
4
5
6
1) Randomly Shuffle Training Examples
2) repeat (1~10){
for i:=1...m{
theta:=theta-alfpha(h(x)-y)x;
}
}

如果有300,000,000数据,使用batch Gradient Descent,每次调整参数就需要所有的数据参与计算。但是对于stochastic gradient descent,一次repeat一次全数据参与,最多十次,运气好(同时也是数据多的时候),一次就可以得到很好的结果。
这是为什么这种算法很快的原因。

stochastic gradient descent converging

Read more »

Machine Learning - Week 9

Posted on 2018-01-27 |

Anomaly Detection

Anomaly Detection 不规则检测。举例子:飞机引擎的各种参数,如果一个新的引擎的发热或者其它参数突然与众不同,那么我们肯定担心有什么问题。

应用场景:
Fraud Detection
Manufactoring

根据data建模p(x),当新的x造成$p(x)<$$\epsilon$$$的时候,就是说明数据异常。

Gaussian (normal) Distribution

公式表达:

$$\begin{align*} X\thicksim N(\mu,\sigma^2) \end{align*}$$ $\thicksim$ 读作“distributed as”,N是normal的意思,$\mu$代表正态分布的最高点投射到横轴的读数,$\sigma$
Read more »

LaTex Editing

Posted on 2018-01-21 |

Sample

https://www.tutorialspoint.com/online_latex_editor.php

Online Testing

https://www.mathjax.org/#demo

1
2
3
4
\begin{align*}
here put the content that passed the testing

\end{align*}
Read more »

Machine Learning - Week 8

Posted on 2018-01-20 |

Unsupervised learning overview

栗子:

market segment; 社交网络; 机器群集; 天文数据

K-means 算法

给一堆数据,请把它们分成K类。怎么做?

1) 随机得到K个点。

loop直到K的值不再变化{

2) 计算每个数据到K的点的距离,如果数据组i到K(j)的距离最小,就认为数据i属于K(j)这个组。
数据全部分类完之后,调整K个点的值,每个K直接赋值为当前被分到该类的数据的平均值。

}

K-means的Optimization Objective

Read more »

Machine Learning - Week 7

Posted on 2018-01-13 |

SVM

Large Margin Classifiers

SVM 又叫Large Margin Classifier。

概念:
Margin of SVM
SVM叫Large Margin Classifier因为这种算法找出来的参数对数据进行区分的时候会找到最大的Margin处才划线。

C跟lambda的值的意义是相反的。C约等于1/lambda。所以,C取很大的值相当于lambda取很小的值,这时候,模型会尽量fit数据(可能会overfit)。反之,C取很小的值的时候,类似于我们把lambda取很大的值一样, 这时候,数据有混合的时候,模型参数会进行忽略那些极个别的数据。

Kernel

Kernel is a similarity function. 在坐标图上, 它 体现的是一个点到周边feature点的距离比例(结果是0-1, 0代表相似度0,或者说很远,1代表很相似)。
课程中使用的function是Kernel function的一种,叫做高斯kernel(Gaussian Kernel)

SVM 中的C 和 sigma

C 跟lambda相反; 一个大lambda是防止overfit的,那么一个小的C也是一样的效果。所以C越小越容易overfit,越viriant,C越大越容易bias
如果采用高斯kernel,则需要选择sigma

SVM也是用结果logistic regression一样的问题。

Read more »

Machine Learning - Week 6

Posted on 2018-01-09 |

What do to next

如果当前的建模不够好,误差很大,怎么办?有以下Options

  • 收集更多训练数据
  • 减少无关feature
  • 增加相关feature
  • 组合,变形,使用Polynomial feature
  • 减小lambda
  • 增大lambda

如何评估模型?

数据七三开

把数据七三开(随机筛选分组)。使用七成数据训练参数,三成数据评估。

对于Liner Regression来说,评估使用的公式是:

$J_{test}(\Theta) = \dfrac{1}{2m_{test}} \sum_{i=1}^{m_{test}}(h_\Theta(x^{(i)}_{test}) - y^{(i)}_{test})^2$

对于Logical Regression来说,单组数据的错误是这样评估的:

$err(h_\Theta(x),y) = \begin{matrix} 1 & \mbox{if } h_\Theta(x) \geq 0.5\ and\ y = 0\ or\ h_\Theta(x) < 0.5\ and\ y = 1\newline 0 & \mbox otherwise \end{matrix}$
Read more »

Machine Learning - Week 5

Posted on 2017-12-30 |

Neron Network的cost function

Neron Network的cost function是logic regression的加强版。

先熟悉一些term

L = network的总层数

$s_l$ = 层l的unit个数(不包含bias unit)

K = 最后一层的unit个数(其实反映的是classes的个数)

  • k>=3的话,根据最初的模型,也就说明一组待预测数据进去,出来的最终结果是一个vector,这表明最终结果反映的是待预测的输入属于每个class分类可能性的大小(比如图片分类)。(k=1反映的是一组数据进去,最终结果是0或者1,一个unit即可表达)

  • Cost function for regularized logistic regression

$J(\theta) = - \frac{1}{m} \sum_{i=1}^m [ y^{(i)}\ \log (h_\theta (x^{(i)})) + (1 - y^{(i)})\ \log (1 - h_\theta(x^{(i)}))] + \frac{\lambda}{2m}\sum_{j=1}^n \theta_j^2$
  • Cost function for neural networks
$\begin{gather*} J(\Theta) = - \frac{1}{m} \sum_{i=1}^m \sum_{k=1}^K \left[y^{(i)}_k \log ((h_\Theta (x^{(i)}))_k) + (1 - y^{(i)}_k)\log (1 - (h_\Theta(x^{(i)}))_k)\right] + \frac{\lambda}{2m}\sum_{l=1}^{L-1} \sum_{i=1}^{s_l} \sum_{j=1}^{s_{l+1}} ( \Theta_{j,i}^{(l)})^2\end{gather*}$
Read more »

Machine Learning - Week 4

Posted on 2017-12-26 |

Non-liner overview

图像处理的例子。像素50*50的时候,每个像素点作为一个feature,

  • 黑白图片的话,会一共有50×50个feature
  • 彩色图片的话,红黄蓝三色分开算,共有50503个feature

如果采用quadratic features的方式建模(即每个参数均由任意两个feature相乘得来),xi* xj,

n个数,两两排列组合,可能性是n*n/2,所以feature变成约 3 million

** 结论:Non-liner的问题,建模遇到的问题往往是feature太多。所以我们引入神经网络,会帮助大大简化问题。 **

Neron and brain

科学家发现,大脑的区域经过信号的训练可以对相应的信息进行处理。比如把视觉神经搭到听觉区域,那么听觉区域通过长期的信号训练可以发展出对视觉信息的处理能力。

因此,类似实验有:

  • 把图像信号从舌头输入训练触觉区的神经元来处理图像。
  • 把声音信号输入用来训练神经元进行处理回声定位处理。(例子,没有眼球的小孩儿通过回声判断周围情况)
  • 用腰带信号来定位北方,训练人类神经元具备和鸟类一样的方向感。
  • 给青蛙植入一个额外的眼睛,并训练神经元学会使用额外的眼睛。
Read more »

Octave

Posted on 2017-12-26 |

Octave on windows

Run bin/octave-cli.exe

Add path

1
addpath('D:\workspaces\bitbucket\machinelearninghomework\machine-learning-ex2\ex2')
1
2
3
4
5
if (rem (x, 2) == 0)
printf ("x is even\n");
else
printf ("x is odd\n");
endif
Read more »

Machine Learning - Week 3

Posted on 2017-12-24 |

为什么我们不能用liner regression的建模方法在classification的问题中?
1) 结果和训练集都是离散的
2) 结果是0或者1,liner regression的模型很难fit in这样的曲线。

对classification的问题进行数学建模

引入概念g(z):
Sigmoid function = logistic function
这个方程的图形决定了其区间在0和1之间

注意这里的theta和x都是单个的vector(建模使用)。当转换为多维时,每组x是一行数据,而不再是一列数据,所以其运算表达方式不一样。

$\begin{align*}& h_\theta (x) = g ( \theta^T x ) \newline \newline& z = \theta^T x \newline& g(z) = \dfrac{1}{1 + e^{-z}}\end{align*}$

其中g(z)就是著名的sigmoid function

模型引申的公理:

$\begin{align*}& h_\theta(x) = P(y=1 | x ; \theta) = 1 - P(y=0 | x ; \theta) \newline& P(y = 0 | x;\theta) + P(y = 1 | x ; \theta) = 1\end{align*}$

Decision Boundary

对于classification的数学建模,一旦模型选定了,我们在猜测一组参数后,就可以确定一条Decision boundary来区分我们的数据从而进行判断。

Read more »
1…111213…18
Rachel Rui Liu

Rachel Rui Liu

178 posts
193 tags
RSS
GitHub Linkedin
© 2021 Rachel Rui Liu
Powered by Hexo
Theme - NexT.Pisces
0%