Machine Learning


  1. 自制正方软件系统验证码的识别程序(3/4)

    util.py 这个文件里主要提供了5个函数,提供给package.py使用,特别是对特征值的计算。 import Image,os,ImageFilter import numpy as np table1=[] table2=[] threshold1=18 for i in range(256): if i<threshold1: table1.append(0) else: table1.append(1) threshold2=240 for i in range…

    Machine Learning, Computer Vision, Python阅读全文

  2. 自制正方软件系统验证码的识别程序(2/4)

    文件组成 为了实现训练以及识别的过程,我总共设计了6个文件,作用如下: 文件作用split.py用于将验证码中四个小字符分割出来,并分类保存。util.py用于保存一些常用的函数logistic_sgd.py这是官网上的样例代码,实现了softmax的分类算法,当然还要进行下修改package.py这个用来将图像数据进行处理并打包压缩成为方便使用的数据集train.py这是开始训练的接口check.py这是利用训练结果进行识别的接口 还有两个文件夹: 文件夹作用recognized/用于…

    Machine Learning, Computer Vision, Python阅读全文

  3. 自制正方软件系统验证码的识别程序(1/4)

    学了几天机器学习的原理,感觉还是要自己动手写一个像样的程序才行。正好刚研究过deeplearning.net上的那个识别mnist数据库的源码,于是打算利用一下写一个识别验证码的程序。 他提供的代码已经基本实现了利用Logistic Regression 来分类,用的是softmax算法,支持多元分类。然而他只能读入指定的mnist数据集的经过处理后的格式。因此我当前的任务就是将一张实实在在的图片转换成计算机可以识别的格式,并且进行好预处理,选择好特征值,而不用考虑机器学习代码的细节(这个的确…

    Machine Learning, Computer Vision阅读全文

  4. 机器学习中的交叉验证思想

    简述 在使用训练集对参数进行训练的时候,经常会发现人们通常会将一整个训练集分为三个部分(比如mnist手写训练集)。一般分为:训练集(train_set),评估集(valid_set),测试集(test_set)这三个部分。这其实是为了保证训练效果而特意设置的。其中测试集很好理解,其实就是完全不参与训练的数据,仅仅用来观测测试效果的数据。而训练集和评估集则牵涉到下面的知识了。 因为在实际的训练中,训练的结果对于训练集的拟合程度通常还是挺好的(初试条件敏感),但是对于训练集之外的数据的拟合程度…

    Machine Learning, MathJax阅读全文

  5. 逻辑回归算法

    说到逻辑回归(Logistic Regression),其实他解决的并不是回归问题(Regression),而是分类问题(Classification)。分类问题都明白了,他和一般的回归问题的差别其实也就在于一个值域是连续的,而另一个值域是离散的, Sigmoid函数 我们都知道分类问题需要解决的问题是给你一个分好类的训练集,然后给你一个数据让你判断这个数据属于哪一类。严格来说这是一个离散的问题,然而我们一般能够处理的都应该是连续可导的函数。而连续可导的线性函数一般都不能非常好的体现出离散…

    Machine Learning, MathJax阅读全文

  6. 多变量线性回归算法

    其实所谓的多变量的线性回归(Linear Regression with multiple variables )本质上将与单变量的线性回归没啥差别。因此我们完全可以用上一节中的梯度下降算法来解决,只需要在每一次迭代的时候多考虑几个变量而已。所以这一节就稍微介绍一下了,不再用例子分析。不过毕竟多了一些变量,在对多变量跑梯度下降算法时,显然对参数的调节就更加重要了,因此我们首先得学会一些参数调节的技巧。这些技巧在实际的操作过程中尤为重要。 调节参数 特征值缩放(Feature Scalin…

    Machine Learning, MathJax, Python阅读全文

  7. 批量梯度下降算法

    这一讲介绍了我们的第一个机器学习算法,”批量“梯度下降算法(Batch Gradiant Descent)。注意到他在前面加了个“批量(Batch)”,这其实是为了与以后的另一种梯度下降算法进行区分从而体现出这个算法的特点。 线性回归 梯度下降算法这是用来解决所谓的“线性回归”问题。线性回归应该都懂了,这里大概的进行下定义(以单变量为例): 1、给你一个数据集(Training Set),数据集中有很多个数对,表示$(x_i,y_i)$。 2、你的任务是构造一个预测函数$h_\thet…

    Python, Machine Learning, MathJax阅读全文

  8. 机器学习笔记引言

    写在开头的 从今天起就要开始认真的学习Machine Learning了。在网上查找了很多的资料,也大概看了下deeplearning.net上的一些教程。但是既没有一丝的学习基础,也没有过硬的python编程能力,而且英语阅读水平也跟不上,学起来真是相当的吃力。最后觉得刚上手的话还是跟着入门级的视频教程学比较好。搜索对比下来还是Andrew Ng的视频适合我这种基础差的人看,一方面学习门槛低,一方面又能学到不错的技术,更重要的是学习资源充足。在网上找到了中国海洋大学的黄同学整理翻译的Andr…

    Machine Learning阅读全文

  9. Python读取mnist数据集

    在看deeplearning教程的时候遇到了这么个玩意,mnist,一个手写数字的数据集。大概是google为了方便广大程序员进行数字识别而构建的库,里面都是美国中学生手写的阿拉伯数字,但是为了方便存储,他并不是以图片的形式保存的,而是以二进制文件的形式保存的。这就让普通人看着略微蛋疼的了,教程里也并没有提供具体的提取图片的方案。得,读取这个还得自己来。 地址 我用的应该是用python处理过的版本: mnist.pkl.gz,这个好像是为了方便用python读取特意配置过的。 分析…

    Python, Machine Learning阅读全文