Fork me on GitHub
  1. 深度学习之训练一个人脸性别分类器

    0. Whatever


    深度学习越来越火,人人都能玩!

    在本文中我将通过深度学习方法训练一个性别分类器,即给定一张人脸图像,判断其性别。

    本文使用的深度学习框架:基于TheanoKeras(github:keras

    1. Data Preprocess


    数据来源:互联网明星图片。男性照片25个类,共3690张;女性照片15个类,共4309张。所有图片经过人脸检测对齐归一化到141*165尺寸大小。样例如下:

    female-face

    生成图片路径和label文件格式如下:

    ...
    E:\face data\gender_pic\female\163\38243_big.jpg,0
    E:\face data\gender_pic\female\163\38244_big.jpg,0
    E ...
    read more
  2. docker + 坚果云 + pelican + github打造属于自己的纯云端博客

    0. pelican和github搭建博客


    这一步网上有很多攻略,以pelican + github为关键字谷歌一搜一大堆,不再赘述。

    1. 云同步博客


    将你的整个博客目录放在云同步软件中(如坚果云)中实时同步,包括pelican配置文件,原生markdown文件以及生成的静态html文件等。从此只要云同步软件公司不发生硬盘突然全部罢工等人力不可抗事件,你的博客就不会消失了,无论你换了多少台电脑。

    2. docker虚拟机


    pelican是linux平台下项目,如果你的新电脑是windows而你又不想安装双系统的话,那就只能安装虚拟机了,这个时候docker就出场了。

    总之,windows下安装好docker后,在virtualBox中设置共享文件夹固定分配:

    名称 路径

    blog/ E:MyNutstore\blog

    然后启动docker,进入boot2docker:

    boot2docker ssh
    

    挂载blog:

    mkdir /home/docker/blog
    sudo /sbin/mount.vboxsf blog/ /home/docker/blog
    

    然后在docker hub上找一个pelican环境拉下来 ...

    read more
  3. 机器学习算法之K近邻(k nearest neighbors)

    1. K近邻算法

    什么是K近邻算法?简单的说就是:给定所有训练数据和一组测试数据之后,在训练数据中寻找离这组测试数据最近的K组邻居,根据这K组邻居的label来做voting/average,从而预测出测试数据的label。

    knn-sample

    如上图所示,绿色圆圈是测试数据,其余为训练数据。假设K == 3,即寻找离测试数据最近的三个邻居,如图中黑色实线圆中的三个邻居(两个红色三角形,一个蓝色正方形)。在这三个邻居中,少数服从多数,所以测试数据就被分类为红色三角形。假设K == 5,那虚线圆中的5个邻居就是离测试数据最近的5个邻居,里面有三个蓝色正方形和2个红色三角形,所以少数服从多数,测试数据被分类为蓝色正方形。

    2. 距离度量

    那么如何找到最近的K个邻居呢?换句话说,如何度量样本之间的距离?

    最常用的距离度量方式自然是欧式距离,类似的还有马氏距离。本质上来说,寻找最近的邻居无非就是寻找最相似的邻居,所以余弦相似度这类相似度度量方式也完全可以在此处使用。

    3. Search algorithms

    接下来介绍查找最近K个邻居的算法:Brute Force, K-D ...

    read more
  4. 在Pelican博客中写数学公式

    用markdown写pelican搭建的博客时,插入数学公式会是一个很头疼的问题。因为python-markdown不支持$,$$这些语法。

    第一步:安装“render_math”插件

    第二步:在pelicanconf.py文件中添加:

    PLUGINS = ["render_math"]
    

    测试一下:

    $x^2$ $$x_{in}^3$$

    read more
  5. 机器学习算法之决策树(decision tree)

    modeling

    先简单地举一个例子,看看什么是决策树。以下是一棵分类树,决定下班后是否要观看机器学习公开课。

    DT

    我们可以看到从根节点开始往下会有分支,最终会走向叶子节点,得到分类结果。每一个非叶子节点都是一个特征,上图中共有三维特征。决策树是所有机器算法中与人脑处理问题方式最接近的算法,所以很好理解。一棵决策树可以被抽象成以下数学公式:

    DTmodel

    T是路径总数/叶子节点总数(上图中有6个叶子节点),g_t(x)base hypothesis,上图中是常量Y/Nq_t(x)可以理解成g_t(x)的权重,取值为1或0:

    is x on path t ? 1 : 0;
    

    我们也可以用递归的视角来看决策树:

    recursiveDTmodel

    G_c(x)是当前节点的子树:

    tree = (root, sub-trees)
    

    构建一棵决策树

    按照以下伪代码我们可以递归式地构建一棵决策树:

    function DecisionTree ...
    read more
  6. 机器学习算法之随机森林(Random Forest)

    机器学习算法之随机森林(Random Forest)

    转载请注明出处:BackNode

    随机森林作为两大ensemble methods之一,近年来非常火热,本文试图探讨一下其背后原理,欢迎指正!

    Bagging

    Bagging方法是ensemble methods中获得用于训练base estimator的数据的重要一环。 正如其名,Bagging方法就是将所有training data放进一个黑色的bag中,黑色意味着我们看不到里面的数据的详细情况,只知道里面有我们的数据集。然后从这个bag中随机抽一部分数据出来用于训练一个base estimator。抽到的数据用完之后我们有两种选择,放回或不放回。

    既然样本本身可以bagging,那么feature是不是也可以bagging呢?当然可以!bagging完数据本身之后我们可以再bagging features,即从所有特征维度里面随机选取部分特征用于训练 ...

    read more
  7. 离散优化之Knapsack问题(二):relaxation, branch and bound

    knapsack问题之relaxation, branch and bound

    转载请注明出处:BackNode 我们接着上回(传送门:动态规划)继续分析knapsack问题。

    问题描述

    你有一个负重量为capacity的背包,摆在你面前的是一堆宝物,宝物有重量weight和价值value,你要在你的背包中装下宝物将它们占为己有,因此你希望背包中的宝物负重量不超过capacity,同时背包中的宝物的价值value尽可能的大。 输入:

    4 11 
    8 4
    10 5
    15 8
    4 3
    

    第一行4 11表示宝物数量item_count为4,背包负重量capacity为11 接下来为item_count行,每行第一个元素是该宝物的价值value ...

    read more
  8. 离散优化之Knapsack问题(一):动态规划

    knapsack问题之动态规划

    问题描述

    你有一个负重量为capacity的背包,摆在你面前的是一堆宝物,宝物有重量weight和价值value,你要在你的背包中装下宝物将它们占为己有,因此你希望背包中的宝物负重量不超过capacity,同时背包中的宝物的价值value尽可能的大。 输入:

    4 11 
    8 4
    10 5
    15 8
    4 3
    

    第一行4 11表示宝物数量item_count为4,背包负重量capacity为11 接下来为item_count行,每行第一个元素是该宝物的价值value,第二个元素是该宝物的重量weight

    问题建模

    数学模型

    x[i]=1表示选中宝物i,x ...

    read more
  9. C#调用C++类(内含OpenCV代码)

    C#调用C++类(内含OpenCV代码)

    C++工程通过托管代码生成dll供C#工程调用,即便C++工程中的类用到了其他依赖库也没关系。下例中C++工程用OpenCV读取图片并在窗口中显示,C#工程引用C++工程生成的dll,也可以做到读取图片并在窗口中显示。

    C++工程

    新建C++工程,配置中设置输出类型为动态库(.dll),公共语言运行时支持设置为“公共语言运行支持(/clr)”

    首先新建fatory类: factory.h

    #ifndef FACTORY_H
    #define FACTORY_H
    
    #include <opencv2/opencv.hpp>
    
    using namespace std;
    using namespace cv;
    class  factory
    {
    public:
        void show();
    };
    #endif
    

    factory.cpp ...

    read more
  10. python学习--locals globals

    python学习--locals globals

    locals() and globals()

    locals()globals()是python的两个内置函数,它们提供了基于dictionary的访问局部和全局变量的方式。 locals()返回一个名字/值对的dictionary。这个dictionary的键字是字符串形式的变量名字,diction的值是变量的实际值。

    In [12]: def func(arg):
        ...:     num = 90
        ...:     print locals()
        ...:     print locals()['arg']
        ...:     
    
    In [13]: func('hello')
    {'num': 90, 'arg': 'hello'}
    hello
    

    globals()函数则返回包含全局变量的dictionary,在下例中,operation()函数根据oper变量的值自动调用相应的全局函数:

    In [3]: def plus(a,b):
       ...:     return ...
    read more

« Page 2 / 3 »

blogroll

social