Deriving 详解
Deriving 详解
本文介绍 Haskell 中 deriving 的详细用法。
Deriving 的常规用法
对于如下代码: 1
data A = MkA Int deriving (Show, Eq)
A
派生为了
Show
和 Eq
的实例,这使得我们可以打印
A
的实例,也可以对两个 A
类型的实例进行相等的比较,即:
1 | λ> MkA 3 |
本文介绍 Haskell 中 deriving 的详细用法。
对于如下代码: 1
data A = MkA Int deriving (Show, Eq)
A
派生为了
Show
和 Eq
的实例,这使得我们可以打印
A
的实例,也可以对两个 A
类型的实例进行相等的比较,即:
1 | λ> MkA 3 |
晚上干活一时疏忽把 root
的权限收回了
1 | REVOKE ALL PRIVILEGES ON * . * FROM 'root'@'localhost'; |
上面命令带来的后果就是所有的操作都被拒绝,执行
show databases
只有 information_schema
显示。
1 | mysql> use mysql; |
网上找到的解决方法均不适用于当前情况,特此记录。
((->) r)
,或者说函数,也是函子 (Functor)
的实例,这个概念理解起来通常有一点困难,让我们通过一个例题来体验一下。
题目是判断一个给定的字符串是否为回文串。思路很简单,对于给定的字符串
str
,只需要判断其反转后的结果是否与原串相同即可。
PatternSynonyms 用来处理在进行模式匹配 (pattern matching)
时模式名称过长的问题,通过给模式一个简化的名称来实现降低代码量和增加易理解程度的功能。PatternSynonyms
开启需要显式指明 {-# LANGUAGE PatternSynonyms #-}
。
在图上的学习等价于图上经验风险最小化 (empirical risk minimization),即学习 \(\Phi^\ast\),满足 \[ \Phi^\ast = \underset{\Phi\in C}{argmin} \sum_{(x,y)\in \tau} \ell(y, \Phi (x)) \] 由上节课知识可以知道上式其实就是学习在过滤器 \(S\) 下最小损失的过滤器 \(h\) \[ h^\ast = \underset{h}{argmin} \sum_{(x,y)\in \tau} \ell(y, \Phi (x; S, h)) \] 在训练的最后一层我们需要将图信号转换成需要的数据,这一步叫做 Readout。
logistic regression 是统计学习中的经典分类方法,其方法可简单理解为在 linear regression 上应用 sigmoid 进行映射, 将其转换为二分类问题。《统计学校方法》 一书通过 logistic distribution 进行推导。将 logistic 翻译成逻辑斯谛这种无意义的单词也太无聊了,后文将全部使用英文表述。
决策树 (decision tree) 是一种基本的分类与回归方法。本文主要讨论用于分类的决策树。决策树模型呈树形结构,在分类问题中,表示介于特征对实例进行分类的过程。它可以认为是 if-then 规则的集合,也可以认为是定义在特征空间与类空间上的条件概率分布。其主要优点是模型具有可读性,分类速度快。
决策树是树状模型,由叶子结点和非叶子结点构成,非叶子结点表示一个特征或属性,叶子结点表示一个类。决策树的分类过程很简单,从根结点依次遍历,依据结点的取值选择对应的分支继续遍历直到到达叶子结点,返回对应的类。决策树的各非叶子结点的属性要求互斥且完备。
朴素贝叶斯 (naive Bayes) 法是基于贝叶斯定理于特征条件独立假设的分类方法。对于给定的训练数据集,首先基于特征条件独立假设学习输入输出的联合概率分布,随后再利用此模型,对于给定的输入 \(x\),利用贝叶斯定理求出后验概率最大的输出 \(y\)。朴素贝叶斯法属于生成模型。