精华内容
下载资源
问答
  • python之列表推导式:c for b in a的代码形式理解

    千次阅读 多人点赞 2018-03-30 09:57:52
    直接上代码可能更直观点: y= [x*x for x in range(10)] print(y) 输出的是一个列表: [0, 1, 4, 9, 16, 25, 36, 49, 64, 81] 这段代码类似的就是: ...首先for b in a 很好理解:我们从a...

    直接上代码可能更直观点:

    y= [x*x for x in range(10)]
    print(y)

    输出的是一个列表:

    [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

    这段代码类似的就是:

    for x in range(10):
        print(x*x)

     

    列表推导公式:c for b in a : 

    首先for b in a 很好理解:我们从a里面取出每一个迭代对象b。

    然后我们对这个b进行c操作,并且以c操作后的形式输出一个列表。

    所以上例实现的就是输出一个从0~99的平方数的列表。

     

    按照这个理解,我们同样也可以遍历生成一个2D坐标数。

    t=  [(x,y) for x in range(2) for y in range(3)]
    print(t)

    输出的就是:

    [(0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (1, 2)]

    和上述一致,这段代码类似的就是

    t=[]
    for x in range(2):
        for y in range(3):
            t.append((x,y))
    print(t)

     

    从右往左看,首先y取0值,往左边走,x此时取值为0,在往左边走,就直接输出(x,y)也就是(0,0)了

     

    第二次,y取值为1,x此时不变(等y变完才会改变)....以此类推

    这类写法都是为了代码更简洁的,想要代码更好看一点最好试着这么写啦~

    展开全文
  • 关于形式和内容的理解

    千次阅读 2018-08-13 08:50:19
    形式和内容是在站较高层次上概述一件事的,很多事情都可以划分为形式和内容。 比如说考研这件事,在复习的过程中,我们的目的是在额定的时间内完成知识内容的输入,将考研所需要的知识掌握。这样,把掌握知识当作...

    感想的初衷

    以前在看马克思时,初略地了解了形式和内容的关系。
    形式和内容是在站较高层次上概述一件事的,很多事情都可以划分为形式和内容。
    比如说考研这件事,在复习的过程中,我们的目的是在额定的时间内完成知识内容的输入,将考研所需要的知识掌握。这样,把掌握知识当作内容,把每天有规律的学习作为形式。(这里,形式特指学习方式上表现出来的规律作息学习)
    区分形式内容,我们会发现内容是我们所需要的,形式只是一种我们实现内容的手段。
    跳出考研例子,形式和内容的关系,完成特定的事情,内容是我们的初衷或目的,形式作为完成内容的手段和表现形式。
    当某件事情确认下来,我们容易先想到我们需求是什么,想要的是什么,接下来才要关注我们需要做什么来完成这个特定的需求。
    社会中很多时候更偏向于强调内容比形式工作重要。原因如下:
    1. 从众心理。在一个活动中,当众人都在去做同样的事情时,部分人是因为从众心理去去行动的,他们看到的是大家在干什么,所以也跟随着去干什么。这样,很容易拘于形式,这时候,不要说做一件事勿忘本质了,原本就是跟随大众而去做的,原本就没有想过为何去做。
    2. 在一些单位,形式和内容不是统一的。在一个企业中,原本的目标内容是获取利润,大家为了这个共同的目的去努力奋斗。明白公司要赚钱的初衷,可这并不每个人的初衷,公司利益和个人利益并不等同,这就涉及到了分配问题。蛋糕做大了,我们按劳分配。可如何按劳分配,每个人的贡献并不能很好地划分。所以有人为了忘了分配问题,在为集体为自己在做实事,有人看清楚了分配方式,去做一些浮于形式的事情(但注意到,他个人的目的和形式是统一的)。
    划分场景了看待内容和形式的占重比例,以下就个人实现个人目标来分析。
    受到社会主流思想的影响(本质原因还是自己懒于思考),我以前看重内容,忽略了形式的重要性,结果很多事情没有能完成好。主流思想推荐人们不要拘于形式去做一件事,是因为有很多人忘了初衷,可对于我的个人的目标,并不是适应。我想要去做一件事,我的目标很明确,不会涉及到个成果需要与他人分配的问题,所以我坚持着把内容做好就行,不要在意如何去完成。
    惨烈的事实告诉我,这是不可取的。形式带来的支撑作用是不能忽视的,在个人目标的完成上,形式占了更大的比重。对于个人目标,我很少忘却,可仅持有目标想法的冲动是不足维持行为上持续的干劲。所以,我很需要形式来维持行动。这里就表现为:
    1. 养成一个个好习惯,对于那些应当有的好习惯,去坚持实现,初衷和收益可以在行动的过程中慢慢领悟。

    展开全文
  • 感知机感知机是根据输入实例的特征向量...感知机学习算法是基于随机梯度下降法的损失函数的最优化算法,有原始形式和对偶形式,算法简单且易于实现。本文对感知机模型及其学习算法进行了分析,并用 python 进行了实习。

    感知机

    感知机是根据输入实例的特征向量 x 对其进行二类分类的线性模型:

    f(x)=sign(wx+b)

    感知机模型对应于输入空间(特征空间)中的分离超平面 wx+b=0.其中w是超平面的法向量,b是超平面的截距。

    可见感知机是一种线性分类模型,属于判别模型。


    感知机学习的假设

    感知机学习的重要前提假设是训练数据集是线性可分的。


    感知机学习策略

    感知机学的策略是极小化损失函数。

    损失函数的一个自然选择是误分类点的总数。但是,这样的损失函数不是参数 w, b的连续可导的函数,不易于优化。所以通常是选择误分类点到超平面 S 的总距离:

    L(w,b)=xiMyi(wxi+b)

    学习的策略就是求得使 L(w,b) 为最小值的 w 和 b。其中 M 是误分类点的集合。

    感知机学习的算法

    感知机学习算法是基于随机梯度下降法的对损失函数的最优化算法,有原始形式和对偶形式,算法简单易于实现。

    原始形式

    minw,bL(w,b)=xiMyi(wxi+b)

    首先,任意选取一个超平面w0,b0,然后用梯度下降法不断地极小化目标函数。极小化的过程中不是一次使 M 中所有误分类点得梯度下降,而是一次随机选取一个误分类点,使其梯度下降。
    wL(w,b)=xiMyixi

    bL(w,b)=xiMyi

    随机选取一个误分类点(xi,yi),对 w,b 进行更新:

    ww+ηyixi

    bb+ηyi

    其中η(0<η1)是学习率。

    对偶形式

    对偶形式的基本想法是,将 w 和 b 表示为是咧 xi 和标记 yi的线性组合的形式,通过求解其系数而得到 w 和 b。

    ww+ηyixi

    bb+ηyi

    逐步修改 w,b,设修改 n 次,则 w,b 关于(xi,yi) 的增量分别是 αiyixiαiyi, 这里 αi=niη。最后学习到的 w,b 可以分别表示为:
    w=i=1Nαiyixi

    b=i=1Nαiyi

    这里, αi0,i=1,2,...,N,当 η=1时,表示第i个是实例点由于误分类而进行更新的次数,实例点更新次数越多,说明它距离分离超平面越近,也就越难区分,该点对学习结果的影响最大。

    感知机模型对偶形式:

    f(x)=sign(j=1Nαjyjxjx+b)
    其中
    α=(α1,α2,...,αN)T

    学习时初始化 α0,b0, 在训练集中找分类错误的点,即:
    yi(j=1Nαjyjxjxi+b)0

    然后更新:
    αiαi+η

    bb+ηyi

    知道训练集中所有点正确分类

    对偶形式中训练实例仅以内积的形式出现,为了方便,可以预先将训练集中实例间的内积计算出来以矩阵的形式存储,即 Gram 矩阵。


    总结

    • 当训练数据集线性可分的时候,感知机学习算法是收敛的,感知机算法在训练数据集上的误分类次数 k 满足不等式:

      k(Rγ)2

      具体证明可见 李航《统计学习方法》或 林轩田《机器学习基石》
    • 当训练当训练数据集线性可分的时候,感知机学习算法存在无穷多个解,其解由于不同的初值或不同的迭代顺序而可能不同,即存在多个分离超平面能把数据集分开。

    • 感知机学习算法简单易求解,但一般的感知机算法不能解决异或等线性不可分的问题。


    感知机(采用原始形式)

    创建感知机模型的原始形式的类,并在训练集上训练,测试集上简单测试。

    class PerceptronRaw():
        def __init__(self):
            self.W = None;
            self.bias = None;
    
        def fit(self, x_train, y_train, learning_rate=0.05, n_iters=100, plot_train=True):
            print("开始训练...")
            num_samples, num_features = x_train.shape
            self.W = np.random.randn(num_features)
            self.bias = 0
    
            while True:
                erros_examples = []
                erros_examples_y = [] 
                # 查找错误分类的样本点
                for idx in range(num_samples):
                    example = x_train[idx]
                    y_idx = y_train[idx]
                    # 计算距离
                    distance = y_idx * (np.dot(example, self.W) + self.bias)
                    if distance <= 0:
                        erros_examples.append(example)
                        erros_examples_y.append(y_idx)
                if len(erros_examples) == 0:
                    break;
                else:
                    # 随机选择一个错误分类点,修正参数
                    random_idx = np.random.randint(0, len(erros_examples))
                    choosed_example = erros_examples[random_idx]
                    choosed_example_y = erros_examples_y[random_idx]
                    self.W = self.W + learning_rate * choosed_example_y * choosed_example
                    self.bias = self.bias + learning_rate * choosed_example_y    
            print("训练结束")
    
            # 绘制训练结果部分
            if plot_train is True:
                x_hyperplane = np.linspace(2, 10, 8)
                slope = -self.W[0]/self.W[1]
                intercept = -self.bias/self.W[1]
                y_hpyerplane = slope * x_hyperplane + intercept
    
                plt.xlabel("feature_1")
                plt.ylabel("feature_2")
                plt.xlim((2, 10))
                plt.ylim((-12, 0))
                plt.title("Dataset and Decision in Training(Raw)")
                plt.scatter(x_train[:, 0], x_train[:, 1], c=y_train, s=30, cmap=plt.cm.Paired)
                plt.plot(x_hyperplane, y_hpyerplane, color='g', label='Decision_Raw')
                plt.legend(loc='upper left')
                plt.show()
    
        def predict(self, x):
            if self.W is None or self.bias is None:
                raise NameError("模型未训练")
            y_predict = np.sign(np.dot(x, self.W) + self.bias)
            return y_predict

    这里写图片描述


    感知机(采用对偶形式)

    创建感知机模型的对偶形式的类,并在训练集上训练,测试集上简单测试。

    class PerceptronDuality():
        def __init__(self):
            self.alpha = None
            self.bias = None
            self.W = None
        def fit(self, x_train, y_train, learning_rate=1, n_iters=100, plot_train=True):
            print("开始训练...")
            num_samples, num_features = x_train.shape
            self.alpha = np.zeros((num_samples,))
            self.bias = 0
    
            # 计算 Gram 矩阵
            gram = np.dot(x_train, x_train.T)
    
            while True:
                error_count = 0
                for idx in range(num_samples):
                    inner_product = gram[idx]
                    y_idx = y_train[idx]
                    distance = y_idx * (np.sum(self.alpha * y_train * inner_product) + self.bias)
                    # 如果有分类错误点,修正 alpha 和 bias,跳出本层循环,重新遍历数据计算,开始新的循环
                    if distance <= 0:
                        error_count += 1
                        self.alpha[idx] = self.alpha[idx] + learning_rate
                        self.bias = self.bias + learning_rate * y_idx
                        break  
                # 数据没有错分类点,跳出 while 循环
                if error_count == 0:
                    break
            self.W = np.sum(self.alpha * y_train * x_train.T, axis=1)       
            print("训练结束")
    
            # 绘制训练结果部分
            if plot_train is True:
                x_hyperplane = np.linspace(2, 10, 8)           
                slope = -self.W[0]/self.W[1]
                intercept = -self.bias/self.W[1]
                y_hpyerplane = slope * x_hyperplane + intercept
    
                plt.xlabel("feature_1")
                plt.ylabel("feature_2")
                plt.xlim((2, 10))
                plt.ylim((-12, 0))
                plt.title("Dataset and Decision in Training(Duality)")
                plt.scatter(x_train[:, 0], x_train[:, 1], c=y_train, s=30, cmap=plt.cm.Paired)
                plt.plot(x_hyperplane, y_hpyerplane, color='g', label='Decision_Duality')
                plt.legend(loc='upper left')
                plt.show()
    
        def predict(self, x):
            if self.alpha is None or self.bias is None:
                raise NameError("模型未训练")
            y_predicted = np.sign(np.dot(x, self.W) + self.bias)
            return y_predicted

    这里写图片描述


    详细代码链接:

    https://github.com/kenjewu/Machine_Learning_ALS/blob/master/perceptron.ipynb
    如果该代码对您的工作学习有帮助,请点个star。欢迎大家指正,提出更好的写法意见,转载请贴上引用。


    引用

    《统计学习方法》 李航
    《机器学习基石》 林轩田

    展开全文
  • 形式化和理解原理

    千次阅读 2005-09-10 06:08:00
    Parsing Technique第24页:“严格证明离不开形式化,但理解原理却不需要它”。的确如此。刚开始学习形式化方法的时候,老陷入繁琐的推导,而忽略了理解公式定理背后的直观意义。现在想来觉得好笑:定义定理简单的...
    Parsing Technique第24页:“严格证明离不开形式化,但理解原理却不需要它”。的确如此。刚开始学习形式化方法的时候,老陷入繁琐的推导,而忽略了理解公式定理背后的直观意义。现在想来觉得好笑:定义定理简单的时候都不忘追寻对原理对直观意义的理解;定义定理复杂了,反而忘记了本质的东西。
    ------------------
    以上文本借助www.InputKing.com在线中文输入系统输入
    展开全文
  • 本文结合July、dznlong 两位大神的博客文章内容加上自己的理解与阐述,介绍了傅里叶变换的基础内容以及实数形式离散傅里叶变换的理解
  • 感知机的对偶形式及Gram矩阵的作用理解

    千次阅读 多人点赞 2019-02-27 15:08:24
    学习李航《统计机器学习》的时候,看到感知机的对偶形式这里不甚理解,其实主要是对其中的系数 更新规则不是很理解。另外,只介绍了 Gram 矩阵,也没有说清楚 Gram 矩阵的作用。经过仔细的思考,写下了自己的见解。...
  • 本文介绍语意理解的第二个阶段——与上下文无关的语义(context-independent meaning),而逻辑形式(Logical Form)即是它的表示方式。如自然语言理解(一)中介绍的,我们把将一个句子映射到它的逻辑形式这个过程...
  • java中形式参数和实际参数的理解

    千次阅读 2019-08-24 21:27:37
    1.形式参数:就是调用的方法中需要输入的参数。 eg. public static void add(int x,int y){ int c; c=x+y; System.out.println©; } 这个为自己构建一个方法,其中参数x和y就是形式参数,切记这里的变量c,它是变量,...
  • 深入理解C语言指针

    万次阅读 多人点赞 2019-09-28 08:36:51
    而这个编号可以暂时理解为指针,就像酒店的门牌号一样。 1.1、变量和地址 先写一段简单的代码: void main(){ int x = 10, int y = 20; } 这段代码非常简单,就是两个变量的声明,分别赋值了 10、20。我们把内存...
  • 学习李航《统计机器学习》的时候,看到感知机的对偶形式这里不甚理解,其实主要是对其中的系数  更新规则不是很理解。另外,只介绍了 Gram 矩阵,也没有说清楚 Gram 矩阵的作用。经过仔细的思考,写下了...
  • 图像在python以np.array()形式保存理解

    千次阅读 2018-09-20 09:23:29
    >>> image = np.random.randint(10,size=(3,2,2,3)) >>> image[0][:,:,0] array([[5, 5], ...reshape(,-1)中-1参数的理解: https://blog.csdn.net/weixin_39449570/article/details/78619196
  • “无论创作还是欣赏,都是对法则和规律的逃逸,自由是艺术的源泉”-- 黑格尔TCP调试助手中,在发送时可以选择十六进制发送或者字符串形式发送!其实,两者最终调用的都是系统的socket send函数,例如linux下的send...
  • 三种组网形式: 点播(点对点通信,不允许有第三个设备加入) 广播(同一信道下的所有设备进行通信) 组播(同一信道下的相同组的设备进行通信)设备分类: 协调器:负责组建一个网络(可设置接收和发射信号) ...
  • java 方法的实际参数:方法被调用时候,用于接收外部值的参数。形式参数:方法在声明时的参数
  • 1、外积和内积:(1)内积:一个行向量乘以一个列向量称作向量的内积...2、矩阵乘法的变换理解: 矩阵是由向量组成的,将矩阵乘法转换为向量乘法,是从多种角度理解矩阵乘法的精髓。 我们对一个矩阵A(假设行和列...
  • MYSQL插入语句往往是“insert into table_name set a=$a,b=$b”的格式。 在mysql手册中能看到这种语法: INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE]  [INTO] tbl_name ... SET col_name={expr |...
  • SpringAOP的注解形式

    万次阅读 多人点赞 2019-06-01 14:23:08
    本篇继续看一下注解形式怎么去理解和应用AOP 前几篇已经讲了不少AOP相关的知识,本篇不再赘述,直接用代码写一下注解形式的AOP 举的例子还是前几篇的例子,只不过是用注解的形式去用一下AOP package ...
  • 今天,一不小心,点到了源码里面去,看到个数字 1000_000,Java代码还可以这么定义数字的,厉害啦,我就百度啦下。原来这个就是1000000。等效的。只是1000_000这样写之后,可读性变强。 实际测试了下。...
  • 理解离散傅立叶变换(二) ------实数形式离散傅立叶变换(Real DFT) 上一节我们看到了一个实数形式离散傅立叶变换的例子,通过这个例子能够让我们先对傅立叶变换有一个较为形象的感性认识,现在就让我们来看看...
  • 理解离散傅立叶变换(四) ------复数形式离散傅立叶变换 复数形式的离散傅立叶变换非常巧妙地运用了复数的方法,使得傅立叶变换变换更加自然和简洁,它并不是只是简单地运用替换的方法来运用复数,而是完全从复数...
  • 复数的三角形式与指数形式

    万次阅读 多人点赞 2019-10-22 16:46:46
    在中学,我们已经学习过复数及其用代数形式a+bi表达的四则运算法则及算律。在《大学数学》中我们学习过建立在实数集合上的微积分——称为实分析;同样,在复数集合上也可以讨论函数、导数、微分、积分等问题,这就是...
  • 3.当定义模板形式的复制构造函数的时候,系统还是会为我们定义一个默认的复制构造函数,但是不在提供默认的空参数构造函数,如下,去掉自己定义的空参数构造函数会编译出错: template class test1{ public: ...
  • 图1 强调自然语言理解形式化双重路径是建立在具有异曲同工之妙的直接和间接两条形式化路径的基础之上的 图2 请注意六代编程语言发展的六个特征凸显了第五代和第六代务必结合方可形成协同智能计算系统的开发...
  • 理解离散傅立叶变换(二)  ------实数形式离散傅立叶变换(Real DFT)  上一节我们看到了一个实数形式离散傅立叶变换的例子,通过这个例子能够让我们先对傅立叶变换有一个较为形象的感性认识,现在就
  • 最小二乘矩阵形式和一般形式

    千次阅读 2018-02-27 11:13:48
    1.线性代数模型首先给出最小二乘解的矩阵形式的公式:推导过程:条件:矩阵必须是列满秩矩阵,否则的逆就不会存在。若A为m×n的矩阵,b为m×1的矩阵,则Ax=b表达了一个线性方程组,它的normal equation的形式为ATAx=...
  • 团队的组织形式

    千次阅读 2016-12-09 20:29:24
    2. 规范和标准对于一个团队来说非常重要,个人理解,它能保障团队成果的质量底线,如果一个团队不能养成遵守规范和标准的习惯,那这个团队的产出成果就会良莠不齐;规范和标准是一个团队由游击队走向正规军的标志; ...
  • 傅里叶级数 三角形式 到 复数形式

    万次阅读 多人点赞 2014-09-12 11:31:10
    通过欧拉公式可以将 三角函数形式的 傅里叶变换 转为 复数形式: 上图的公式看起来不简洁,我们借助一些符号代换让上式看起来简单一些: Cn的求解,我们已经知道an、bn的求解方法为在对应周期上做积分,Cn和an、...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,115,861
精华内容 446,344
关键字:

形式怎么理解