Cousera-课程笔记
支锦铭
很胖,但是不宅,希望能够有一技之长
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Coursera - Algorithm (Stanford) - 课程笔记 - Week 16
Local Search最大割问题输入:无向图G=(V,E)G=(V, E)G=(V,E)输出:一个割(A,B)(A, B)(A,B),将VVV划分为两个非空集,其割边数目为所有割最多NP-完全问题可计算特例:二分图,存在一个所有边都是割边的割BFS:按扩散层数归类,奇数层为一个集合,偶数层为一个集合启发式方法:局部搜索算法始终维护一个候选割集,每一次迭代只进行细微的局部调整令(A,B)(A, B)(A,B)为一个任意的割集主循环:如果存在一个点vvv,存在dv原创 2020-06-13 00:24:46 · 429 阅读 · 0 评论 -
Coursera - Algorithm (Stanford) - 课程笔记 - Week 15
Approximation Algorithm for NP-Complete Problems启发式算法:非常快速但不是百分之一百准确的算法——近似最优算法针对背包问题可计算的特例?WWW很小时或者为nnn的多项式关系时计算可行比暴力搜索相对好的算法?O(nW)O(nW)O(nW)的动态规划,比O(2n)O(2^n)O(2n)的暴力搜索要好很多针对背包问题的贪心启发式算法按照viwi\frac {v_i}{w_i}wivi降序排序,按顺序逐个尝试放入背包,直到装不下任何新目标原创 2020-06-05 11:54:53 · 294 阅读 · 0 评论 -
Coursera - Algorithm (Stanford) - 课程笔记 - Week 14
NP-Complete Problems普遍的难解性:很多计算问题无法有效求解多项式时间可解问题:一个问题的算法时间复杂度为O(nk)O(n^k)O(nk),其中kkk为常数P:所有多项式时间可解问题的集合,可以被多项式时间算法高效地解决背包问题是NP完全问题,虽然时间复杂度θ(nW)\theta(n W)θ(nW),但是输入尺度是正比于log(W)\log (W)log(W)的,也就是非常数增长,并不是多项式(θ(n2logW)\theta(n 2^{\log W})θ(n2logW))旅原创 2020-05-30 21:09:53 · 318 阅读 · 0 评论 -
Coursera - Algorithm (Stanford) - 课程笔记 - Week 13
Bellman Ford Algorithm单源最短路问题定义输入:有向图,已知各边长度,以及源点sss输出:计算从源点出发,到达图中个点最短路的长度Dijkstra算法的问题对于存在负权边的情形,并不总是正确的并不是十分的分布式对于负权环的问题方案1:允许负权环的存在——得不到最短路方案2:要求无环最短路的计算——汉密尔顿遍历问题,NP完全问题方案3:允许负权边,但不允许负权环——BF算法目标计算所有顶点的单源最短路径长度——BF算法或者输出负环最优子原创 2020-05-23 22:15:18 · 289 阅读 · 0 评论 -
Coursera - Algorithm (Stanford) - 课程笔记 - Week 12
Knapsack Problem问题定义输入:nnn件物品,每个物品包含两个数据——价值viv_ivi,和大小wiw_iwi,以及目标背包的大小WWW输出:一个自己S⊆{1,2,…,n}S \sube \{1, 2, \dots, n\}S⊆{1,2,…,n},最大化∑i∈Svi\sum_{i \in S} v_i∑i∈Svi,要求∑i∈Swi≤W\sum_{i \in S} w_i \le W∑i∈Swi≤W最优子结构如果n∉Sn \notin Sn∈/S,SSS必然为前原创 2020-05-14 20:35:08 · 237 阅读 · 0 评论 -
Coursera - Algorithm (Stanford) - 课程笔记 - Week 11
Huffman Codes二位码:将字符表中的字符映射为二位编码定长编码:易于设计,但是空间浪费严重——压缩编码?变长压缩编码:存在歧义问题,界限不确定——消歧?消歧方案——变长无前缀码:没有任何一个码字是另外一个码字的前缀词频越高,对应的码字越短——平均码字长度更短目标:给定一组字符及其频率,给出最佳的非前缀编码——编码树无前缀编码树:左子节点对应0,右子节点对应1只有叶子节点有明确的字符对应编码——根节点到对应叶子节点的位路径解码——沿着树向下遍历,到达叶子节点即获得对应字符编原创 2020-05-08 18:12:35 · 367 阅读 · 0 评论 -
Coursera - Algorithm (Stanford) - 课程笔记 - Week 10
Kruskal’s MST Algorithm另一个用于解决MST的贪心算法以下讨论仍然保留之前的假设(全联通、所有的边代价都是不同的)割性质:既有割的最小代价交边一定在MST中算法将所有的边按照代价升序排列初始化:T=∅T = \emptysetT=∅迭代:1到mmm(遍历每一条边)如果T∪{i}T \cup \{i\}T∪{i} 没有环,将iii加入到TTT中TTT...原创 2020-05-06 01:10:41 · 311 阅读 · 0 评论 -
Coursera - Algorithm (Stanford) - 课程笔记 - Week 9
Greedy Algorithm算法设计:不存在万金油——针对问题选择合适的算法定义:不断地进行“短视地”决策,期望到最后一切都正常进行举例:Dijkstra最短路算法与分治法的对比很容易想到比较容易的贪心策略时间复杂度分析更加容易(不需要主分析方法)难以证明正确性一般情况下,想到的贪心策略很容易是错误的正确性证明归纳法变量交换法(反证)创造性的思路应用:最...原创 2020-05-06 01:10:09 · 237 阅读 · 0 评论 -
Coursera - Algorithm (Stanford) - 课程笔记 - Week 8
Hash Tables目标:维护一组可能发生演变的事物集合插入:增加一个新的记录删除:删除一个既有的指定记录查找:检查一个指定的记录关键在于对于键的处理,但不维护元素的相对顺序所有的操作的时间复杂度为O(1)O(1)O(1)注意:哈希表很容易实现地很糟糕,从而无法保证常数时间操作不存在“最糟糕”情形——病态数据也能保证适当的时间复杂度应用:去重输入:一个输入对象流...原创 2020-05-06 01:09:37 · 232 阅读 · 0 评论 -
Coursera - Algorithm (Stanford) - 课程笔记 - Week 7
Heap & Binary Search TreeHeap支持的操作堆是一个存放具有键的对象的容器,其键值可供比较插入insert:向堆中加入一个对象时间复杂度:O(logn)O(\log n)O(logn)获取最小值extract_min:将队中具有最小键值的对象移出对于相等情形则随机选择一个可以类比实现一个获取最大值方法(比较时调整,插入时调整)时间复杂...原创 2020-05-06 01:09:11 · 236 阅读 · 0 评论 -
Coursera - 机器学习技法 - 课程笔记 - Week 16
FinaleFeature ExploitationKernel:有效的特征转换方法Aggregation:由弱到强,不同的组合方法Nearest Neighbor可以看作是一种Conditional的组合模型Extraction:寻找潜藏特征AdaBoost:通过选择一个弱分类器实先隐藏特征的抽取降维:压缩原始特征,更具有表现性特征选择可以认为是一种特征降维的方法...原创 2020-05-06 00:53:33 · 191 阅读 · 0 评论 -
Coursera - 机器学习技法 - 课程笔记 - Week 15
Matrix FactorizationLinear Network HypothesisNetflix推荐问题:对电影mmm,有用户nnn的评分rnmr_{nm}rnmx~n=(n), yn=rnm\bold {\tilde x}_n = (n),\ y_n = r_{nm}x~n=(n), yn=rnm抽象特征,称之为类别特征大部分ML模型都是处...原创 2020-05-06 00:52:55 · 212 阅读 · 0 评论 -
Coursera - 机器学习技法 - 课程笔记 - Week 14
Radial Basis Function NetworkRBF Network Hypothesis高斯核——径向基函数核径向:依赖于样本x\bold xx到已知中心xn\bold x_nxn的距离基函数:可以被线性组合令gn(x)=ynexp(−γ∥x−xn∥2)g_n(\bold x) = y_n \exp (- \gamma \|\bold x - \bold x_n\|...原创 2020-05-06 00:52:13 · 208 阅读 · 0 评论 -
Coursera - 机器学习技法 - 课程笔记 - Week 13
Deep LearningDeep Neural Network每层的参数情况、神经元情况都可以自行设计浅神经网络:几个隐藏层高效训练结构确定比较容易理论上已经足够强大深神经网络:非常多的隐藏层训练有些难度复杂的结构设计完全任意的有效更加有“意义”深度学习的“意义”提取逐层复杂的特征非常适合原始特征非常难以利用的任务深度学习的挑战及关键技术困难...原创 2020-05-06 00:51:29 · 179 阅读 · 0 评论 -
Coursera - 机器学习技法 - 课程笔记 - Week 12
Neural NetworkMotivation使用线性融合的思想组合多个感知机:F(x)=sign(∑tαtsign(wtTx))F(\bold x) = \operatorname{sign}(\sum_t \alpha_t \operatorname{sign}(\bold w_t^T \bold x))F(x)=sign(∑tαtsign(wtTx))两层权重α\alp...原创 2020-05-06 00:50:44 · 169 阅读 · 0 评论 -
Coursera - 机器学习技法 - 课程笔记 - Week 11
Gradient Boosting Decision TreeAdaBoost Decision Tree将AdaBoost应用到DT:对数据加权,对加权数据学习DTree(D,ut)\operatorname{DTree}(\mathcal D, \bold u^t)DTree(D,ut)不像AdaBoost那样将算法进行加权修改?调整数据在数据集中出现的比例——按权重比例采样得到...原创 2020-05-06 00:49:14 · 215 阅读 · 0 评论 -
Coursera - 机器学习技法 - 课程笔记 - Week 10
Random ForestRandom Forest AlgorithmBagging:通过投票降低方差DT:建树过程严重依赖数据——较大的方差随机森林:bagging + 完全生成CART使用bootstraping方法抽取数据集利用这样的数据集建立多棵决策树决策树结果投票决定最终结果可以平行化学习:十分高效继承下来CART的优势,并缓解了CART的高方差问题类比数据...原创 2020-05-05 00:29:34 · 265 阅读 · 0 评论 -
Coursera - 机器学习技法 - 课程笔记 - Week 9
Decision TreeDecision Tree Hypothesis条件化融合——决策树模仿人类做决策的过程G(x)=∑tqt(x)gt(x)G(\bold x) = \sum_t q_t(\bold x) g_t(\bold x)G(x)=t∑qt(x)gt(x)其中,gt(x)g_t(\bold x)gt(x)为基本的假设,位于路径ttt的叶子节点,是一个...原创 2020-05-05 00:29:02 · 231 阅读 · 0 评论 -
Coursera - 机器学习技法 - 课程笔记 - Week 8
Adaptive BoostingMotivation of Boosting我们拥有一系列简单的弱假设gtg_tgt,,目标利用这些弱假设获得一个足够复杂的强假设,需要一个算法来指导发现这些弱假设,并将他们融合起来Diversity by Re-weighting针对不同权重数据样本的加权误差Einu(h)=1N∑n=1Nun⋅[[yn≠h(xn)]]E_{in}^u(h)...原创 2020-05-05 00:28:29 · 278 阅读 · 0 评论 -
Cousera - Machine Learning for Neural Networks - 课程笔记 - Week 15
Modeling Hierarchical Structure with Neural NetsFrom PCA to AutoencodersPCA主成分分析对NNN维数据,寻找MMM个具有数据最大方差的正交方向这MMM个主方向形成了一个相对低维的子空间PCA通过向这MMM个方向的投影,实现了从高维空间到低维空间的映射尽管剩余方向的信息丢失,但是由于具有极少的方差,这些正交方向...原创 2020-05-05 00:27:49 · 206 阅读 · 0 评论 -
Coursera - Algorithm (Stanford) - 课程笔记 - Week 6
Dijkstra’s Shortest Path Algorithm单源最短路输入:有向图G=(V,E)G=(V, E)G=(V,E),要求所有边权非负,给定源点sss输出:计算从sss到所有v∈Vv \in Vv∈V的最短路径长度两个假设:(方便起见)所有点vvv都存在从sss到达之的路径所有边权值非负BFS求解最短路?只能处理边权均为1(或者所有的边权均一致)的...原创 2020-05-05 00:27:07 · 247 阅读 · 0 评论 -
Coursera - Algorithm (Stanford) - 课程笔记 - Week 5
Graph Search概览图搜索:寻找从图中A点到达B点的一条路径动机检查网络是否全联通(从任意位置可以到达任意位置)地图导航制定策略,结点为状态,边为状态转移过程,寻找状态路径作为决策方案计算联通分量通用图搜索方法目标给定一个顶点,寻找所有的可搜索信息(顶点、边)不要探索任何内容两次——线性时间运行O(m+n)O(m + n)O(m+n)通用思路初始...原创 2020-05-05 00:26:31 · 257 阅读 · 0 评论 -
Coursera - 机器学习技法 - 课程笔记 - Week 7
Blending and BaggingMotivation of Aggregation集成模型:混合或者组合多个假设的结果得到最后的结果Validation:选择最佳(最小验证误差)假设进行预测G(x)=gt∗(x)G(\bold x) = g_{t_\ast}(\bold x)G(x)=gt∗(x)等权重叠加:G(x)=sign(∑t=1T)1⋅gt(x)G(\bold x...原创 2020-05-05 00:25:40 · 249 阅读 · 0 评论 -
Coursera - 机器学习技法 - 课程笔记 - Week 6
Support Vector RegressionKernel Ridge Regression类似对LR的处理,利用对最佳权重的表示理论,有:minβλN∑n=1N∑m=1NβnβmK(xn,xm)+1N∑n=1N(yn−∑m=1NβmK(xn,xm))2\min_\beta \frac \lambda N \sum_{n = 1}^N \sum_{m = 1}^N \beta_n...原创 2020-05-05 00:25:16 · 255 阅读 · 0 评论 -
Coursera - 机器学习技法 - 课程笔记 - Week 5
Kernel Logistic RegressionSoft-Margin SVM as Regularized松弛变量ξn\xi_nξn:记录样本对margin的违反程度ξn=max(1−yn(wTzn+b),0)\xi_n = \max (1 - y_n ( \bold w^{\mathrm{T}} \bold z_n + b), 0)ξn=max(1−yn(wTzn+b...原创 2020-05-05 00:24:36 · 196 阅读 · 0 评论 -
Coursera - 机器学习技法 - 课程笔记 - Week 4
Soft-Margin Support Vector MachineMotivation and PrimalSVM仍然会过拟合——允许样本适当地违反“可分”要求,放弃对一些噪声样本的正确分类pocket PLA允许错点,hard-margin要求全部分对混合?允许错点的SVM大margin+噪声容忍——用系数CCC进行权衡只允许小错误QP可优化问题(二次目标,一次约束)S...原创 2020-05-05 00:24:00 · 231 阅读 · 0 评论 -
Coursera - 机器学习技法 - 课程笔记 - Week 3
Kernel Support Vector MachineKernel Trick对偶过程似乎让SVM摆脱了d~\tilde dd~带来的维数灾难但是实际上,d~\tilde dd~仍然存在于整个QP的二次项系数中:qn,m=ynymznTznq_{n, m} = y_n y_m \bold z_n^{\mathrm{T}} \bold z_nqn,m=ynymznTzn内积操...原创 2020-05-04 00:13:30 · 224 阅读 · 0 评论 -
Coursera - 机器学习技法 - 课程笔记 - Week 2
Dual Support Vector MachineMotivation of Dual SVM非线性SVM:直接将x\bold xx换成z=Φ(x)\bold z = \Phi(\bold x)z=Φ(x)QP问题处理d~+1\tilde d + 1d~+1个变量,NNN个约束对偶问题,有NNN个变量,N+1N + 1N+1个约束,与转换的空间无关利用拉格朗日乘子法,...原创 2020-05-04 00:12:55 · 252 阅读 · 0 评论 -
Coursera - 机器学习技法 - 课程笔记 - Week 1
Linear Support Vector MachineLarge-Margin Separating Hyperplane线性可分情形存在一个“解集”哪个解是最优的?PLA算法中随机得到根据VC边界,每个解的效果都一样Eout(w)≤Ein(w)+Ω(H)E_{out}(\bold w) \le E_{in}(\bold w) + \Omega(\mathcal{H})Eou...原创 2020-05-04 00:12:06 · 283 阅读 · 0 评论 -
Cousera - Machine Learning for Neural Networks - 课程笔记 - Week 14
Deep Neural Nets with Generative Pre-trainingLearning Layers of Features by Stacking RBMs层叠RBM的训练先训练一层RBM然后将这一层RBM的激活值作为输入训练第二层RBM不断叠加称之为深度信念网络最顶层仍然类似RBM底层变成有向图,仅由隐藏层指向可视层整体不再是玻尔兹曼机,因为...原创 2020-05-04 00:11:28 · 242 阅读 · 0 评论 -
Coursera - 机器学习基石 - 课程笔记 - Week 16
Three Learning PrinciplesOccam’s Razor数据的解释应做到最简单,但不能比这个更简单去除不必要解释最简单的解释就是最好的简单的假设小的假设集合更少的参数简单的模型候选模型不会很多包含少量的假设Sampling Bias如果数据的采样存在一定的偏差,那么学到的模型也会有类似的偏差根据对测试环境的了解,让训练环境与测试环境尽...原创 2020-05-04 00:10:30 · 184 阅读 · 1 评论 -
Coursera - 机器学习基石 - 课程笔记 - Week 15
ValidationModel Selection Problem模型选择:选择最佳的路线组合选择Hm∗\mathcal{H}_{m^{\ast}}Hm∗以保证gm∗=Am∗(D)g_{m^{\ast}} = \mathcal{A}_{m^{\ast}}(\mathcal {D})gm∗=Am∗(D)具有一个比较低的Eout(gm∗)E_{out}(g_{m^{\ast}})Eout...原创 2020-05-04 00:09:53 · 229 阅读 · 0 评论 -
Coursera - 机器学习基石 - 课程笔记 - Week 14
RegularizationRegularized Hypothesis Set过拟合线性通过正则化约束到更好的拟合状态通过正则化从高阶拟合转换为低阶拟合低阶多项式可以视为高阶系数均为极小值的高阶多项式高阶转换为低阶:向高阶系数施加限制优化目标变成含约束的优化问题——高阶系数非常小可以扩展解决问题的视野——任意k个系数非常小,可以有更好的性能后者比前者相对宽松,但是要比完全...原创 2020-05-04 00:09:26 · 249 阅读 · 0 评论 -
Coursera - 机器学习基石 - 课程笔记 - Week 13
Hazard of OverfittingWhat is Overfitting?高阶h拟合低阶f产生的样本,可以得到唯一解,造成Ein(g)=0E_{in}(g) = 0Ein(g)=0但是这样的情形下,完美拟合既有样本,无法“举一反三”,Eout(g)E_{out}(g)Eout(g)非常大大的dvcd_{vc}dvc,往往会造成糟糕的泛化能力指定最小EoutE...原创 2020-05-04 00:08:51 · 233 阅读 · 0 评论 -
Cousera - Machine Learning for Neural Networks - 课程笔记 - Week 13
Stacking RBMs to make Deep Belief NetsBelief Nets当年,反向传播为什么”错“了需要大量的已标记数据(那个时候并没有)学习时间没有很好的控制,多隐藏层网络的训练过程极为缓慢可能会困在局部最优解使用无监督学习克服反向转播的限制使用梯度方法更新矩阵,保证整体的高效和简洁但是使用这一方法仅对输入的结构进行建模,而非对输入与输出的关系...原创 2020-05-04 00:05:54 · 181 阅读 · 0 评论 -
Coursera - 机器学习基石 - 课程笔记 - Week 12
Nonlinear TransformationQuadratic Hypothesis一些线性变化无法使用的场景:非线性可分得数据集圆形可分x∈Xx \in \mathcal Xx∈X到线性可分z∈Zz \in \mathcal Zz∈Z:使用非线性特征变换Φ\PhiΦ简单映射:z0=cz_0 = cz0=cz1=x12z_1 = x_1^2z1=x12z2=x22z_2...原创 2020-05-04 00:04:49 · 250 阅读 · 0 评论 -
Coursera - 机器学习基石 - 课程笔记 - Week 11
Linear Models for ClassificationLinear Models for Binary Classification一个思路:使用线性回归或者逻辑回归三类任务的误差上界:err0/1(s,y)≤errSCE(s,y)=1ln2errCE(s,y)err_{0/1}(s,y) \le err_{SCE}(s,y) = \frac 1 {\ln 2} err_{CE...原创 2020-05-03 00:57:49 · 195 阅读 · 0 评论 -
Coursera - 机器学习基石 - 课程笔记 - Week 10
Logistic RegressionLogistic Regression Problem二元分类:尝试明确“是”或者“否”“软”二元分类:尝试明确“是”的概率P(+1∣x)P(+1|\bold x)P(+1∣x)我们希望在完成第二个任务时,希望能够有直接对应的标签(概率),但是只有第一个任务的结果将二元标签(是和否)视为概率式标签的含噪声版本使用和“硬”二元分类相同的数据,希望...原创 2020-05-03 00:55:06 · 200 阅读 · 0 评论 -
Coursera - Algorithm (Stanford) - 课程笔记 - Week 4
Linear-Time Selection问题输入:一个n长度数组,每一个值均来自1到n之间的整数,且各不相同输出:第i个顺序统计量向排序问题规约(O(nlogn)O(n \log n)O(nlogn))使用归并排序返回排序后的数组的第i个元素线性随机化算法设集(数组A,长度n,顺序统计量i)如果n为1,那么返回A[1](有且只有这一个统计量)从n个数中,均匀随...原创 2020-05-03 00:54:23 · 448 阅读 · 0 评论 -
Coursera - Algorithm (Stanford) - 课程笔记 - Week 3
Quicksort - Algorithm关键思想:在枢轴两侧划分数组(左小右大),因此需要重点考虑枢轴的选择两个关于划分的有趣事实线性时间完成操作(O(n)O(n)O(n)),且不需要额外内存减小了问题的尺寸(应用分治法的关键)基本算法过程如果当前子问题处理的长度为1,返回否则令p为当前子问题的序列的枢轴将当前问题的序列划分到枢轴的两侧对枢轴的两侧分别进行递归...原创 2020-05-03 00:54:00 · 272 阅读 · 0 评论
分享