Machine Learning : Introduction

定义 Old Field of study that gives computers the ability to learn without being explicitly programmed —— Arthur Samuel (1959) Mordern A computer program is said to learn from experience E with respect to some class of tasks T and performance measure P, if its performance at tasks in T, as measured by P, improves with experience E —— Tom Mitchell (1998) 算法分类 监督学习(Supervised Learning) 特点:”Right answers given” 即有训练集(training set),包含输入和期望的输出 回归 (Regression) Predict continous valued output 分类 (Classification) Discreted valued output(判断是或不是) 非监督学习(Unsupervised Learning) 即没有训练集,譬如典型的根据相似度进行分类,但并不知道某一类是什么 其他还有增强学习(Reinforcement Learning), 推荐系统(Recommender Systems)

February 7, 2015 · 1 min

Machine Learning : Linear Regression

线性回归即用线性函数对因变量和一个或多个自变量之间的关系进行建模。这个函数是多个称为回归系数的参数的线性组合。 给定数据集(n个变量,m组数据) 用矩阵来表示数据集 X=(1x11x21xn11x1mx2mxnm)Y=(y1ym) 用最小二乘法,即要寻找一个函数 hθ(x)=xθ 其中θ 为参数,θ=(θ0θ1θm) , hθ(X) 叫做Hypothesis 使得 J(θ)=12mi=1m(hθ(x(i))yi)2 最小,此处 x(i)=(xi1xi2xin)J(θ)叫做Cost Function 非迭代法(Normal Equation) θ=(XTX)1XTY 可以不用考虑数据的scale,即每个变量取值范围之间的差距 大量矩阵运算,尤其是求逆运算复杂度较高,不适于大量数据,O(n3) XTX可能出现奇异的情况,原因: 自变量太多而数据不够,即 m<n,可以考虑删除一些 自变量冗余,即有两个或以上变量线性相关 迭代法(梯度下降,Gradient Descent) Repeat: θj:=θjα1mi=1m(hθ(x(i))yi)2xj(i)  需要判断算法是否已经正确执行,即如何确定稳定。可以观察J(θ)图像,也可以给定一个值,当迭代后的减少量小于该值就认为迭代结束 要考虑数据的scale,否则出现梯度下降困难。可以把每个自变量的取值范围都统一到一定的区间内,如: xi:=xiμiSi 使得1<xi<1,其中μi为均值,Si为取值范围 要考虑速率 α,太大容易出现迭代后增加而非减少,太小则运行时间延长。可以尝试从小的值逐渐增大并观察J(θ)图像变化

February 7, 2015 · 1 min

内存泄漏

不能记住过去的人, 被迫重复过去. 这个标题似乎表示我正准备写一篇技术文章,可惜才疏学浅(操作系统都没学在这儿BB什么!),这只是一篇偷换概念的普通随笔而已。为什么说内存泄漏呢?因为我这个人已经实实在在处于内存泄漏状态了。 自从大一暑假以来,以下代码描述了我的真实状态 typedef learning_area T; while (found_new_interest){ T* p = new learning_area(); //同学你的指针用一次就找不到了! p->learn_three_days(); p->rest_two_days(); //同学你的delete去哪儿了? } //同学你醒醒你醒醒 然后只能睡一觉重启了 细数一下有多少野指针: Web开发(包括HTML、CSS、JavaScript、PHP、Bootstrap…balabala) Python(现在也扯上Web了) Git(版本控制什么高大上的都没用过,纯粹在当代码仓库) Tex(为了以后写论文会用到吗?) 网络安全(XSS、sql注入、nmap、burp、密码字典暴力破解,好像都没成功过) 数据结构和算法分析(说好的大二上认真学算法的呢?) 机器人 图形图像(OpenCV大法?) 机器学习(寒假没事干看一看Andrew Ng的课) 再算上大一下的安卓,好的,内存已经溢出了。 好的,内存整理第一阶段终于算是完成了。 总结一下问题所在: 没有输出,内存不够用还有硬盘啊 每次都是三天打渔两天晒网的,没有一个能打的,别人问个问题秒秒钟倒下 输入范围太大,资源密集症,这真的是最好的时代,MOOC、文档、博客一堆堆,但对于选择来说也是极其困难的 好了,野指针又乱飞了。得重启下了,明天继续内存整理。

February 4, 2015 · 1 min

数据结构讲义中的格言

来自清华大学邓俊辉教授的数据结构讲义 绪论 计算 Computer science should be called computing science, for the same reason why surgery is not called knife science. —— E. Dijkstra 计算模型 To measure is to know. If you can not measure it,you can not improve it. —— Lord Kelvin 大O记号 Mathematics is more in need of good notations than of new theorems. —— Alan Turing 好读书不求甚解 每有会意,便欣然忘食 —— 陶渊明 算法分析 He calculated just as men breath, as eagle sustain themselves in the air. —— Francois Arago ...

November 22, 2014 · 2 min

世界,你好!

大多数语言的第一课大概都会是“Hello World!”吧,所以,我也从此开始记录生活,记录我的独白。或许这是为了能在纷繁复杂、兵荒马乱的岁月里,停下来,给自己一面镜子,映出那些终将遗失的美好,那些轻易忘记的丑陋。 世界,你好! 晚安,世界!

February 28, 2014 · 1 min