├── .vscode ├── settings.json └── study-notes.code-workspace ├── CHANGELOG.MD ├── ComputerGraphics └── Fundamentals_of_ComputerGraphics_PeterShirley │ └── Ch01.md ├── Database └── MySQL │ ├── DataType.md │ └── Engine.md ├── Deep-Learning ├── Deep-Learning-Flower │ ├── Ch08.md │ ├── Ch09.md │ ├── Ch10.md │ ├── Ch14.md │ ├── Ch15.md │ └── reference.md ├── Div-into-Deep-Learning │ ├── Ch05.md │ └── pictures │ │ └── Figure_2.jpeg └── Neural-Network-Design-Hagan │ ├── Ch04.md │ └── Ch09.md ├── Machine-Learning ├── Classification-PPT.md ├── Ensemble-Learning.md ├── InterviewQuestions.md ├── ML-Architecture.md ├── Machine-Learning-Mitchell │ └── Ch06.md ├── Machine-Learning-Watermelon │ ├── Ch01-Exercises.md │ ├── Ch01.md │ ├── Ch02.md │ ├── Ch03.md │ ├── Ch04.md │ ├── Ch05.md │ ├── Ch07.md │ ├── Ch08.md │ ├── Ch09.md │ ├── Ch11.md │ ├── appB.md │ └── reference.md ├── Outline.md ├── Regression-PPT.md ├── Skills.md ├── Statistical-Learning-Method-Blue │ ├── Ch01.md │ ├── Ch02.md │ ├── Ch03.md │ ├── Ch04.md │ ├── Ch05.md │ ├── Ch06.md │ ├── Ch07.md │ ├── Ch08.md │ ├── Ch09.md │ ├── Ch10.md │ ├── Ch11.md │ ├── Ch12.md │ ├── appC.md │ ├── pandoc-pdf.yaml │ ├── pandoc-tex.yaml │ ├── pandoc_SLM.bat │ ├── preface.md │ └── slm.yaml ├── favorites.md ├── media │ ├── 2472695312bcf1ee97aedafb5da57295.png │ ├── 2b6208784190c377ef75bc73fbdd4822.jpg │ ├── 45b4c84c57435b84c9751fd1990290b6.png │ └── b00af63c332d617798d7ae0cd545c3a3.jpg ├── metadata.yaml ├── pandoc_ml.bat ├── pictures │ ├── 13256158-77c64eba1c5f4004.jpg │ ├── 13256158-9a7a4ab653c729bb.png │ ├── 13256158-c113126a5bab8cd2.png │ ├── 13256158-d43092fb713901ab.jpg │ ├── 13256158-d978fbc27d01c98d.jpg │ ├── 20180317091319259 │ └── v2-a2e753542fc6384ee351cabdbe6dd523_720w.jpg ├── reference.md ├── 机器学习高频面试题(41道).md └── 深度学习常见优化算法总结.md ├── NLP ├── BERT │ ├── BERT-Introduction-Train.md │ ├── Transformer-Bert-Practice │ │ ├── BERT原理及实现.md │ │ ├── Transformer.md │ │ └── pictures │ │ │ ├── 20181113111515476.png │ │ │ ├── Attention.png │ │ │ ├── MultiHeadAttention.png │ │ │ ├── Transformer.png │ │ │ ├── TransformerStack.png │ │ │ ├── image-20200901104633208.png │ │ │ ├── image-20200902094933626.png │ │ │ ├── image-20200904174434544.png │ │ │ └── image-20200904175102652.png │ ├── pictures │ │ ├── 20190407192340124.png │ │ ├── 20190407192410359.png │ │ ├── 20190407192513747.png │ │ ├── 20190407192535309.png │ │ ├── 20190407192629833.png │ │ ├── 20190407192705272.png │ │ ├── 20190407192722990.png │ │ ├── 20190407192750154.png │ │ ├── 20190407192831885.png │ │ ├── 20190407192854589.png │ │ ├── 20190407192949549.png │ │ ├── 20190407193013426.png │ │ ├── 2019040719302689.png │ │ ├── 20190407193050891.png │ │ ├── 20190407193133441.gif │ │ ├── 20190407193205893.gif │ │ ├── 20190407193223473.gif │ │ ├── 20190407193243788.gif │ │ ├── 20190407193306430.png │ │ ├── 2019040719332630.png │ │ ├── 20190407193344547.png │ │ ├── 20190407193410827.png │ │ ├── 20190407193428125.png │ │ ├── 20190407193445308.png │ │ ├── 20190407193506971.png │ │ ├── 20190407193524753.png │ │ ├── 2019040719354095.png │ │ ├── 20190407193558607.png │ │ ├── 20190407193641706.png │ │ ├── 20190407193700332.png │ │ ├── 2019040719371928.png │ │ ├── 20190407193730682.png │ │ ├── 20190407193742137.png │ │ ├── 20190407193756162.png │ │ ├── 20190407193805560.png │ │ ├── 20190407193820725.png │ │ ├── 20190407193828541.png │ │ ├── 20190407193916505.png │ │ ├── 2019040719394179.png │ │ ├── 20190407193953348.png │ │ ├── 20190407194002495.png │ │ ├── 20190407194033648.png │ │ ├── 20190407194054634.png │ │ ├── 20190407194120538.png │ │ ├── 20190407194131428.png │ │ ├── 20190407194141481.png │ │ ├── 20190407194149597.png │ │ ├── 20190407194245766.png │ │ ├── 20190407194312495.png │ │ ├── 20190418225942611.png │ │ ├── 20190623234641714.jpg │ │ ├── 2019062323474479.jpg │ │ ├── 20190623234803769.jpg │ │ ├── 2019062323481629.jpg │ │ ├── 20190623234836973.jpg │ │ ├── 20190625090614245.png │ │ ├── 20190625094348755.png │ │ ├── 20190625094424708.png │ │ ├── 20190625100244308.png │ │ ├── 20190625100602310.png │ │ ├── 20190625100926500.png │ │ ├── 20190625101001478.png │ │ ├── 20190625101639261.png │ │ ├── 20190625101755565.png │ │ ├── 20190625102044120.png │ │ ├── DAE.png │ │ ├── Transformer.png │ │ ├── aHR0cHM6Ly9pbWcyMDE4LmNuYmxvZ3MuY29tL2Jsb2cvMTIxNDU2NS8yMDE5MDEvMTIxNDU2NS0yMDE5MDExNjExMTk1NTUwMC0xNjE1MDE5ODk1LnBuZw │ │ ├── aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X3BuZy9WQmNEMDJqRmhna1hRSmliWnczcjQ4SUtTa3psWDdJQzQybTltMDM5WllTQjdJNk9rdGM5TE9zTDRLUWV1RXRiTEppYjZhZjdudzNoNVdIdXdycXViaklnLzY0MA │ │ ├── aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X3BuZy9WQmNEMDJqRmhna1hRSmliWnczcjQ4SUtTa3psWDdJQzRJTm95dFBWcldERnFpY21LaGhKSHhpYmIxUFk0bG1sSjhNSFFvd0tHektnSzAxM0NmMGU0aWM0SHcvNjQw │ │ ├── aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X3BuZy9WQmNEMDJqRmhna1hRSmliWnczcjQ4SUtTa3psWDdJQzRVZjMyRmptM0pEUTdFeElLc2Z5Zm5vRmVhdmVBa0xGaWJjNVRoRVQ4RHpZTjU5VGo3TUpudG5BLzY0MA │ │ ├── aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X3BuZy9WQmNEMDJqRmhna1hRSmliWnczcjQ4SUtTa3psWDdJQzRhWEJDTE1pY1dHTk91Q0ZmSHFKc0pxU0JWQ0ExVmtPelNRQ0M2aWNCNzN3Z1ZJUzNxaWFZRGExVHcvNjQw │ │ ├── aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X3BuZy9WQmNEMDJqRmhna1hRSmliWnczcjQ4SUtTa3psWDdJQzRpYWljYkZpY2g2dm13NUd2R2g5dHpmdmljaWFDNTk2V3RpYUZuYVZPV1JHWnQ3enJpYlpzNGdDeHRwbkpnLzY0MA │ │ ├── aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X3BuZy9WQmNEMDJqRmhna1hRSmliWnczcjQ4SUtTa3psWDdJQzRpYjZyNGliS0pnZVUyZnpaUTNEQld3eWljRGliWEFYTG56dUdrVDg4ZTd5VHBuOUtpYkRLMkJHTFhNZy82NDA │ │ ├── articleReadEyes.png │ │ ├── original.png │ │ ├── reprint.png │ │ └── tobarCollect.png │ ├── 一文读懂BERT(原理篇).md │ └── 一本读懂BERT(实践篇).md ├── ELMO │ ├── ELMO原理解析及简单上手应用.md │ └── pictures │ │ ├── v2-1adc25f6b5fe0725c09721f00e2a14e9_720w.png │ │ ├── v2-1df81dcd1abd16211bff4de236f7712e_720w.png │ │ ├── v2-3186d5a8925cbf847f4f95b443adfd88_720w.jpg │ │ ├── v2-345b19f7a16e385b50a242b9995b4087_720w.jpg │ │ ├── v2-443008ce3b8560978240ad4c9cfb58ba_720w.jpg │ │ ├── v2-4848f57225e1418b95c9585a3852ab35_720w.jpg │ │ ├── v2-535107dfb0177ea3b1580e6285ed1079_720w.jpg │ │ ├── v2-809a7a9ed921a3677a5d7990cd8c8cae_720w.jpg │ │ ├── v2-8c6b74ec614dfee1fb0f9b5939440e6b_720w.jpg │ │ ├── v2-ac26103620445a6b1c9d0ed21c5e675a_720w.jpg │ │ ├── v2-ad209a5f2d1b08313048633db67f9e07_720w.jpg │ │ ├── v2-b5c14a732b50e37d33fd1cf220567746_720w.jpg │ │ ├── v2-bdd9b75bc8332f59bb0aff346c706759_720w.jpg │ │ ├── v2-c66013495482255e44047a96c0acf297_xs.jpg │ │ ├── v2-d97689c222c00264aab54e9727bc8310_720w.jpg │ │ ├── v2-ef5cb573f0c859a420515d3a5b71bbeb_720w.jpg │ │ ├── v2-f8da5bf83e43beb917d7e33b5b7e2dc3_1440w.jpg │ │ └── v2-f8eaf27198e9061724ee7327ebb7b476_720w.png ├── GloVe │ ├── GloVe算法原理及简单使用.md │ └── pictures │ │ ├── v2-000c04ef78a33f952806059c98c15ca6_1440w.jpg │ │ ├── v2-0f0998384e006356e26735f0156a3412_720w.jpg │ │ ├── v2-15d5bfc7ab95a0e889ea5313dc7fe13b_720w.jpg │ │ ├── v2-27cea2e42a34843d2f2a38d0b0f14cb5_720w.jpg │ │ ├── v2-34f39e752c25e8b934c9f93346d28968_720w.jpg │ │ ├── v2-439bc07a4adeebca173bce142494962a_720w.jpg │ │ ├── v2-4728ee9a2619d71536366fd3827ab7d6_720w.jpg │ │ ├── v2-4d6ef3e0667e38ac2013679051b97e2c_720w.jpg │ │ ├── v2-52ddaed9e20538f98da9946d6de9015b_720w.jpg │ │ ├── v2-541c2f915b4f539ca638dc210e93c7d2_720w.jpg │ │ ├── v2-560b26cd5e7e6acafa7f40976129a297_720w.jpg │ │ ├── v2-60dcd5a9f7efe8df16c81c00a67f2eb6_720w.jpg │ │ ├── v2-631ea18146d5176c9819f4fc974f1fa3_720w.jpg │ │ ├── v2-69984606bc8985613d2e6c9f2606f4be_720w.jpg │ │ ├── v2-728cadd761bfd6594ccfbd953bccdf84_720w.jpg │ │ ├── v2-75f4ddb9d7d2fe27e9b8bb06af6b47c9_720w.jpg │ │ ├── v2-88481bb6ec1e650791757e2ff7dc9512_720w.jpg │ │ ├── v2-af19ebae55a74d0da898c833f2c239d6_720w.jpg │ │ ├── v2-b02cb5e49eaba0dfbf2dbd1dc509961f_720w.jpg │ │ ├── v2-c2377112b2ca1286eabe9068bb8723d7_720w.jpg │ │ ├── v2-c66013495482255e44047a96c0acf297_xs.jpg │ │ ├── v2-ecd572c4b9dc869bdb4f5fa0658eace1_720w.jpg │ │ └── v2-f1226d49864b0400fa41e95fa3db4a69_720w.jpg ├── Introduction-to-CNLP │ ├── Ch01.md │ └── Ch02.md ├── NNM-for-NLP │ ├── Ch01.md │ ├── Ch02.md │ ├── Ch04.md │ ├── Ch08.md │ └── Ch13.md └── SLP-Speech-Language-Processing-II │ ├── Ch01.md │ ├── Ch12.md │ ├── Ch15.md │ ├── Ch16.md │ ├── Ch17.md │ ├── Ch18.md │ ├── Ch23.md │ ├── Preface.md │ └── README.md ├── PPT └── Transformer 模型.pptx ├── Pattern-Recognition ├── PRML │ ├── Ch01.md │ ├── Ch02.md │ ├── Ch03.md │ ├── Ch04.md │ ├── Ch05.md │ ├── Ch06.md │ ├── Ch07.md │ ├── Ch08.md │ ├── Ch09.md │ ├── Ch10.md │ ├── Ch14.md │ ├── pandoc_PRML.bat │ ├── preface.md │ ├── prml-notes.pdf │ ├── prml-pdf.yaml │ └── prml.yaml ├── Pattern-Classification-Duda │ ├── Ch02.md │ ├── Ch03.md │ ├── Ch05.md │ └── Ch09.md ├── Pattern-Recognition-Sergios │ ├── Ch01.md │ ├── Ch02.md │ └── Ch03.md └── Statistical-Pattern-Recognition-Andrew │ └── Ch02.md ├── README.md ├── Tools ├── Git │ ├── CI&CD │ │ ├── GitLab&Jenkins概述.md │ │ └── image │ │ │ └── GitLab&Jenkins概述 │ │ │ ├── 1679655212645.png │ │ │ ├── 1679655247835.png │ │ │ ├── 1679655294474.png │ │ │ ├── 1679655314780.png │ │ │ ├── 1679655346100.png │ │ │ └── 1679655364265.png │ ├── Github │ │ └── Github入门 │ │ │ ├── Ch01.md │ │ │ ├── Ch02.md │ │ │ ├── Ch03.md │ │ │ ├── Ch04.md │ │ │ ├── Ch05.md │ │ │ ├── Ch06.md │ │ │ ├── Git_PPT.md │ │ │ └── image │ │ │ └── Git_PPT │ │ │ ├── 1679448880801.png │ │ │ ├── 1679454028824.png │ │ │ ├── 1679454221615.png │ │ │ ├── 1679454646625.png │ │ │ └── 1679455544764.png │ └── 精通Git(Pro Git) │ │ ├── Ch01.md │ │ └── Ch01_PPT.md └── Python 数据挖掘 工具包整理.md ├── Translate └── Pandoc-User-Guide-CN.md ├── examples └── README.MD ├── exercises ├── 01-NLP常见基础知识.md ├── 02-LDA主题模型.md ├── README.MD ├── 回归问题.md ├── 回归问题 │ └── 一元线性回归.md ├── 线性分类问题.md ├── 自然语言处理面试问题集.md └── 贝叶斯学习.md ├── gitppt.css ├── media └── v2-a2e753542fc6384ee351cabdbe6dd523_720w.jpg └── template ├── reference.pptx └── zYxTom.tex /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "cSpell.words": [ 3 | "aapo", 4 | "akaike", 5 | "alpha", 6 | "beta", 7 | "binom", 8 | "bishhop", 9 | "bmatrix", 10 | "boldsymbol", 11 | "chi", 12 | "de", 13 | "delta", 14 | "duda", 15 | "epsilon", 16 | "eta", 17 | "gamma", 18 | "geof", 19 | "groot", 20 | "hoeting", 21 | "infty", 22 | "iota", 23 | "jesen", 24 | "jurafsky", 25 | "kappa", 26 | "kullback", 27 | "lambda", 28 | "leibler", 29 | "mathbb", 30 | "mathbf", 31 | "mathcal", 32 | "mcmc", 33 | "minkowski", 34 | "mu", 35 | "multinomial", 36 | "napierian", 37 | "nu", 38 | "omega", 39 | "pandoc", 40 | "parzen", 41 | "penrose", 42 | "phi", 43 | "pi", 44 | "prml", 45 | "propto", 46 | "psi", 47 | "rho", 48 | "rightarrow", 49 | "sigma", 50 | "simeq", 51 | "snlp", 52 | "tau", 53 | "theta", 54 | "tikhonov", 55 | "typora", 56 | "upsilon", 57 | "varepsilon", 58 | "varphi", 59 | "varpi", 60 | "varrho", 61 | "varsigma", 62 | "vartheta", 63 | "xi", 64 | "zeta" 65 | ] 66 | } -------------------------------------------------------------------------------- /.vscode/study-notes.code-workspace: -------------------------------------------------------------------------------- 1 | { 2 | "folders": [ 3 | { 4 | "path": ".." 5 | }, 6 | { 7 | "name": "StudyNotes-CN @ 3899ac1", 8 | "uri": "gitlens://3899ac1/c:/Users/Administrator/Documents/GitHub/StudyNotes-CN?{\"path\":\"/c:/Users/Administrator/Documents/GitHub/StudyNotes-CN\",\"ref\":\"3899ac16a662dad846db12cd2b19b02f78830616\",\"repoPath\":\"c:/Users/Administrator/Documents/GitHub/StudyNotes-CN\"}" 9 | } 10 | ], 11 | "settings": {} 12 | } -------------------------------------------------------------------------------- /CHANGELOG.MD: -------------------------------------------------------------------------------- 1 | # Change Log 2 | 3 | ## [TODO] 4 | 5 | ## [Unreleased] 6 | 7 | ## [Released] 8 | 9 | - 2020-08-30 10 | - 《基于深度学习的自然语言处理》Ch01 11 | - 《基于深度学习的自然语言处理》Ch02 ( Sec 2.1~2.4 ) 12 | -------------------------------------------------------------------------------- /ComputerGraphics/Fundamentals_of_ComputerGraphics_PeterShirley/Ch01.md: -------------------------------------------------------------------------------- 1 | # Ch01 2 | 3 | ## 引言 4 | 5 | 计算机图形学(Computer Graphics)是利用计算机技术创建和处理图像的理论、方法和技术。 6 | 7 | ## 1.1 图形学领域 8 | 9 | - 建模:对形状和外观性质进行数学定义,并且能够存储在计算机中。 10 | - 绘制(Rendering):根据三维计算机模型生成带阴影的图像。 11 | - 动画:利用图像序列,产生物体运动的视觉效果的一种技术。 12 | - 人机交互:在输入设备、应用程序和以图形或者其他感官方式向用户改善的反馈之间建立接口。 13 | - 虚拟现实:试图让用户转向于三维虚拟世界 14 | - 可视化:试图通过视觉显示让用户看得更加明白 15 | - 图像处理:对二维图像进行处理 16 | - 三维扫描:利用测距技术建立三比邻 测量模型 17 | 18 | ## 1.2 主要应用 19 | 20 | - 视频游戏:复杂的三维模型和绘制算法 21 | - 动画片:根据三比邻 模型生成 22 | - 电影特效:使用数字合成技术 23 | - CAD/CAM:计算机辅助设计与计算机辅助制造。利用计算机技术在计算机内设计零件和产品,然后用这些虚拟设计指导生产过程 24 | - 仿真:精确的视频游戏 25 | - 医学成像:根据病人的检查数据创建有意义的图像 26 | - 信息可视化:将数据以图像的方式显示出来 27 | 28 | ## 1.3 图形学 API 29 | 30 | 应用程序接口(API):是一种软件接口,为应用程序访问系统功能提供了一种模型。 31 | 32 | - 多数 API 都具有使用 回调(callback)的用户界面工具包。回调:指通过函数指针或者虚函数向低层函数传递参数的过程。 33 | 34 | 当前主要的两种 API 模式: 35 | 36 | - Java 的集成方法:图形与用户界面工具包被集成在一起,而且都是可以移植的包,包是完全标准化的,并且作为语言的 一部分得到支持 37 | - Direct3D和OpenGL:画图命令是软件库的一部分,软件库与某种语言绑定(C++、Python),而且用户界面软件是独立的实体,随着系统的不同而不同。 38 | - 不方便编写可移植的代码 39 | 40 | ## 1.4 三维几何模型 41 | 42 | 一般的三维几何模型:球、立方体、圆锥、多边形等基本数学形状。最常用的模型由三维三角形组成,这些三角形共享顶点,常被称作三角形网格。 43 | 44 | ## 1.5 图形流水线 45 | 46 | 三维图形流水线(Graphic Pipline):是特别的软硬件子系统,能够高效给出透视图中的三维图元。 47 | 48 | 流水线的基本运算是把三维顶点位置映射到二维屏幕位置,并且对三角形进行明暗处理,使它们看起来比较真实,并且按照适当的前后层次显示。 49 | 50 | 前后层次绘制三角形的常用方法:通过 Z 缓冲器技术解决,利用特殊的存储缓冲区解决了蛮力算法中存在的问题 51 | 52 | 图形流水线中的几何运算,可以在四维坐标空间中实现。**四维坐标**由一般的三维几何坐标和利于处理透视问题的第4维齐次坐标组成。这些四维坐标主要用于 $4\times 4$ 的矩阵和四维向量。因此图形流水线中包含很多对矩阵和向量进行高效处理和组合运算的机制。 53 | 54 | 在表示模型时要采用不同的细节等级(LOD)。 55 | 56 | ## 1.6 数值问题 57 | 58 | IEEE浮点标准(IEEE Standardss Association, 1985)中的三个「特殊值」: 59 | 60 | - 无穷大($\infty$):比任何其他有效数都大的有效数 61 | - 负无穷大($-\infty$):比任何其他有效数都小的有效数 62 | - 无效数(NaN):由结果未定义的运算得到,例如:$0/0$ 63 | 64 | 常用的计算公式: 65 | $$ 66 | \begin{align*} 67 | \infty+\infty&=+\infty\\ 68 | \infty-\infty&=\text{NaN}\\ 69 | \infty\times\infty&=\infty\\ 70 | \infty/\infty&=\text{NaN}\\ 71 | \infty/a&=\infty\\ 72 | \infty/0&=\infty\\ 73 | 0/0&=\text{NaN}\\ 74 | +a/+0&=+\infty, a>0\\ 75 | -a/+0&=-\infty, a>0 76 | \end{align*} 77 | $$ 78 | 布尔表达式规则: 79 | 80 | 1. 所有有限的有效数都小于 $+\infty$ 81 | 2. 所有有限的有效数都大于 $-\infty$ 82 | 3. $-\infty$ 小于 $+\infty$ 83 | 4. 任何包含 NaN 的算术表达式,结果都是 NaN 84 | 5. 任何包含 NaN 的布尔表达式,结果都为假 85 | 86 | ## 1.7 效率 87 | 88 | 效率是对各个方面进行认真权衡后得到的,而权衡的标准随着系统体系结构的不同而不同。 89 | 90 | 优化的步骤: 91 | 92 | 1. 以最直接的方式编写代码,尽量直接计算数据而不存储它 93 | 2. 在优化模式下编译 94 | 3. 使用性能分析软件找到系统瓶颈 95 | 4. 检查数据结构,找出调整数据位置的方法 96 | 5. 重写源代码解决性能分析时发现的问题 97 | 98 | ## 1.8 软件工程 99 | 100 | 图形程序的关键是针对几何实体(向量和矩阵)、图形实体(RGB颜色和图像)都具有较好的类和例程。常见的基本类: 101 | 102 | - vector2:二维向量类,存储了x和y分量。将这些分量庆长度为 2 的数组中,以支持索引操作。同时还支持向量加法、向量减法、点积、叉积、标量乘法和标量除法 103 | - vector3:三维向量类,类似于vector2 104 | - hvector:四维向量类,包含了四个分量的齐次向量(参考:[Ch07](Ch07.md)) 105 | - rgb:包含了三个分量的 RGB 颜色。同时还支持 RGB 加法、RGB 减法、RGB 乘法、标量乘法和标量除法 106 | - transform:$4\times 4$ 变换矩阵。同时还支持矩阵乘法,以及求位置、方向和表面法向量的成员函数(参考:[Ch06](Ch06.md)) 107 | - image:由 RGB 像素构成的二维阵列,带一个输出操作 108 | 109 | ### 1.8.1 单精度和双精度 110 | 111 | 减少内存使用,并且保持一致的内存存取是提高效率的关键。 112 | 113 | - 几何运算使用双精度类型 114 | - 颜色运算使用单精度类型 115 | 116 | ### 1.8.2 内联 117 | 118 | 内联是实用类(如 RGB)提高效率的关键。 119 | 120 | ### 1.8.3 成员函数与非成员运算符 121 | 122 | 复杂的大数据量计算建议声明在类的外部,定义这种运算时,代码越简洁越好。参数传递尽量使用 const 引用形式。 123 | 124 | ### 1.8.4 包含保护符 125 | 126 | 所有类声明都应该具有包含保护符(include guard)。 127 | 128 | ### 1.8.5 编译调试 129 | 130 | 在代码中应该包含很多断言(assert)宏。 131 | 132 | ### 1.8.6 实验性调试 133 | 134 | 最难发现的错误都是概念上的错误,即实现的目标错了。 -------------------------------------------------------------------------------- /Deep-Learning/Deep-Learning-Flower/Ch09.md: -------------------------------------------------------------------------------- 1 | # C09. 卷积网络 2 | 3 | 卷积网络,也叫作卷积神经网络,是一种专门用来处理具有类似网络结构的数据的神经网络。 4 | 5 | - 时间序列数据:在时间轴上有规律地采样形成的一维网格 6 | - 图像数据:二维的像素网格 7 | 8 | ## 9.1 卷积运算 9 | 10 | 卷积:一种特殊的线性运算,是对两个实变函数的一种数学运算。 11 | 12 | $$ 13 | s ( t ) = ( x*w ) ( t ) 14 | $$ 15 | 16 | - 卷积的第一个参数 ( 函数 $x$ ) 叫作输入,通常是多维数组的数据 17 | - 卷积的第二个参数 ( 函数 $w$ ) 叫作核函数,通常是多维数组的参数 18 | - 卷积的输出,也叫作特征映射 19 | - 卷积是可交换的 ( commutative ) :$S ( i,j ) = ( K*I ) ( i,j ) =\sum_m\sum_n I ( i-m,j-n ) K ( m,n )$ 20 | - 机器学习也将互相关函数称之为卷积,其与卷积的区别为不可交换。 21 | 22 | 23 | 24 | ## 9.2 动机 25 | 26 | 卷积运算的三个重要思想: 27 | 28 | - 稀疏交互:也叫作稀疏连接或者稀疏权重。核的大小远小于输入的大小,处在网络深层的单元可能与绝大部分输入是间接交互的。网络通过只描述稀疏交互来描述多个变量的复杂交互。 29 | - 参数共享:模型的多个函数中使用相同的参数,即网络含有绑定的权重,在卷积神经网络中,核的每一个元素都作用在输入的每一位置上。卷积运算中的参数共享保证了只需要学习一个参数集合,从而把模型的存储需求降低到 $k$ 个参数 30 | - 等变表示:参数共享使得卷积神经网络层具有平移等变性质,即函数的输入发生改变时,输出也以同样的方式改变。 31 | - 当处理时间序列数据时,通过卷积可以得到一个由输入中出现不同特征的时刻所组成的时间轴。如果输入中的事件向后延时,在输出中完全相同的表示也会向后延时 32 | - 卷积对其他变换则不是天然等变的,需要其他机制来处理这些变换 33 | 34 | ## 9.3 池化 35 | 36 | 典型的卷积网络层由三级组成 37 | 38 | - 第一级 ( 卷积层 ) :并行地计算多个卷积产生一组线性激活响应 39 | - 第二级 ( 探测层 ) :每个线性激活响应通过一个非线性函数 40 | - 第三级 ( 池化层 ) :使用池化函数调整卷积层的输出 41 | - 池化函数使用某一位置的相邻输出的总体统计特征来代替网络在该位置的输出 42 | - 最大池化函数:给出相邻矩形区域内的最大值 43 | - 池化可以表示输入的近似不变 44 | - 平移的不变性:对输入进行少量平移时,经过池化函数后的大多数输出并不会发生改变 45 | - 池化是无限强的先验:这一层觉得的函数具有对少量平移的不变性 46 | - 池化基于的先验可以提高网络的统计效率 47 | - 因为池化综合了全部邻居的反馈,池化单元少于探测单元 48 | - 池化能够处理不同大小的输入,得到具有相同数量的统计特征 49 | - 池化可能会使得一些利用自顶向下信息的神经网络结构变得复杂 ( [Sec 20.6](Ch20.md) ) 50 | - 图 9.11 给出了用于分类的完整卷积网络结构的例子 51 | - 处理固定大小的图像的卷积网络 52 | - 处理大小可变的图像的卷积网络 53 | - 没有任何全连接权重层的卷积网络 54 | 55 | ## 9.4 卷积与池化用为一种无限强的先验 56 | 57 | 先验的强弱取决于先验中概率密度的集中程度 58 | 59 | - 弱先验具有较高的熵值,允许数据对于参数的改变具有更多的自由性 60 | - 例如:方差很大的高斯分布 61 | - 强先验具有较低的熵值,先验对于参数的控制力更强 62 | - 例如:方差很小的高斯分布 63 | - 无限强的先验:对参数的概率置零,并且完全禁止对这些参数赋值 64 | 65 | 卷积网络可以看作有一个无限强先验的全连接网络 66 | 67 | - 隐藏单元的权重必须与基邻居的权重相同,但是可以在空间上移动 68 | - 除了那些处在隐藏单元的小的空间连续的接受域内的权重外,其余的权重都为零 69 | - 先验说明这层觉得的函数只饮食局部连接关系,并且对平移具有等变性 70 | - 池化说明每个单元具有对少量平移的不变性 71 | - 无限强先验的全连接网络会导致欠拟合 72 | - 当先验的假设合理并且正确时才会有用 73 | - 如果一项任务依赖于保存精确的空间信息,那么在所有的特征上使用池化将会增大训练误差 74 | - 部分通道使用池化+部分通道不使用池化,既可以获得具有较高不变性的特征,又可以避免欠拟合的特征 75 | - 如果一项任务要对输入中相隔较远的信息进行合并时,那么卷积所利用的先验就可能是不正确的 76 | - 对比卷积模型的性能时,只能以基准中的其他卷积模型作为比较的对象 77 | - 有些模型具有转换不变性,并且必须通过学习发现其拓扑结构 78 | - 有些模型植入了空间关系的知识 79 | 80 | ## 9.5 基本卷积函数的变体 81 | 82 | 神经网络中的卷积是指由多个并行卷积组成的运算 83 | 84 | - 具有单个核的卷积只能提取一种类别的特征 85 | - 输入不仅仅是实值的网格,而是由一系列观测数据的向量构成的网格 86 | 87 | 零填充的三种情况 88 | 89 | - MATLAB 中的有效卷积:不使用零填充,并且卷积核只允许访问那些图像中能够完全包含整个核的位置 90 | - MATLAB 中的相同卷积:只进行足够的零填充来保持输出和输入具有相同的大小 91 | - MATLAB 中的全卷积:进行了足够多的零填充,使得每个像素在每个方向上恰好被访问了 $k$ 次,最终输出的图像的宽度为 $m+k-1$ 92 | 93 | 非共享卷积:局部连接的网络层,多层感知机对应的邻接矩阵是相同的,但是每个连接都有自己的权重,这个层与具有一个小核的离散卷积运算很像,但是并不横跨位置来共享参数 94 | 95 | 图 9.14 :局部连接、卷积和全连接的比较 96 | 97 | - 局部连接层:每条边都有自己的权重参数 98 | - 卷积层:模型与局部连接层完全相同,区别在于在整个输入上卷积层重复使用相同的权重 99 | - 全连接层:每条边都有自己的权重参数,但是不具有局部连接层的连接受限的特征 100 | 101 | 平铺卷积:对卷积层和局部连接层进行了折衷,不对每个空间位置的权重集合进行学习 102 | 103 | 图 9.16:局部连接、平铺卷积和标准卷积的比较 104 | 105 | - 局部连接层没有共享参数 106 | - 平铺卷积拥有多个不同的核 107 | - 传统卷积是只有一个核的平铺卷积 108 | -------------------------------------------------------------------------------- /Deep-Learning/Deep-Learning-Flower/Ch10.md: -------------------------------------------------------------------------------- 1 | # C10. 序列建模:循环和递归网络 2 | 3 | 循环神经网络 ( Recurrent Neural Networks, RNN ) 是用于处理序列数据的神经网络,序列数据的长度既可以是固定的,也可以是变长的。 4 | 5 | 在模型的不同部分共享参数,参数共享使得模型能够扩展到不同形式的样本并进行泛化: 6 | 7 | - 卷积操作允许网络跨时间共享参数,输出是一个序列,输出中的每一项是相邻几项输入的数据,利用每个时间步中使用相同的卷积核实现参数共享 8 | - 循环操作使得输出的每一项是前一项的函数,输出的每一项对先前的输出应用相同的更新规则产生,从而通过很深的计算图实现参数共享 9 | 10 | ## 10.1 展开计算图 11 | 12 | 计算图是形式化一组计算结构的方式。 ( [Sec 6.5.1](Ch06.md) ) 13 | 14 | - 展开 ( unfolding ) 递归或者循环计算得到的重复结构解释深度网络结构中的参数共享 15 | 16 | 动态系统的经典形式 ( 图 10-1 ) :$\pmb{s}^{( t )}=f ( \pmb{s}^{( t-1 )};\pmb{\theta} )$ 17 | 18 | - 系统的状态:$\pmb{s}^{( t )}$ 19 | 20 | 由外部信号$\pmb{x}^{( t )}$驱动的动态系统:$\pmb{s}^{( t )}=f ( \pmb{s}^{( t-1 )},\pmb{x}^{( t )};\pmb{\theta} )$ 21 | 22 | - 系统当前的状态包含了整个过去序列的信息 23 | 24 | 网络的隐藏单元的状态表示 ( 图 10-2 ) :$\pmb{h}^{( t )}=f ( \pmb{h}^{( t-1 )},\pmb{x}^{( t )};\pmb{\theta} ) =g^{( t )} ( \pmb{x}^{( t )},\pmb{x}^{( t-1 )},\pmb{x}^{( t-1 )},\cdots,\pmb{x}^{( 2 )},\pmb{x}^{( 1 )} )$ 25 | 26 | - 函数$g^{( t )}$将全部的过去序列$( \pmb{x}^{( t )},\pmb{x}^{( t-1 )},\pmb{x}^{( t-2 )},\cdots,\pmb{x}^{( 2 )},\pmb{x}^{( 1 )} )$作为输入来生成当前的状态,即利用展开的循环结构将函数$g^{( t )}$分解为函数$f$的递归运算 27 | 28 | 引入展开过程的两个主要优点: 29 | 30 | - 不受序列长度的影响,学成的模型始终具有相同的输入大小,因为它指定的是从一种状态到另一种状态的转移,而不是在可变长度的历史状态上操作 31 | - 在每个时间步使用相同参数的相同的转移函数$f$ 32 | 33 | ## 10.2 循环神经网络 34 | 35 | 循环神经网络的重要设计模式 36 | 37 | - ( 图 10-3 ) 每个时间步都产生一个输出,并且隐藏单元之间有循环连接的循环网络 38 | - 将输入序列的值$\pmb{x}$映射到输出序列的值$\pmb{o}$,输入序列与输出序列是相同的长度 39 | - 损失$L$衡量每个输出$\pmb{o}$与对应的目标$\pmb{y}$之间的距离,输入序列$\pmb{x}$与目标序列$\pmb{y}$的总损失就是所有时间步的损失之和 40 | - 可以将需要的关于过去任何信息放入隐藏表示 $\pmb{h}$ 中,并且基于 $\pmb{h}$ 传播到未来 41 | - ( 图 10-4 ) 每个时间步都产生一个输出,但是只有当前时刻的输出单元到下个时刻的隐藏单元之间有循环连接的循环网络 42 | - 可以将特定的输出值放入 $\pmb{o}$ 中,并且 $\pmb{o}$ 是允许传播到未来的唯一信息 43 | - ( 图 10-5 ) 读取整个序列后产生单个输出,隐藏单元之间有循环连接的循环网络 44 | 45 | ( 图 10-3 ) 循环神经网络的数学描述: 46 | 47 | - 权重矩阵$\pmb{U}$表示输入到隐藏的连接 48 | - 权重矩阵$\pmb{W}$表示隐藏到隐藏的循环连接 49 | - 权重矩阵$\pmb{V}$表示隐藏到输出的连接 50 | - 偏置:$\pmb{b}$ 和 $\pmb{c}$ 51 | - 反向传播算法称为通用时间反向传播 ( Back-Propagation Through Time, BPTT, Sec 10.2.2 ) 52 | - 梯度计算的运行时间是$\mathcal{O} ( \tau )$,并且无法并行运算,因为前向传播图是固定顺序的,每个不只能依序计算 53 | - 梯度运算的内存代价是$\mathcal{O} ( \tau )$,因为前向传播中的各个状态必须保存,直到它们在反向传播中被再次使用 54 | 55 | $$ 56 | \begin{align} 57 | \pmb{a}^{( t )}&=\pmb{b}+\pmb{Wh}^{( t-1 )}+\pmb{Ux}^{( t )}\\ 58 | \pmb{h}^{( t )}&=\tanh ( \pmb{a}^{( t )} ) \\ 59 | \pmb{o}^{( t )}&=\pmb{c}+\pmb{Vh}^{( t )}\\ 60 | \hat{\pmb{y}}^{( t )}&=\text{softmax} ( \pmb{o}^{( t )} ) \\ 61 | \end{align} 62 | $$ 63 | 64 | $$ 65 | \begin{aligned} 66 | L ( \{\pmb{x}^{( 1 )},\cdots,\pmb{x}^{( \tau )}\},\{\pmb{y}^{( 1 )},\cdots,\pmb{y}^{\tau}\} ) 67 | &=\sum_t L^{( t )} \\ 68 | &=-\sum_t\log p_{\text{model}} ( y^{( t )}|\{\pmb{x}^{( 1 )},\cdots,\pmb{x}^{( \tau )}\} ) 69 | \end{aligned} 70 | $$ 71 | 72 | ### 10.2.1 导师驱动过程和输出循环网络 73 | 74 | ( 图 10-4 ) 75 | 76 | - 缺点:仅在一个时间步的输出和下一个时间步的隐藏单元间存在循环连接的网络,不能模拟通用的图灵机。因为输出单元无法捕捉过去的所有信息用于预测未来,除非用户知道如何描述系统的全部状态,并且将这些状态作为训练目标的一部分 77 | - 优点:任何基于比较时刻$t$的预测和时刻$t$的训练目标的损失函数中的所有时间步都解耦了。因为训练集提供输出的理想值,所以没有必要先计算前一时刻的输出,因此训练可以并行化,即在各时刻$t$分别计算梯度。 78 | - 由输出反馈到模型而产生循环连接的模型可以使用的训练方法 79 | - 导师驱动过程 ( Teacher Forcing ) :适用于输出与下一个时间步的隐藏状态存在连接的 RNN。不再使用最大似然准则,而是时刻$t+1$接收真实值$y^{( t )}$作为输入 80 | - 如果网络在开环 ( open-loop ) 模式下使用,即网络的输出 ( 或者输出分布的样本 ) 反馈作为输入,那么训练期间网络看到的输入与测试期间网络看到的输入会有区别,那么使用导师驱动过程和自由运行的输入进行训练才能使网络学会在训练期间没有接触到的输入条件 81 | - BPTT 算法:如果隐藏单元是较早时间步的函数,BPTT 算法是必要的那么需要同时使用导师驱动过程和 BPTT 82 | -------------------------------------------------------------------------------- /Deep-Learning/Deep-Learning-Flower/Ch15.md: -------------------------------------------------------------------------------- 1 | # C15.Representation Learning 2 | 3 | 本章的目标 4 | 5 | - 表示学习(Representation Learning)的含义 6 | - 表示学习如何支持深度学习框架的设计,一个好的表示可以使后续的学习任务更加容易 7 | - 共享统计信息:无监督学习为监督学习提供信息 8 | - 监督学习训练的前馈网络也可以视为表示学习的一种形式 9 | - 基于各个隐藏层使表示能够更加容易完成训练任务 10 | - 迁移学习 11 | - 表示学习的优点 12 | - 分布式表示 13 | - 深度表示 14 | - 数据生成过程潜在假设描述了观测数据的基本成因 15 | - 提供了进行无监督学习和半监督学习的一种方法 16 | - 半监督学习通过进一步学习未飘游的数据来解决过拟合问题 17 | 18 | ## 15.1 Greedy Layer-Wise Unsupervised Pretaining 19 | 20 | 贪心逐层无监督预训练(Greedy Layer-Wise Unsupervise Pretaining),简称无监督预训练。训练的深度监督网络中不含有特殊的网络结构(例如:卷积、循环)。预训练依赖于单层表示学习算法(例如:受限玻尔兹曼机、单层自编码器、稀疏编码模型或者其他学习潜在表示的模型)。每一层使用无监督学习预训练,将前一层的输出作为输入,输出数据的新的表示。这个新的表示的分布有可能是更加简单的。 21 | 22 | 贪心逐层无监督预训练是一个贪心算法,即逐层寻找最优表示,每次处理一层网络,训练第$k$次时保持前面的网络层的参数不变。低层的网络(最先训练)不会在引入高层的网络后进行调整。 23 | 24 | - 无监督:是因为每一层用无监督表示学习算法训练 25 | - 预训练:是因为只是在联合训练算法精调(fine tune)所有层之前的第一步 26 | - 结合预训练和监督学习的两阶段学习统一称作「预训练」 27 | - 预训练可被看作监督学习的正则化项和参数初始化的一种形式 28 | - 预训练也可用作其他无监督学习算法的初始化 29 | 30 | 贪心逐层监督预训练算法:基于浅层模型的训练比深度模型更容易 31 | 32 | ### 15.1.1 When and Why Does Unsupervised Pretaining Work? 33 | 34 | 贪心逐层无监督预训练的应用目标 35 | 36 | - 能够在许多分类任务中减少测试误差。 37 | - 在处理单词任务时特别有效。 38 | - 对于标注样本数量非常小时帮助较大。 39 | - 对于学习的函数非常复杂时效果很好 40 | - 权重衰减正则化方法偏向于学习简单的函数 41 | 42 | 无监督预训练的两个重要理念 43 | 44 | - 基于深度神经网络来初始化模型参数,从而对模型产生显著的正则化效果 45 | - 预训练会初始化模型到一个可能不会到达的位置 46 | - 保持无监督学习阶段提取的信息的方法 47 | - 现代方法同时使用无监督学习和监督学习,而不是依序使用两阶段学习,这样 48 | - 固定特征提取器的参数,仅仅将监督学习作为顶层学成特征的分类器 49 | - 学习输入分布有助于学习从输入到输出的映射 50 | - 基于无监督学习得到的信息,在监督学习阶段模型会表现得更好 51 | 52 | 无监督预训练效果分析 53 | 54 | - 无监督预训练的神经网络训练停止的函数空间区域具有相似性,并且区域较小,从而减少了估计过程的方差,降低严重过拟合的风险,将有监督训练模型初始化为参数不易逃逸的区域,并且遵循这种初始化的结果更加一致,因此模型质量很差的可能性更低。 55 | - 有监督神经网络训练停止的函数空间区域则相对较广 56 | 57 | 无监督预训练模型使用场合 58 | 59 | - 预训练的网络越深,测试误差的均值和方差就下降得越多 60 | - 预训练学习算法会发现那些与生成观察数据的潜在原因相关的特征 61 | 62 | 无监督预训练的主要缺点:使用了两个单独的训练阶段 63 | 64 | - 没有明确的方法来调整无监督阶段正则化的强度 65 | - 每个阶段都具有各自的超参数,第二阶段的性能无法在第一阶段进行预测,因此在第一阶段得到的超参数和第二阶段根据反馈来更新之间存在较长的延迟。 66 | - 在监督阶段使用验证集上的误差来挑选预训练阶段的超参数 67 | 68 | ## 15.2 Transfer Learning and Domain Adaption 69 | 70 | 迁移学习和领域自适应指的是利用一个情景(分布$P_1$)中已经学到的内容去改善另一个情景(分布$P_2$)中的泛化情况。 71 | 72 | - 迁移学习(Transfer Learning):学习器必须执行两个或者更多不同的任务,前提假设为能够解释$P_1$变化的因素也能够解释$P_2$的变化 73 | - Ex1:在无监督学习任务和监督学习任务之间转移表示 74 | - 在监督学习中,输入是相同的,输出是不同的 75 | - 概念漂移(Concept Drift):也属于迁移学习,数据分布随时间而逐渐变化。 76 | - 多模态学习(Multimodal Learning):学习两种模态的表示,以及两种模态的观察结果组成的数据对之间的关系(通常是一个联合分布) 77 | - 多任务学习(Sec 7.7):多指监督学习任务 78 | - 迁移学习和概念漂移都属于多任务学习的特定形式 79 | - 广义的迁移学习也适用于无监督学习和强化学习 80 | - 领域自适应(Domain Adaption):在每个情景中的任务都是相同的,只有输入的分布稍有不同。 81 | - Ex1:情感分析任务,假设存在一个潜在函数可以判断任何语句是正面的、中性的还是负面的,只有词汇和风格会因领域而有差异,去噪自编码器能够应用于领域自适应的情感分析[^Glorot,2011] 82 | - 当存在对不同的情景或者任务有用的特征时,并且这些特征对应的多个情景出现的潜在因素,迁移学习、多任务学习和领域自适应都可以使用表示学习来实现,即具有共享底层和任务相关上层的学习框架 83 | - 当不同的任务之间共享的不是输入的语义,而是输出的语义,则共享神经网络的上层(输出附近)和进行任务特定的预处理是有意义的 84 | 85 | 表示学习 86 | 87 | - 目标:利用第一个情景下的数据提取信息,那些信息在第二个情景中学习时或者直接进行预测可能有用 88 | - 思想:相同的表示可能在两种情景中都是有用的,两个情景使用相同的表示,使得表示可以受益于两个任务的训练数据 89 | 90 | 迁移学习的极端形式 91 | 92 | - 一次学习(One-Shot Learning):只有一个标注样本的迁移任务。在第一阶段学习出的表示可以清楚地分离出潜在的类别。在迁移学习阶段,仅需要一个标注样本来推断表示空间中聚焦在相同点周围许多可能测试样本的标签。在学成的表示空间中,对应于不变性的变化因子已经与其他因子完全分离。 93 | - 零次学习(Zero-Shot Learning),也叫零数据学习(Zero-Data Learning):没有标注样本的迁移任务。需要在训练时使用额外信息(传统输入$x$,传统输出或者目标$y$,以及描述任务的附加随机变量$T$)。零次学习要求$T$表示为某种形式的泛化。 94 | - 零次学习是迁移学习的特殊形式 95 | -------------------------------------------------------------------------------- /Deep-Learning/Deep-Learning-Flower/reference.md: -------------------------------------------------------------------------------- 1 | # Reference 2 | 3 | [^Erhan,2010]: Erhan, D., Bengio, Y., Courville, A., Manzagol, P., Vincent, P., and Bengio, S. (2010). Why does unsupervised pre-training help deep learning? J. Machine Learning Res. 4 | [^Glorot,2011]: Glorot, X., Bordes, A., and Bengio, Y. (2011b). Domain adaptation for large-scale sentiment classification: A deep learning approach. In ICML’2011 . 5 | [^Hinton,1988]Hinton, G. E. and McClelland, J. L. (1988). Learning representations by recirculation. In NIPS’1987 , pages 358–366. 502 -------------------------------------------------------------------------------- /Deep-Learning/Div-into-Deep-Learning/pictures/Figure_2.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/Deep-Learning/Div-into-Deep-Learning/pictures/Figure_2.jpeg -------------------------------------------------------------------------------- /Deep-Learning/Neural-Network-Design-Hagan/Ch04.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Deep-Learning/Neural-Network-Design-Hagan/Ch09.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Machine-Learning/Classification-PPT.md: -------------------------------------------------------------------------------- 1 | # 分类问题 2 | 3 | ## 学习提纲 4 | 5 | - 模型分类 6 | - 判别模型 7 | - 概率判别式模型 8 | - 概率生成式模型 9 | - 线性可分的线性分类 10 | - 线性判别函数 11 | - 感知器算法 12 | - 梯度下降算法 13 | - 线性不可分的线性分类 14 | - Logistic 回归模型 15 | - Bayes 决策论 16 | - 线性判别分析 17 | - 支持向量机 18 | - 非线性可分的非线性分类 19 | - 基于核的支持向量机 20 | 21 | ## 线性可分的线性分类 22 | 23 | ### 线性判别函数 24 | 25 | 模型公式 26 | 27 | - $g ( \text{x} ) =\text{w}^T\text{x}+w_0=\dot{\text{w}}^T\dot{\text{x}}$ 28 | - $\text{w}$ 权值向量 29 | - $w_0$ 阈值 30 | - $\dot{\text{w}}= ( \text{w}^T,w_0 )^T$ 增广权值向量 31 | - $\text{x}$ 输入向量 32 | - $\dot{\text{x}}= ( \text{x}^T,1 )^T$ 增广输入向量 33 | 34 | ### 感知器算法 35 | 36 | $\dot{\text{w}}^{( t+1 )}=\dot{\text{w}}^{( t )}+\alpha y_n \dot{\text{x}}_n$ 37 | 38 | - $\text{w}$ 是参数向量 39 | - 参数向量与决策面垂直 40 | - $y_n\in\{-1,+1\}$ 41 | - $\text{x}_n\in\mathcal{E}$ 42 | - $\mathcal{E}$ 是分类错误的数据集 43 | - 注1:应该分到+1类的输入被错分,则参数向量朝向输入旋转,使输入更可能被正确分到+1类 44 | - 注2:应该分到-1类的输入被错分,则参数向量背离输入旋转,使输入更可能被正确分到-1类 45 | - $\alpha$ 是迭代因子,控制更新的步长 46 | 47 | ### 梯度下降算法 48 | 49 | 50 | 51 | ## 线性不可分的线性分类 52 | 53 | ### Bayes 决策论 54 | 55 | -------------------------------------------------------------------------------- /Machine-Learning/Ensemble-Learning.md: -------------------------------------------------------------------------------- 1 | # [机器学习--集成学习(Ensemble Learning)](https://www.cnblogs.com/zongfa/p/9304353.html) 2 | 3 | ## 集成学习法 4 | 5 | 在机器学习的有监督学习算法中,目标是学习出一个稳定的,并且在各个方面都表现较好的模型,但实际情况只能得到多个有偏好的模型(弱监督模型,在某些方面表现的比较好)。集成学习就是组合得到的多个弱监督模型以期得到一个更好更全面的强监督模型。集成学习潜在的思想是即使某一个弱分类器得到了错误的预测,其他的弱分类器也可以将错误纠正回来。 6 | 7 | 集成方法是将几种机器学习技术组合成一个预测模型的元算法,以达到减小方差(bagging)、偏差(boosting)或改进预测(stacking)的效果。 8 | 9 | 集成学习在各个规模的数据集上都有很好的策略。 10 | 11 | - 数据集大:划分成多个小数据集,学习多个模型进行组合 12 | - 数据集小:利用Bootstrap方法进行抽样,得到多个数据集,分别训练多个模型再进行组合 13 | 14 | 集合方法可分为两类: 15 | 16 | - 序列集成方法,其中参与训练的基础学习器按照顺序生成(例如 AdaBoost)。序列方法的原理是利用基础学习器之间的依赖关系。通过对之前训练中错误标记的样本赋值较高的权重,可以提高整体的预测效果。 17 | - 并行集成方法,其中参与训练的基础学习器并行生成(例如 Random Forest)。并行方法的原理是利用基础学习器之间的独立性,通过平均可以显著降低错误。 18 | 19 | 集成学习的特点: 20 | 21 | 1. 多个分类方法聚集在一起,以提高分类的准确率。 22 | 23 | (这些算法可以是不同的算法,也可以是相同的算法。) 24 | 25 | 2. 集成学习法由训练数据构建一组基分类器,然后通过对每个基分类器的预测进行投票来进行分类 26 | 27 | 3. 严格来说,集成学习并不算是一种分类器,而是一种分类器结合的方法。 28 | 29 | 4. 通常一个集成分类器的分类性能会好于单个分类器 30 | 31 | 5. 如果把单个分类器比作一个决策者的话,集成学习的方法就相当于多个决策者共同进行一项决策。 32 | 33 | 集成学习的问题: 34 | 35 | 1. 怎么训练每个算法? 36 | 2. 怎么融合每个算法? 37 | 38 | 常用的集成学习方法: 39 | 40 | - Bagging:Random Forest 41 | - Boosting : AdaBoost, GBDT 42 | - Stacking : Logistic Regression 43 | 44 | ### Bagging 45 | 46 | Bagging(bootstrap aggregating)即套袋法。 47 | 48 | 先说一下bootstrap,bootstrap也称为自助法,它是一种有放回的抽样方法,目的为了得到统计量的分布以及置信区间,其算法过程如下: 49 | 50 | 1. 从原始样本集中抽取训练集。每轮从原始样本集中使用Bootstraping的方法抽取n个训练样本(在训练集中,有些样本可能被多次抽取到,而有些样本可能一次都没有被抽中)。共进行k轮抽取,得到k个训练集。(k个训练集之间是相互独立的) 51 | 2. 每次使用一个训练集得到一个模型,k个训练集共得到k个模型。(注:这里并没有具体的分类算法或回归方法,我们可以根据具体问题采用不同的分类或回归方法,如决策树、感知器等) 52 | 3. 对分类问题:将上步得到的k个模型采用投票的方式得到分类结果;对回归问题,计算上述模型的均值作为最后的结果。(所有模型的重要性相同) 53 | 54 |   ![img](https://images2018.cnblogs.com/blog/1180120/201807/1180120-20180713122517325-458611743.png) 55 | 56 | 理解 Bagging 的例子: 57 | 58 | - X 表示一维属性,Y 表示类标号(1或-1)测试条件:当x<=k时,y=?;当x>k时,y=?;k为最佳分裂点 59 | - 下表为属性x对应的唯一正确的y类别 60 | - 现在进行5轮随机抽样,结果如下 61 | 62 |   ![img](https://images2018.cnblogs.com/blog/1180120/201807/1180120-20180713115759392-1600688523.png) 63 | 64 |   ![img](https://images2018.cnblogs.com/blog/1180120/201807/1180120-20180713115811824-449876825.png) 65 | 66 | - 每一轮随机抽样后,都生成一个分类器 67 | 68 | - 然后再将五轮分类融合 69 | 70 |   ![img](https://images2018.cnblogs.com/blog/1180120/201807/1180120-20180713120026299-340122631.png) 71 | 72 | - 对比符号和实际类,我们可以发现:在该例子中,Bagging使得准确率可达90% 73 | 74 | Bagging 方法的特点: 75 | 76 | 1. Bagging通过降低基分类器的方差,改善了泛化误差 77 | 2. 其性能依赖于基分类器的稳定性; 78 | - 如果基分类器不稳定,bagging有助于降低训练数据的随机波动导致的误差; 79 | - 如果基分类器稳定,则集成分类器的误差主要由基分类器的偏置引起 80 | 3. 由于每个样本被选中的概率相同,因此bagging并不侧重于训练数据集中的任何特定实例 81 | 82 | 常用的 Bagging 类算法是随机森林。在随机森林中,集成中的每棵树都是由从训练集中抽取的样本(即 bootstrap 样本)构建的。另外,与使用所有特征不同,这里随机选择特征子集,从而进一步达到对树的随机化目的。因此,随机森林产生的偏差略有增加,但是由于对相关性较小的树计算平均值,估计方差减小了,导致模型的整体效果更好。 83 | 84 |   ![img](https://images2018.cnblogs.com/blog/1180120/201807/1180120-20180713123844679-346592925.png) 85 | 86 | ### Boosting 87 | 88 | 其主要思想是将弱分类器组装成一个强分类器。在PAC(probably approximately correct,概率近似正确)学习框架下,则一定可以将弱分类器组装成一个强分类器。 89 | 90 | 关于Boosting的两个核心问题: 91 | 92 | 1. 在每一轮如何改变训练数据的权值或概率分布? 93 | 94 | 提高那些在前一轮被弱分类器分错样例的权值,减小前一轮分对样例的权值,使得分类器对误分的数据有较好的效果。 95 | 96 | 2. 通过什么方式来组合弱分类器? 97 | 98 | 通过加法模型将弱分类器进行线性组合,比如: 99 | 100 | - **AdaBoost**(Adaptive boosting)算法:刚开始训练时对每一个训练例赋相等的权重,然后用该算法对训练集训练t轮,每次训练后,对训练失败的训练例赋以较大的权重,也就是让学习算法在每次学习以后更注意学错的样本,从而得到多个预测函数。通过拟合残差的方式逐步减小残差,将每一步生成的模型叠加得到最终模型。 101 | - **GBDT**(Gradient Boost Decision Tree),每一次的计算是为了减少上一次的残差,GBDT在残差减少(负梯度)的方向上建立一个新的模型。 102 | 103 |   ![img](https://images2018.cnblogs.com/blog/1180120/201807/1180120-20180713122552774-1172049695.png) 104 | 105 | ### Stacking 106 | 107 | Stacking方法是指训练一个模型用于组合其他各个模型。首先我们先训练多个不同的模型,然后把之前训练的各个模型的输出为输入来训练一个模型,以得到一个最终的输出。理论上,Stacking可以表示上面提到的两种集成方法,只要采用合适的模型组合策略即可。但在实际中,通常使用logistic回归作为组合策略。如下图,先在整个训练数据集上通过bootstrap抽样得到各个训练集合,得到一系列分类模型,然后将输出用于训练第二层分类器。 108 | 109 |   ![img](https://images2018.cnblogs.com/blog/1180120/201807/1180120-20180713122631208-191903753.png) 110 | 111 | ## 算法之间的联系与区别 112 | 113 | 1. Bagging和Boosting的区别: 114 | - 样本选择上: 115 | - Bagging:训练集是在原始集中有放回选取的,从原始集中选出的各轮训练集之间是独立的。 116 | - Boosting:每一轮的训练集不变,只是训练集中每个样例在分类器中的权重发生变化。而权值是根据上一轮的分类结果进行调整。 117 | - 样例权重: 118 | - Bagging:使用均匀取样,每个样例的权重相等 119 | - Boosting:根据错误率不断调整样例的权值,错误率越大则权重越大。 120 | - 预测函数: 121 | - Bagging:所有预测函数的权重相等。 122 | - Boosting:每个弱分类器都有相应的权重,对于分类误差小的分类器会有更大的权重。 123 | - 并行计算: 124 | - Bagging:各个预测函数可以并行生成 125 | - Boosting:各个预测函数只能顺序生成,因为后一个模型参数需要前一轮模型的结果。 126 | 127 | 2. 决策树与这些算法框架进行结合所得到的新的算法: 128 | - Bagging + 决策树 = 随机森林 129 | - AdaBoost + 决策树 = 提升树 130 | - Gradient Boosting + 决策树 = GBDT 131 | 132 | 参考博文: 133 | 134 | 【1】[集成学习总结 & Stacking方法详解](https://blog.csdn.net/willduan1/article/details/73618677) 135 | 136 | 【2】[Bagging和Boosting 概念及区别](https://www.cnblogs.com/liuwu265/p/4690486.html) 137 | 138 | 【3】[集成学习法之bagging方法和boosting方法](https://blog.csdn.net/qq_30189255/article/details/51532442) 139 | 140 | 【4】[机器学习中的集成学习(Ensemble Learning)](http://baijiahao.baidu.com/s?id=1590266955499942419&wfr=spider&for=pc) 141 | 142 | 【5】[简单易学的机器学习算法——集成方法(Ensemble Method)](https://blog.csdn.net/google19890102/article/details/46507387) 143 | -------------------------------------------------------------------------------- /Machine-Learning/ML-Architecture.md: -------------------------------------------------------------------------------- 1 | # 机器学习知识体系 2 | 3 | ## 数学 4 | 5 | ### 数学基础 6 | 7 | #### 微积分 8 | 9 | ##### 导数与积分 10 | 11 | - 极限 12 | - 函数的求导法则 13 | - 积分的收敛性 14 | - 微分方程 15 | 16 | ##### 极值 17 | 18 | - 泰勒公式 19 | - 求解函数的极值 20 | 21 | ##### 级数 22 | 23 | - 级数的收敛性 24 | - 幂级数 与 Fourier 级数 25 | - 幂级数的线性无关性与 Fourier 级数的正交性 26 | 27 | #### 线性代数 28 | 29 | ##### 矩阵 30 | 31 | - 行列式 32 | - 标量、向量、矩阵、张量 33 | - 矩阵计算:基本计算、转置、求逆、内积 34 | 35 | ##### 线性变换 36 | 37 | - 线性关系 38 | - 正交关系 39 | - 本征值 与 本征向量 40 | 41 | ##### 二次型 42 | 43 | - 二次型的标准形 ( 法式 ) 44 | - 二次型的矩阵及其特征值 45 | - 正定二次型 46 | 47 | #### 概率论 48 | 49 | ##### 随机变量 50 | 51 | - 离散 与 连续 52 | - 值变量 与 向量变量 53 | - 数字特征:均值 与 方差 54 | 55 | ##### 贝叶斯定理 56 | 57 | - 先验概率 58 | - 似然函数 59 | - 后验概率 60 | 61 | ##### 极限定理 62 | 63 | - 大数定律 64 | - 中心极限定理 65 | - 高斯分布 66 | 67 | ### 数学进阶 68 | 69 | #### 泛函分析 70 | 71 | ##### 变分法 72 | 73 | - 泛函极值 74 | 75 | ##### 赋范线性空间 76 | 77 | - 数列空间 78 | - 函数空间 79 | - 对偶空间 80 | 81 | ##### 函数变换 82 | 83 | - 函数卷积 84 | - Fourier 变换 85 | 86 | #### 随机过程 87 | 88 | ##### 随机过程的概念 89 | 90 | - 分布函数 91 | - 数字特征 92 | 93 | ##### Markov 随机过程 94 | 95 | - 无后效性 96 | - 转移概率 97 | - 极限概率 98 | 99 | ##### 平稳随机过程 100 | 101 | - 时间平稳性 102 | - 各态历经性 103 | - 功率谱密度 104 | 105 | #### 数理统计 106 | 107 | ##### 参数估计 108 | 109 | - 点估计 与 区间估计 110 | - 最大似然估计 111 | - 最大后验估计 112 | 113 | ##### 随机模拟 114 | 115 | - 抽样分布 116 | - Bootstrap 117 | - MCMC 抽样、Gibbs 抽样 118 | 119 | ##### 假设检验 120 | 121 | - 参数假设检验 122 | - 非参数假设检验 123 | 124 | ##### 线性模型 125 | 126 | - 回归分析 127 | - 方差分析 128 | 129 | ##### 多元数据分析 130 | 131 | - 主成分分析 132 | - 因子分析 133 | - 聚类分析 134 | 135 | ### 应用数学 136 | 137 | #### 最优化 138 | 139 | ##### 线性规划 140 | 141 | - 线性规划问题:求线性目标函数在具有线性等式或者线性不等式的约束条件下的极值 ( 极大值或者极小值 ) 问题。 142 | - 凸函数与凸规划 143 | - 对偶理论:将一个标准形的线性规划问题,使用同样的参数另一个线性规划问题描述,称新问题为原问题的对偶问题 144 | 145 | ##### 数值最优化 146 | 147 | - 无约束最优化的数值方法 148 | - 最速下降法 149 | - 牛顿法 150 | - 共轭梯度法 151 | 152 | #### 数学建模 153 | 154 | ##### 数学模型 155 | 156 | - 数学模型:是用数学符号对一类实际问题或者实际系统中发生的现象的 ( 近似 ) 描述 157 | - 数学建模:获得这个模型,求解这个模型,并且得出结论以及验证结论是否正确的全过程。 158 | - 建模三要素 159 | - 怎样从实际出发作出合理的假设,从而得到可以执行的数学模型 160 | - 怎样求解模型中出现的数学问题 161 | - 怎样验证模型的正确性和可行性 162 | 163 | ##### 建模方法论 164 | 165 | - 问题分析 166 | - 建立模型 167 | - 数据处理 168 | - 求解模型 169 | - 模型验证 170 | 171 | ## 机器学习 172 | 173 | ### 机器学习基础 174 | 175 | #### 回归问题 176 | 177 | ##### 线性回归模型 178 | 179 | $$ 180 | y=f ( \text{x} ) +\epsilon=\text{w}^T\text{x}+\epsilon 181 | $$ 182 | 183 | ##### 线性基函数回归模型 184 | 185 | $$ 186 | y=f ( \text{x} ) +\epsilon+\text{w}^T\boldsymbol{\phi ( \text{x} )}+\epsilon 187 | $$ 188 | 189 | ##### 非线性回归模型 190 | 191 | $$ 192 | y=f ( \text{w}^T \text{x} ) +\epsilon 193 | $$ 194 | 195 | #### 分类问题 196 | 197 | ##### 线性判别函数(连续特征) 198 | 199 | - 二分类模型:$y ( \text{x} ) =\text{w}^T\text{x}$ 200 | - 决策面:$D$ 维超平面 201 | - 多分类算法 202 | - 「一对多」 203 | - 「一对一」 204 | - 缺点:产生无法分类的区域 205 | - 参数学习 206 | - 基于最小平方方法 207 | - 基于线性判别分析 208 | - 基于感知机算法 209 | 210 | ##### Logistic 回归(连续特征) 211 | 212 | - 二分类模型:$p(C_1|\text{x})=\sigma(\text{w}^T\text{x)}$ 213 | - $\sigma(\cdot)$ 是 Logistic Sigmoid 函数 214 | - 基于数值迭代方式求解 215 | - 多分类模型:$p ( \mathcal{C}_k|\text{x} )) =\frac{\exp \{ \text{w}_k^T \text{x} \}}{\sum_j\exp \{ \text{w}_j^T \text{x} \}}$ 216 | - 基于交叉熵误差函数 217 | - 基于数值迭代方式求解 218 | 219 | ##### 朴素 Bayes 分类(离散特征) 220 | 221 | $$ 222 | P ( \mathcal{C}_k |\text{x} ) =\frac{P ( \mathcal{C}_k ) P ( \text{x}|\mathcal{C}_k )}{P ( \text{x} )}=\frac{P ( c )}{P ( \text{x} )}\prod_{k=1}^K P ( \text{x}_i|\mathcal{C}_k ) 223 | $$ 224 | 225 | ##### 概率生成式模型 与 概率判别式模型 226 | 227 | #### 标注问题 228 | 229 | ### 机器学习进阶 230 | 231 | #### 神经网络 232 | 233 | #### 支持向量机 234 | 235 | #### 深度学习 236 | 237 | ### 应用机器学习 238 | 239 | #### 自然语言处理 240 | 241 | #### 语音信号处理 242 | 243 | #### 图像信号处理 244 | 245 | ## 计算机 246 | 247 | ### 计算机基础 248 | 249 | #### 软件开发 250 | 251 | ##### 数据结构和算法 252 | 253 | ##### 开发语言与开发工具 254 | 255 | ##### 数据存储和数据库系统 256 | 257 | #### 系统集成 258 | 259 | ##### 代码测试 260 | 261 | - 白盒测试 262 | 263 | - 黑盒测试 264 | 265 | - 功能测试 266 | 267 | ##### 集成测试 268 | 269 | ##### 迭代开发 270 | 271 | #### 项目实施 272 | 273 | ##### 实施准备 274 | 275 | - 环境准备 276 | - 硬件:主机、客户端、并发架构 277 | - 软件:OS、VM、DLL 278 | - 网络:带宽、并发、安全 279 | - 备份:硬件备份、数据备份、人员备份 280 | - 技术准备 281 | - 业务准备 282 | - 安全保障 283 | 284 | ##### 系统上线 285 | 286 | - 系统部署 287 | - 应用部署 288 | - 数据迁移 289 | - 应急方案 290 | 291 | ##### 后期维护 292 | 293 | ### 计算机进阶 294 | 295 | #### 版本管理 296 | 297 | ##### 里程碑 298 | 299 | ##### 版本升级 300 | 301 | ##### 版本分支 302 | 303 | #### 项目管理 304 | 305 | ##### 需求管理 306 | 307 | ##### 进度管理 308 | 309 | ##### 人员管理 310 | 311 | #### 质量管理 312 | 313 | ### 计算机项目 314 | 315 | #### 电信 316 | 317 | ##### 通话记录 318 | 319 | ##### 消费记录 320 | 321 | ##### 投诉记录 322 | 323 | #### 公安 324 | 325 | ##### 人口系统 326 | 327 | ##### 案件系统 328 | 329 | #### 数据交换平台 330 | 331 | ##### 数据交换总线 332 | 333 | ##### 数据交换标准 334 | 335 | ##### 数据交换性能 336 | -------------------------------------------------------------------------------- /Machine-Learning/Machine-Learning-Mitchell/Ch06.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Machine-Learning/Machine-Learning-Watermelon/Ch01-Exercises.md: -------------------------------------------------------------------------------- 1 | # C01. 习题 2 | 3 | ## 1.1 4 | 5 | 只包含样本 1 和 4,样本空间变为 6 | 7 | ```reStructuredText 8 | 1 青绿 蜷缩 浊响 是 9 | 2 乌黑 稍蜷 沉闷 否 10 | ``` 11 | 12 | 学习目标是「好瓜」,对 ( 色泽=青绿;根蒂=蜷缩;敲声=浊响 ) 13 | 进行拓展: 14 | 15 | ```reStructuredText 16 | 1 ( 色泽=青绿;根蒂=蜷缩;敲声=浊响 ) 17 | 2 ( 色泽=*;根蒂=蜷缩;敲声=浊响 ) 18 | 3 ( 色泽=青绿;根蒂=*;敲声=浊响 ) 19 | 4 ( 色泽=青绿;根蒂=蜷缩;敲声=* ) 20 | 5 ( 色泽=*;根蒂=*;敲声=浊响 ) 21 | 6 ( 色泽=*;根蒂=蜷缩;敲声=* ) 22 | 7 ( 色泽=青绿;根蒂=*;敲声=* ) 23 | 8 ( 色泽=*;根蒂=*;敲声=* ) 24 | ``` 25 | 26 | 由于 8 包含了「坏瓜」样本,故去掉,只取 1-7 作为版本空间: 27 | 28 | ```reStructuredText 29 | 1 ( 色泽=青绿;根蒂=蜷缩;敲声=浊响 ) 30 | 2 ( 色泽=*;根蒂=蜷缩;敲声=浊响 ) 31 | 3 ( 色泽=青绿;根蒂=*;敲声=浊响 ) 32 | 4 ( 色泽=青绿;根蒂=蜷缩;敲声=* ) 33 | 5 ( 色泽=*;根蒂=*;敲声=浊响 ) 34 | 6 ( 色泽=*;根蒂=蜷缩;敲声=* ) 35 | 7 ( 色泽=青绿;根蒂=*;敲声=* ) 36 | ``` 37 | 38 | ## 1.2 ? 39 | 40 | ```reStructuredText 41 | 假设空间: 3*4*4+1 = 49 42 | ``` 43 | 44 | ## 1.3 45 | 46 | ```reStructuredText 47 | 去除在特征「敲声」中冲突的数据,因为这个数据没有很好的量化标准,很容易产生偏差。 48 | ``` 49 | 50 | ## 1.4 ? 51 | 52 | $$ 53 | \begin{align*} 54 | E_{ote} ( \mathcal{L}_a|X,f ) 55 | &=\sum_h\sum_{\mathbb{x}\in\mathcal{X}-X}P ( \mathbb{x} ) l ( h ( \mathbb{x} ) ,f ( \mathbb{x} )) P ( h|X,\mathcal{L}_a ) \\ 56 | &=\sum_{\mathbb{x}\in\mathcal{X}-X}P ( \mathbb{x} ) \sum_h l ( h ( \mathbb{x} ) ,f ( \mathbb{x} )) P ( h|X,\mathcal{L}_a ) 57 | \end{align*} 58 | $$ 59 | 60 | ## 1.5 61 | 62 | 1. 图片搜索。 63 | 2. 商品推荐。 64 | 3. 交互式搜索。 65 | -------------------------------------------------------------------------------- /Machine-Learning/Machine-Learning-Watermelon/Ch01.md: -------------------------------------------------------------------------------- 1 | # C01. 绪论 2 | 3 | 这是一本机器学习本科生教材,只要具备大学本科三年级水平就可以满足自学需要。 4 | 5 | ## 提纲 6 | 7 | - 重点 8 | 9 | - 难点 10 | 11 | - 要点 12 | 13 | ## 基本知识点 14 | 15 | ## 1.1 引言 16 | 17 | 机器学习:研究如何通过计算的手段,利用经验来改善系统自身的性能。 18 | 19 | - 在计算机系统中,「经验」以「数据」形式存在,因此机器学习就是关于在计算机上从数据中产生「模型」的算法,即「学习算法」。 20 | - 「模型」泛指从数据中觉得的结果 21 | - 「模型」指全局性结果 ( 例如:一棵规则树 ) 22 | - 「模式」指局部性结果 ( 例如:一条规则 ) 23 | 24 | ## 1.2 基本术语 25 | 26 | - 「数据集」(Data Set):一组记录的集合 27 | - 「示例」或者「样本」:集合中的记录,用于描述事件或者对象,每条记录对于一个描述 28 | - 「属性」或者「特征」:反映事件或者对象在某个方面的表现或者性质的事项 29 | - 「属性值」:属性上的取值 30 | - 「属性空间」或者「样本空间」或者「输入空间」:属性张成的空间 31 | - 「特征向量」:即示例,因为样本空间中的每个点对应一个坐标向量 32 | - 使用 $D=\{\text{x}_1,\cdots,\text{x}_m\}$ 表示包含 $m$ 个示例的数据集 33 | - 每个示例由 $d$ 个属性描述 34 | - 每个示例 $\text{x}_i= ( x_{i1},\cdots,x_{id} )$ 是 $d$ 维样本空间 $\mathcal{X}$ 中的一个向量,即 $\text{x}_i\in\mathcal{X}$ 35 | - $x_{ij}$ 是 $\text{x}_i$ 在第 $j$ 个属性上的取值 36 | - $d$ 是 $\text{x}_i$ 的「维度」 37 | - 「学习」或者「训练」:从数据中学得模型的过程,通过执行某个学习算法来完成 38 | - 「训练数据」:训练过程中使用的数据 39 | - 「训练样本」:训练数据中的样本 40 | - 「训练集」:训练样本组成的集合 41 | - 学得模型对应了关于数据的某种潜在的规则,称为「假设」,这种潜在规律本身,称为「真相」或者「事实」 42 | - 学习过程就是为了找出或者逼近真相 43 | - 「模型」有时也称为「学习器」,是学习算法在给定数据和参数空间上的实例化 44 | - 「标记」:关于示例结果的信息 45 | 46 | - 「样例」:拥有了标记信息的示例 47 | - 「标记空间」或者「输出空间」:所有标记的集合 48 | 49 | - 如果预测是离散值,学习任务称为「分类」 50 | - 「二分类」任务:只涉及两个类别的学习任务 51 | - 「多分类」任务:需要涉及多个类别的学习任务 52 | - 「回归」任务:如果预测是连续值 53 | 54 | - 学到模型后,使用其进行预测的过程称为「测试」 55 | 56 | - 被预测的样本称为「测试样本」 57 | - 学习任务的分类 58 | - 监督学习:分类与回归 59 | - 无监督学习:聚类 60 | - 学得模型适用于新样本的能力称为「泛化」 61 | 62 | - 具有强泛化能力的模型能够很好地适用于整个样本空间 63 | - 假设样本空间中全体样本服从一个未知「分布」$\mathcal{D}$,那么获得的每个样本都是独立地从这个分布上采样获得的,即「独立同分布」( independent and identically distributed, i.i.d. ) 64 | 65 | - 训练样本越多,得到的关于 $\mathcal{D}$ 的信息就越多,通过学习获得的模型的泛化能力就越强 66 | 67 | ## 1.3 假设空间 68 | 69 | - 「归纳」是从特殊到一般的「泛化」,即从具体的事实归结出一般性规律 70 | - 「从样例中学习」是一个归纳过程,也称为「归纳学习」 71 | - 广义的归纳学习是从样例中学习 72 | - 狭义的归纳学习是从训练数据中学习,也称为「概念学习」或者「概念形成」 73 | - 「演绎」是从一般到特殊的「特化」,即从基础原理推演出具体状况 74 | - 在数学公理系统中,基于一组公理和推理规则推导出与之相洽的定理,这是「演绎」 75 | - 学习过程就是在所有假设组成的空间中进行搜索的过程,通过搜索找到与训练集「匹配」的假设 76 | - 学习过程面临假设空间过大和样本训练集有限这个矛盾,因此存在着一个与训练集一致的「假设集合」,称为「版本空间」 77 | 78 | ## 1.4 归纳偏好 79 | 80 | 机器学习算法在学习过程对某种类型假设的偏好,称为「归纳偏好」或者「偏好」 81 | 82 | - 奥卡姆剃刀 ( Occam's Razor ) 是一种常用的基本的原则,即「若有多个假设与观察一致,则选择最简单的那个」 83 | - 「没有免费的午餐」定理 ( No Free Lunch Theorem, NFLT ),任意两种学习算法的期望性能完全相同 84 | - 假设样本空间 $\mathcal{X}$ 和 假设空间 $\mathcal{H}$ 都是离散的 85 | - $P ( h|X,\mathcal{L}_a )$ 代表算法 $\mathcal{L}_a$ 基于训练数据 $X$ 产生假设 $h$ 的概率 86 | - $f$ 代表希望学习的真实目标函数 87 | - $\mathbb{I} ( \cdot )$ 表示指示函数,$\mathbb{I} ( a ) =\begin{cases}1,a\neq 0\\0,others\end{cases}$ 88 | - $\mathcal{L}_a$ 的「训练集外误差」,即$\mathcal{L}_a$ 在训练集之外的所有样本上的误差为 89 | 90 | $$ 91 | \begin{aligned} 92 | E_{ote} ( \mathcal{L}_a|X,f ) 93 | &=\sum_{h}\sum_{\text{x}\in\mathcal{X}-X} P ( \text{x} ) \mathbb{I} ( h ( \text{x} )) \\ 94 | &=f ( \text{x} ) P ( h|X,\mathcal{L}_a ) 95 | \end{aligned} 96 | $$ 97 | 98 | - 二分类问题,真实目标函数可以是任何函数 $\mathcal{X}\mapsto\{0,1\}$, 函数空间为 $\{0,1\}^{|\mathcal{X}|}$, 对所有可能的 $f$ 按均匀分布对误差求和 99 | 100 | $$ 101 | \begin{aligned} 102 | \sum_f E_{ote} ( \mathcal{L}_a|X,f ) 103 | &=\sum_f\sum_h\sum_{\text{x}\in\mathcal{X}-X} P ( \text{x} ) \mathbb{I} ( h ( \text{x} ) \neq f ( \text{x} )) P ( h|X,\mathcal{L}_a ) \\ 104 | &=\sum_{\text{x}\in\mathcal{X}-X} P ( \text{x} ) \sum_h P ( h|X,\mathcal{L}_a ) \sum_f \mathbb{I} ( h ( \text{x} ) \neq f ( \text{x} )) \\ 105 | &=\sum_{\text{x}\in\mathcal{X}-X} P ( \text{x} ) \sum_h P ( h|X,\mathcal{L}_a ) \frac12 2^{|\mathcal{X}|}\\ 106 | &=\frac12 2^{|\mathcal{X}|} \sum_{\text{x}\in\mathcal{X}-X} P ( \text{x} ) \sum_h P ( h|X,\mathcal{L}_a ) \\ 107 | &=2^{|\mathcal{X}|-1}\sum_{\text{x}\in\mathcal{X}-X} P ( \text{x} ) 1 108 | \end{aligned} 109 | $$ 110 | 111 | - 注 1: NFL 定理的重要前提,所有「问题」出现的机会相同 或者 所有问题同等重要 112 | - 注 2: NFL 定理说明,脱离具体问题,空谈「算法的好坏」毫无意义。 113 | 114 | ## 1.5 发展历程 115 | 116 | - 20 世纪 50~70 年代,人工智能研究处于「推理期」,即赋予机器逻辑推理能力,代表工作:逻辑理论家程序和通用问题求解程序 117 | - 20 世纪 50 年代,基于神经网络的「连接主义」,代表工作:感知机 118 | - 20 世纪 60~70 年代,基于逻辑表示的「符号语义」,代表工作:结构学习系统、基于逻辑的归纳学习系统、概念学习系统 119 | - 20 世纪 90 年代,统计学习理论 120 | - 归纳学习:从样例中学习,即从训练样例中归纳出学习结果,涵盖了监督学习和非监督学习等。 121 | - 20 世纪 80 年代,从样例中学习的主流是符号语义学习,代表工作:决策树和基于逻辑的学习 122 | - 决策树以信息论为基础,以信息熵为最小化目标,模拟了人类对概念进行判定的树形流程 123 | - 基于逻辑的学习是归纳逻辑程序设计 ( Inductive Logic Programming, ILP ),是机器学习和逻辑程序设计的交叉,使用一阶逻辑 ( 即谓词逻辑 ) 来进行知识表示,通过修改和扩充逻辑表达式来完成对数据的归纳。ILP 不仅可以利用领域知识辅助学习,还可以通过学习对领域知识进行精化和增强;因为表示能力太强,导致学习过程面临的假设空间太大、复杂度极高,当问题规模过大后就难以进行有效学习 124 | - 20 世纪 90 年代,从样例中学习的主流是连接主义学习,BP 算法使得应用非常广泛;局限是其「试错性」,即学习过程涉及大量参数,参数的设置缺乏理论指导。 125 | - 20 世纪 90 年代,统计学习的代表性技术是支持向量机 ( Support Vector Machine, SVM ) 和核方法 ( Kernel Methods )。 126 | - 21 世纪,深度学习,狭义地说就是「很多层」的神经网络。 127 | 128 | ## 1.6 应用现状 129 | 130 | - 2012 年,美国启动「大数据研究与发展计划」,三大关键技术:机器学习、云计算、众包 ( crowdsourcing ) 131 | - 数据挖掘是从海量数据中发掘知识。数据库为数据挖掘提供数据管理技术,机器学习和统计学为数据挖掘提供数据分析技术。 132 | - 机器学习可以促进理解「人类如何学习」 133 | 134 | ## 1.7 阅读材料 135 | 136 | - 第一本机器学习教材。[^Mitchell,1997] 137 | - 入门读物。[^Duda,2001] 138 | - 进阶读物。[^Hastie,2009] 139 | - 贝叶斯进阶读物。[^Bishop,2006] 140 | -------------------------------------------------------------------------------- /Machine-Learning/Machine-Learning-Watermelon/Ch02.md: -------------------------------------------------------------------------------- 1 | # C02. 模型评估与选择 2 | 3 | ## 2.1 经验误差与过拟合 -------------------------------------------------------------------------------- /Machine-Learning/Machine-Learning-Watermelon/Ch04.md: -------------------------------------------------------------------------------- 1 | # C04. 决策树 2 | 3 | ## 基本流程 4 | 5 | 决策树是基于树结构来进行决策的。 6 | 7 | 决策树的生成是一个递归过程,导致递归的原因: 8 | 9 | - 当前结点包含的样本全部属于同一个类别,无需划分; 10 | - 当前属性集为空,或者所有样本在所有属性上取值相同,无法划分; 11 | - 把当前结点标记为叶结点,其类别设定为这个结点所包含的样本最多的类别 12 | - 当前结点包含的样本集合为空,不能划分。 13 | - 把当前结点标记为叶结点,其类别设定为其父结点所包含的样本最多的类别 14 | 15 | ## 划分选择 16 | 17 | 信息熵 ( Information Entropy ) 是度量样本集合纯度 ( purity ) 的指标。 18 | 19 | 划分属性的准则: 20 | 21 | - ID3 决策树学习算法使用「信息增益」( Information Gain ) 为准则来选择划分属性 22 | - 「信息增益」准则偏好样本数目较多的属性 23 | - C4.5 决策树学习算法使用「增益比」( Gain Ratio ) 为准则来选择划分属性 24 | - 「信息增益比」准则偏好样本数目较少的属性 25 | - CART 决策树学习算法使用「基尼指数「( Gini Index ) 为准则来选择划分属性 26 | - 「基尼值」:表示从数据集 D 中随机抽取两个样本,其类别标记不一致的概率 27 | - 「基尼系数」准则偏好样本类别标记一致的属性 28 | 29 | ## 剪枝处理 30 | 31 | 决策树剪枝 ( pruning ) 是处理「过拟合」问题的主要手段。 32 | 33 | 剪枝的基本策略: 34 | 35 | - 预剪枝 ( prepruning ) :在决策树生成过程中,对每个结点在划分前先进行估计,若当前结点的划分不能改善决策树的泛化性能则停止划分,并且将当前结点标记为叶结点。 36 | - 降低了「过拟合」的风险,减少了决策树的训练时间开销和测试时间开销。 37 | - 带来了「欠拟合」的风险。 38 | - 后剪枝 ( postpruning ) :先从训练集中生成一棵完整的决策树,然后自底向上地对非叶结点进行评估,若将该结点对应的子树替换为叶结点能够改善决策树的泛化性能,则将当前子树替换为叶结点。 39 | - 「欠拟合」风险较小,泛化性能优先预剪枝策略。 40 | - 决策树的训练时间开销和测试时间开销较大。 41 | 42 | ## 处理连续值与缺失值 43 | 44 | - 「连续值」处理的问题:连续值离散化 45 | - 二分法对连续属性进行处理 46 | - 「缺失值」处理的问题: 47 | - 如何在属性值缺失的情况下进行属性划分 48 | - 定义一个无缺失值样本所占比例ρ 49 | - 如何在给定划分属性的情况下,对缺失了属性值的样本进行划分 50 | - 将同一个样本以不同的概率划分到不同的子结点中 51 | 52 | ## 多变量决策树 53 | 54 | 多变量决策树 ( Multivariate Decision 55 | Tree ) 能够实现「斜划分」甚至更复杂的划分的决策树。 56 | 57 | 多变量决策树的 OC1 算法: 58 | 59 | - 贪心地寻找每个属性的最优权值 60 | - 在局部优化的基础上对分类边界进行随机扰动以试图找到更好的边界 61 | -------------------------------------------------------------------------------- /Machine-Learning/Machine-Learning-Watermelon/Ch08.md: -------------------------------------------------------------------------------- 1 | # C08. 集成学习 2 | 3 | ## 8.1 个体与集成 4 | 5 | 集成学习 ( Ensemble Learning ) 通过构建并且结合多个学习器来完成学习任务,也被称为多分类器系统 ( Multi-Classifiter System ) 、基于委员会的学习 ( Committee-Based Learning ) 等等。 6 | 7 | 集成学习的一般结构:先产生一组「个体学习器」 ( Individual Learner ) ,再用某种策略将它们结合起来。 8 | 9 | - 同质集成:所有的个体学习器都是同种类型的,统称这些个体学习器为「基学习器」,因此学习算法称为「基学习算法」 10 | - 异质集成:个体学习器可以存在不同的类型,不再有基学习算法,也称这些个体学习器为「组件学习器」 11 | 12 | 集成学习通过将多个学习器进行结合,常可获得比单一学习器更好的泛化性能,对「弱学习器」更加明显,因此集成学习的许多理论研究都是针对弱学习器进行 的,而基学习器也被称为弱学习器。 13 | 14 | 集成学习的质量依赖于个体学习器要「好而不同」 15 | 16 | - 个体学习器需要一定的「准确性」,即学习器的效果不能太差 17 | - 个体学习器需要一定的「多样性」,即学习器间具有差异 18 | - 集成学习研究的核心:产生并且结合「好而不同」的个体学习器的算法 19 | 20 | 假设基分类器的错误率朴素独立,则集成的错误率将随着集成的数目呈指数级下降,并且最终趋向于零 21 | 22 | 常用的集成学习方法 23 | 24 | - Boosting:个体学习器之间存在强依赖关系,必须串行生成的序列化方法 25 | - AdaBoost 26 | - GBDT 27 | - Bagging:个体学习器之间不存在强依赖关系,可以并行生成 28 | - Random Forest 29 | 30 | ## 8.2 Boosting 31 | 32 | Boosting 算法的工作机制 33 | 34 | - 从初始训练集训练出一个基学习器 35 | - 根据基学习器的表现对训练样本分布进行调整,使得先前基学习器做错的训练样本在以后的训练中受到更多关注 36 | - 基于调整后的样本分布来训练下一个基学习器 37 | - 重复进行,直到基学习器的数目达到预先设定的值 $T$ 38 | - 对这 $T$ 个基学习器进行加权结合 39 | 40 | 基于「加性模型」的 AdaBoost 算法 41 | 42 | - 基学习器的线性组合:$H ( \text{x} ) =\sum_{t=1}^T \alpha_t h_t ( \text{x} )$ 43 | - 最小化的指数损失函数:$l_{\exp} ( H|D ) =\mathbb{E}_{\text{x}\sim\mathcal{D}}[\exp\{-f ( \text{x} ) H ( \text{x} ) \}]$ 44 | - 求导损失函数:$\frac{\partial l_{\exp} ( H|D )}{\partial H ( \text{x} )}=-\exp\{-H ( \text{x} ) \} P ( f ( \text{x} ) =1|\text{x} ) +\exp\{H ( \text{x} ) \}P ( f ( \text{x} ) =-1|\text{x} )$ 45 | - 极值:$H(\text{x})=\frac12\ln\frac{P(f ( \text{x})=1|\text{x})}{P( f ( \text{x})=-1|\text{x})}$ 46 | 47 | $$ 48 | \begin{aligned} 49 | \text{sign}(H ( \text{x})) 50 | &=\text{sign}(\frac12\ln\frac{P(f ( \text{x})=1|\text{x})}{P( f ( \text{x})=-1|\text{x})})\\ 51 | &=\begin{cases} 52 | 1,&P( f ( \text{x})=1|\text{x})>P( f ( \text{x})=-1|\text{x})\\ 53 | -1,&P( f ( \text{x})=1|\text{x}) 0 10 | $$ 11 | 12 | LASSO 回归: 13 | 14 | $$ 15 | \min_{w}\ \sum_{i = 1}^{m}\left ( y_{i} - w^{T}x_{i} \right )^{2} + 16 | \lambda\left| \left| w \right| \right|_{1}\ ,\ \ \lambda > 0 17 | $$ 18 | -------------------------------------------------------------------------------- /Machine-Learning/Machine-Learning-Watermelon/appB.md: -------------------------------------------------------------------------------- 1 | # 附录 B 2 | 3 | ## B.1 Lagrange Multipliers 4 | 5 | Lagrange 乘子法用于寻找多元函数在一组约束下的极值,通过引入 Language 乘子,可以将有 $d$ 个变量与 $k$ 个约束条件的最优化问题转化为具有 $d+k$ 个变量的无约束优化问题进行求解 6 | 7 | 一个约束的问题求解 8 | 9 | - 等式约束的优化问题 10 | - 假定 $\text{x}\in\mathbb{R}^{D}$,欲寻找 $\text{x}$ 的某个取值 $\text{x}^*$ 使目标函数 $f ( \text{x} )$ 最小,并且同时满足 $g ( \text{x} ) =0$ 的约束需要。 11 | - 从几何角度看,就是在方程 $g ( \text{x} ) =0$ 确定的 $d-1$ 维约束曲面上寻找能使目标函数 $f ( \text{x} )$ 最小化的点 12 | - 对于约束曲面上的任意点 $\text{x}$,该点的梯度 $\nabla g ( \text{x} )$ 正交于约束曲面 13 | - 在最优点 $\text{x}^*$,该点的梯度 $\nabla f ( \text{x}^* )$ 正交于约束曲面 14 | 15 | - 不等式约束的优化问题 16 | - 假定 $\text{x}\in\mathbb{R}^{D}$,欲寻找 $\text{x}$ 的某个取值 $\text{x}^*$ 使目标函数 $f ( \text{x} )$ 最小,并且同时满足 $g ( \text{x} ) \leq 0$ 的约束需要。 17 | - 转化为 KKT ( Karush-Kuhn-Tucker ) 条件 18 | 19 | $$ 20 | \begin{cases} 21 | g ( \text{x} ) \leq 0\\ 22 | \lambda\geq 0\\ 23 | \lambda g ( \text{x} ) =0 24 | \end{cases} 25 | $$ 26 | 27 | 多个约束的问题求解 28 | 29 | 一个优化问题可以从两个角度来考察 30 | 31 | - 主问题(Primal Problem) 32 | - 对偶问题(Dual Problem) 33 | 34 | - 主问题描述:$m$ 个等式约束 和 $n$ 个不等式约束,可行域 $\mathbb{D}\sub\mathbb{R}^{d}$ 非空 35 | 36 | $$ 37 | \begin{aligned} 38 | & \min_{\text{x}} f ( \text{x} ) \\ 39 | \text{s.t.} 40 | & h_i ( \text{x} ) =0 ( i=1,\cdots,m ) \\ 41 | & g_j ( \text{x} ) \leq 0 ( j=1,\cdots,n ) 42 | \end{aligned} 43 | $$ 44 | 45 | - 引入 Lagrange 乘子 $\boldsymbol{\lambda}=(\lambda_1,\cdots,\lambda_m)^T$ 和 $\boldsymbol{\mu}=(\mu_1,\cdots,\mu_n)^T$,则 Lagrange 函数为 46 | 47 | $$ 48 | L ( \text{x},\boldsymbol{\lambda},\boldsymbol{\mu} )=f ( \text{x} ) +\sum_{i = 1}^m\lambda_i h_i ( \text{x} ) +\sum_{j=1}^n \mu_j g_j ( \text{x} ) 49 | $$ 50 | 51 | - 由不等式约束引入的 KKT 条件 $(j=1,\cdots,n)$ 为 52 | 53 | $$ 54 | \begin{cases} 55 | g_j ( \text{x} ) \leq 0\\ 56 | \mu_j\geq 0\\ 57 | \mu_j g_j ( \text{x} ) =0 58 | \end{cases} 59 | $$ 60 | 61 | - 对偶问题描述 62 | - 对偶函数 $\Gamma : \mathbb{R}\times\mathbb{R}\mapsto\mathbb{R}$ 定义为 [^1] $\Gamma(\boldsymbol{\lambda},\boldsymbol{\mu})=\inf_{\text{x}\in\mathbb{D}} L( \text{x},\boldsymbol{\lambda},\boldsymbol{\mu})$ 63 | - 若 $\tilde{\text{x}}\in\mathbb{D}$ 为主问题可行域中的点,则对任意 $\boldsymbol{\mu}\succeq 0$ 和 $\boldsymbol{\lambda}$ 都有 $\sum_{i = 1}^m\lambda_i h_i ( \text{x} ) +\sum_{j=1}^n \mu_j g_j ( \text{x} )\leq 0$ 64 | - 可得:$\Gamma(\boldsymbol{\lambda},\boldsymbol{\mu})=\inf_{\text{x}\in\mathbb{D}} L( \text{x},\boldsymbol{\lambda},\boldsymbol{\mu})\leq L( \tilde{\text{x}},\boldsymbol{\lambda},\boldsymbol{\mu})\leq f( \tilde{\text{x}})$ 65 | - 若 $p^*$ 为主问题的最优值,则对任意 $\boldsymbol{\mu}\succeq 0$ 和 $\boldsymbol{\lambda}$ 都有:$\Gamma(\boldsymbol{\lambda},\boldsymbol{\mu})\leq p^*$ 66 | - 对偶函数给出了主问题最优值的下界,因此如何寻找最好的下界 $\max_{\boldsymbol{\lambda},\boldsymbol{\mu}} \Gamma(\boldsymbol{\lambda},\boldsymbol{\mu}) \text{ s.t. } \boldsymbol{\mu}\succeq 0$ 就是主问题的对偶问题 67 | - $\boldsymbol{\lambda}$ 和 $\boldsymbol{\mu}$ 称为「对偶变量」 68 | - 无论主问题是否为凸函数,对偶问题始终是凸函数 69 | - 对偶问题的对偶性 70 | - 「弱对偶性」:对偶问题的最优值 $d^*\leq p^*$ 71 | - 「强对偶性」:对偶问题的最优值 $d^*=p^*$ 72 | 73 | [^1]:inf 表示下确界 74 | 75 | -------------------------------------------------------------------------------- /Machine-Learning/Machine-Learning-Watermelon/reference.md: -------------------------------------------------------------------------------- 1 | [^Kohonen,1988]: Kohonen, T. ( 1998 ) ."An introduction to neural computing."Neural Networks, 1 ( 1 ) :3-16 2 | -------------------------------------------------------------------------------- /Machine-Learning/Outline.md: -------------------------------------------------------------------------------- 1 | # 楔子 2 | 3 | ## 前言——破执 4 | 5 | :::::::::::::: {.columns} 6 | ::: {.column width="35%"} 7 | 一切有为法, 8 | 9 | 如梦幻泡影, 10 | 11 | 如露亦如电, 12 | 13 | 应作如是观。 14 | 15 | --《金刚经》 16 | ::: 17 | ::: {.column width="65%"} 18 | 19 | - 独立于算法的机器学习[^Duda,2003] P365 20 | - 没有免费午餐定理 21 | - 没有最好的学习算法 22 | - 丑小鸭定理 23 | - 没有最好的特征描述算法 24 | ::: 25 | :::::::::::::: 26 | 27 | ::: notes 28 | 《金刚经》:谈空,破有。防止迷失在算法的细节中。 29 | ::: 30 | 31 | ## 前言——破空 32 | 33 | :::::::::::::: {.columns} 34 | ::: {.column width="35%"} 35 | 身是菩提树, 36 | 37 | 心如明镜台, 38 | 39 | 时时勤拂拭, 40 | 41 | 勿使惹尘埃。 42 | 43 | --《六祖坛经》 44 | ::: 45 | ::: {.column width="65%"} 46 | 47 | - 1000 小时定律 48 | - 每天 4 个小时,一年可以入门 49 | - 10000 小时定律 50 | - 每天 8 个小时,五年成为专家 51 | - 理论与实践相结合 52 | - 理论告诉你原因,帮助你选择 53 | - 实践告诉你感受,帮助你记忆 54 | - 理论结合实践,才能把算法应用到合适的地方 55 | ::: 56 | :::::::::::::: 57 | 58 | ::: notes 59 | 《六祖坛经》:谈有,破空。防止学习只知其然不知其所以然。 60 | ::: 61 | 62 | ## 前言——三观 63 | 64 | - 人生观 :「机器学习」会带来什么? 65 | - 对于你的意义,你的原始驱动力 66 | - 世界观 :「机器学习」会改变什么? 67 | - 能够产生的作用,算法的适用性 68 | - 价值观 :「机器学习」的评价体系? 69 | - 你如何选择最有价值的算法去学习和使用 70 | 71 | ## 前言——方法论 72 | 73 | - 学习方法: 74 | - 先泛读了解机器学习的轮廓 75 | - 再精读感兴趣的内容 76 | - 最后总结成自己的体系 77 | - 实践方法 78 | - 先跟随经典的项目流程 79 | - 再尝试自己的兴趣方向 80 | - 最后总结出自己的代码库 81 | 82 | # 基本概念 83 | 84 | ## 机器学习 85 | 86 | - 有监督学习 ( 输入数据 + 目标数据 ) 87 | - 回归问题 ( 连续输入 + 连续目标 ) 88 | - 分类问题 ( 连续输入 + 离散目标 ) 89 | - 分类问题 ( 离散输入 + 离散目标 ) 90 | - 特征问题 91 | - 无监督学习 ( 输入数据 ) 92 | - 聚类问题 ( 连续输入 + 离散输出 ) 93 | - 降维问题 ( 高维输入 + 低维输出 ) 94 | 95 | ## 线性代数 96 | 97 | - 线性方程组 98 | - 欠定问题:数据少于参数个数,无数解 99 | - 正定问题:数据等于参数个数,可能 惟一解 100 | - 超定问题:数据多于参数个数,可能 没有解 101 | - 需要增加限制条件,转化为最优化问题 102 | 103 | ## 概率统计——概率 104 | 105 | - 似然函数[^Morris,2007] P235 106 | - 将观测数据的联合概率密度函数或者联合概率分布函数表示为参数的函数。 107 | - 例如:观测数据 $X,\mathbf{y}$ 已知,参数 $\mathbf{w}$ 未知,函数为 $p ( \mathbf{y}|X,\mathbf{w} )$ 108 | - 先验分布 109 | - 在得到观测数据之前参数的分布 110 | - 例如: $p ( \mathbf{w}|\alpha,\beta )$ 111 | - 后验分布 112 | - 在给定观测数据之后参数的分布 113 | - 例如: $p ( \mathbf{w}|X,\mathbf{y} ) \propto p ( \mathbf{y}|X,\mathbf{w} ) p ( \mathbf{w}|\alpha,\beta )$ 114 | 115 | ## 概率统计——估计 116 | 117 | - 最大似然估计器 118 | - 基于频率统计估计理论 119 | - 不基于先验分布和损失函数,而是基于数据集构造的似然函数最大来估计参数 θ 120 | - 参数 θ 是 未知的、定常的、没有任何先验信息的 121 | - 最大后验估计器 122 | - 基于贝叶斯估计理论 123 | - 基于先验分布和损失函数,使后验概率最大来估计参数 θ。 124 | - 当先验假设为均匀分布时,最大后验估计 与 最大似然估计 等价 125 | - 参数 θ 是 未知的、随机的 ( 基于某个概率分布的,与似然函数共轭分布,方便计算 ) 126 | 127 | ## 符号表 128 | 129 | - 向量: $\mathbf{x}= ( x_1,x_2,\cdots,x_D )^T$ 130 | - $D$维特征 $\mathbf{x}_n$ 131 | - 增广向量 $\dot{\mathbf{x}}_n = ( 1,\mathbf{x}_n^T )^T$ 132 | - 实数集: $\mathcal{R}$ 133 | - 高斯分布: $\mathcal{N} ( \mu,\sigma^2 )$ 134 | - 均值为 *μ*,方差为 *σ*^2^ 135 | - 梯度算子: $\nabla_{\mathbf{w}} J ( \mathbf{w} ) = [\frac\partial{\partial w_0}J ( \mathbf{w} ) ,\frac\partial{\partial w_1}J ( \mathbf{w} ) ,\cdots,\frac\partial{\partial w_D}J ( \mathbf{w} )]^T$ 136 | -------------------------------------------------------------------------------- /Machine-Learning/Skills.md: -------------------------------------------------------------------------------- 1 | # 算法工程师技能表 2 | 3 | ```mermaid 4 | graph TD; 5 | 数学高级-->创造 6 | 算法高级-->创造 7 | 设计-->业务初级 8 | 设计-->数学初级 9 | 设计-->算法高级 10 | 实现-->数学初级 11 | 实现-->编程高级 12 | 实现-->算法初级 13 | 算法初级-->应用 14 | 编程初级-->应用 15 | 业务高级-->应用 16 | ``` 17 | 18 | ## 算法工程师分类 19 | 20 | - 算法创造工程师:研究算法,算法创新、模式创新,发表论文 21 | - 算法设计工程师:应用算法,算法选择、模型设计,建立模型 22 | - 算法实现工程师:实现算法,构建工业级别的代码库(保证质量、性能和可用性) 23 | - 算法应用工程师:推广算法,算法快速、稳定、高效地在项目中实施 24 | 25 | ## 算法技能分类 26 | 27 | 数学初级:微积分、线性代数、概率与统计 28 | 29 | 数学高级:数值分析、泛函分析、随机过程 30 | 31 | 算法初级:线性回归模型、线性分类模型、朴素 Bayes 模型 32 | 33 | 算法高级:神经网络、支持向量机、深度学习 34 | 35 | 编程初级:软件开发、系统集成、项目实施 36 | 37 | 编程高级:体系结构、操作系统、分布式计算 38 | 39 | ## 模式识别流程图 40 | 41 | ```mermaid 42 | graph LR 43 | 问题描述 --> 数据准备 44 | 数据准备 --> 特征提取 45 | 特征提取 --> 模型选择 46 | 模型选择 --> 代价函数 47 | 代价函数 --> 参数估计 48 | 参数估计 --> 模型评估 49 | 模型评估 --> 模型上线 50 | ``` 51 | 52 | - 问题描述:有监督 ( 回归、分类、标注 ) 、无监督 ( 聚类、降维 ) 53 | - 数据准备:数据采集、数据归一化 54 | - 特征提取:特征映射变换 55 | - 模型选择:线性模型、非线性模型、统计模型、深度模型 56 | - 代价函数:L2 范数、L1 范数、似然函数、后验概率、交叉熵 57 | - 参数估计→寻找最优参数:最小二乘估计、最大似然估计、最大后验估计、 58 | - 模型评估:准确率、召回率、F1 指标、交叉验证 59 | - 模型上线: 60 | 61 | ```mermaid 62 | graph TB 63 | 评价分类器 --> 采集数据 64 | 评价分类器 --> 选择特征 65 | 评价分类器 --> 选择模型 66 | 评价分类器 --> 训练分类器 67 | ``` 68 | 69 | ```mermaid 70 | graph TB 71 | 先验知识 --> 选择特征 72 | 先验知识 --> 选择模型 73 | ``` 74 | 75 | -------------------------------------------------------------------------------- /Machine-Learning/Statistical-Learning-Method-Blue/Ch02.md: -------------------------------------------------------------------------------- 1 | # C02. 感知机 2 | 3 | - **模型** 4 | - 感知机,是根据输入实例的特征向量对其进行二类分类的线性分类模型,属于判别模型; 5 | - 模型参数包括 : 权值或权值向量,偏置。 6 | - 模型对应于输入空间 ( 特征空间 ) 中的分离超平面; 7 | - **策略** 8 | - 假设 : 感知机学习的训练数据集是线性可分的; 9 | - 目标 : 求得一个能够将训练集正实例点和负实例点完全正确分开的分离超平面; 10 | - 策略 : 即定义 ( 经验 ) 损失函数,并将损失函数极小化; 11 | - 损失函数定义为 : 误分类点的总数,不易优化; 12 | - 损失函数定义为 : 误分类到分离超平面的总距离; 13 | - **算法** 14 | - 感知机学习算法是基于误差 - 修正的学习思想,是由误分类驱动的; 15 | - 学习算法的优化方法 16 | - 批量学习可以基于进行优化 17 | - 一阶 : 最速下降法或梯度下降法; 18 | - 二阶 : 牛顿法、共轭梯度法等等 19 | - 在线学习 : 基于随机梯度下降法的对损失函数进行最优化 [^Goodfellow,2017] P95, P180 20 | - 原始形式 : 算法简单且易于实现。先任意选取一个超平面,然后随机选择一个误分类点使其用梯度下降法极小化目标函数 21 | - _例 2.1_ ( 比较简单,可以了解 ) 22 | - _定理 2.1_ ( 过于简略,建议跳过 ) 23 | - _对偶形式_ ( 没看出与原始形式有何区别,也没从别的书上看到过这种说明方式,建议跳过 ) 24 | - 当训练数据集线性可分时,感知机学习算法是收敛的,且有无穷多个解。 25 | - **学习总结** 26 | - 感知机是神经网络的基础,本章只有单个神经元模型,深入学习参考 [^Haykin,2011] 27 | - 神经网络是深度学习的基础,深度学习参考 [^Goodfellow,2017] 28 | - 距离度量是几何的概念,理论可参考 [^Duda,2003] P154 29 | - 学习算法的优化是最优化理论,基本优化方法可参考 [^Hyvarinen,2007] P42 -------------------------------------------------------------------------------- /Machine-Learning/Statistical-Learning-Method-Blue/Ch03.md: -------------------------------------------------------------------------------- 1 | # C03. **k** _近邻法_ 2 | 3 | - **k** 近邻法 (k-nearest neighbor, k-NN) 是一个基本且简单的方法,用于分类与回归。 4 | - 输入为实例的特征向量,对应于特征空间的点; 5 | - 输出为实例的类别,可以取多个类。 6 | - 基本思想 7 | - 假设给定一个训练数据集,其中的实例类别已经确定; 8 | - 对新输入的实例分类时,根据其 k 个最近邻的训练实例的类别,通过多数表决等方式进行预测。 9 | - 不具有显式的学习过程。 10 | - 实际上利用训练数据集对特征向量空间进行切分,并作为其分类的 "模型"。 11 | - **k** 近邻的模型 12 | - 对应于基于训练数据集对特征空间的一个划分。 13 | - 当训练集、距离度量、k 值及分类决策规则确定后,输入实例所属类别也唯一确定。 14 | - **k** 近邻法的三个要素 15 | - **学习准则** : 距离度量,常用欧氏距离; ( 距离定义 ) [^Duda,2003] 16 | - k 值的选择 : 反映了近似误差与估计误差之间的权衡。 17 | - k 值越大时,近似误差会增大,估计误差会减小,模型也越简单; 18 | - k 值越小时,近似误差会减少,估计误差会增大,模型也越复杂。 19 | - 可以用交叉验证的方式选择最优 k 值。 20 | - 分类决策规则 : 多数表决规则 (majority voting rule), 等价于 经验风险最小化。 21 | - **k** _近邻法的实现基于 kd 树_。 ( 了解即可,实际应用中大多使用的是已经成熟的软件包 ) 22 | - kd 树是一种便于对 k 维空间中的数据进行快速检索的数据结构; 23 | - kd 树是二叉树,表示对 k 维空间的一个划分; 24 | - kd 树的每个圣战对应于 k 维空间划分中的一个超矩形区域; 25 | - 利用 kd 树可以省去对大部分数据点的搜索,从而减少搜索的计算量。 26 | - **学习总结** 27 | - 了解即可,因为面对高维问题效果很差,需要考虑降维操作。[^周志华,2018] P225 -------------------------------------------------------------------------------- /Machine-Learning/Statistical-Learning-Method-Blue/Ch05.md: -------------------------------------------------------------------------------- 1 | # C05. 决策树 (decision tree) 2 | 3 | - **决策树模型** 4 | - 决策树是一种基本方法,用于分类与回归。 5 | - 本章主要讨论的是分类决策树。 6 | - 分类决策树模型 7 | - 定义 : 是基于特征对实例进行分类的树形结构。 8 | - 模型的组成结构 9 | - 结点 (node) 10 | - 内部结点 (internal node) 11 | - 叶结点 (leaf node) 12 | - 有向边 (directed edge) 13 | - 分类决策树可以转换成一个 if-then 规则的集合; 14 | - 决策树的根结点到叶结点的每一条路径构建一条规则; 15 | - 路径上内部结点的特征对应着规则的条件,而叶结点的类对应着规则的结论。 16 | - 重要的性质 : 互斥并且完备,即全覆盖。 17 | - 覆盖是指实例的特征与路径上的特征一致或实例满足规则的条件。 18 | - 也可以看作是定义在特征空间与类空间上的条件概率分布。 19 | - 这个条件概率分布定义在特征空间的一个划分上, 20 | - 将特征空间划分为互不相交的单元或区域, 21 | - 并在每个单元定义一个类的概率分布就构成了一个条件概率分布。 22 | - 决策树分类时,将结点的实例分到条件概率大的类中。 23 | - 主要优点 : 可读性强,分类速度快。 24 | - 决策树学习 25 | - 学习目的 26 | - 根据给定的训练数据集,构建一个与训练数据拟合很好,并且复杂度小的决策树,使之能够对实例进行正确的分类。 27 | - 决策树与训练数据的矛盾较小,同时还具有较好的泛化能力。 28 | - 也可以看作由训练数据集估计条件概率模型 29 | - 模型对训练数据拟合的效果很好; 30 | - 模型对未知数据有很好的预测。 31 | - 从所有可能的决策树中选取最优决策树是 NP 完全问题; 32 | - 现实中采用启发式方法学习次优的决策树。 33 | - **学习准则** : 损失函数最小化。 34 | - 损失函数是一种正则化的极大似然函数 35 | - **学习算法** 36 | - 递归地选择最优特征,并根据该特征对训练数据进行分割,使之对各个数据集有一个最好的分类的过程。 37 | - 决策树的学习算法包括 3 个部分 38 | - 特征选择 39 | - 特征选择的目的在于选取对训练数据能够分类的特征,提高决策树学习的效率; 40 | - 特征选择的关键是其准则 41 | - 样本集合 D 对特征 A 的**信息增益** 最大 42 | - 信息增益定义为集合 D 的经验熵与特征 A 在给定条件下 D 的经验条件熵之差。 43 | - 熵 : 表示随机变量不确定性的度量。也称为经验熵。 44 | - 条件熵 : 定义为 X 给定条件下 Y 的条件概率分布的熵对 X 的数学期望。也称为经验条件熵。 45 | - 信息增益表示得知特征 X 的信息而使得类 Y 的信息的不确定性减少的程度。 46 | - 信息增益等价于训练数据集中类与特征的互信息。 47 | - 信息增益依赖于特征,信息增益大的特征具有更强的分类能力。 48 | - 样本集合 D 对特征 A 的**信息增益比** 最大 49 | - 为了避免信息增益对取值较多的特征的偏重,使用信息增益比来代替; 50 | - 信息增益比 : 特征 A 对训练数据集 D 的信息增益与训练数据集 D 关于特征 A 的值的熵之比。 51 | - 样本集合 D 的**基尼指数** 最小 52 | - 树的生成 53 | - 计算指标,再根据准则选取最优切分点,从根结点开发,递归地产生决策树。 54 | - 通过不断地选择局部最优的特征,得到可能是全局次优的结果。 55 | - 树的剪枝 : 将已经生成的树进行简化的过程。 56 | - 目的 : 由于生成的决策树存在过拟合问题,需要对它进行剪枝,以简化学到的决策树。 57 | - 剪枝的准则 : 极小化决策树整体的损失函数或代价函数,等价于正则化的极大似然估计。 58 | - 剪枝的分类 59 | - 预剪枝 : 也叫分支停止准则。在决策树生成过程中,对每个结点在划分前先进行估计,若当前结点的划分不能带来决策树泛化性能提升,则停止划分并将当前结点标记为叶结点; 60 | - 后剪枝 : 先从训练集生成一棵完整的决策树,然后自底向上地对非叶结点进行考察,若将该结点对应的子树替换为叶结点能带来决策树泛化性能提升,则将该子树替换为叶结点。 61 | - 常用的学习算法 62 | - ID3: 在决策树的各个结点上应用信息增益准则选择特征,递归地构建决策树。相当于用极大似然法进行概率模型的选择。 63 | - C4.5: 在决策树的各个结点上应用信息增益比准则选择特征,递归地构建决策树。 64 | - CART: 既可用于分类,也可用于回归。 65 | - 等价于递归地二分每个特征,将输入空间即特征空间划分为有限个单元,并在这些单元上确定预测的概率分布,也就是在输入给定的条件下输出的条件概率分布。 66 | - CART 算法的两个过程 67 | - 决策树生成 : 基于训练数据集生成决策树,要尽量大; 68 | - 回归树生成 69 | - 用平方误差最小准则求解每个单元上的最优输出值。 70 | - 回归树通常称为最小二乘回归树。 71 | - 分类树生成 72 | - 用基尼指数选择最优特征,并决定该特征的最优二值切分点。 73 | - 算法停止计算的条件 74 | - 结点中的样本个数小于预定阈值; 75 | - 样本集的基尼小于预定阈值; 76 | - 决策树剪枝 77 | - 用验证数据集对已经生成的树进行剪枝,剪枝的标准为损失函数最小,基于标准选择最优子树。 78 | - 可以通过交叉验证法对用于验证的独立数据集上的子树序列进行测试,从中选择最优子树。 79 | - [^Duda,2003] P320, CART 作为通用的框架,定义了 6 个问题 80 | - 决策树的预测 81 | - 对新的数据,利用决策树模型进行分类。 82 | - **学习总结** 83 | - 算法 (5.1, 5.2, 5.6) + 例题 ( 5.1, 5.2, 5.3, 5.4 ) 通过算法和例题可以增强理解; 84 | - 损失函数的定义可以进一步参考 "不纯度" 指标 [^Duda,2003] P320, 或 "纯度" 指标 [^周志华,2018] P75 85 | - "不纯度" 指标是求极小值,可以跟梯度下降法等最优化理论结合。 86 | -------------------------------------------------------------------------------- /Machine-Learning/Statistical-Learning-Method-Blue/Ch07.md: -------------------------------------------------------------------------------- 1 | # C07. 支持向量机 2 | 3 | - 支持向量机 ( Support Vector Machine, SVM ) 是一种二类分类模型。 4 | - 基本模型是定义在特征空间上的间隔最大的线性分类器 5 | - 基本概念 6 | - 支持向量决定了最优分享超平面 7 | - 最终判别时,只需要很少的“重要”训练样本,大幅减少计算量。 8 | - 间隔 ( 看懂数学公式就可以理解间隔,判别在数据的维度上又增加了一个维度 ) 9 | - 与其他模型的比较 10 | - 与感知机的区别 : 间隔最大化产生最优超平面; 11 | - 与线性模型的区别 : 使用核技巧成为非线性分类器。 12 | - 分类 13 | - 线性可分支持向量机,硬间隔支持向量机。 14 | - 线性支持向量机,软间隔支持向量机,是最基本的支持向量机。 15 | - 非线性支持向量机 16 | - 学习 17 | - 学习在特征空间进行的 18 | - 学习策略是间隔最大化 19 | - 线性可分支持向量机 (linear support vector machine in linearly separable case) 20 | - 条件 : 训练数据线性可分; 21 | - 学习策略 : 硬间隔最大化 22 | - 求解能够正确划分训练数据集并且几何间隔最大的分离超平面 23 | - 对训练数据集找到几何间隔最大的超平面意味着以充分大的确信度对训练数据进行分类 24 | - 这样的超平面对未知原新实例有很好的分类预测能力 25 | - 解的特征 26 | - 最优解存在且唯一; ( _唯一性证明_,建议跳过 ) 27 | - 支持向量由位于间隔边界上的实例点组成; 28 | - 线性支持向量机 (linear support vector machine) 29 | - 条件 30 | - 训练数据近似线性可分; 31 | - 训练数据中存在一些特异点 (outlier) 32 | - 学习策略 : 软间隔最大化 33 | - 惩罚参数 C * 替代损失函数 f,表示误判的代价; 34 | - hinge 损失 ( 合页损失函数 ) : 保持了稀疏性 35 | - 指数损失 36 | - 对率损失 : 相似于对率回归模型 37 | - 目标是使间隔尽量大,误分类点尽量少。 38 | - 解的特征 39 | - 权值唯一,偏置不唯一; 40 | - 支持向量由位于间隔边界上的实例点、间隔边界与分离超平面之间的实例点、分离超平面误分一侧的实例点组成; 41 | - 最优分享超平面由支持向量完全决定。 42 | - 非线性支持向量机 (non-linear support vector machine) 43 | - 基本概念 44 | - 线性空间 : 满足线性性质的空间 45 | - 距离 : 是一种度量 46 | - 距离的集合 ⟶ 度量空间 + 线性结构 ⟶ 线性度量空间 47 | - 范数 : 表示某点到空间零点的距离 48 | - 范数的集合 ⟶ 赋范空间 + 线性结构 ⟶ 线性赋范空间 49 | - 内积空间 : 添加了内积运算的线性赋范空间 50 | - 线性赋范空间 + 内积运算 ⟶ 内积空间 51 | - 欧氏空间 : 有限维的内积空间 52 | - 希尔伯特空间 : 内积空间满足完备性,即扩展到无限维 53 | - 内积空间 + 完备性 ⟶ 希尔伯特空间 54 | - 巴拿赫空间 : 赋范空间满足完备性 55 | - 赋范空间 + 完备性 ⟶ 巴拿赫空间 56 | - 条件 : 57 | - 训练数据非线性可分; 58 | - 通过非线性变换 ( 核函数 ) 将输入空间 ( 欧氏空间或离散集合 ) 转化为某个高维特征空间 ( 希尔伯特空间 ) 中的线性可分; 59 | - 在高维特征空间中学习线性支持向量机。 60 | - 学习策略 : 核技巧 + 软间隔最大化 61 | - 最大间隔法 62 | - 间隔概念 63 | - 函数间隔 : 表示分类的正确性及确信度 64 | - 几何间隔 : 规范化后的函数间隔,实例点到超平面的带符号的距离 65 | - 分类 66 | - 硬间隔最大化 (hard margin maximization) 67 | - 软间隔最大化 (soft margin maximization) 68 | - 间隔最大化的形式化 69 | - 求解凸二次规划问题 70 | - 最优化算法 71 | - 正则化的合页损失函数的最小化问题 72 | - 求解过程 73 | - 原始最优化问题应用拉格朗日对偶性; 74 | - 通过求解对偶问题得到原始问题的最优解。 75 | - 中间也可以根据需要自然引入核函数。 76 | - 核技巧 (kernel method) 通用的机器学习方法 77 | - 应用条件 78 | - 非线性可分训练数据可以变换到线性可分特征空间; 79 | - 目标函数中的内积可以使用非线性函数的内积替换; 80 | - 非线性函数的内积可以使用核函数替换; 81 | - 核函数使非线性问题可解。 82 | - 常用的核函数 83 | - 线性核 : 对应于线性可分问题 84 | - 多项式核函数 85 | - 高斯核函数 86 | - Sigmoid 核函数 87 | - 函数组合得到的核函数 88 | - 两个核函数的线性组合仍然是核函数,k1(x,z) 和 k2(x,z) 是核函数,c1 和 c2 是任意正数,则 k(x,z)=c1k1(x,z)+c2k2(x,z) 也是核函数。 89 | - 两个核函数的直积仍然是核函数,k1(x,z) 和 k2(x,z) 是核函数,则 k(x,z)=k1(x,z)k2(x,z) 也是核函数。 90 | - k1(x,z) 是核函数,g(z) 是任意函数,则 k(x,z)=g(z)k1(x,z)g(z) 也是核函数。 91 | - SMO 算法 92 | - 支持向量机学习的启发式快速算法 93 | - 流程 94 | - 将原二次规划问题分解为只有两个变量的二次规划子问题; 95 | - 第一个变量是违反 KKT 条件最严重的变量; 96 | - 第二个变量是使目标函数增长最快的变量; 97 | - 目标是使两个变量所对应样本之间的间隔最大。 98 | - 对子问题进行解析分解; 99 | - 直到所有变量满足 KKT 条件为止。 100 | - **学习总结** 101 | - 支持向量机与神经网络是两大重要的机器学习算法; 102 | - 结合周老师的书一起看,对于理解支持向量机会有较大帮助。[^周志华,2018] C06 103 | - 深入了解支持向量机的理论分析。[^Haykin,2011] C06 104 | -------------------------------------------------------------------------------- /Machine-Learning/Statistical-Learning-Method-Blue/Ch09.md: -------------------------------------------------------------------------------- 1 | # C09. EM 算法及推广 2 | 3 | - 学习基础 4 | - 概率论 : 期望 5 | - 最大似然估计或极大后验估计 6 | - 梯度下降 7 | - EM 算法是对含有隐变量的概率模型进行极大似然估计或者极大后验估计的迭代算法。 8 | - E 步,求期望;利用数据和假设的初值,求得一个隐变量的条件概率分布的期望,即 “Q 函数”。 ( 因为无法求得条件概率分布的具体值 ) 9 | - M 步,求极值。利用 “Q 函数” 来求极值,这个极值可以帮助拟合的概率分布更加逼近真实分布。 10 | - **Q 函数的定义** ( 理解 Q 函数的涵义可以更好地推广到应用中,开始不理解也没关系,可以在应用中慢慢加深 ) 11 | - **EM 算法的推导** ( 如果书上的无法理解,还可以参考本文中的其他文献 ) 12 | - EM 算法是收敛的,但是有可能收敛到局部最小值。 13 | - EM 算法可以看成利用凸函数进行概率密度逼近; 14 | - 如果原概率密度函数有多个极值,初值的不同就可能逼近到不同的极值点,所以无法保证全局最优。 15 | - EM 算法的应用 ( 下面的两个应用都是重点,但是无法从本书中完全理解,可以在未来的应用继续探索 ) 16 | - **高斯混合模型** 17 | - **HMM(隐Markov模型)** ( Ch 10 ) 18 | - _EM 算法的推广_ ( 建议跳过,对了解 EM 算法帮助不大,只有深入理解和研究 EM 算法才需要 ) 19 | - F 函数的极大 - 极大算法 20 | - 广义 EM 算法 ( GEM ) 21 | - **学习总结** 22 | - EM 算法的详细推导。[^Borman,2004], 或者 Determined22 的 [EM 算法简述及简单示例(三个硬币的模型)](http://www.cnblogs.com/Determined22/p/5776791.html) 23 | - EM 算法的概率分析。[^Friedman,2001], 或者苏剑林的 [梯度下降和 EM 算法](https://spaces.ac.cn/archives/4277) 24 | - EM 算法的深入理解。可以参考史春奇的 [Hinton 和 Jordan 理解的 EM 算法](https://www.jianshu.com/p/bfa6b5947cd9) 25 | 26 | -------------------------------------------------------------------------------- /Machine-Learning/Statistical-Learning-Method-Blue/Ch10.md: -------------------------------------------------------------------------------- 1 | # C09. EM 算法及推广 2 | 3 | - 学习基础 4 | - 概率论 : 期望 5 | - 最大似然估计或极大后验估计 6 | - 梯度下降 7 | - EM 算法是对含有隐变量的概率模型进行极大似然估计或者极大后验估计的迭代算法。 8 | - E 步,求期望;利用数据和假设的初值,求得一个隐变量的条件概率分布的期望,即 “Q 函数”。 ( 因为无法求得条件概率分布的具体值 ) 9 | - M 步,求极值。利用 “Q 函数” 来求极值,这个极值可以帮助拟合的概率分布更加逼近真实分布。 10 | - **Q 函数的定义** ( 理解 Q 函数的涵义可以更好地推广到应用中,开始不理解也没关系,可以在应用中慢慢加深 ) 11 | - **EM 算法的推导** ( 如果书上的无法理解,还可以参考本文中的其他文献 ) 12 | - EM 算法是收敛的,但是有可能收敛到局部最小值。 13 | - EM 算法可以看成利用凸函数进行概率密度逼近; 14 | - 如果原概率密度函数有多个极值,初值的不同就可能逼近到不同的极值点,所以无法保证全局最优。 15 | - EM 算法的应用 ( 下面的两个应用都是重点,但是无法从本书中完全理解,可以在未来的应用继续探索 ) 16 | - **高斯混合模型** 17 | - **HMM(隐Markov模型)** ( Ch 10 ) 18 | - _EM 算法的推广_ ( 建议跳过,对了解 EM 算法帮助不大,只有深入理解和研究 EM 算法才需要 ) 19 | - F 函数的极大 - 极大算法 20 | - 广义 EM 算法 ( GEM ) 21 | - **学习总结** 22 | - EM 算法的详细推导。[^Borman,2004], 或者 Determined22 的 [EM 算法简述及简单示例(三个硬币的模型)](http://www.cnblogs.com/Determined22/p/5776791.html) 23 | - EM 算法的概率分析。[^Friedman,2001], 或者苏剑林的 [梯度下降和 EM 算法](https://spaces.ac.cn/archives/4277) 24 | - EM 算法的深入理解。可以参考史春奇的 [Hinton 和 Jordan 理解的 EM 算法](https://www.jianshu.com/p/bfa6b5947cd9) 25 | 26 | # C10. **隐 Markov 模型 ( HMM ) 的算法及推广** 27 | 28 | - 学习基础 29 | - 随机过程 : 用于理解 Markov 链的数学含义 30 | - EM 算法 : 用于计算 HMM 的学习问题 31 | - Markov 链的定义 32 | - 随机过程 33 | - 研究对象是随时间演变的随机现象。[^盛骤,2015] C12 34 | - 设 T 是一无限实数集,对依赖于参数 t ( t 属于 T ) 的一族 ( 无限多个 ) 随机变量称为随机过程。 35 | - 我的理解 36 | - 随机过程在任一个时刻 t, 被观测到的状态是随机的,但是这个随机状态是由一个确定的函数控制的。 37 | - 例如 : 有 3 块金属放在箱子里面,任一个时刻 t 取出的金属是随机的,但是每块金属衰退的速度是由这块金属自身的函数控制的。 38 | - 随机变量刻画的是数值的随机性 ( 某个数出现的概率 ) ,随机过程刻画的是函数的随机性 ( 某个函数出现的概率 ) 39 | - Markov 过程 40 | - Markov 性或无后效性 : 过程 ( 或系统 ) 在时刻 t_0 所处的状态为已知的条件下,过程在时刻 t>t_0 所处状态的条件分布与过程在时刻 t_0 之前所处的状态无关。即在已经知道过程“现在”的条件下,其“将来”不依赖于“过去”。[^盛骤,2015] C13 41 | - Markov 过程 : 具有 Markov 性的随机过程,称为 Markov 过程。 42 | - Markov 链 43 | - 时间和状态都是离散的 Markov 过程称为 Markov 链,简称马氏链。 44 | - 深入理解可参考 [^Rabiner,1989] 45 | - HMM 46 | - 关于时序的概率模型 47 | - 用于描述一个被观测到的随机序列,这个随机序列是由不可观测的状态随机序列生成的,这个状态随机序列是由隐藏的 Markov 链随机生成的。 48 | - 状态序列 Q : 隐藏的 Markov 链随机生成的状态序列; 49 | - 观测序列 O : 每个状态生成一个观测,一个状态序列就会生成一个观测序列。 50 | - 序列的每一个位置都可以看作一个时刻。 51 | - HMM 的基本假设 52 | - 齐次 Markov 假设,即假设隐藏的 Markov 链在任意时刻 t 的状态只依赖于前一个时刻的状态,而与其他时刻的状态及观测无关,也与时刻 t 无关; 53 | - 观测独立性假设,即假设任意时刻 t 的观测只依赖于该时刻的 Markov 链的状态,与其他观测与状态无关。 54 | - HMM 的基本元素 55 | - N,模型的状态数; 56 | - M,每个状态生成的可观测的标志数; 57 | - A,转移概率矩阵,a_{ij} 表示从状态 i 转移到状态 j 的概率; 58 | - B,观测概率矩阵,b_{j} (k) 表示状态 j 产生标志 k 的概率; 59 | - π,初始状态分布,π_i 表示一开始系统在状态 i 的概率。 60 | - HMM 参数的数学表示 : λ=(A, B, π) 61 | - HMM 的三个基本问题 62 | - 概率计算问题 63 | - 给定观测序列 O 和模型参数 λ,计算基于这个模型下观测序列出现的概率 P(O\|λ) ; 64 | - 预测问题 65 | - 给定观测序列 O 和模型参数 λ,寻找能够解释这个观测序列的状态序列,这个状态序列的可能性最大; 66 | - 除非是退化的模型,否则不会有“正确”的状态序列,因为每个状态序列都有可以生成观测序列; 67 | - 只可能是依据某个优化准则,使找到的状态序列尽可能的逼近真实的状态序列。 68 | - 学习问题 69 | - 给定观测序列 O,寻找能够解释这个观测序列的模型参数 λ,使得 P(O\|λ) 最大。 70 | - 评测哪个模型能最好地解释观测序列。 71 | - HMM 的三个基本问题的解决方案 72 | - 概率计算问题 : 前向算法; 73 | - 先了解直接计算法,理解 HMM 需要计算的概率的方法和目的,同时明白直接计算法存在的问题; 74 | - 再了解前向算法,如果利用栅格方法叠加前面计算的成果,从而降低直接计算法的庞大计算量。 75 | - 预测问题 : Viterbi 算法; 76 | - 学习问题 : 前向 + 后向算法 +EM 算法。 77 | - 利用前向 + 后向算法计算转移概率矩阵; 78 | - 再基于 MLE 理论构造 P(O\|λ) 函数; 79 | - 因为函数中有三个参数不可知,无法直接计算得到,因为采用 EM 算法迭代求解。 80 | - HMM 的基本类型 81 | - 基本的 HMM 类型 82 | - 4 状态遍历 HMM;其他类型都是遍历 HMM 的特例。 83 | - 4 状态从左到右 HMM; 84 | - 6 状态从左到右并行路径 HMM。 85 | - 观测序列的密度是连续函数的 HMM : 增加了混合高斯作为约束; 86 | - 自回归的 HMM : 很适合语音处理; 87 | - 无输出的 HMM : 即某些状态转移时无观测输出,主要用于语音识别; 88 | - 一组状态到另一组状态转换 : 组内状态无转移; 89 | - 优化准则 : 利用概率理论 ( ML ) 或信息理论 ( MMI,MDI ) 刻画; 90 | - 比较 HMM 模型 : 用于模型的测度和选择,常用的测度 ( 交叉熵或散度或判别信息 ) 91 | - HMM 算法的具体实现方法 92 | - 观测数据的尺度化,方便计算机处理,防止溢出; 93 | - HMM 模型的训练 : 通过多个观测序列进行训练,估计模型的参数; 94 | - HMM 模型参数的初始值设定,没有形式化方法,只能凭借经验; 95 | - 观测数据数量过少,或者观测数据不完整 96 | - 扩大用于训练的观测集的大小 ( 现实不可操作 ) ; 97 | - 减少 HMM 模型的参数个数,即减小 HMM 模型的规模; 98 | - 利用插值的方法补齐或者增加数据。 99 | - HMM 模型的选择 100 | - 确定 HMM 模型的状态 ( 模型状态数,模型路径数 ) 101 | - 确定 HMM 观测的标志 ( 连续还是离散,单个还是混合 ) 102 | - 无形式化方法,依赖于具体的应用。 103 | - **学习总结** 104 | - 随机过程和 HMM 算法的基本概念的理解,特别是语音识别和语言处理方向的研究极为重要; 105 | - HMM 算法的计算过程的了解,虽然可以调用成熟的模块,但是了解这个计算过程对于 HMM 计算的调优可能会有帮助; 106 | - HMM 算法的学习极力推荐 [^Rabiner,1989],本章的框架就是基于这篇文章写的。 107 | 108 | -------------------------------------------------------------------------------- /Machine-Learning/Statistical-Learning-Method-Blue/appC.md: -------------------------------------------------------------------------------- 1 | # Lagrange 对偶性 2 | 3 | 在约束最优化问题中,使用 Language 对偶性 ( Duality ) 将原始问题转化为对偶问题,通过解对偶问题而得到原始问题的解,这个方法应用在许多统计学习方法中。例如:「最大熵模型」与「支持向量机」。 4 | 5 | ## 1. 原始问题 6 | 7 | 假设 $f ( \text{x} ) ,c_i ( \text{x} ) ,h_j ( \text{x} )$ 是定义在 $\mathbb{R}^n$ 上的连续可向函数,其中 $\text{x}= ( x_1,\cdots,x_n )^T \in\mathbb{R}^n$,需要求解约束优化问题 ( 原始问题 ) 8 | $$ 9 | \begin{aligned} 10 | &\min_{\text{x}\in\mathbb{R}^n} &&f ( \text{x} ) &\\ 11 | &\text{s.t.} &&c_i ( \text{x} ) \leq 0,&i=1,\cdots,k\\ 12 | & &&h_j ( \text{x} ) =0,&j=1,\cdots,l 13 | \end{aligned} 14 | $$ 15 | 16 | 引入广义 Lagrange 函数,其中 $\alpha_i,\beta_j$ 是 Language 乘子,并且 $\alpha\geq 0$ 17 | $$ 18 | L ( \text{x},\alpha,\beta ) =f ( \text{x} ) +\sum_{i=1}^k \alpha_i c_i ( \text{x} ) +\sum_{j=1}^l\beta_j h_j ( \text{x} ) 19 | $$ 20 | 21 | 得到 $\text{x}$ 的函数为,其中 $P$ 表示原始问题 22 | $$ 23 | \theta_P ( \text{x} ) =\max_{\alpha,\beta: \alpha_i\geq 0} L ( \text{x},\alpha,\beta ) 24 | $$ 25 | 26 | 假设某个 $\text{x}$ 违反原始问题的约束条件,即$\exist i, c_i(\text{x})>0$ 或者 $\exist j, h_j ( \text{x} )\neq 0$,令 $\alpha_i\rightarrow + \infty, \beta_j h_j ( \text{x} )\rightarrow +\infty$,其他 $\alpha,\beta$ 均取 $0$ 得 27 | $$ 28 | \theta_P( \text{x})=\max_{\alpha,\beta:\alpha_i\geq 0} 29 | [f( \text{x}) +\sum_{i=1}^k \alpha_i c_i ( \text{x} ) +\sum_{j=1}^l\beta_j h_j ( \text{x} )] 30 | = +\infty 31 | $$ 32 | 33 | 如果 $\text{x}$ 满足约束条件,则 $\theta_P(\text{x})=f ( \text{x} )$ 34 | 35 | 因此两个极小化问题等价 36 | $$ 37 | min_{\text{x}}\theta_P( \text{x})=\min_{\text{x}}\max_{\alpha,\beta:\alpha_i\geq 0} L ( \text{x},\alpha,\beta ) 38 | $$ 39 | 40 | 即有相同的解,这样就把原始问题表示为广义 Lagrange函数的极小极大问题。 41 | 42 | 将原始问题的最优值(解)定义为:$p^*=min_{\text{x}}\theta_P( \text{x})$ 43 | 44 | ## 2. 对偶问题 45 | 46 | 对偶问题定义: 47 | $$ 48 | \theta_D(\alpha,\beta)=min_{\text{x}} L ( \text{x},\alpha,\beta ) 49 | $$ 50 | 51 | 再表示为极大化问题 52 | $$ 53 | \max_{\alpha,\beta:\alpha_i\geq 0} \theta_D(\alpha,\beta) = \max_{\alpha,\beta:\alpha_i\geq 0} \min_{\text{x}} L ( \text{x},\alpha,\beta ) 54 | $$ 55 | 56 | 再将问题转化为最优化问题(原始问题的对偶问题) 57 | $$ 58 | \begin{aligned} 59 | \max_{\alpha,\beta} \theta_D(\alpha,\beta) = \max_{\alpha,\beta} \min_{\text{x}} L ( \text{x},\alpha,\beta )\\ 60 | \text{s.t.} \alpha_i\geq 0, i=1,\cdots,k 61 | \end{aligned} 62 | $$ 63 | 64 | 将对偶问题的最优值(解)定义为:$d^*=\max_{\alpha,\beta:\alpha_i\geq 0}\theta_D(\alpha,\beta)$ 65 | 66 | ## 3. 原始问题与对偶问题的关系 67 | 68 | 定理 C.1:若原始问题和对偶问题都有最优值,则 $d^*=\max_{\alpha,\beta:\alpha_i\geq 0}\min_{\text{x}} L ( \text{x},\alpha,\beta )\leq \min_{\text{x}} max_{\alpha,\beta:\alpha_i\geq 0} L ( \text{x},\alpha,\beta )=p^*$ 69 | 70 | 推论 C.1:设 $x^*$ 和 $\alpha^*,\beta^*$ 分别是原始问题和对偶问题的可行解,并且 $d^*=p^*$,则它们也分别是原始问题和对偶问题的最优解。 71 | 72 | 定理 C.2:假设函数 $f(\text{x}),c_i(\text{x})$ 是凸函数,$h_j(\text{x})$ 是仿射函数,并且 $\exist \text{x},\forall i, c_i(\text{x})<0$,则存在 $x^*$ 和 $\alpha^*,\beta^*$ ,满足 $x^*$ 是原始问题的解和 $\alpha^*,\beta^*$ 是对偶问题的解,并且 $p^*=d^*=L( \text{x}^*,\alpha^*,\beta^*)$ 73 | 74 | 定理 C.3:假设函数 $f(\text{x}),c_i(\text{x})$ 是凸函数,$h_j(\text{x})$ 是仿射函数,并且 $\exist \text{x},\forall i, c_i(\text{x})<0$,则存在 $x^*$ 和 $\alpha^*,\beta^*$ ,满足 $x^*$ 是原始问题的解和 $\alpha^*,\beta^*$ 是对偶问题的解的充分必要条件是 $x^*$ 和 $\alpha^*,\beta^*$ 满足KKT(Karush-Kuhn-Tucker)条件: 75 | $$ 76 | \begin{aligned} 77 | \nabla_{\text{x}} L(\text{x}^*,\alpha^*,\beta^*)&=0&\\ 78 | \alpha_i^* c_i(\text{x}^*)&=0,&i=1,\cdots,k\\ 79 | c_i(\text{x}^*)&\leq 0,&i=1,\cdots,k\\ 80 | \alpha_i^*&\geq 0,&i=1,\cdots,k\\ 81 | h_j ( \text{x}^*)&=0,&j=1,\cdots,l 82 | \end{aligned} 83 | $$ 84 | 85 | 其中,$\alpha_i^* c_i(\text{x}^*)=0,i=1,\cdots,k$ 是KKT的对偶互补条件,由此条件可知:若 $\alpha_i^*>0$,则 $c_i(\text{x}^*)=0$ -------------------------------------------------------------------------------- /Machine-Learning/Statistical-Learning-Method-Blue/pandoc-pdf.yaml: -------------------------------------------------------------------------------- 1 | from: markdown+footnotes 2 | # reader: may be used instead of from: 3 | to: pdf 4 | # writer: may be used instead of to: 5 | 6 | # leave blank for output to stdout: 7 | output-file: slm/slm-notes.pdf 8 | # leave blank for input from stdin, use [] for no input: 9 | input-files: 10 | # - slm/preface.md 11 | # - slm/Ch01.md 12 | # - slm/Ch02.md 13 | # - slm/Ch03.md 14 | # - slm/Ch04.md 15 | # - slm/Ch05.md 16 | - slm/Ch06.md 17 | # - slm/Ch07.md 18 | # - slm/Ch08.md 19 | # - slm/Ch09.md 20 | # - slm/Ch10.md 21 | # - slm/Ch11.md 22 | # - slm/Ch12.md 23 | # - slm/appC.md 24 | # - ML/reference.md 25 | # or you may use input-file: with a single value 26 | 27 | template: template/zYxTom.tex 28 | standalone: true 29 | 30 | # note that structured variables may be specified: 31 | variables: 32 | author: zYx.Tom 33 | CJKmainfont: "Microsoft YaHei" 34 | mainfont: "Arial Unicode MS" 35 | mathfont: "Cambria Math" 36 | 37 | 38 | # metadata values specified here are parsed as literal 39 | # string text, not markdown: 40 | metadata-file: slm/slm.yaml 41 | # or you may use metadata-file: with a single value 42 | 43 | # ERROR, WARNING, or INFO 44 | verbosity: WARNING 45 | log-file: tmp/log.json 46 | 47 | pdf-engine: xelatex 48 | 49 | # auto, preserve, or none 50 | wrap: auto 51 | columns: 78 52 | dpi: 72 53 | 54 | extract-media: mediadir 55 | 56 | # toc: may also be used instead of table-of-contents: 57 | # table-of-contents: true 58 | toc: true 59 | toc-depth: 3 60 | 61 | shift-heading-level-by: 0 62 | section-divs: true 63 | identifier-prefix: foo 64 | title-prefix: "" 65 | strip-empty-paragraphs: true 66 | strip-comments: false 67 | indented-code-classes: [] 68 | ascii: true 69 | default-image-extension: ".jpg" 70 | 71 | # either a style name of a style definition file: 72 | highlight-style: pygments 73 | # or you may use syntax-definition: with a single value 74 | listings: false 75 | 76 | # reference-doc: myref.docx 77 | # 在输出 docx 或者 ODT 文件时,定义文件作为样式参考。 78 | 79 | # `--email-obfuscation=none`\|`javascript`\|`references` 80 | email-obfuscation: references 81 | 82 | tab-stop: 4 83 | preserve-tabs: false 84 | 85 | incremental: false 86 | slide-level: 2 87 | 88 | reference-links: true 89 | # block, section, or document(默认) 90 | reference-location: document 91 | atx-headers: true 92 | 93 | # accept, reject, or all 94 | track-changes: accept 95 | 96 | html-q-tags: false 97 | css: 98 | - site.css 99 | 100 | # none, all, or best 101 | ipynb-output: best 102 | 103 | # A list of two-element lists 104 | request-headers: 105 | - ["User-Agent", "Mozilla/5.0"] 106 | 107 | fail-if-warnings: false 108 | dump-args: false 109 | ignore-args: false 110 | trace: false -------------------------------------------------------------------------------- /Machine-Learning/Statistical-Learning-Method-Blue/pandoc-tex.yaml: -------------------------------------------------------------------------------- 1 | from: markdown 2 | # reader: may be used instead of from: 3 | to: LaTeX 4 | # writer: may be used instead of to: 5 | 6 | # leave blank for output to stdout: 7 | output-file: tmp/slm.tex 8 | # leave blank for input from stdin, use [] for no input: 9 | input-files: 10 | # - slm/preface.md 11 | # - slm/Ch01.md 12 | # - slm/Ch02.md 13 | # - slm/Ch03.md 14 | # - slm/Ch04.md 15 | # - slm/Ch05.md 16 | # - slm/Ch06.md 17 | # - slm/Ch07.md 18 | # - slm/Ch08.md 19 | # - slm/Ch09.md 20 | # - slm/Ch10.md 21 | # - slm/Ch11.md 22 | # - slm/Ch12.md 23 | - slm/appC.md 24 | # - ML/reference.md 25 | # or you may use input-file: with a single value 26 | 27 | template: template/zYxTom.tex 28 | standalone: true 29 | 30 | # note that structured variables may be specified: 31 | variables: 32 | author: zYx.Tom 33 | CJKmainfont: "Microsoft YaHei" 34 | mainfont: "Arial Unicode MS" 35 | mathfont: "Cambria Math" 36 | 37 | # metadata values specified here are parsed as literal 38 | # string text, not markdown: 39 | metadata-file: slm/slm.yaml 40 | # or you may use metadata-file: with a single value 41 | 42 | # ERROR, WARNING, or INFO 43 | verbosity: WARNING 44 | log-file: tmp/log.json 45 | 46 | pdf-engine: xelatex 47 | 48 | # auto, preserve, or none 49 | wrap: auto 50 | columns: 78 51 | dpi: 72 52 | 53 | extract-media: mediadir 54 | 55 | # toc: may also be used instead of table-of-contents: 56 | # table-of-contents: true 57 | toc: true 58 | toc-depth: 3 59 | 60 | shift-heading-level-by: 0 61 | section-divs: true 62 | identifier-prefix: foo 63 | title-prefix: "" 64 | strip-empty-paragraphs: true 65 | strip-comments: false 66 | indented-code-classes: [] 67 | ascii: true 68 | default-image-extension: ".jpg" 69 | 70 | # either a style name of a style definition file: 71 | highlight-style: pygments 72 | # or you may use syntax-definition: with a single value 73 | listings: false 74 | 75 | reference-doc: myref.docx 76 | 77 | email-obfuscation: javascript 78 | 79 | tab-stop: 4 80 | preserve-tabs: false 81 | 82 | incremental: false 83 | slide-level: 2 84 | 85 | reference-links: true 86 | # block, section, or document 87 | reference-location: block 88 | atx-headers: true 89 | 90 | # accept, reject, or all 91 | track-changes: accept 92 | 93 | html-q-tags: false 94 | css: 95 | - site.css 96 | 97 | # none, all, or best 98 | ipynb-output: best 99 | 100 | # A list of two-element lists 101 | request-headers: 102 | - ["User-Agent", "Mozilla/5.0"] 103 | 104 | fail-if-warnings: false 105 | dump-args: false 106 | ignore-args: false 107 | trace: false -------------------------------------------------------------------------------- /Machine-Learning/Statistical-Learning-Method-Blue/pandoc_SLM.bat: -------------------------------------------------------------------------------- 1 | REM pandoc -d slm/pandoc-tex.yaml 2 | pandoc --defaults=slm/pandoc-pdf.yaml --verbose 3 | 4 | 5 | 6 | REM 增加了结束前的提醒声音 7 | ECHO ** 8 | REM Code tmp/slm.tex 9 | sumatrapdf slm/slm-notes.pdf -------------------------------------------------------------------------------- /Machine-Learning/Statistical-Learning-Method-Blue/preface.md: -------------------------------------------------------------------------------- 1 | # 全书总评 2 | 3 | ## 书本印刷质量 : 4 星 4 | 5 | 印刷清楚,排版合适,错误很少。 6 | 7 | 8 | 9 | ## 著作编写质量 : 4 星 10 | 11 | 自学机器学习的必备。 12 | 13 | - 优点 14 | - 全书一直围绕着统计学习中的有监督学习描述,内容不深,基本算法都有所介绍; 15 | - 内容的组织是从抽象到具体的思维模式,比国外的教材易于理解; 16 | - 是自学统计学习和机器学习的推荐用书。 17 | - 缺点 18 | - 基础部分讲解缺少理论,学完后无法理解,不利用学以致用。例如 : 感知器的损失函数,应该是统计学习的核心思想,那么损失函数在整个算法中的位置,以及如何选择损失函数都需要说明清楚,才能够指导后面各种其他机器学习方法的理解。 19 | - 使用的方法没有导入的原因和出处,学习过程中会产生比较大的跳跃感,延续性不足。例如 : 随机梯度下降法,只是说明用于神经网络的优化需要用随机梯度下降,而实际上随机梯度下降是为了满足在线学习的需要,如果是批量学习可以直接使用梯度学习算法实现。 20 | - 总结 : 瑕不掩瑜,建议结合 “西瓜书” [^周志华,2018] 一起看。 21 | 22 | ## 读书建议 23 | 24 | 25 | 26 | 笔记目的 : 记录重点,方便回忆。 27 | 28 | # 重要的数学符号与公式 29 | 30 | 建议将下面列出的重要的数学符号与公式找张纸列在上面,方便在后面看到时可以查询。 31 | 32 | ## 重要的数学符号 33 | 34 | - $\mathbf{x}= ( x_1,x_2,\dots,x_D )^T$:表示$D$维向量 35 | - $\mathbf{X}=[\mathbf{x}_1,\mathbf{x}_,\dots,\mathbf{x}_N]^T$:表示 N 个 D 维向量组成的矩阵 36 | - $\mathbf{M}$:表示矩阵;$( w_1,\cdots,w_M )$:表示一个行向量有 $M$ 个元素;**w**= ( $w_1,\cdots,w_M )^T$ 表示对应的列向量。 37 | - $\mathbf{I}_M$:表示 $M \times M$ 单位阵。 38 | - $x$:表示元素;$y ( x )$:表示函数;$f [y]$:表示泛函。 39 | - $g ( x ) =O ( f ( x ))$:表示复杂度。 40 | - $\mathbb{E}_x [f ( x,y )]$:随机变量$x$对于函数$f ( x,y )$的期望,符号可以简化为$\mathbb{E}[x]$ 41 | - $\mathbb{E}_x [f ( x ) |z]$:随机变量$x$基于变量$z$的条件期望。 42 | - $\text{var} [ f ( x )]$:随机变量$x$的方差 43 | - $\text{cov}[\mathbf{x},\mathbf{y}]$:协方差,$cov[\mathbb{x}]$是$cov[\mathbb{x},\mathbb{x}]$的缩写 44 | 45 | ## 重要的数学公式 46 | 47 | ( 括号内的是公式的编号 ) 48 | 49 | 50 | ## 书中符号说明 51 | 52 | - ( P xx ) , 代表第 xx 页; 53 | - ( Ch xx ) , 代表第 xx 章; 54 | - ( Sec xx ) , 代表第 xx 节; 55 | - ( Eq xx ) , 代表第 xx 公式; 56 | - ( Fig xx ) , 代表第 xx 图 57 | -------------------------------------------------------------------------------- /Machine-Learning/Statistical-Learning-Method-Blue/slm.yaml: -------------------------------------------------------------------------------- 1 | title: 《统计学习方法》读书笔记 2 | subject: SLP 3 | keywords: Machine Learning, Statiscal Learning, 机器学习, 统计学习 4 | date: 2020-05-06 -------------------------------------------------------------------------------- /Machine-Learning/favorites.md: -------------------------------------------------------------------------------- 1 | # 参考文献 2 | 3 | ## 推荐书目 4 | 5 | - PRML:模式识别与机器学习,Bishop。 6 | - 通过概率的角度增强对机器学习的理解,覆盖面够宽泛,需要较多的数学知识 7 | - 西瓜书:机器学习,周志华。 8 | - 本科教学用书,网上参考资料丰富,覆盖面够宽泛,但是许多地方都只有简单的说明。 9 | - 小蓝书:统计学习方法,李航。 10 | - 初始入门,并不简单,公式较多,推导和解释不足,网上参考资料丰富。 11 | - 模式分类:Duda 12 | - 经典老书,辅助理解许多机器学习和模式分类的知识,对许多概念可以追根溯源。 13 | 14 | ## 推荐网站 15 | 16 | - 百度网盘 17 | - [共享的相关资料和代码](https://pan.baidu.com/s/1rDpWeknm13dyoyjsqu7zFg) 提取码:eq5x 18 | - GitHub 19 | - [PPT 的原始文档和制作说明](https://github.com/zhuyuanxiang/StudyNotes-CN) 20 | -------------------------------------------------------------------------------- /Machine-Learning/media/2472695312bcf1ee97aedafb5da57295.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/Machine-Learning/media/2472695312bcf1ee97aedafb5da57295.png -------------------------------------------------------------------------------- /Machine-Learning/media/2b6208784190c377ef75bc73fbdd4822.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/Machine-Learning/media/2b6208784190c377ef75bc73fbdd4822.jpg -------------------------------------------------------------------------------- /Machine-Learning/media/45b4c84c57435b84c9751fd1990290b6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/Machine-Learning/media/45b4c84c57435b84c9751fd1990290b6.png -------------------------------------------------------------------------------- /Machine-Learning/media/b00af63c332d617798d7ae0cd545c3a3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/Machine-Learning/media/b00af63c332d617798d7ae0cd545c3a3.jpg -------------------------------------------------------------------------------- /Machine-Learning/metadata.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | title: 机器学习 3 | author: 4 | - 朱远翔 5 | - zYx.Tom 6 | date: 2020-04-20 7 | subtitle: 8 | abstract: 9 | keywords: 机器学习, 统计学习, 自然语言处理, 回归, 分类, 聚类 10 | subject: 机器学习总结 11 | description: | 12 | 机器学习的全部内容。 13 | 可以完整的梳理机器学习的思路。 14 | ... 15 | category: 机器学习 16 | comment: this is a comment test! 17 | --- 18 | -------------------------------------------------------------------------------- /Machine-Learning/pandoc_ml.bat: -------------------------------------------------------------------------------- 1 | REM pandoc ML/metadata.yaml ML/Outline.md ML/Regression.md ML/reference.md -o tmp/ML_PPT.pptx --reference-doc=template/reference.pptx 2 | REM pandoc ML/Regression.md ML/reference.md -o tmp/ML_PPT.pptx --reference-doc=template/mathematics.pptx 3 | pandoc ML/ML-Architecture.md -o tmp/ML_PPT.pptx --reference-doc=template/mathematics.pptx 4 | powerpnt tmp/ML_PPT.pptx 5 | 6 | REM ------------------------------------------------------- 7 | REM pandoc tmp/sample.md -o tmp/sample.pptx --reference-doc=template/reference.pptx 8 | REM powerpnt tmp/sample.pptx 9 | 10 | REM ------------------------------------------------------- 11 | REM pandoc tmp/test.md -o tmp/test.pptx --reference-doc=template/reference.pptx 12 | REM powerpnt tmp/test.pptx 13 | 14 | REM ------------------------------------------------------- 15 | REM pandoc ML/metadata.yaml ML/Outline.md ML/reference.md -t beamer -o tmp/ML_PPT.pdf --template=template/beamer-template.tex --pdf-engine=xelatex -V CJKmainfont="SimSun" -V mainfont="Arial" 16 | REM sumatrapdf tmp/ML_PPT.pdf 17 | REM TeXworks tmp/ML_PPT.tex -------------------------------------------------------------------------------- /Machine-Learning/pictures/13256158-77c64eba1c5f4004.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/Machine-Learning/pictures/13256158-77c64eba1c5f4004.jpg -------------------------------------------------------------------------------- /Machine-Learning/pictures/13256158-9a7a4ab653c729bb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/Machine-Learning/pictures/13256158-9a7a4ab653c729bb.png -------------------------------------------------------------------------------- /Machine-Learning/pictures/13256158-c113126a5bab8cd2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/Machine-Learning/pictures/13256158-c113126a5bab8cd2.png -------------------------------------------------------------------------------- /Machine-Learning/pictures/13256158-d43092fb713901ab.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/Machine-Learning/pictures/13256158-d43092fb713901ab.jpg -------------------------------------------------------------------------------- /Machine-Learning/pictures/13256158-d978fbc27d01c98d.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/Machine-Learning/pictures/13256158-d978fbc27d01c98d.jpg -------------------------------------------------------------------------------- /Machine-Learning/pictures/20180317091319259: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/Machine-Learning/pictures/20180317091319259 -------------------------------------------------------------------------------- /Machine-Learning/pictures/v2-a2e753542fc6384ee351cabdbe6dd523_720w.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/Machine-Learning/pictures/v2-a2e753542fc6384ee351cabdbe6dd523_720w.jpg -------------------------------------------------------------------------------- /Machine-Learning/reference.md: -------------------------------------------------------------------------------- 1 | [^Aapo,2004]: Aapo Hyvarinen. 独立成分分析。电子工业出版社。2007. 2 | [^Andrew,2004]: Andrew R. Webb. 统计模式识别。电子工业出版社。2004. 3 | [^Bishop,1995]: Bishop Christopher M. Neural networks for pattern recognition. Oxford university press,1995. 4 | [^Bishop,2006]: Bishop Christopher M. Pattern Recognition and Machine Learning. Springer, New York, 2006. 5 | [^Borman,2004]: Borman S. The expectation maximization algorithm-a short tutorial. Submitted for publication, 2004,41. 6 | [^Charles&Andrew,2011]: Charles Sutton and Andrew McCallum,An Introduction to Conditional Random Fields. Machine Learning 4.4 ( 2011 ) : 267-373. 7 | [^Determined22,2017]: Determined22, , 2017. 8 | [^Duda&Hart,1973]: Duda R O,Peter E Hart. Pattern Classification and Scene Analysis. Wiley. 9 | [^Duda,2003]: Duda R O,Peter E Hart,etc. 李宏东等译。模式分类 ( 第二版 )。机械工业出版社。2003. 10 | [^Friedman&Hastie,2001]: Friedman J, Hastie T, Tibshirani R. The elements of statistical learning. New York: Springer series in statistics, 2001. 11 | [^Friedman,2000]: Friedman, J. H., T. Hastie, and R. Tibshirani (2000). Additive logistic regression: a statistical view of boosting. Annals of Statistics 28, 337–407. 12 | [^Friedman,2001]: Friedman, Jerome H. Greedy Function Approximation: A Gradient Boosting Machine. Annals of Statistics, vol. 29, no. 5,2001, pp. 1189–1232. 13 | [^Geof,2009]: Geof H. Givens, Jennifer A. Hoeting. 计算统计 人民邮件出版社。2009. 14 | [^Goodfellow,2017]: Goodfellow I, Bengio Y, Courville A. 深度学习。人民邮电出版社。2017. 15 | [^Hagan,2006]: Martin T. Hagan, 戴葵等译,神经网络设计,2002. 16 | [^Haykin,2011]: Haykin S., 神经网络与机器学习,机械工业出版社,2011. 17 | [^Hyvarinen,2007]: Aapo Hyvarinen, Juha Karhunen. 周宗潭译,独立成分分析,电子工业出版社,2007. 18 | [^Kindermann,1980]: Kindermann R.& Snell J. L. ( 1980 ) . Markov random fields and their applications ( Vol. 1 ) . 19 | [^Mitchell,2003]: Tom M.Mitchell. 肖华军等译,机器学习,机械工业出版社,2003 20 | [^Morris,2007]: Morris H. DeGroot , 概率统计 ( 第 3 版 ),人民邮电出版社 21 | [^Rabiner,1989]: Rabiner L R. A tutorial on hidden Markov models and selected applications in speech recognition. Proceedings of the IEEE, 1989,77 ( 2 ) : 257-286. 22 | [^Samuel,2007]: Samuel Karlin M.Taylor 著,庄兴无等译,随机过程初级教程,人民邮电出版社,2007. 23 | [^Sutton,2012]: Sutton, Charles, and Andrew McCallum. "An introduction to conditional random fields." Foundations and Trends® in Machine Learning 4.4 ( 2012 ) : 267-373. 24 | [^周志华,2018]: 周志华,机器学习,清华大学出版社,2018 25 | [^宗成庆,2018]: 宗成庆著,统计自然语言处理 ( 第二版 ) , 清华大学出版社,2018. 26 | [^张连文,2006]: 张连文 and 郭海鹏。贝叶斯网引论。Vol. 11. 科学出版社,2006. 27 | [^李航,2012]: 李航著,统计学习方法,清华大学出版社,2012. 28 | [^盛骤,2015]: 盛骤等编,概率论与数理统计 ( 第四版 ) , 高等教育出版社,2015. 29 | [^苏剑林,2017]: 苏剑林。. 2017. 30 | [^袁亚湘,1997]: 袁亚湘,孙文瑜,最优化理论与方法,科学出版社,1997. 31 | [^Simard,2003]: Simard, P. Y., D. Steinkraus, and J. Platt (2003). Best practice for convolutional neural networks applied to visual document analysis. In Proceedings International Conference on Document Analysis and Recognition (ICDAR), pp. 958–962. IEEE Computer Society. -------------------------------------------------------------------------------- /NLP/BERT/BERT-Introduction-Train.md: -------------------------------------------------------------------------------- 1 | BERT介绍与训练 2 | 3 | # 主流模型介绍 4 | 5 | 如何简单地、自动地、智能地从原始信息中提取出有用信息是人工智能任务的核心。 6 | 7 | ## 自编码模型与自回归模型的区别 8 | 9 | 自回归模型:根据上文预测下一个可能的单词,即自左向右的语言模型;也可以根据下文预测前面的单词,即自右向左的语言模型 10 | 11 | - 例子:ELMO、GPT、XLNET 12 | - 优点:容易带入到下游模型中 13 | - 缺点:数据预测必须依据顺序,从左到右只能看到下文;从右到左只能看到上文 14 | 15 | 自编码模型:让语言模型去还原原始输入的系统。 16 | 17 | - 例子:BERT、RoBerta 18 | - 优点:训练的时候可以同时看到全局信息,从而最大化利用原始信息 19 | - 缺点:与下游任务存在不匹配的问题 20 | 21 | ### 降噪自编码器(Denosing AutoEncoder) 22 | 23 | 自编码器是一种无监督的学习方式,可以用于特征提取与降维,将输入x加权映射之后得到y,再对y通过方向加权映射成为z,通过优化x与z之间的似然函数或者误差函数,得到y。降噪自编码器(DAE)是有自编码器发展而来,通过对原始信息建模从原始数据中学习到特征的表示,用于提取具有鲁棒性的特征。 24 | 25 | ![DAE](pictures/DAE.png) 26 | 27 | 解决自编码模型存在的过拟合问题的方法 28 | 29 | - 加入随机噪声。以一定的概率抹掉原始数据集中的某些数据,然后通过破损的输入来学习输出与输入之间的误差。 30 | - 通过与非破损数据训练的对比,破损数据训练出来的「权重」的噪声较小。 31 | - 因为噪声都是高斯噪声,并且噪声存在有很大的随机性,那么随机地抹掉数据然后训练模型,最后保留下来的肯定会出现次数最多的数据本身的特性,而噪声就会因为随机的次数而被无限地减弱 32 | - 破损数据还在一定程度上减轻了训练数据与测试数据之间的代沟。 33 | - 因为数据被随机抹掉,而训练数据与测试数据最大的判别就是因为噪声形成的,所以噪声的减弱就会减轻两种数据之间的代沟 34 | 35 | ### BERT模型 36 | 37 | - BERT 模型是基于 Transformer Encoder来构建的模型 38 | - BERT 模型是基于DAE来构建的模型,DAE在BERT中称为MLM(Masked Language Model) 39 | - MLM并不是严格意义上的语言模型,而是训练语言模型的一种方式 40 | - DAE的过程:BERT随机把一些单词通过MASK标签来代替,并接着去预测被MASK的这个单词 41 | 42 | 43 | 44 | ## Transformer 模型介绍 45 | 46 | ![Transformer](pictures/Transformer.png) 47 | 48 | ## Bert模型介绍 49 | 50 | ## Bert模型预训练(Pre-Train)方式 51 | 52 | ## Bert模型调优(Fine-Tune)方式 -------------------------------------------------------------------------------- /NLP/BERT/Transformer-Bert-Practice/BERT原理及实现.md: -------------------------------------------------------------------------------- 1 | # BERT原理及实现 2 | 3 | # 1. 输入序列与嵌入表示 4 | 5 | ![img](pictures/20181113111515476.png) 6 | 7 | 可以编码一个单句或者一串单句 8 | 9 | - Input:线性序列,两个句子通过分隔符分割,最前面和每个句子后面增加标识符号 10 | - CLS表示序列开始符号,SEP表示单句分隔符号 11 | 12 | 每个单词有三个Embedding 13 | 14 | - Token Embedding:表示词向量,每个词被表示成一个768维的向量 15 | - 使用WordPiece Tokenization可以减少Bert存储的词汇数量,并且很少遇到未登陆词 16 | - 单词符号嵌入:$Embedding_{tok}(input)\in\mathbb{R}^{N\times d_{model}}$ 17 | - 输入符号的个数$N$ 18 | - 符号嵌入的维度$d_{model}$ 19 | - Segment Embedding:用于区分单词所归属的句子,因为预训练不光做语言模型,还要做分类任务 20 | - $E_A$表示单词归属A句;$E_B$表示单词归属B句 21 | - 句子分割嵌入:$Embedding_{seg}(input)\in\mathbb{R}^{N\times d_{model}}$ 22 | - 对于单句嵌入,只使用句子A嵌入 23 | - Position Embedding:与 Transformer中的一样,用于区分句子中词的位置关系 24 | - Bert中的最大句子长度是512,所以Position Embedding Layer的大小为(512,768)的查询表 25 | - 单词在不同的句子中同样的位置时,位置编码应该是一样的 26 | - 符号位置嵌入:$Embedding_{pos}(input)\in\mathbb{R}^{N\times d_{model}}$ 27 | - 联合表示:将三个部分的表示对应的元素相加形成一个(1,n,768)的表示 28 | 29 | # 2. 预训练任务(目标函数) 30 | 31 | (论文没有使用传统的从左到右语言模型或者从右到左语言模型来进行预训练) 32 | 33 | BERT的预训练基于两个无监督预测任务 34 | 35 | - 任务1:单词级的学习,遮蔽语言模型(Masked Language Model,MLM) 36 | - 只计算Mark位置的损失 37 | - 任务2:句子级的学习,下一句预测 38 | 39 | ## 2.1 遮蔽语言模型训练任务 40 | 41 | 遮蔽语言模型是在给定单词上下文序列后,当前单词出现的条件概率的乘积:$P(w_1^T)=\prod_{t=1}^T P(w_t|w_1^{t-1},w_{t+1}^T)$ 42 | 43 | - 第$t$个单词$w_t$ 44 | - 第$i$个单词到第$j$个单词的子序列:$w_i^j=(w_i,w_{i+1},\cdots,w_{j-1},w_j)$ 45 | 46 | 训练数据集中随机选择15%的遮蔽单词$w_t$,并且以特殊的标记$[MASK]$进行替换。为了减少标记对微调阶段的影响,数据生成器将执行以下操作,而不是始终使用标记替换所选单词: 47 | 48 | - 80%的时间:将单词替换为标记 49 | - 10%的时间:将单词替换为单词 50 | - 10%的时间:保持单词不变,使得表示偏向实际观察到的单词 51 | 52 | ## 2.2 下一句预测任务 53 | 54 | 从语料库中生成二值化的下一句句子预测任务 55 | 56 | - 当为每个预训练选择句子A和B时,数据集中50%的时间A的下一个句子是B,另50%的时间A的下一个句子从语料库中随机取得,因此不具备序列关系 57 | - input=[CLS] the man went to [MASK] store [SEP] he bought a gallon [MASK] milk [SEP] label=lsNext 58 | - input=[CLS] the man [MASK] to the store [SEP] penguin [MASK] are flight ##less birds [SEP] label=NotNext 59 | 60 | # 3. 模型架构 61 | 62 | 是一个多层的双向的Transformer Encoder。 63 | 64 | Transformer模型输入的是经过Embedding处理后的词向量 65 | 66 | image-20200904174434544 67 | 68 | 69 | 70 | ## 3.1 编码器结构 71 | 72 | image-20200904175102652 73 | 74 | ## BERT完成NLP的四大类任务 75 | 76 | 1. 序列标注:分词、实体识别、语义标注 77 | 2. 分类任务:文本分类、情感计算 78 | 3. 句子关系判断:Entailment、QA、自然语言 79 | 4. 生成式任务:机器翻译、文本摘要 -------------------------------------------------------------------------------- /NLP/BERT/Transformer-Bert-Practice/pictures/20181113111515476.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/BERT/Transformer-Bert-Practice/pictures/20181113111515476.png -------------------------------------------------------------------------------- /NLP/BERT/Transformer-Bert-Practice/pictures/Attention.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/BERT/Transformer-Bert-Practice/pictures/Attention.png -------------------------------------------------------------------------------- /NLP/BERT/Transformer-Bert-Practice/pictures/MultiHeadAttention.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/BERT/Transformer-Bert-Practice/pictures/MultiHeadAttention.png -------------------------------------------------------------------------------- /NLP/BERT/Transformer-Bert-Practice/pictures/Transformer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/BERT/Transformer-Bert-Practice/pictures/Transformer.png -------------------------------------------------------------------------------- /NLP/BERT/Transformer-Bert-Practice/pictures/TransformerStack.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/BERT/Transformer-Bert-Practice/pictures/TransformerStack.png -------------------------------------------------------------------------------- /NLP/BERT/Transformer-Bert-Practice/pictures/image-20200901104633208.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/BERT/Transformer-Bert-Practice/pictures/image-20200901104633208.png -------------------------------------------------------------------------------- /NLP/BERT/Transformer-Bert-Practice/pictures/image-20200902094933626.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/BERT/Transformer-Bert-Practice/pictures/image-20200902094933626.png -------------------------------------------------------------------------------- /NLP/BERT/Transformer-Bert-Practice/pictures/image-20200904174434544.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/BERT/Transformer-Bert-Practice/pictures/image-20200904174434544.png -------------------------------------------------------------------------------- /NLP/BERT/Transformer-Bert-Practice/pictures/image-20200904175102652.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/BERT/Transformer-Bert-Practice/pictures/image-20200904175102652.png -------------------------------------------------------------------------------- /NLP/BERT/pictures/20190407192340124.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/BERT/pictures/20190407192340124.png -------------------------------------------------------------------------------- /NLP/BERT/pictures/20190407192410359.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/BERT/pictures/20190407192410359.png -------------------------------------------------------------------------------- /NLP/BERT/pictures/20190407192513747.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/BERT/pictures/20190407192513747.png -------------------------------------------------------------------------------- /NLP/BERT/pictures/20190407192535309.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/BERT/pictures/20190407192535309.png -------------------------------------------------------------------------------- /NLP/BERT/pictures/20190407192629833.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/BERT/pictures/20190407192629833.png -------------------------------------------------------------------------------- /NLP/BERT/pictures/20190407192705272.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/BERT/pictures/20190407192705272.png -------------------------------------------------------------------------------- /NLP/BERT/pictures/20190407192722990.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/BERT/pictures/20190407192722990.png -------------------------------------------------------------------------------- /NLP/BERT/pictures/20190407192750154.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/BERT/pictures/20190407192750154.png -------------------------------------------------------------------------------- /NLP/BERT/pictures/20190407192831885.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/BERT/pictures/20190407192831885.png -------------------------------------------------------------------------------- /NLP/BERT/pictures/20190407192854589.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/BERT/pictures/20190407192854589.png -------------------------------------------------------------------------------- /NLP/BERT/pictures/20190407192949549.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/BERT/pictures/20190407192949549.png -------------------------------------------------------------------------------- /NLP/BERT/pictures/20190407193013426.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/BERT/pictures/20190407193013426.png -------------------------------------------------------------------------------- /NLP/BERT/pictures/2019040719302689.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/BERT/pictures/2019040719302689.png -------------------------------------------------------------------------------- /NLP/BERT/pictures/20190407193050891.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/BERT/pictures/20190407193050891.png -------------------------------------------------------------------------------- /NLP/BERT/pictures/20190407193133441.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/BERT/pictures/20190407193133441.gif -------------------------------------------------------------------------------- /NLP/BERT/pictures/20190407193205893.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/BERT/pictures/20190407193205893.gif -------------------------------------------------------------------------------- /NLP/BERT/pictures/20190407193223473.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/BERT/pictures/20190407193223473.gif -------------------------------------------------------------------------------- /NLP/BERT/pictures/20190407193243788.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/BERT/pictures/20190407193243788.gif -------------------------------------------------------------------------------- /NLP/BERT/pictures/20190407193306430.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/BERT/pictures/20190407193306430.png -------------------------------------------------------------------------------- /NLP/BERT/pictures/2019040719332630.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/BERT/pictures/2019040719332630.png -------------------------------------------------------------------------------- /NLP/BERT/pictures/20190407193344547.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/BERT/pictures/20190407193344547.png -------------------------------------------------------------------------------- /NLP/BERT/pictures/20190407193410827.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/BERT/pictures/20190407193410827.png -------------------------------------------------------------------------------- /NLP/BERT/pictures/20190407193428125.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/BERT/pictures/20190407193428125.png -------------------------------------------------------------------------------- /NLP/BERT/pictures/20190407193445308.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/BERT/pictures/20190407193445308.png -------------------------------------------------------------------------------- /NLP/BERT/pictures/20190407193506971.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/BERT/pictures/20190407193506971.png -------------------------------------------------------------------------------- /NLP/BERT/pictures/20190407193524753.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/BERT/pictures/20190407193524753.png -------------------------------------------------------------------------------- /NLP/BERT/pictures/2019040719354095.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/BERT/pictures/2019040719354095.png -------------------------------------------------------------------------------- /NLP/BERT/pictures/20190407193558607.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/BERT/pictures/20190407193558607.png -------------------------------------------------------------------------------- /NLP/BERT/pictures/20190407193641706.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/BERT/pictures/20190407193641706.png -------------------------------------------------------------------------------- /NLP/BERT/pictures/20190407193700332.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/BERT/pictures/20190407193700332.png -------------------------------------------------------------------------------- /NLP/BERT/pictures/2019040719371928.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/BERT/pictures/2019040719371928.png -------------------------------------------------------------------------------- /NLP/BERT/pictures/20190407193730682.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/BERT/pictures/20190407193730682.png -------------------------------------------------------------------------------- /NLP/BERT/pictures/20190407193742137.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/BERT/pictures/20190407193742137.png -------------------------------------------------------------------------------- /NLP/BERT/pictures/20190407193756162.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/BERT/pictures/20190407193756162.png -------------------------------------------------------------------------------- /NLP/BERT/pictures/20190407193805560.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/BERT/pictures/20190407193805560.png -------------------------------------------------------------------------------- /NLP/BERT/pictures/20190407193820725.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/BERT/pictures/20190407193820725.png -------------------------------------------------------------------------------- /NLP/BERT/pictures/20190407193828541.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/BERT/pictures/20190407193828541.png -------------------------------------------------------------------------------- /NLP/BERT/pictures/20190407193916505.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/BERT/pictures/20190407193916505.png -------------------------------------------------------------------------------- /NLP/BERT/pictures/2019040719394179.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/BERT/pictures/2019040719394179.png -------------------------------------------------------------------------------- /NLP/BERT/pictures/20190407193953348.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/BERT/pictures/20190407193953348.png -------------------------------------------------------------------------------- /NLP/BERT/pictures/20190407194002495.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/BERT/pictures/20190407194002495.png -------------------------------------------------------------------------------- /NLP/BERT/pictures/20190407194033648.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/BERT/pictures/20190407194033648.png -------------------------------------------------------------------------------- /NLP/BERT/pictures/20190407194054634.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/BERT/pictures/20190407194054634.png -------------------------------------------------------------------------------- /NLP/BERT/pictures/20190407194120538.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/BERT/pictures/20190407194120538.png -------------------------------------------------------------------------------- /NLP/BERT/pictures/20190407194131428.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/BERT/pictures/20190407194131428.png -------------------------------------------------------------------------------- /NLP/BERT/pictures/20190407194141481.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/BERT/pictures/20190407194141481.png -------------------------------------------------------------------------------- /NLP/BERT/pictures/20190407194149597.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/BERT/pictures/20190407194149597.png -------------------------------------------------------------------------------- /NLP/BERT/pictures/20190407194245766.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/BERT/pictures/20190407194245766.png -------------------------------------------------------------------------------- /NLP/BERT/pictures/20190407194312495.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/BERT/pictures/20190407194312495.png -------------------------------------------------------------------------------- /NLP/BERT/pictures/20190418225942611.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/BERT/pictures/20190418225942611.png -------------------------------------------------------------------------------- /NLP/BERT/pictures/20190623234641714.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/BERT/pictures/20190623234641714.jpg -------------------------------------------------------------------------------- /NLP/BERT/pictures/2019062323474479.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/BERT/pictures/2019062323474479.jpg -------------------------------------------------------------------------------- /NLP/BERT/pictures/20190623234803769.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/BERT/pictures/20190623234803769.jpg -------------------------------------------------------------------------------- /NLP/BERT/pictures/2019062323481629.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/BERT/pictures/2019062323481629.jpg -------------------------------------------------------------------------------- /NLP/BERT/pictures/20190623234836973.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/BERT/pictures/20190623234836973.jpg -------------------------------------------------------------------------------- /NLP/BERT/pictures/20190625090614245.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/BERT/pictures/20190625090614245.png -------------------------------------------------------------------------------- /NLP/BERT/pictures/20190625094348755.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/BERT/pictures/20190625094348755.png -------------------------------------------------------------------------------- /NLP/BERT/pictures/20190625094424708.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/BERT/pictures/20190625094424708.png -------------------------------------------------------------------------------- /NLP/BERT/pictures/20190625100244308.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/BERT/pictures/20190625100244308.png -------------------------------------------------------------------------------- /NLP/BERT/pictures/20190625100602310.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/BERT/pictures/20190625100602310.png -------------------------------------------------------------------------------- /NLP/BERT/pictures/20190625100926500.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/BERT/pictures/20190625100926500.png -------------------------------------------------------------------------------- /NLP/BERT/pictures/20190625101001478.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/BERT/pictures/20190625101001478.png -------------------------------------------------------------------------------- /NLP/BERT/pictures/20190625101639261.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/BERT/pictures/20190625101639261.png -------------------------------------------------------------------------------- /NLP/BERT/pictures/20190625101755565.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/BERT/pictures/20190625101755565.png -------------------------------------------------------------------------------- /NLP/BERT/pictures/20190625102044120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/BERT/pictures/20190625102044120.png -------------------------------------------------------------------------------- /NLP/BERT/pictures/DAE.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/BERT/pictures/DAE.png -------------------------------------------------------------------------------- /NLP/BERT/pictures/Transformer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/BERT/pictures/Transformer.png -------------------------------------------------------------------------------- /NLP/BERT/pictures/aHR0cHM6Ly9pbWcyMDE4LmNuYmxvZ3MuY29tL2Jsb2cvMTIxNDU2NS8yMDE5MDEvMTIxNDU2NS0yMDE5MDExNjExMTk1NTUwMC0xNjE1MDE5ODk1LnBuZw: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/BERT/pictures/aHR0cHM6Ly9pbWcyMDE4LmNuYmxvZ3MuY29tL2Jsb2cvMTIxNDU2NS8yMDE5MDEvMTIxNDU2NS0yMDE5MDExNjExMTk1NTUwMC0xNjE1MDE5ODk1LnBuZw -------------------------------------------------------------------------------- /NLP/BERT/pictures/aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X3BuZy9WQmNEMDJqRmhna1hRSmliWnczcjQ4SUtTa3psWDdJQzQybTltMDM5WllTQjdJNk9rdGM5TE9zTDRLUWV1RXRiTEppYjZhZjdudzNoNVdIdXdycXViaklnLzY0MA: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/BERT/pictures/aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X3BuZy9WQmNEMDJqRmhna1hRSmliWnczcjQ4SUtTa3psWDdJQzQybTltMDM5WllTQjdJNk9rdGM5TE9zTDRLUWV1RXRiTEppYjZhZjdudzNoNVdIdXdycXViaklnLzY0MA -------------------------------------------------------------------------------- /NLP/BERT/pictures/aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X3BuZy9WQmNEMDJqRmhna1hRSmliWnczcjQ4SUtTa3psWDdJQzRJTm95dFBWcldERnFpY21LaGhKSHhpYmIxUFk0bG1sSjhNSFFvd0tHektnSzAxM0NmMGU0aWM0SHcvNjQw: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/BERT/pictures/aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X3BuZy9WQmNEMDJqRmhna1hRSmliWnczcjQ4SUtTa3psWDdJQzRJTm95dFBWcldERnFpY21LaGhKSHhpYmIxUFk0bG1sSjhNSFFvd0tHektnSzAxM0NmMGU0aWM0SHcvNjQw -------------------------------------------------------------------------------- /NLP/BERT/pictures/aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X3BuZy9WQmNEMDJqRmhna1hRSmliWnczcjQ4SUtTa3psWDdJQzRVZjMyRmptM0pEUTdFeElLc2Z5Zm5vRmVhdmVBa0xGaWJjNVRoRVQ4RHpZTjU5VGo3TUpudG5BLzY0MA: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/BERT/pictures/aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X3BuZy9WQmNEMDJqRmhna1hRSmliWnczcjQ4SUtTa3psWDdJQzRVZjMyRmptM0pEUTdFeElLc2Z5Zm5vRmVhdmVBa0xGaWJjNVRoRVQ4RHpZTjU5VGo3TUpudG5BLzY0MA -------------------------------------------------------------------------------- /NLP/BERT/pictures/aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X3BuZy9WQmNEMDJqRmhna1hRSmliWnczcjQ4SUtTa3psWDdJQzRhWEJDTE1pY1dHTk91Q0ZmSHFKc0pxU0JWQ0ExVmtPelNRQ0M2aWNCNzN3Z1ZJUzNxaWFZRGExVHcvNjQw: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/BERT/pictures/aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X3BuZy9WQmNEMDJqRmhna1hRSmliWnczcjQ4SUtTa3psWDdJQzRhWEJDTE1pY1dHTk91Q0ZmSHFKc0pxU0JWQ0ExVmtPelNRQ0M2aWNCNzN3Z1ZJUzNxaWFZRGExVHcvNjQw -------------------------------------------------------------------------------- /NLP/BERT/pictures/aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X3BuZy9WQmNEMDJqRmhna1hRSmliWnczcjQ4SUtTa3psWDdJQzRpYWljYkZpY2g2dm13NUd2R2g5dHpmdmljaWFDNTk2V3RpYUZuYVZPV1JHWnQ3enJpYlpzNGdDeHRwbkpnLzY0MA: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/BERT/pictures/aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X3BuZy9WQmNEMDJqRmhna1hRSmliWnczcjQ4SUtTa3psWDdJQzRpYWljYkZpY2g2dm13NUd2R2g5dHpmdmljaWFDNTk2V3RpYUZuYVZPV1JHWnQ3enJpYlpzNGdDeHRwbkpnLzY0MA -------------------------------------------------------------------------------- /NLP/BERT/pictures/aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X3BuZy9WQmNEMDJqRmhna1hRSmliWnczcjQ4SUtTa3psWDdJQzRpYjZyNGliS0pnZVUyZnpaUTNEQld3eWljRGliWEFYTG56dUdrVDg4ZTd5VHBuOUtpYkRLMkJHTFhNZy82NDA: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/BERT/pictures/aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X3BuZy9WQmNEMDJqRmhna1hRSmliWnczcjQ4SUtTa3psWDdJQzRpYjZyNGliS0pnZVUyZnpaUTNEQld3eWljRGliWEFYTG56dUdrVDg4ZTd5VHBuOUtpYkRLMkJHTFhNZy82NDA -------------------------------------------------------------------------------- /NLP/BERT/pictures/articleReadEyes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/BERT/pictures/articleReadEyes.png -------------------------------------------------------------------------------- /NLP/BERT/pictures/original.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/BERT/pictures/original.png -------------------------------------------------------------------------------- /NLP/BERT/pictures/reprint.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/BERT/pictures/reprint.png -------------------------------------------------------------------------------- /NLP/BERT/pictures/tobarCollect.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/BERT/pictures/tobarCollect.png -------------------------------------------------------------------------------- /NLP/ELMO/pictures/v2-1adc25f6b5fe0725c09721f00e2a14e9_720w.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/ELMO/pictures/v2-1adc25f6b5fe0725c09721f00e2a14e9_720w.png -------------------------------------------------------------------------------- /NLP/ELMO/pictures/v2-1df81dcd1abd16211bff4de236f7712e_720w.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/ELMO/pictures/v2-1df81dcd1abd16211bff4de236f7712e_720w.png -------------------------------------------------------------------------------- /NLP/ELMO/pictures/v2-3186d5a8925cbf847f4f95b443adfd88_720w.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/ELMO/pictures/v2-3186d5a8925cbf847f4f95b443adfd88_720w.jpg -------------------------------------------------------------------------------- /NLP/ELMO/pictures/v2-345b19f7a16e385b50a242b9995b4087_720w.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/ELMO/pictures/v2-345b19f7a16e385b50a242b9995b4087_720w.jpg -------------------------------------------------------------------------------- /NLP/ELMO/pictures/v2-443008ce3b8560978240ad4c9cfb58ba_720w.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/ELMO/pictures/v2-443008ce3b8560978240ad4c9cfb58ba_720w.jpg -------------------------------------------------------------------------------- /NLP/ELMO/pictures/v2-4848f57225e1418b95c9585a3852ab35_720w.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/ELMO/pictures/v2-4848f57225e1418b95c9585a3852ab35_720w.jpg -------------------------------------------------------------------------------- /NLP/ELMO/pictures/v2-535107dfb0177ea3b1580e6285ed1079_720w.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/ELMO/pictures/v2-535107dfb0177ea3b1580e6285ed1079_720w.jpg -------------------------------------------------------------------------------- /NLP/ELMO/pictures/v2-809a7a9ed921a3677a5d7990cd8c8cae_720w.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/ELMO/pictures/v2-809a7a9ed921a3677a5d7990cd8c8cae_720w.jpg -------------------------------------------------------------------------------- /NLP/ELMO/pictures/v2-8c6b74ec614dfee1fb0f9b5939440e6b_720w.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/ELMO/pictures/v2-8c6b74ec614dfee1fb0f9b5939440e6b_720w.jpg -------------------------------------------------------------------------------- /NLP/ELMO/pictures/v2-ac26103620445a6b1c9d0ed21c5e675a_720w.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/ELMO/pictures/v2-ac26103620445a6b1c9d0ed21c5e675a_720w.jpg -------------------------------------------------------------------------------- /NLP/ELMO/pictures/v2-ad209a5f2d1b08313048633db67f9e07_720w.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/ELMO/pictures/v2-ad209a5f2d1b08313048633db67f9e07_720w.jpg -------------------------------------------------------------------------------- /NLP/ELMO/pictures/v2-b5c14a732b50e37d33fd1cf220567746_720w.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/ELMO/pictures/v2-b5c14a732b50e37d33fd1cf220567746_720w.jpg -------------------------------------------------------------------------------- /NLP/ELMO/pictures/v2-bdd9b75bc8332f59bb0aff346c706759_720w.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/ELMO/pictures/v2-bdd9b75bc8332f59bb0aff346c706759_720w.jpg -------------------------------------------------------------------------------- /NLP/ELMO/pictures/v2-c66013495482255e44047a96c0acf297_xs.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/ELMO/pictures/v2-c66013495482255e44047a96c0acf297_xs.jpg -------------------------------------------------------------------------------- /NLP/ELMO/pictures/v2-d97689c222c00264aab54e9727bc8310_720w.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/ELMO/pictures/v2-d97689c222c00264aab54e9727bc8310_720w.jpg -------------------------------------------------------------------------------- /NLP/ELMO/pictures/v2-ef5cb573f0c859a420515d3a5b71bbeb_720w.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/ELMO/pictures/v2-ef5cb573f0c859a420515d3a5b71bbeb_720w.jpg -------------------------------------------------------------------------------- /NLP/ELMO/pictures/v2-f8da5bf83e43beb917d7e33b5b7e2dc3_1440w.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/ELMO/pictures/v2-f8da5bf83e43beb917d7e33b5b7e2dc3_1440w.jpg -------------------------------------------------------------------------------- /NLP/ELMO/pictures/v2-f8eaf27198e9061724ee7327ebb7b476_720w.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/ELMO/pictures/v2-f8eaf27198e9061724ee7327ebb7b476_720w.png -------------------------------------------------------------------------------- /NLP/GloVe/pictures/v2-000c04ef78a33f952806059c98c15ca6_1440w.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/GloVe/pictures/v2-000c04ef78a33f952806059c98c15ca6_1440w.jpg -------------------------------------------------------------------------------- /NLP/GloVe/pictures/v2-0f0998384e006356e26735f0156a3412_720w.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/GloVe/pictures/v2-0f0998384e006356e26735f0156a3412_720w.jpg -------------------------------------------------------------------------------- /NLP/GloVe/pictures/v2-15d5bfc7ab95a0e889ea5313dc7fe13b_720w.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/GloVe/pictures/v2-15d5bfc7ab95a0e889ea5313dc7fe13b_720w.jpg -------------------------------------------------------------------------------- /NLP/GloVe/pictures/v2-27cea2e42a34843d2f2a38d0b0f14cb5_720w.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/GloVe/pictures/v2-27cea2e42a34843d2f2a38d0b0f14cb5_720w.jpg -------------------------------------------------------------------------------- /NLP/GloVe/pictures/v2-34f39e752c25e8b934c9f93346d28968_720w.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/GloVe/pictures/v2-34f39e752c25e8b934c9f93346d28968_720w.jpg -------------------------------------------------------------------------------- /NLP/GloVe/pictures/v2-439bc07a4adeebca173bce142494962a_720w.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/GloVe/pictures/v2-439bc07a4adeebca173bce142494962a_720w.jpg -------------------------------------------------------------------------------- /NLP/GloVe/pictures/v2-4728ee9a2619d71536366fd3827ab7d6_720w.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/GloVe/pictures/v2-4728ee9a2619d71536366fd3827ab7d6_720w.jpg -------------------------------------------------------------------------------- /NLP/GloVe/pictures/v2-4d6ef3e0667e38ac2013679051b97e2c_720w.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/GloVe/pictures/v2-4d6ef3e0667e38ac2013679051b97e2c_720w.jpg -------------------------------------------------------------------------------- /NLP/GloVe/pictures/v2-52ddaed9e20538f98da9946d6de9015b_720w.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/GloVe/pictures/v2-52ddaed9e20538f98da9946d6de9015b_720w.jpg -------------------------------------------------------------------------------- /NLP/GloVe/pictures/v2-541c2f915b4f539ca638dc210e93c7d2_720w.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/GloVe/pictures/v2-541c2f915b4f539ca638dc210e93c7d2_720w.jpg -------------------------------------------------------------------------------- /NLP/GloVe/pictures/v2-560b26cd5e7e6acafa7f40976129a297_720w.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/GloVe/pictures/v2-560b26cd5e7e6acafa7f40976129a297_720w.jpg -------------------------------------------------------------------------------- /NLP/GloVe/pictures/v2-60dcd5a9f7efe8df16c81c00a67f2eb6_720w.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/GloVe/pictures/v2-60dcd5a9f7efe8df16c81c00a67f2eb6_720w.jpg -------------------------------------------------------------------------------- /NLP/GloVe/pictures/v2-631ea18146d5176c9819f4fc974f1fa3_720w.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/GloVe/pictures/v2-631ea18146d5176c9819f4fc974f1fa3_720w.jpg -------------------------------------------------------------------------------- /NLP/GloVe/pictures/v2-69984606bc8985613d2e6c9f2606f4be_720w.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/GloVe/pictures/v2-69984606bc8985613d2e6c9f2606f4be_720w.jpg -------------------------------------------------------------------------------- /NLP/GloVe/pictures/v2-728cadd761bfd6594ccfbd953bccdf84_720w.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/GloVe/pictures/v2-728cadd761bfd6594ccfbd953bccdf84_720w.jpg -------------------------------------------------------------------------------- /NLP/GloVe/pictures/v2-75f4ddb9d7d2fe27e9b8bb06af6b47c9_720w.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/GloVe/pictures/v2-75f4ddb9d7d2fe27e9b8bb06af6b47c9_720w.jpg -------------------------------------------------------------------------------- /NLP/GloVe/pictures/v2-88481bb6ec1e650791757e2ff7dc9512_720w.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/GloVe/pictures/v2-88481bb6ec1e650791757e2ff7dc9512_720w.jpg -------------------------------------------------------------------------------- /NLP/GloVe/pictures/v2-af19ebae55a74d0da898c833f2c239d6_720w.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/GloVe/pictures/v2-af19ebae55a74d0da898c833f2c239d6_720w.jpg -------------------------------------------------------------------------------- /NLP/GloVe/pictures/v2-b02cb5e49eaba0dfbf2dbd1dc509961f_720w.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/GloVe/pictures/v2-b02cb5e49eaba0dfbf2dbd1dc509961f_720w.jpg -------------------------------------------------------------------------------- /NLP/GloVe/pictures/v2-c2377112b2ca1286eabe9068bb8723d7_720w.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/GloVe/pictures/v2-c2377112b2ca1286eabe9068bb8723d7_720w.jpg -------------------------------------------------------------------------------- /NLP/GloVe/pictures/v2-c66013495482255e44047a96c0acf297_xs.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/GloVe/pictures/v2-c66013495482255e44047a96c0acf297_xs.jpg -------------------------------------------------------------------------------- /NLP/GloVe/pictures/v2-ecd572c4b9dc869bdb4f5fa0658eace1_720w.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/GloVe/pictures/v2-ecd572c4b9dc869bdb4f5fa0658eace1_720w.jpg -------------------------------------------------------------------------------- /NLP/GloVe/pictures/v2-f1226d49864b0400fa41e95fa3db4a69_720w.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/NLP/GloVe/pictures/v2-f1226d49864b0400fa41e95fa3db4a69_720w.jpg -------------------------------------------------------------------------------- /NLP/Introduction-to-CNLP/Ch01.md: -------------------------------------------------------------------------------- 1 | # C01. Introduction 2 | 3 | ## 1.1 中文自然语言处理是什么 4 | 5 | 一门语言就是一个动态集合,其中包括符号及其对应的视觉、听觉、触觉或者文字交流的规则。 6 | 7 | 人类的语言被称为自然语言,其科学研究属于语言学范畴,其计算方式的实现属于计算语言学领域。 8 | 9 | - 计算语言学侧重于人类语言的理论方面 10 | - 自然语言处理则是语言理论的实现 11 | 12 | 自然语言处理的三个基本任务 13 | 14 | - 形态分析:句子自动分词 15 | - 分词歧义 16 | - 词性标注:词性标注序列比词序列更加抽象,其语言覆盖范围也更加广泛 17 | - 句法分析 18 | - 语义分析 19 | 20 | 自然语言处理存在的主要问题 21 | 22 | - 中文句子的词之间缺乏明确的分隔符 23 | 24 | ## 1.2 关于本书 25 | 26 | 本书的宗旨:中文形态分析 27 | 28 | - 基本概念 ( C02, C03 ) 29 | 30 | - C02:从语言学的角度,介绍了中文的字、词素、词等基本概念 31 | - C03:概述了在自然语言处理应用中需要考虑的中文词汇特性 32 | 33 | - 词的自动识别 ( C04, C05 ) 34 | 35 | - C04:介绍了分词存在的问题以及对应的技术解决方案 36 | - C05:介绍了未登录词 ( Out Of Vocabulary, OOV ) 的识别 37 | 38 | - 中文词汇语义 ( C06, C07, C08 ) 39 | 40 | - C06:引入了词义的概念,并且介绍了几个包含词义信息以及词汇联系的中文自然语言处理的语义资源 41 | - C07:概述了中文搭配的概念 42 | - C08:自动抽取搭配的相关技术 43 | -------------------------------------------------------------------------------- /NLP/Introduction-to-CNLP/Ch02.md: -------------------------------------------------------------------------------- 1 | # C02. 中文的词 2 | 3 | 本章主要关注中文文本的形态处理,包括与之相关的语言单元的素和词。 4 | 5 | ## 2.1 引言 6 | 7 | 基本问题 8 | 9 | - 中文里的词是怎样表示的? 10 | - 中文里的词是怎样构成的? 11 | - 中文里的词是怎样识别的? 12 | 13 | 中文构词法多以形态合成法为主,并且辅以相对较少的词缀;同时,中文构词还采用了叠词形式 14 | 15 | ## 2.2 字、语素和词 16 | 17 | ### 2.2.1 字 18 | 19 | 汉字只有少部分是象形字,90%以上的都是形声字 20 | 21 | - 象形字 22 | - 表意字:直接表示意义 23 | - 指示字:「上」、「下」、「一」、「二」、「三」 24 | - 会意字:「仁」、「信」 25 | - 形声字:由表示读音的一个声旁和一个形旁组成。形旁只表示这个字的大概含义,用以区分它的同音异形异义字,而不是准确地指出字的含义,例如:「请」、「情」、「清」、「晴」 26 | 27 | 中文是形态音节型的文字,即每个字都是一个单音节,也是最小语义承载单位——语素。(德范克,1984,美国) 28 | 29 | ### 2.2.2 语素 30 | 31 | 语素是最基本的形态单元和最小的语义单位。语素可以用来构成词,但是不能再被分解为更小的并且仍然具有意义的单位。 32 | 33 | 中文语素往往是单音节的,每个语素/音节写为一个汉字。虽然一个音节、一个语素对应一个汉字属于一般情况,然而还有一些特例:多个音节组成的语素(「葡萄」、「菩萨」、「马虎」、「马达」、「咖啡」、「萨其马」、「巧克力」等),这些例外是借自其他语言的外来词,原始的中文词大部分遵循「音节-语素-汉字」的对应关系 34 | 35 | ### 2.2.3 词 36 | 37 | 词依据分布约束性和词义完整性来实现形态学单元的独立性 38 | 39 | - 分布约束性:一个词可以单独地出现(如单个词构成的句子),而语素不能 40 | - 能够单独出现的语素,其必定也是个词 41 | - 不能单独出现的语素,其必定是个粘着语素,必须与其他语素结合才能成词 42 | - 语法语素:「的」、「地」、「得」、「了」、「着」、「过」等等 43 | - 实义语素:「行」、「饮」等等 44 | - 词义完整性:很难从组成词的语素中推测出词的含义 45 | - 「黑板」中的「黑」 46 | - 「大人」中的「大」 47 | - 「小人」中的「小」 48 | 49 | 中文词多使用双音节词 50 | 51 | - 包含同义语素的双音节复合词,多余的音节或者语素并没有改变词义 52 | - 例如:「保护」、「购买」、「销售」 53 | - 存在双音节的缩略词 54 | - 例如:「北京大学」的「北大」 55 | - 单音节的地名+范畴的标记 56 | - 例如:「法国」、「英国」、「通县」 57 | - 双音节的地点(不加范畴标记) 58 | - 例如:「日本」、「印度」、「大兴」 59 | - 双音节姓名 60 | - 双音节姓名,直接称呼,例如:「王源」、「宁静」 61 | - 三音节姓名,直呼名字,例如:「岳云鹏」叫「鹏鹏」、「郭德纲」叫「纲纲」 62 | - 单音节姓,加上前缀,例如:「老李」、「小王」 63 | - 双音节姓,不加前缀,例如:「欧阳」、「端木」 64 | 65 | ## 2.3 词的构成 66 | 67 | 单纯词:由一个词根语素组成。例如:「人」、「手」、「车」、「坦克」、「枇杷」 68 | 69 | 合成词:由两个以上的语素构成。 70 | 71 | - 派生词:在词根语素意义的基础上派生出来的 72 | - 例如:「阿妈」、「读者」、「石头」 73 | - 复合词:完全由几个词和语素按照一定的规则构成的,语义由两个语素的意义复合构成的 74 | - 例如:「病人」、「山川」 75 | 76 | ### 2.3.1 双音节复合词 77 | 78 | 根据语素之间的结构关系进行分类 79 | 80 | - 复合名词:53%的双音节复合词都是复合名词,这类词在名词之前有描述性的修饰词,但是整个词的意义与这个修饰部分不同 81 | - 例如:「小人」、「热心」、「打手」、「去年」、「爱人」 82 | - 复合动词:这类词在动词之前有修饰部分,对动作进行更加精确的限定 83 | - 例如:「寄生」、「飞驰」、「杂居」、「单恋」 84 | - 并列复合词:复合词中的两个语素在功能上等同,这样的词占所有双语素复合词的27% 85 | - 同义复合词:两个语素有相同或者相近的含义 86 | - 例如:「报告」、「声音」、「奇怪」、「购买」、「刚才」 87 | - 反义复合词:两个语素有相反的含义,词性也可能不同 88 | - 例如:「买卖」、「左右」、「大小」、「开关」、「轻重」 89 | - 动宾复合词:在动词性语素后面加上宾语语素,这样的词占所有双语素复合词的13%,即可以作为动词也可以作为名词 90 | - 动词性的双音节动宾复合词 91 | - 例如:「放心」、「鼓掌」、「动员」 92 | - 名词性的双音节动宾复合词 93 | - 例如:「司机」、「主席」、「干事」、「司仪」 94 | - 动补复合词:在动词性语素后面跟有补语(动词结果补语),表示动作过程的方向或者结果 95 | - 含有方向补语的复合词 96 | - 例如:「进来」、「进去」、「介入」、「超出」 97 | - 动词结果短语复合词 98 | - 例如:「改良」、「打破」、「推翻」、「听见」、「煮熟」 99 | - 主谓复合词:语素间的语义关系类似于句子中的主语和谓语(动词或者形容词) 100 | - 例如:「地震」、「心疼」、「民主」、「胆小」、「年轻」 101 | - 名词——量词补语复合词:语素关系并不是常见语法关系,名词后跟一个量词补语,表示名词所属事物的总体 102 | - 例如:「人口」、「羊群」、「书本」、「花朵」、「枪支」、「车辆」 103 | 104 | ### 2.3.2 三音节复合词 105 | 106 | 在三个语素之中,前两个或者后两个语素会有更加紧密的联系 107 | 108 | - 左分支结构:前两个语素联系紧密,即`[AB]C`形式 109 | - 右分支结构:后两个语素联系紧密,即`A[BC]`形式 110 | 111 | 三音节复合词分类 112 | 113 | - 修饰词——名词:占所有三音节复合词的 75% 114 | - 例如:「[情人]节」、「[小说]家」、「[大学]生」 115 | - 动宾复合词 116 | - 例如:「开[玩笑]」、「吹[牛皮]」、「吃[豆腐]」 117 | - 主谓宾复合词 118 | - 例如:「胆[结石]」、「鬼[划符]」 119 | - 描述性修饰+名词式复合词:名词之前加上叠词或者拟声的两个音节 120 | - 例如:「[棒棒]糖」、「[乒乓]球」、「[呼啦]圈」 -------------------------------------------------------------------------------- /NLP/NNM-for-NLP/Ch01.md: -------------------------------------------------------------------------------- 1 | # C01. 引言 2 | 3 | ## 1.1 自然语言处理的挑战 4 | 5 | 自然语言处理 ( Natural Language Processing, NLP ) 是一个设计输入和输出为非结构化自然语言数据的方法和算法的研究领域。 6 | 7 | - 有监督学习:从事先标注好的输入/输出集合中推导出使用的模式和规则。 8 | - 面临的困难:离散性、组合性、稀疏性 9 | 10 | 数据离散性 ( Discrete ) 11 | 12 | - 语言是符号化的和离散的。书面语义的基本单位是字符,字符构成了单词,单词表示了对象、概念、事件、动作和思想。 13 | 14 | - 字符和单词都是离散符号,不同符号的含义是不相关的 15 | 16 | 数据组合性 ( compositional ) 17 | 18 | - 字母形成单词,单词形成短语和句子 19 | 20 | - 短语的含义比单词大,并且遵循复杂的规则集 21 | 22 | 数据稀疏性 ( Sparseness ) : 23 | 24 | - 单词 ( 离散符号 ) 组合并且形成意义的方式是无限的 25 | 26 | ## 1.2 神经网络和深度学习 27 | 28 | 深度学习是机器学习的一个分支,是更深的神经网络 ( 更多层 ) 。 29 | 30 | - 深度学习不仅基于过去的观测学习预测,而且还学习正确地表示数据,以使模型更好地预测。 31 | 32 | ## 1.3 自然语言处理中的深度学习 33 | 34 | 神经网络使用嵌入层处理语言问题。 35 | 36 | - 嵌入层 ( Embedding Layer ) :将离散的符号映射为相对低维的连续向量。 37 | - 当嵌入单词的时候,从不同的独立符号转换为可以运算的数学对象。 38 | - 向量之间的距离可以等价于单词之间的距离,使得一个单词更容易泛化为另一个单词。 39 | - 学习单词的「向量表示」是训练过程的一部分。 40 | - 网络学习单词向量的组合方式可以更好地预测,减轻了数据的离散问题和稀疏问题。 41 | 42 | 神经网络结构 43 | 44 | - 前馈网络 ( Feedforward Network ) :也叫多层感知器 ( Multi-Layer Perceptron, MLP ) 。其输入大小固定,对于变化的输入长度,可以忽略元素的顺序。网络的非线性特征以及易于整合预训练词嵌入的能力导致了更好的分类精度。 45 | - 卷积前馈网络:关于抽取数据中有意义的局部模式,这些模式对单词顺序敏感,忽略在输入中出现的益,适合于识别长句子或者文本中有指示性的短语和惯用语 46 | - 循环/递归网络 ( Recurrent/Recursive Network ) :适合序列数据,输入的是序列,输出的是固定大小的向量作为序列的摘要。多被用于整个网络的特征提取,将训练结果与其他决策部件串联起来使用。 47 | - 递归网络将循环网络从序列扩展到树 48 | 49 | 语言模型 ( Language-Modeling ) :预测序列中下一个单词的概率 ( 等价于预测一个序列的概率 ) 50 | 51 | - 自然语言处理的任务多是结构化的,因此产生的输出结构也非常复杂 52 | - 自然语言预测的任务是互相关联的,某些任务的输出结果会对另一些任务有所帮助 53 | - 多任务学习(Multi-Task Learning, MTL) 54 | - 半监督(semi-supervised)学习 55 | 56 | 成功案例 57 | 58 | - 全连接前馈神经网络(MLP)用来替代线性学习器 59 | - 网络的非线性特征和对预训练词嵌入的整合能够提高分类的精度 60 | - 基于柱搜索(beam-search)的结构化预测系统,在句法分析、序列标注等任务中能够提高精度 61 | - 卷积和池化层的网络能够发现类别的局部线索,而忽略线索出现的位置 62 | - 循环网络和递归网络能够保留许多结构化信息 63 | - 循环网络用于处理序列数据 64 | - 递归网络用于处理树结构数据 65 | 66 | ## 1.4 全书大纲 67 | 68 | 本书由四个部分组成 69 | 70 | - 基本学习机制:有监督学习、多层感知器、基于梯度的训练、用于描述和训练神经网络的计算图模型 71 | - [Ch02](Ch02.md) :有监督机器学习的基本概念、参数化函数、线性和对数线性模型、正则化和损失函数、作为优化问题的训练以及基于梯度的训练方法 72 | - [Ch03](Ch03.md) :线性模型的主要缺陷、非线性模型的动机以及多层神经网络 73 | - [Ch04](Ch04.md) :前馈神经网络和多层感知器 74 | - 多层网络的定义、理论上的能力以及常用的组件 75 | - [Ch05](Ch05.md) :神经网络的训练 76 | - 对任意网络进行自动梯度计算的计算图抽象 ( 反向传播算法 ) 77 | - 训练网络的技巧 78 | - 学习机制与语言进行关联 79 | - 介绍处理语言时所能用到的主要信息源,并且解释如何将它们与神经网络机制进行整合 80 | - 讨论词嵌入算法和分布式假设,将前馈方法用于语言模型 81 | - [Ch06](Ch06.md) :提出通用语言处理问题的原型,讨论在使用语言数据时可用的信息 ( 特征 ) 资源 82 | - [Ch07](Ch07.md) :语言处理问题的具体案例,如何在自然语言任务中应用语言特征 83 | - [Ch08](Ch08.md) :介绍语言特征的编码方法,方便输入神经网络 84 | - [Ch09](Ch09.md) :语言模型和前馈神经网络语言模型的结构 85 | - [Ch10](Ch10.md) :用于词义表示的分布方法和分布式 86 | - 用于分布语义的单词——上下文矩阵方法 87 | - 受神经语言模型所启发的词嵌入算法:GloVe 和 Word2Vec 88 | - 分布方法与分布式之间的联系 89 | - [Ch11](Ch11.md) :不基于上下文的神经网络词嵌入 90 | - [Ch12](Ch12.md) :前馈神经网络案例:自然语言推理任务 91 | - 处理特征的结构以及其在语言数据中的应用 92 | - [Ch13](Ch13.md) :卷积网络:用于处理 N-gram 的一维卷积网络,可以学习富含信息的 N 元语法模式 93 | - 哈希核 ( Hash-Kernel ) 94 | - [Ch14](Ch14.md) :用于序列建模和栈建模的循环神经网络模型 95 | - 条件生成框架 96 | - 注意力模型 97 | - [Ch15](Ch15.md) :循环神经网络的分类 98 | - 简单循环神经网络,也叫 Elman 循环神经网络 99 | - 带门的循环神经网络,例如:长短期记忆 ( Long Short Term Memory, LSTM ) 100 | - 带门的循环神经网络,例如:门限循环单元 ( Gated Recurrent Unit, GRU ) 101 | - [Ch16](Ch16.md) :循环神经网络的建模案例 102 | - [Ch17](Ch17.md) :条件生成框架 ( 用于机器翻译系统 ) ,以及无监督句子建模 103 | - 最新研究成果 104 | - [Ch18](Ch18.md) :建模树的树结构递归网络 105 | - [Ch19](Ch19.md) :结构化预测模型 106 | - [Ch20](Ch20.md) :多任务学习与半监督学习 107 | 108 | 词嵌入算法: [Sec 10.4](Ch10.md) 和 [Ch11](Ch11.md) 109 | 110 | 自然语言推理数据集的特征结构: [Ch12](Ch12.md) 111 | 112 | 卷积网络: [Ch13](Ch13.md) 113 | 114 | 循环网络: [Ch14](Ch14.md) , [Ch15](Ch15.md) , [Ch16](Ch16.md) , [Ch17](Ch17.md) 115 | 116 | ## 1.5 本书未覆盖的内容 117 | 118 | - 不包括:语音数据和信号 119 | - 不包括:对话系统、文本摘要、问答系统等领域 120 | - 不包括:语义分析 121 | - 只有少量的多模态应用 122 | - 以英语为主的形态学讨论 123 | - 不包括:数据标注和系统评价 124 | - 数据标注:是自然语言处理的基础 125 | - 恰当的标注任务定义 126 | - 开发标注规范 127 | - 决定标注数据来源的覆盖和类别分布,以及训练——测试的划分 128 | - 与标注者一起工作,合并决策,验证标注者和标注的质量以及各种类似的主题 129 | - 系统评价:对于给定的任务能够正确评价其性能的指标,进行错误分析以及评估统计的显著性 130 | 131 | ## 1.6 术语 132 | 133 | - 特征 ( Feature ) :表示一个具体的、语言上的输入 134 | - 输入向量 ( Input Vector ) :表示提供给神经网络分类器的真正输入 135 | - 输入向量条目 ( Input Vecotr Entry ) :表示输入的具体值 136 | 137 | ## 1.7 数学符号 138 | 139 | - $\text{X}$ 表示矩阵 140 | - $\text{x}$ 表示向量 141 | - 上标 $\text{W}^{( 1 )}$ 表示网络中的层数 142 | - 下标表示元素 143 | - $\text{W}_{[i,j]}$ 表示矩阵 $\text{W}$ 的第 $i$ 列,第 $j$ 行 144 | - $\text{x}_{[i]}$ 表示向量 $\text{x}$ 的第 $i$ 个元素 145 | - $\cdot$ 表示点乘运算 146 | - $\text{w}\cdot\text{v}=\sum_i w_i v_i=\sum_i w_{[i]} v_{[i]}$ 147 | - $\text{x}_{1: n}$ 表示向量 $\text{x}_1,\cdots,\text{x}_n$ 的序列 148 | - $\text{x}_{1: n}[i]=\text{x}_i$ 149 | - $\text{x}_{n:1}$ 表示向量 $\text{x}_1,\cdots,\text{x}_n$ 的逆序列 150 | - $\text{x}_{n: 1}[i]=\text{x}_{n-i+1}$ 151 | - $[\text{v}_1;\text{v}_2]$ 表示向量串联 152 | -------------------------------------------------------------------------------- /NLP/NNM-for-NLP/Ch02.md: -------------------------------------------------------------------------------- 1 | # C02. 学习基础与线性模型 2 | 3 | ## 2.1 有监督学习和参数化函数 4 | 5 | 有监督机器学习:通过观测样例进而产生泛化的机制。 6 | 7 | - 设计算法,算法的输入是一组有标注的样例,输出是一个接收实例、产生期望标签的函数。对于在训练时没有见过的样例,最终函数也可以产生预测标签 8 | - 搜索所有可能的函数是困难的,于是把函数限制在特定的函数簇内,这样的函数簇称作假设类。通过把搜索限制在假设类之中,学习器中引入了归纳偏置——一组关于期望结果形式的假设,同时也使得搜索结果的过程更加高效。 9 | - 假设类确定了学习器可以表示什么,不可以表示什么 10 | - 常见的假设类:高维线性函数。$f(\text{x})=\text{x}\cdot\text{W}+\text{b}, \text{x}\in\mathbb{R}^{d_{in}}, \text{W}\in\mathbb{R}^{d_{in}\times d_{out}}, \text{b}\in\mathbb{R}^{d_{out}}$ 11 | - $\text{x}$ 表示函数的输入 12 | - $\text{W,b}$ 表示函数的参数 13 | - 线性模型的性质 14 | - 训练简单高效 15 | - 通常会得到凸优化目标 16 | - 训练得到的模型具备可解释性 17 | - 具有隐层的前馈神经网络也是参数化函数,构成了更加强大的假设:是通用近似器,可以表示任意的 Borel 可测函数 18 | 19 | ## 2.2 训练集、测试集和验证集 20 | 21 | 留一法 22 | 23 | - 留一交叉验证(Leave One out Cross-Validation):训练$k$ 个函数 $f_{1,k}$,每次取出一个不同的输入样例 $\text{x}_i$,评价得到的函数 $f_i()$ 预测 $\text{x}_i$ 的能力, 24 | 25 | 留存集 26 | 27 | - 在较大的子集(训练集)上训练模型 28 | - 在较小的子集(留存集,Held-Out Set)上测试模型的准确率。 29 | 30 | 三路划分 31 | 32 | - 训练集 33 | - 验证集(开发集):所有的实验、调参、误差分析和模型选择都在验证集上完成 34 | - 测试集:测试集上的一次评测确定模型的质量,因此需要保证测试集尽可能纯洁 35 | 36 | ## 2.3 线性模型 37 | 38 | ### 2.3.1 二分类 39 | 40 | 基于线性可分数据集的二分类问题中,只有一个输出。线性模型的数学描述: 41 | $$ 42 | \hat{y}=\text{sign}(f(\pmb{x}))=\text{sign}(\pmb{x\cdot w)}+b)=\text{sign}(size\times w_1+price\times w_2+b) 43 | $$ 44 | 45 | 基于非线性可分数据集的二分类问题的解决方案 46 | 47 | - 对原始数据集加入更多的特征,从而将数据转换到高维空间,使之线性可分 48 | - 转换到更加丰富的假设类 49 | - 允许一些误分类存在 50 | 51 | 特征表示:创建一个特征抽取函数,把真实世界的对象映射成一个可测量量度的向量,将这个向量作为模型的输入。 52 | 53 | - 深度学习简化了特征工程的处理过程,因为模型设计者只需要定义一个小的特征集合,这个集合包含的是核心的、基本的或者自然的特征,然后基于可以训练的神经网络结构将它们组成成更有意义的、更高层次的特征或者表示。 54 | - 因此,特征工作只需要定义一个合适的特征集合,再将这些特征与一个合适的结构联系起来。 55 | 56 | ### 2.3.2 对数线性二分类 57 | 58 | 使用sigmoid 函数可以得到决策的置信度或者分类器分配这个类别的概率$\hat{y}=\sigma(f(\pmb{x}))=\frac1{1+\exp\{-(\pmb{x\cdot w}+b)\}}$。 59 | 60 | Sigmoid函数$\sigma(x)=\frac1{1+e^{-x}}$是单词递增的,输入映射为$[0,1]$ 61 | 62 | ### 2.3.3 多分类 63 | 64 | 一个实例分配到$k$个不同的类别中的一个$\text{prediction}=\hat{y}=\arg\max_{i}\hat{\pmb{y}}_{[i]}$ 65 | 66 | ## 2.4 表示 67 | 68 | 基于文档训练模型,输出的向量就是这个文档的表示(Representation),因为向量抓住了文档的重要属性。这个表示更加紧凑,更加针对语言预测对象。 69 | 70 | 表示是深度学习的核心。深度学习的主要能力就是学习好的表示能力。 71 | 72 | - 在线性情况下,表示是可以理解的。可以为表示向量的每个维度指派一个有意义的解释。 73 | - 在深度学习下,表示是不可理解的,但是对于预测依然是有用的。 74 | - 在模型的边界上,可以得到输入和输出的特定方面的表示 [Sec 8.3](Ch08.md) 75 | 76 | ## 2.5 独热向量表示和稠密向量表示 77 | 78 | 词袋(Bag of Words,BOW),称作平均二元对词袋(Averaged Bag of Bigrams),或者叫平均词袋(Averaged Bag of Words),表示包含文档中所有单词的不考虑次序的个性信息。 79 | 80 | 独热向量表示:可以被认为是单一单词的词袋。 81 | 82 | 连续单词词袋(Continuous Bag of Words,CBOW):由低维度连续向量的单词表示的总和组成。表示可以通过求单词表示向量的和 或者 通过将一个单词词袋向量乘以一个每一行对应于一个稠密单词表示的矩阵(这个矩阵是嵌入矩阵)来得到。 83 | 84 | -------------------------------------------------------------------------------- /NLP/NNM-for-NLP/Ch04.md: -------------------------------------------------------------------------------- 1 | # C04. 前馈神经网络 2 | 3 | ## 4.8 嵌入层 4 | 5 | 当神经网络的输入包含符号分类特征时,通常将每个可能的特征值(即词汇中的每个单词)与一个 $d$ 维向量相关联。这些向量被当作模型的参数与其他参数共同训练,而特征值与 $d$ 维向量的映射是通过嵌入层实现的。嵌入层的参数是一个矩阵 $\text{E}\in\mathbb{R}^{|词典|\times d}$,$\text{E}$ 中一行数据对应于词典中的一个词,各行数据对应的词各不相同。在进行下一层前,词向量通常会彼此连接。[Ch08](Ch08.md) 和 [Ch10](Ch10.md) -------------------------------------------------------------------------------- /NLP/NNM-for-NLP/Ch08.md: -------------------------------------------------------------------------------- 1 | # C08. 从文本特征到输入 2 | 3 | ## 8.1 编码分类特征 4 | 5 | ### 8.1.1 独热编码 6 | 7 | 文章的 One-Hot 编码:每一维对应一个单独特征,因此结果特征向量为高维指示向量 的组合。 8 | 9 | ### 8.1.2 稠密编码 ( 特征嵌入 ) 10 | 11 | 稠密编码:每个核心特征都被嵌入到 $d$ 维空间中,并且使用空间中的一个向量表示一个特征。例如:100维空间嵌入词特征,20维空间嵌入词类(POS)特征。 12 | 13 | 嵌入向量(每个核心特征的向量表示)作为网络的参数与函数中的其他参数一起被训练。 14 | 15 | 基于前馈神经网络的NLP分类系统的结构: 16 | 17 | - 抽取一组和预测输出类别相关的核心语言学特征 18 | - 对于每一个感兴趣的特征,检索出相应的向量 19 | - 将特征向量组合成(拼接、相加或者两者组合)输入向量 20 | - 将输入向量输入到非线性分类器中(前馈神经网络) 21 | 22 | 对输入来说,从线性分类器到深度分类器的最大变化是特征的变化,即特征从单独一维的稀疏表示到把每个特征映射到一个向量的稠密表示。并且不再需要做特征组合,只需要抽取核心特征。 23 | 24 | ### 8.1.3 稠密向量与独热表示 25 | 26 | 独热表示:每个特征拥有一个自己的维度 27 | 28 | - 独热向量的维度与不同特征的数目相同 29 | - 特征间完全相互独立 30 | 31 | 稠密表示:每个特征为一个 $d$ 维向量 32 | 33 | - 稠密向量的维度是 $d$ 34 | - 模型训练会导致相似特征对应相似的向量,相似特征间的信息是共享的 35 | - 预训练的嵌入词向量基于分布假设的算法在大规模文本语料上学习得到 36 | - 优点:方便计算,具有很强的泛化能力 37 | 38 | 使用的区别 39 | 40 | - 在同一类别下,特征的区分度小,并且不同特征之间相互独立时,使用独热表示 41 | - 在特征空间相对较小,并且训练数据比较充足,使用 One-Hot 编码效果更好 42 | - 不希望共享不同单词音的统计信息时,使用One-Hot 编码效果更好 43 | - 在同一组中,不同特征间有相互关系,那么通过网络学习得到相互关系,并且通过共享参数获得一些统计强度是值得的 44 | - 建议所有特征都使用稠密可训练的嵌入向量来表示 -------------------------------------------------------------------------------- /NLP/NNM-for-NLP/Ch13.md: -------------------------------------------------------------------------------- 1 | # C13. N 元语法探测器:卷积神经网络 2 | 3 | 为了探索基于元素的有序集合,常常使用二元词组 ( Bi-Gram ) 词嵌入或者三元词组 ( Tri-Gram ) 词嵌入,由于这样处理的词嵌入词典过大,无法用于较长的 N 元语法模型,还会遇到数据稀疏性问题 ( 因为不同 N 元语法间的统计特性没有共享,例如:'very good' 和 'quite good' 两个词嵌入元素彼此独立 )。 4 | 5 | 卷积神经网络用于在大规模结构中识别出具有指示性的局部预测器,将这些预测器结合以生成一个固定大小的向量来表示这个结构,捕获对当前预测任务信息最多的局部特征。 6 | 7 | 卷积结构可以扩展成层次化的卷积层,每一层关注于句子中更长的N元语法,使得模型可以感知非连续的N元语法。 8 | 9 | CNN 本质上是一种特征提取结构,作用是抽取出对于当前整体预测任务有用的、有的子结构。 10 | 11 | CNN 应用在文本时,主要关心的是一维(序列)卷积。 12 | 13 | CNN 的主要术语:滤波器、信道、感受野 14 | 15 | ## 13.1 基础卷积+池化 16 | 17 | 用于语言任务的「卷积+池化」的主要思想 18 | 19 | - 对一句话的 $k$ 个词滑动窗口的每个实例应用一个非线性(学习得到的)函数 20 | - 这个函数(也叫「滤波器」)将 $k$ 个词的窗口转换成为一个实数值 21 | - 使用多个这样的滤波器,得到 $l$ 维向量(每一维对应一个滤波器)用于捕获窗口内词的重要属性 22 | - 使用「池化」操作,将不同窗口得到的向量通过对 $l$ 维中每一维取最大值或者平均值的方式,结合成一个 $l$ 维向量 23 | - 目的:聚焦于句子中最重要的「特征」,忽略这些特征的位置(每个滤波器提取窗口中不同的指示器,池化操作则放大了重要的提示器) 24 | - 使用这个 $l$ 维向量进行预测 25 | - 训练过程中从网络传回的梯度被用来调整滤波器函数的参数,使其强化数据中对网络任务更重要的部分 26 | 27 | 直观上看:大小为 $k$ 的滑动窗口在序列上运行时,滤波器函数学习了如何识别信息量更加丰富的 $k$ 元语法 28 | 29 | ### 13.1.1 文本上的一维卷积 30 | 31 | 词序列:$\text{w}_{1:n}=w_1,\cdots,w_n$ 32 | 33 | 词向量:$\mathbf{E}_{[w_i]}=\mathbf{w}_i$ 34 | 35 | 填充 36 | 37 | - 宽卷积:对句子两端填充 $(k+1)$ 个填充词,得到 $(n+k+1)$ 个向量 38 | - 窄卷积:不对句子进行任何填充,得到 $(n-k+1)$ 个向量 39 | 40 | 信道 41 | 42 | - 词序列 43 | - 词性序列 44 | 45 | 总结:对序列中所有的 $k$ 元语法应用同一个参数函数,这样构建了 $m$ 个向量,每个向量代表序列中一个特定的 $k$ 元语法。这种表示能够感知 $k$ 元语法本身及其内部的词序,但是对于一个序列中不同位置的同一个 $k$ 元语法会得到相同的表示 46 | 47 | ### 13.1.2 向量池化 48 | 49 | 在文本上进行卷积得到 $m$ 个向量(维度 $l$),这些向量被结合(池化)为一个向量 $\mathbf{c}$ (维度 $l$)用于表示整个序列。向量 $\mathbf{c}$ 捕获了序列重要信息,需要编码进向量 $\mathbf{c}$ 的句子的重要信息的实质内容是任务相关的 50 | 51 | - 情感分类的实质内容是:指示情感的最具有信息量的 $N$ 元语法 52 | - 主题分类的实质内容是:指示特定主题的最具有信息量的 $N$ 元语法 53 | 54 | 池化操作方式 55 | 56 | - Max Pooling:最大池化,获取整个窗口位置中最显著的信息 57 | - 理想情况下,每个维度会「专门化」一个特定种类的预测器,最大池化操作会选出每种类别下最重要的预测器 58 | - Average Pooling:平均池化,对句子中连续词袋(CBOW)而不是词进行卷积得到的表示 59 | - K-Max Pooling:每一维度保留前 $k$ 个最大的值,同时保留它们在文本中出现的顺序 60 | - 可以对许多分散在不同位置的 $k$ 个最活跃的指示器进行池化,保留了特征间的序关系,无法感知特征的具体位置,但是能识别出特征被显著激活的次数 61 | - Dynamic Pooling:动态池化,根据问题所在域的先验知识保留部分位置信息,将整个序列的 $m$ 个向量分成 $n$ 个组,对每组分别进行池化,再将得到 $n$ 个向量拼接起来。 62 | - 主题分割时,多个平均池化组能够将起始句子(用于标明主题)和其他句子分隔开来 63 | - 情感分类时,对整个序列使用最大池化效果最好,因为序列中几个强信号就可以决定情感 64 | - 关系抽取时,对于两个给定词的关系,第一个词之前的词、第二个词之后的词以及它们之间的词所提供的信息是不同的 65 | 66 | ### 13.1.3 变体 67 | 68 | 多个卷积层,每个卷积层的窗口大小不同,捕获序列中不同长度的 $N$ 元语法,每个卷积层的结果将被池化,然后将得到的向量拼接后进行处理。 69 | 70 | 卷积结构还可以处理句法依存树,每个窗口围绕句法树中的一个结点,池化过程在不同的结点上进行 71 | 72 | ## 13.2 其他选择:特征哈希(Feature Hashing) 73 | 74 | 为了避免 $N$ 元语法带来的词库过大问题,可以使用特征哈希。 75 | 76 | - 创建 $N$ 行的词嵌入矩阵 $\mathbf{E}$ 77 | - 使用哈希函数将元素指定到 $\mathbf{E}$ 中的一行 78 | - 使用对应的行作为词嵌入 79 | - 得到非常有效的 $N$ 元词袋模型 80 | 81 | ## 13.3 层次化卷积 82 | 83 | 一维卷积方法是一个 $N$ 元语法探测器,一个窗口大小为 $k$ 的卷积层学习识别输入中具有指标性的 $k$ 元语法。 84 | 85 | 扩展成层次化卷积层,卷积序列逐层相连,可以捕获跳跃的模式「not_good」或者「obvious_predictable_plot」,其中的`_`表示忽略的词 86 | 87 | - 步长:更大的步长可以避免信息混淆 88 | - 膨胀 89 | - 扩大步长,使得有效窗口的大小随着层数呈指数型增长 90 | - 固定步长为1,通过在每层间使用局部池化的方式来缩短序列长度 91 | - 参数捆绑:对于所有的参数层使用相同的参数集合,基于参数共享也解除了卷积层导数的限制 92 | - 跨层连接:使用拼接、平均或者求和的方式将不同层的向量合并在一起 93 | 94 | -------------------------------------------------------------------------------- /NLP/SLP-Speech-Language-Processing-II/Ch16.md: -------------------------------------------------------------------------------- 1 | # Ch16 语言和复杂性 2 | 3 | ## 16.1 Chomsky层级 4 | 5 | 形式语言(formal language)是在有限字母表上的符号串的集合。 6 | 7 | 不同的形式化方法写的语法的类别具有不同的生成能力。 8 | 9 | 如果一种语法能够定义一种语言,而另一种语法不具备这个能力,就说明前一种语法具有更加强大的生成能力或者更大的复杂性。 10 | 11 | Chomsky层级是一种理论工具,可以用于比较不同形式化方法的表达能力或者复杂性。 12 | 13 | ```mermaid 14 | graph TB 15 | subgraph 递归可枚举语言 16 | subgraph 上下文有关语言 17 | subgraph 柔性上下文有关语言 18 | subgraph 上下文无关语言 19 | subgraph 正则或右线性语言 20 | end 21 | end 22 | end 23 | end 24 | end 25 | 26 | ``` 27 | 28 | | 类型 | 通用名称 | 规则基干 | 语言学例子 | 29 | | ---- | -------------- | ------------------------------------------------------------ | ------------------------------------------------ | 30 | | 0 | Turing等价 | $\alpha\rightarrow\beta,\text{s.t.}\alpha\neq\varepsilon$ | 中心语驱动的短语结构语法、词汇功能语法、最简方案 | 31 | | 1 | 上下文有关 | $\alpha A\beta\rightarrow\alpha\gamma\beta,\text{s.t.}\gamma\neq\varepsilon$ | | 32 | | - | 柔性上下文有关 | | 树邻接语法、组合式范畴语法 | 33 | | 2 | 上下文无关 | $A\rightarrow\gamma$ | 短语结构语法 | 34 | | 3 | 正则 | $A\rightarrow xB, A\rightarrow x$ | 有限状态自动机 | 35 | 36 | Chomsky层级包含了4种语法:(图16.1和 图16.2) 37 | 38 | - 正则(或者右线性)语言:与正则语法或者正则表达式等价。正则语法可以是右线性的,也可以是左线性的。 39 | - 右线性规则的右边只有一个单独的非终极符号,左边最多只有一个非终极符号。 40 | - 如果在右边只有一个非终极符号,它必定是符号串中的最后一个符号。 41 | - 左线性语法的右边是可逆的(右边必须至少以一个单独的非终极符号开始)。 42 | - 上下文无关语言:上下文无关规则可以把任何一个单独的非终极符号重写为由终极符号构成的符号串。这个单独的非终极符号也可以重写为 $\varepsilon$。 43 | - 柔性上下文无关语言:可以被上下文有关语法刻画。是上下文有关语言的真子集,也是上下文无关语言的真超集。 44 | - 上下文有关语言:可以被上下文有关语法刻画。规则是以“非递减”(nondecreasing)的方式把符号串 $\delta$ 重写为符号串 $\Phi$ ,使得 $\Phi$ 中的符号至少与 $\delta$ 中的符号一样多 45 | - 递归可枚举语言:可以被Turing等价语法,也叫0型语法,或者叫无限制语法来刻画,即0型语法生成的符号串可以由Turing机列出(或者枚举)。语法除了要求规则的不能是空符号串 $\varepsilon$ 之外,对于规则的形式再没有其他限制。任何非零的符号串都可以重写为任何其他的符号串(或者 $varepsilon$ )。0型语法刻画了递归可枚举语言, 46 | 47 | ## 16.2 正则语言的判定 48 | 49 | 证明一种语言是正则语言的方法:为这种语言建立起正则表达式,再根据正则语言对于并运算、毗连运算、Kellne\*运算、补运算、交运算等都是封闭的就可以了。 50 | 51 | ### 16.2.1 抽吸引理(pumping lemma) 52 | 53 | 如果一种语言能够被有限状态自动机模拟,那么根据这种记忆约束量来判定任何符号串是否在该语言中。这个记忆约束量对于不同的符号串不会增长得很大。 54 | 55 | 如果一个正则语言具有任意长的符号串(比自动机中的状态数还长),那么在该语言的自动机中必定会存在某种回路。即如果一种语言没有这种回路,那么它就不是正则语言。 56 | 57 | 抽吸引理:设$L$是一个有限的正则语言。那么,必定存在着符号串$x,y,z$,使得对于 $n\geq 0$,有 $y\neq\varepsilon$,并且 $xy^n z\in L$。 58 | 59 | 如果一种语言是正则语言,那么就存在着一个符号串$y$,这个$y$可以被适当的抽吸。 60 | 61 | 上下文无关语言也有一个抽吸引理,这个引理可以用来鉴别一种语言是不是上下文无关的。 62 | 63 | ### 16.2.2 证明各种自然语言不是正则语言 64 | 65 | 证明过程存在纰漏。 66 | 67 | ## 16.3 自然语言是上下文无关的吗? 68 | 69 | 在交叉序列依存(cross-serial 70 | dependencies)中,语言中的单词或者更大的结构按照从左到右的顺序联系的形式。如果一种语言具有任意长的交叉序列依存。 71 | 72 | ## 16.4 计算复杂性和人的语言处理 73 | 74 | 句子理解的困难:意思太复杂、句子的歧义特征严重、使用少见的单词、书写质量太差,这些问题似乎都与记忆的有限性有关 75 | 76 | 人的剖析模型,称为依存定位理论(Dependency Locality Theory,DLT) 77 | 78 | - DLT认为,判断客体的相对性的困难来源于句子中动词的前面出现了两个名词 79 | 80 | - DLT提出,把一个新的单词w结合到句子之中的开销是与单词w以及该单词w所结合的句法项目之间的距离成正比的 81 | 82 | 计算复杂性似乎都是与记忆有关的。 83 | 84 | 计算复杂性与概率剖析之间的关系。 85 | 86 | 由于记忆因素引起的计算复杂性和由于信息论和统计剖析因素引起的计算复杂性之间的关系。 87 | 88 | ## 16.3 小结 89 | 90 | - 两种关于计算机复杂性的思想 91 | 92 | - 形式语言的计算复杂性 93 | 94 | - 人的句子的计算复杂性 95 | 96 | - 语言可以使用生成能力来刻画。 97 | 98 | - 如果一种语法能够定义的语言用其他的语法不能定义,那么就说这种语法比其他语法具有更大的生成能力或者更大的计算复杂性。 99 | 100 | - Chomsky层级是建立在语法生成能力基础上的不同语法的层级。 101 | 102 | - Turing等价语法 103 | 104 | - 上下文有关语法 105 | 106 | - 上下文无关语法 107 | 108 | - 正则语法 109 | 110 | - 抽吸引理:用于证明一种给定的语言不是正则的。 111 | 112 | - 英语不是正则语言,也不是上下文无关语言 113 | 114 | - 瑞士德语和Bambara语不是上下文无关语言,但是柔性上下文有关语言。 115 | 116 | - 人类在剖析某些中心嵌套句子时存在困难,是人类的记忆的有限性造成的剖析困难 117 | 118 | - 自然语言识别和剖析的计算复杂性 119 | 120 | - 在一个潜在地无限长的句子中,为了保持词汇和一致关系的特征歧义而引起的在某些基于合一的形式化方法中(如词汇功能语法)识别句子的问题,是NP完全问题 121 | 122 | - 双层形态剖析(或者只是词汇形式和表层形式之间的映射)也是NP完全问题 123 | 124 | - 加权上下文无关语法(每个规则一个权重)和概率上下文无关语法(非终极符号的规则的权重之各为1)具有相等的表达能力 125 | -------------------------------------------------------------------------------- /NLP/SLP-Speech-Language-Processing-II/Ch18.md: -------------------------------------------------------------------------------- 1 | # Ch18 计算语义学 2 | 3 | 语义分析(semantic analysis):将「意义表示」(Ref: [Ch 17](Ch17.md))进行组合并指派给语言表达式的过程。 4 | 5 | 常用的知识源:词的意义、语法结构所蕴含的常规意义、话语的结构知识、与话题相关的常识以及与话语中事件状态相关的知识。 6 | 7 | 句法驱动的语义分析(syntax-driven semantic analysis):在给句子指派意义表示时,仅仅依赖于词典和语法知识。这个意义表示是独立于上下文并与推理无关的表示。 8 | 9 | 句法驱动的语义分析的作用: 10 | 11 | - 简单的表示足以产生有用的结果; 12 | - 简单的表示可以作为后续处理的输入,进而产生更加丰富和更加完整的意义表示。 13 | 14 | 歧义产生的条件:句法、词法、复指语歧义和量词辖域 15 | 16 | ## 18.1 句法驱动的语义分析 17 | 18 | 组合性原则(principle of compositionality):句子的意义可以从其组成部分的意义构建而成。 19 | 20 | Mad Hatter 给出的原则提示:句子的意义并不仅仅依赖于句中的词汇量,还依赖于句中词汇的顺序、词汇所形成的群组以及词汇间的关系。即:句子的意义部分依赖于句法结构。 21 | 22 | 图18.1 用于语义分析的简单的管道流方法: 23 | 24 | (输入)→句法分析器→(句法结构)→语义分析器→(输出的语义表示) 25 | 26 | 规则到规则的假设(rule-to-rule hypothesis):语言并不是通过枚举所允许的字符串或者句法分析树来定义的,而是通过描述可以生成期望输出集合的有限工具来定义的。因此,在面向句法的方法中语义知识应当面向产生句法分析树的有限工具集(语法规则和词典条目)。 27 | 28 | ## 18.2 句法规则的语义扩充 29 | 30 | 将语义附着(semantic attachments)扩充到上下文无关语法(CFG)规则中。(Ref:Ch15) 31 | 32 | 使用这些扩充的语义附着来描述基于句法结构成分的意义来计算整体意义表示的规则。 33 | 34 | 两种带约束的规则到规则(rule-to-rule)的方法: 35 | 36 | - 一阶逻辑(FOL)和 λ 算子符号(Ref:[Ch17](Ch17.md));使用逻辑表示来指导逻辑结构的创建 37 | - 语法规则的语义附着主要由 λ 化简组成, 38 | - λ 表达式的算子 39 | - λ 表达式中算子的论元 40 | - 特征结构和合一运算(Ref:[Ch15](Ch15.md)):实现了句法驱动的语义分析。 41 | 42 | 三种实现规则到规则(rule-to-rule)方法的技术: 43 | 44 | - 将词项与复杂的与函数相似的 λ表达式关联 45 | - 在无分支规则中,将子结点语义值复制到父结点 46 | - 通过 λ 化简,将一条规则的一个子结点的语义应用于该条规则的其他子结点的语义 47 | 48 | ## 18.3 量词辖域歧义及非确定性 49 | 50 | 量词辖域歧义:包含量化词的表达式引起的歧义。 51 | 52 | 解决量词辖域歧义的方法: 53 | 54 | - 创建非确定性表示,该表示需要不通过枚举的方式包含有歧义的各种可能的解释 55 | - 从非确定性表示中生成或者抽取所有可能的解释 56 | - 对所有可能的解释进行选择 57 | 58 | ### 18.3.1 存储与检索方法 59 | 60 | 存储用来替换单独的语义附着。 61 | 62 | 存储包括 63 | 64 | - 一个核心的语义表示 65 | - 一个量化表达式的索引列表 66 | - 量化表达式是从树中该结点的子结点中收集的 67 | - 量化表达式以 λ表达式的形式存在 68 | - λ表达式可能通过与核心意义表示相结合的方式正确地合并量化表达式 69 | 70 | 从存储中检索出完全确定的表示所必须的过程 71 | 72 | - 从存储中选择一个元素 73 | - 通过 λ 化简将选择的元素作用于核心表示 74 | 75 | 确保了从存储中检索到的量化表达式将被指派给核心表示中的正确角色。 76 | 77 | 基于存储的方法存在的两个问题: 78 | 79 | - 只能解决由量化的名词短语引起的辖域歧义问题。 80 | - 允许枚举给定的表达式所有可能的范围,但是不允许在可能的范围上施加额外的约束。 81 | 82 | ### 18.3.2 基于约束的方法 83 | 84 | 解决存储的方法存在的问题的方法: 85 | 86 | - 有效地表示非确定性的表述 87 | - 最终的表示必须满足的所有约束 88 | 89 | 只要一个完全确定的一阶逻辑(FOL)表达式与这些约束一致,那么这个表达式就符合要求。 90 | 91 | 孔语义学:是基于约束的非确定性表示方法。使用孔来代替 92 | λ变量。向所有的候选FOL子表达式添加标记。在完全确定的式子中,所有的孔都将被已经标记的子表达式填充。 93 | 94 | 基于约束的非确定性表示方法的作用: 95 | 96 | - 不特定于语法结构或歧义来源 97 | - FOL规则的任意组成部分都可以被标记或者被指定为孔 98 | - 支配约束赋予表达约束的能力,这些约束可用于排除不必要的解释 99 | - 约束的来源可能来自特定的词汇和句法知识,并且可以针对词汇条目和语法规则在语义附着中直接表达 100 | 101 | ## 18.4 基于合一的语义分析方法 102 | 103 | 将复杂的特征结构与单独的上下文无关语法规则组成对,以此来对诸如数一致关系和次范畴化这样的句法约束进行编码,且这些约束通常无法通过上下文无关语法传递。 104 | 105 | 规则的功能: 106 | 107 | - 确保语法丢弃违背约束的表达式 108 | - 创建与语法推导部分相关的复杂结构 109 | 110 | ## 18.5 语义与 Earley 分析器的集成 111 | 112 | 基于Earley分析器可以把语义结合到语法分析中 113 | 114 | - 优点:在句法处理时就可以考虑语义,从而在生成意义表示时就可以阻塞语义的非良构形式进入线图。 115 | - 缺点:耗费精力在孤立成分的语义分析上。 116 | 117 | ## 18.6 成语(俗语)和组成性 118 | 119 | 成语(idiomatic language):即习惯用语,或者称为“俗语”。 120 | 121 | 对于习惯用语的结构,最直接的处理方法就是引入为处理这些习惯用语而特意设计的新语法规则。规则将基于语法成分将词项混合,再引入语义内容,而这个语义内容不是从任何词项中得来的。 122 | 123 | 处理习惯用语需要对普通的组合框架做出下面的改变: 124 | 125 | - 允许词典项与传统语法成分的混合; 126 | - 为了能够处理习惯用语多样性的正确范围,允许生成额外的特定习惯用语的成分; 127 | - 准许在语义附着引入与规则中的任何成分无关的逻辑项和谓词。 128 | 129 | ## 18.7 小结 130 | 131 | 本章的重点是句法驱动的语义分析。 132 | 133 | - 语义分析是生成意义表示,并将这些意义表示指派给语言输入的过程。 134 | - 语义分析器能够利用词典和语法中的静态知识,生成上下文无关的字面意义或习惯意义。 135 | - 组合性原则说明一个句子的意义可以由它的组成部分的意义组合而成。 136 | - 在句法驱动的语义分析中,部分是指输入的一个句法成分。 137 | - 通过一些符号扩展,例如:λ表达式和复杂项,可以采用组合方式创建FOL公式。 138 | - 基于特征结构和合一算法提供的机制也可以合成FOL公式。 139 | - 自然语言中的量词会带来一种很难通过组合方式处理的歧义。 140 | - 非确定性表示可以用来处理由辖域歧义引起的多重解释。 141 | - 成语(习惯用语)问题无法利用组合性原则解决,但是可以采用设计语法规则及其语义附着技术来处理。 142 | -------------------------------------------------------------------------------- /NLP/SLP-Speech-Language-Processing-II/Preface.md: -------------------------------------------------------------------------------- 1 | # 译者序 2 | 3 | 计算机对自然语言的研究和处理需要经过以下4个过程: 4 | 5 | 1. 把需要研究的问题在语言学上加以形式化,使之能以一定的数学形式,严密而规整地表示出来; 6 | 7 | 2. 把这种严密而规整的数学形式表示为算法,使之在计算上形式化; 8 | 9 | 3. 根据算法编写计算机程序,使之在计算机上加以实现; 10 | 11 | 4. 对于所建立的自然语言处理系统进行评测,使之不断地改进质量和性能,以满足用户的需要。 12 | 13 | Bill Manaris对自然语言的定义: 14 | 15 | 自然语言处理可以定义为:研究在人与人交际中以及在人与计算机交际中的语言问题的一门学科。 16 | 17 | 自然语言处理要研制:语言的表示能力(linguistic 18 | competence)和语言的应用模型(linguistic 19 | performance),通过建立计算框架来实现这样的语言模型,提出相应的方法来不断地完善这样的语言模型,设计各种系统来实现这样的语言模型,并探讨这些实用系统的评测技术。 20 | 21 | 建立自然语言处理模型需要的知识: 22 | 23 | - 声学和韵律学的知识:描述语言的节奏、语调和声调的规律,说明语音是怎样形成音位的。 24 | 25 | - 音位学的知识:描述音位的结合规律,说明音位是如何形成语素的。 26 | 27 | - 形态学的知识:描述语素的结合规则,说明语素是怎样形成单词的。 28 | 29 | - 词汇学的知识:描述词汇系统的规律,说明单词本身固有的语义特性和语法特性。 30 | 31 | - 句法学的知识:描述单词(或词组)之间的结构规则,说明单词(或词组)是怎样组成句子的。 32 | 33 | - 语义学的知识:描述句子中各个成分之间的语义关系,这样的语义关系是与情景无关的,说明怎样从构成句子的各个成分中推导出整个句子的语义的。 34 | 35 | - 话语分析的知识:描述句子与句子之间的结构规律,说明是怎样由句子形成话语或对话的。 36 | 37 | - 语用学的知识:描述与情景有关的情景语义,说明是怎样推导出句子具有的与周围话语有关的各种含义的。 38 | 39 | - 外界世界的常识性知识:描述关于语言使用者与语言使用环境的一般性常识,例如:语言使用者的信念和目的,说明是怎样推导出这样的信念和目的内在结构的。 40 | 41 | P8 图0.1 自然语言处理系统中的知识平面: 42 | 43 | →(话语)→音位学平面→(音位)→形态学平面→(语素)→词汇学平面→(单词)→句法学平面→(句法结构)→语义学平面(意义表示)→(语义解释)→语用学平面→(语用解释) 44 | 45 | -------------------------------------------------------------------------------- /NLP/SLP-Speech-Language-Processing-II/README.md: -------------------------------------------------------------------------------- 1 | # Speech and Language Processing, 2nd Edition 2 | 3 | 《自然语言处理综论》(第二版) 的学习笔记。 4 | -------------------------------------------------------------------------------- /PPT/Transformer 模型.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/PPT/Transformer 模型.pptx -------------------------------------------------------------------------------- /Pattern-Recognition/PRML/Ch06.md: -------------------------------------------------------------------------------- 1 | # C06. 核方法 2 | 3 | ## S06. 前言 4 | 5 | - 重点 6 | - 径向基函数 7 | - 高斯过程 8 | - 难点 9 | - 高斯过程 10 | - 学习基础 11 | - Laplace 逼近 12 | - 线性规划的对偶理论和 Lagrange 13 | - 学习要点 14 | - 通过将对偶性的概念应用于回归的非概率模型,引出了核的概念 15 | - 通过在概率判别式模型中使用核,引出了高斯过程的框架 16 | - 对偶表示:许多线性参数模型都可以转化为等价的「对偶表示」。 17 | - 对偶表示中,预测的基础是在训练数据点处计算的核函数的线性组合。 18 | - 核函数 19 | - 用特征空间的内积的方式表示核的概念,可以很方便的使用核技巧,或核替换。 20 | - 核函数的类别 21 | - 静止核:参数的差值的函数;对于输入空间的平移具有不变性。 22 | - 同质核:也叫径向基函数,只依赖于参数之间的距离的大小。 23 | 24 | ## S6.1. 对偶表示 25 | 26 | - 对偶理论是研究线性规划中原始问题与对偶问题之间关系的理论。 27 | - 在线性规划早期发展中最重要的发现是对偶问题,即每一个线性规划问题 ( 称为原始问题 ) 有一个与它对应的对偶线性规划问题 ( 称为对偶问题 )。 28 | - 两零和对策可表达成线性规划的原始问题和对偶问题。 29 | - 对偶表示:许多回归的线性模型和分类的线性模型的公式都可以使用对偶表示重写。 30 | - 使用对偶表示形式,核函数可以自然地产生。 31 | - 对偶公式可以完全通过核函数来表示。可以隐式地使用高维特征空间,甚至无限维特征空间。 32 | - 许多线性模型都可以基于 Gram 矩阵实现对偶表示。 33 | 34 | ## S6.2. 构造核 35 | 36 | - 构造合法的核函数的方法 37 | - 选择一个特征空间映射,通过这个映射寻找对应的核函数; 38 | - 直接构造核函数 39 | - 使用简单的核函数作为基本的模块来构造 40 | - 从概率生成式模型开始构造 41 | - 可以基于判别式框架使用生成式模型 42 | - 可以利用生成式模型处理缺失数据 43 | - 基于隐马尔可夫模型处理长度变化的序列 44 | - 可以在判别式的任务中充分利用判别式模型的优势 45 | - Fisher 核 46 | - Sigmoid 核:与神经网络模型有着表面的相似性 47 | - 检验构造出的核函数合法的充分必要条件是 Gram 矩阵在所有的集合下都是半正定的。 48 | - 常用的核函数 49 | - 多项式核 50 | - 高斯核 51 | - 高斯核还可以不局限于欧几里德距离 52 | - 核函数的输入 53 | - 符号 54 | - 实数 55 | 56 | ## S6.3. 径向基函数网络 57 | 58 | - 径向基函数 ( Radial Basis Functions ) 59 | - 在基于固定基函数的线性组合的回归模型中,径向基函数是被广泛使用的基函数。 60 | - 径向基函数中每一个基函数只依赖于样本和中心之间的径向距离。 61 | - 径向基函数的应用 62 | - 精确的函数内插:能够精确拟合每个目标值的函数,但是容易对应过拟合的解 63 | - 输入变量具有噪声时的内插:应用变分法,得到以每个数据点为中心的基函数,这被称为 Nadaraya-Watson 模型。 64 | - 核密度估计在回归问题中的应用 65 | - 选择基函数的方法 66 | - 最简单的方法:使用数据点的一个随机选择的子集 67 | - 更加系统化的方法:正交最小平方法,这是一个顺序选择的过程 68 | - 在每一个步骤中,被选择作为基函数的下一个数据点对应于能够最大程度减小平方和误差的数据点 69 | - 展开系数值的确定是算法的一部分 70 | - Nadaraya-Watson 模型:以核密度的角度来研究核回归模型 ( P116 E3.61 ),也叫核回归 ( kernel regression )。 71 | 72 | ## S6.4. **高斯过程** 73 | 74 | - 高斯过程:是函数 $y ( \mathbf{x} )$ 上的一个概率分布,使得在任意点集处计算的函数的值的集合联合起来服从高斯分布。 75 | - 如果输入变量是二维的情况下,也可以称之为高斯随机场。 76 | - 如果使用一种合理的方式为函数的值的集合赋予一个联合的概率分布,则可以确定函数 $y ( \mathbf{x} )$ 为这种分布的随机过程 77 | - 如果核函数定义为指数核,则函数对应于 Ornstein-Uhlenbeck 过程,用来描述布朗运动。 78 | - 高斯过程的参数 79 | - 均值默认取零 80 | - 协方差由高斯核函数来确定 81 | - 核函数的唯一的限制是协方差矩阵必须是正定的 82 | - 两个随机的独立的高斯分布,它们的协方差可以直接相加 83 | - 高斯过程应用于线性回归问题 84 | - 在高斯过程回归中,广泛使用的核函数的形式为指数项的二次型 + 常数 + 线性项 ( P216 E6.63 ) 85 | - 预测分布也是高斯分布 86 | - 与基于基函数的线性回归问题对比 87 | - 如果基函数的数量比数据点的数量小,那么使用基函数框架的计算效率会更高; 88 | - 面对无穷多的基函数表达的协方差函数,使用高斯过程才能处理。 89 | - 超参数的学习基于计算似然函数来完成 90 | - 通过最大化似然函数的方法进行超参数的点估计 91 | - 可以使用高效的基于梯度的优化算法 ( 例如:共轭梯度法 ) 来最大化似然函数 92 | - 自动相关性的确定 ( Automatic Relevance Detemination, ARD ) 93 | - 通过最大似然方法进行的参数最优化,能够将不同输入的相对重要性从数据中推断出来,这是高斯过程中的自动相关性确定。 94 | - ARD 框架很容易整合到「指数—二次核」中。 95 | - 高斯过程应用于分类模型 96 | - 分类问题 97 | - 二分类问题,使用 Logistic Sigmoid 函数 98 | - 多分类问题,使用 Softmax 函数 99 | - 通过使用一个合适的非线性激活函数,可以将高斯过程的输出进行变换 100 | - 预测分布无法得到解析解,获得高斯近似的方法 101 | - 变分推断 ( Variational Inference ) ( S10.5. ) 102 | - 期望传播 ( Expectation Propagation ) ( S10.7. ) 103 | - Laplace 近似 ( S4.4. 和 S4.5. ) 104 | - 基于 Newton-Raphson 的迭代重加权最小平方 ( IRLS ) 算法 ( S4.3. ) 105 | - 与神经网络的关系 ( _看不懂_ ) 106 | - 在贝叶斯神经网络中,基于无穷多基函数的核函数网络产生的函数分布会趋于高斯过程,但是输出变量也会相互独立 107 | - 神经网络的优势之一是输出之间共享隐含单元,从而可以互相「借统计优势」,这个性质在极限状态下的高斯过程中丢失了。 108 | 109 | ## S06. 小结 110 | 111 | 这章是引入核方法和高斯过程,为下一章的稀疏核机 ( 即 SVM ) 提供理论铺垫。理解核方法的引入,可以更自然地理解支持向量机的原理。理解高斯过程,可以更好地推导相关向量机。 112 | -------------------------------------------------------------------------------- /Pattern-Recognition/PRML/Ch07.md: -------------------------------------------------------------------------------- 1 | # C07. 稀疏核机 2 | 3 | ## S07. 前言 4 | 5 | - 重点 6 | - 支持向量机 ( Support Vector Machine, SVM ) 7 | - 相关向量机 ( Relevance Vector Machine, RVM ) 8 | - 难点 9 | - 用于分类的 SVM 10 | - 用于回归的 RVM 11 | - 学习基础 12 | - 最优化理论 13 | - 二次规划 14 | - 对偶表示 15 | - Lagrange 函数 16 | - 松弛变量 17 | - SVM ( 支持向量机 ) 18 | - 支持向量 19 | - 边缘 20 | - Laplace 逼近 21 | - 高斯过程 22 | - 迭代重加权最小平方 ( IRLS ) 23 | - 学习要点 24 | - SVM 是稀疏核算法,属于决策类算法,不提供后验概率,对新数据的预测只需要依赖于训练数据点上的一个子集上计算的核函数。 25 | - RVM 也是稀疏核算法,是基于贝叶斯方法的,能够提供后验概率输出的,具有比 SVM 更加稀疏的解的算法。 26 | 27 | ## S7.1. 最大边缘分类器 28 | 29 | - 支持向量机中采用最大边缘解的理论基础 30 | - 计算学习理论 ( Computational Learning Theory ) 31 | - 统计学习理论 ( Statistical Learning Theory ) 32 | - 边缘 ( Margin ) :定义为决策边界与任意样本之间的最小距离,决策边界与最近的数据点之间的垂直距离。 33 | - 决策边界被行为使边缘最大化的那个决策边界。 34 | - 最优超平面是有着最大边缘的超平面 35 | - 随着方差的减小,距离超平面较近的点对超平面的控制能力逐渐大于距离较远的点 36 | - 在极限情况下,超平面会变得与非支持向量的数据点无关 37 | - SVM 稀疏性的来源:边缘上的点被限制为激活;非边缘上的点限制为未激活。 38 | - SVM 中重叠数据的分类问题 39 | - 面对不能线性可分的数据进行精确划分会导致较差的泛化能力 40 | - 允许部分训练数据点被误分类,从而提高泛化能力 41 | - 位于正确的边缘边界内部的点或者边缘界上的点 42 | - 位于正确的边缘边界外部的点 43 | - 位于决策边界上的点 44 | - 被错误分类的点 45 | - 放宽边缘的硬限制,得到一个软边缘 ( Soft Margin ) 46 | - 训练 SVM 的方法 47 | - 限制条件定义一个凸区域,任意局部最优解也是全局最优解 48 | - 分块方法:将完全的二次规划问题分解为一系列小的二次规划问题 49 | - 顺序最小化优化 ( Sequential Minimal Optimization ) 50 | - 与 Logistic 回归的关系 51 | - 对于线性不可分的概率分布,用最小化正则化的误差函数可以重新表示 SVM。 52 | - 采用以下误差函数用来对误分类误差函数的连续近似 53 | - 铰链误差函数 54 | - Logistic Sigmoid 误差函数 55 | - 平方和误差函数 56 | - 多类 SVM 57 | - 构建 K 个独立的 SVM,其中第 k 个模型在训练时,使用来自类别 $C_k$ 的数据作为正例,使用剩余的 $K-1$ 个类别的数据作为负例。这被称为「1 对剩余」( one-versus-the-rest ) 方法。是应用最广泛的方法。 58 | - 不同的分类器在不同的任务上训练,无法保证不同分类器产生的实数值具有恰当的尺度。 59 | - 训练集合不平衡。 60 | - 在所有可能的类别对之间训练 $\frac{K ( K-1 ) }{2}$ 个不同的二分类 SVM,然后将测试数据点分到具有最高「投票数」的类别中去。这被称为「1 对 1」( one-versus-one ) 61 | - 会导致最终分类的歧义性 62 | - 对于较大的 K,需要比「1 对剩余」消耗更多的时间 63 | - 将每对分类器组织成有向无环图,即 DAGSVM。 64 | - 误差—修正编码,对「1 对 1」方法的推广。 65 | - 对于错误以及各个分类品质输出的歧义性具有鲁棒性 66 | - 单一类别的 SVM 67 | - 解决与概率密度估计相关的无监督学习问题。 68 | - 不是用来对数据的概率密度建模 69 | - 只是想找到一个光滑的边界将高密度的区域包围出来 70 | - 解决方案 71 | - 将训练数据中的固定比例的数据从原始数据集中分离,同时最大化超平面与原点之间的距离 ( 边缘 ) 72 | - 寻找特征空间中包含数据集的比例数据的最小球体。 73 | - 回归问题的 SVM 74 | - 在简单的线性回归模型中,最小化一个正则化的误差函数 75 | - 为了得到稀疏解,二次误差函数被替换为 $\epsilon$—不敏感的函数 ( $\epsilon$-insensitive error function ),即固定不敏感区域 $\epsilon$ 的宽度 76 | - 固定位于管道数据点的比例 $\nu$ 77 | - 计算学习理论,也叫统计学习理论 78 | - 概率近似正确 ( Probably Approximately Correct, PAC ) 学习框架 79 | - 目标是数据集的大小与泛化能力之间的关系 80 | - 提供满足准则所需要的最小数据集规模的界限 81 | - VC 维度:函数空间复杂度的度量,使得 PAC 框架可以扩展到包含无穷多个函数的空间 82 | - 在 PAC 框架中推导出的界限为最低标准,严重高估了得到给定泛化能力所需要的数据集的规模。 83 | - 提升 PAC 界限的紧致程度的方法是 PAC-Bayesian 框架,考虑了空间 F 上的函数的概率分布情况。 84 | 85 | ## S7.2. 相关向量机 86 | 87 | 相关向量机 ( Relevance Vector Machine, RVM ) 是一个用于回归问题和分类问题的贝叶斯稀疏核方法,会有更加稀疏的模型,在测试集上的计算速度更快,保留了可比的泛化误差。 88 | 89 | - **回归问题的 RVM** 90 | - 回归问题的 RVM 基于的是线性模型 ( S03 ),因为先验概率不同,从而产生了稀疏解。 91 | - RVM 对于每个权参数 $w_i$ 都引入一个单独的超参数 $\alpha_i$,而不是共享的超参数 92 | - 对于超参数 $\boldsymbol{\alpha}$ 和 $\beta$ 的确定可以使用第二类最大似然法 ( 也叫证据近似 )。 93 | - 令要求解的边缘似然函数的导数等于零,得到超参数的重估计方程; 94 | - 使用 EM 算法,迭代求解超参数的值。 95 | - 当算法关于这些超参数最大化模型证据时,大部分都趋于无穷,对应的权参数的后验概率分布就集中在零附近。于是与这些参数相关联的基函数就不再对模型的预测产生作用,等价于被剪枝,从而产生了一个稀疏的模型。 96 | - 超参数不为零对应的输入变量 $x_n$ 就是相关向量,因为它们是通过自动相关性检测 ( Automatic Relevance Determination, ARD ) 的方法得到的。 97 | - 通过自动相关性检测得到的概率模型的稀疏性的方法是可以应用于任何表示成基函数的可调节线性组合形式的模型上。 98 | - 对于带有以数据点为中心的基函数的 RVM 进行数据以外的区域外插时,模型会对预测变得起来越确定 ( 即过拟合 )。 99 | - 可以使用高斯过程回归的预测分布来解决,但是计算代价过高。 100 | - RVM vs SVM 101 | - RVM:模型更加简洁,处理测试数据的速度加快,稀疏性的增大也没有减小泛化误差。( P244 F7.9 ) 102 | - RVM:训练过程涉及到优化一个非凸函数,训练时间也更长。 103 | - 通过对 RVM 的稀疏性分析得到一个更快的最优化超参数的方法 104 | - ( 通过学习算法进一步了解稀疏性的原理,看不懂也不影响 ) 105 | - 分类问题的 RVM:将权值的自动相关性确定 ( P220 S6.4.4. ) 先验应用到概率线性分类模型 ( P147 S4.3 ) 106 | - 二分类问题:在 RVM 中,模型使用的是 ARD 先验,使用 Laplac 近似后验概率。 107 | - 初始化超参数向量 $\boldsymbol{\alpha}$; 108 | - 基于给定的超参数,对后验概率建立一个高斯近似,从而得到了对边缘似然的一个近似 109 | - 近似后的边缘似然函数的最大化 ( 迭代重加权最小平方,IRLS ),又引出了对超参数的重新估计 110 | - 持续这个过程直到收敛。 111 | - 多分类问题 112 | - 使用 Softmax 函数对 K 个线性模型进行组合 113 | - 使用 Laplace 近似用来最优化超参数 114 | - 模型和 Hessian 矩阵可以使用 IRLS 算法得到,训练代价相对较大 115 | - RVM vs SVM 116 | - RVM 的相关向量倾向于不在决策边界区域内,与 SVM 刚好相反。( P248 F7.12 ) 117 | - RVM 做出了概率形式的预测 118 | - RVM 相对于 SVM 训练时间相对较长 119 | - RVM 避免了通过交叉验证确定模型复杂度的过程,从而补偿了训练时间的劣势 120 | - RVM 产生的模型更加稀疏,对于测试点进行预测的计算时间更短 121 | 122 | ## S07. 小结 123 | 124 | 作者的重点不在描述 SVM,而是描述基于贝叶斯框架和 SVM 模型得到的 RVM,因此作者对于 SVM 的介绍细节较少,如果想先理解 SVM 建议参考 [^周志华,2018],有了 SVM 的基础后再理解 RVM 的思想及优缺点会更加容易。 125 | -------------------------------------------------------------------------------- /Pattern-Recognition/PRML/Ch09.md: -------------------------------------------------------------------------------- 1 | # C09. 混合模型的 EM 算法 2 | 3 | ## S09. 前言 4 | 5 | * 重点 6 | * 用于混合高斯模型的 EM 算法 7 | * 难点 8 | * EM 算法的不同视角 9 | * 学习基础 10 | * $K$ 均值聚类 11 | * EM 算法 12 | * 混合高斯模型(S2.3.) 13 | * 学习要点 14 | * 两类隐变量模型 15 | * 离散的隐变量模型应用于表示混合概率分布 16 | * 连续的隐变量模型的应用在(C12)介绍 17 | * 混合模型与 EM 算法的关系 18 | * 混合模型可以应用于构建复杂的概率分布,还可以应用于数据聚类 19 | * 数据聚类不利用概率的解决方案:K 均值算法 20 | * 数据聚类利用概率的解决方案:混合概率模型,即使用隐变量表示混合概率分布的模型。 21 | * 离散的隐变量表示数据点分配到混合概率分布的具体成分中 22 | * 模型寻找最大似然估计的一个一般方法:期望最大化(EM)算法 23 | * EM 算法在混合概率模型的实际应用 24 | * 采用非形式化的方式介绍 EM 算法在高斯混合分布中的应用 25 | * 基于隐变量的角度来形式化分析 EM 算法的应用 26 | * 给出一个一般形式的 EM 算法 27 | 28 | ## S9.1. $K$ 均值聚类 29 | 30 | * $K$ 均值聚类与 EM 算法之间的联系 31 | * 数据集是由 $D$ 维欧氏空间中的随机变量 $x$ 的 $N$ 次观测组成 32 | * 目标是将数据集划分为 $K$ 个类别。 33 | * 聚类内部点之间的距离小于数据点与聚类外部点之间的距离。 34 | * 二值指示变量 $r_{nk}\in\{0,1\}$ 35 | * 失真度量 $J=\overset{N}{\underset{n=1}{\sum}}\overset{K}{\underset{k=1}{\sum}}r_{nk}\Vert\mathbf{x}_n-\boldsymbol{\nu}_k\Vert^2$ 36 | * 算法过程 37 | 1. 初始化阶段:设置 $\boldsymbol{\nu}_k$ 的初值 38 | 2. 第一阶段:关于 $r_{nk}$ 最小化 $J$,保持 $\boldsymbol{\nu}_k$ 固定。(相当于 EM 算法中的期望 E 步骤) 39 | 3. 第二阶段:保持 $r_{nk}$ 固定,关于 $\boldsymbol{\nu}_k$ 最小化 $J$ 。(相当于 EM 算法中的最大化 M 步骤) 40 | * $K$ 均值算法的推广:K 中心点算法 41 | * 引入更加一般的不相似程度的度量 $\mathcal{V}(\mathbf{x},\mathbf{x}')$ 42 | * 最小化下面的失真度量 $\tilde{J}=\overset{N}{\underset{n=1}{\sum}}\overset{K}{\underset{k=1}{\sum}}r_{nk}\mathcal{V}(\mathbf{x}_n,\boldsymbol{\nu}_k)$ 43 | * $K$ 均值聚类应用于图像分割 44 | * $K$ 均值聚类应用于图像压缩 45 | * 主要是应用于有损数据压缩中 46 | 47 | ## S9.2. 混合高斯 48 | 49 | * 混合高斯模型(S2.3.9.)是高斯分量的简单线性叠加,目标是提供一类比单独的高斯分布描述能力更强的概率模型 50 | * 使用离散隐变量来描述混合高斯模型 $p(\mathbf{x}\vert\mathbf{z})=\overset{K}{\underset{k=1}{\prod}}\mathcal{N}(\mathbf{x}\vert\boldsymbol{\nu}_k,\boldsymbol{\Sigma}_k)^{z_k}$ 51 | * $z_k$ 是隐变量,用来描述第 k 个高斯分量是否对描述模型有用 52 | * $\gamma(z_k)$ 是分量 k 对于 “解释” 观测值 x 的 “责任”(responsibility) 53 | * 最大化混合高斯模型的对数似然函数 54 | * 存在的问题 55 | * 最大化混合高斯模型的对数似然函数不是一个具有良好定义的问题,当某个高斯分量 “退化” 到一个具体的数据点时,对数似然函数就会走向于无穷大而无法求得解析解,这是奇异性问题。 56 | * 对于参数值空间中任意给定的点,都会有 $K!-1$ 个其他的点与之对应,即它们会得出完全相同的概率分布,这是可区分 (identifiability) 问题 57 | * 解决的办法 58 | * 基于梯度的优化方法(S5.4.) 59 | * EM 算法 60 | * **用于混合高斯模型的 EM 算法**(推导算法公式,了解算法思想) 61 | * 期望最大化(Expectation-Maximization,EM)算法:是寻找带有隐变量模型的最大似然解的方法。 62 | * 公式中的 $z_{nk}$ 表示 $\mathbf{x}_n$ 数据点对描述第 $k$ 个概率分量的贡献;或者第 $k$ 个概率分量对解释 $\mathbf{x}_n$ 数据点的贡献。 63 | * EM 算法的过程 64 | 1. 初始化均值、协方差、混合系数; 65 | 2. 在期望 (E) 步骤,使用参数的当前值计算公式给出的后验概率(也被称为 “责任”) 66 | 3. 在最大化 (M) 步骤,利用计算出的概率重新估计均值、协方差和混合系数。 67 | 4. 当对数似然函数的变化量或者参数的变化量低于某个阈值时,算法收敛。 68 | * EM 算法的形式化分析及其他应用 69 | * EM 算法估计模型的 MAP(最大后验概率)解 70 | * EM 算法估计数据集随机缺失的问题的解 71 | * 数据集随机缺失的混合高斯模型 72 | * EM 算法与 $K$ 均值的联系 73 | * $K$ 均值算法对数据点的聚类进行了 “硬” 分配,即每个数据点只属于唯一的聚类; 74 | * $K$ 均值算法没有估计聚类的协方差,只是估计了聚类的均值。 75 | * 带有广义的协方差矩阵的硬分配版本的混合高斯模型叫做椭圆 $K$ 均值算法 76 | * EM 算法对数据点的聚类进行了 “软” 分配,即基于后验概率分布来确定数据点最应该分在哪个聚类中。 77 | * 在极限的情况下,最大化完整数据对数似然函数的期望等价于最小化公式给出的 $K$ 均值的失真度量 $J$ 78 | * 用于混合 Bernoulli 分布模型的 EM 算法 79 | 80 | (推导公式,理解 EM 算法的构建过程) 81 | * 由 Bernoulli 分布描述的离散二值变量的混合,也叫隐类别分析。是考虑离散变量上的 Markov 模型的基础。 82 | * 与混合高斯模型不同的是不存在似然函数趋于无穷大的奇异性 83 | * 混合 Bernoulli 分布模型可以推广到 $M>2$ 个状态的离散变量多项式分布的情况。 84 | * 用于贝叶斯线性回归的 EM 算法 85 | * 贝叶斯线性回归的证据近似问题(S3.5.2.) 86 | 1. 初始化参数 $\alpha$ 和 $\beta$ 87 | 2. E 步骤,计算 $\text{w}$ 的后验概率分布,找到完整数据对数似然函数的期望; 88 | 3. M 步骤,关于参数 $\alpha$ 和 $\beta$ 最大化期望,从而重新估计参数 $\alpha$ 和 $\beta$。 89 | 90 | ## S9.4. **EM 算法的通用形式** 91 | 92 | (先推导公式,再依赖具体案例深入理解 EM 算法,后面有广泛的应用。这节看懂了,才代表真正理解 EM 算法了) 93 | 94 | * EM 算法可以看成参数空间中的运算 (P312 F9.14) 95 | 1. 选择某个初始的参数值 96 | 2. E 步骤中,基于固定的参数值,计算隐变量上的后验概率分布,得到了更小的下界 97 | 3. M 步骤,下界被最大化,得到新的参数值 98 | * EM 算法的扩展 99 | * 广义 EM 算法 (Generalized EM Algorithm): 100 | * 改变 E 步骤中完全的最优化为局部最优化 101 | * 解决 M 步骤中无法计算的问题 102 | * 在 M 步骤中使用非线性优化策略(例如:共轭梯度算法) 103 | * 期望条件最大化算法 (Expectation Conditional Maximization Algorithm,ECM):在每个 M 步骤中进行若干具有限制条件的最优化。 104 | * 增量形式的 EM 算法,收敛速度更快 105 | 106 | ## S09. 小结 107 | 108 | 混合模型是模型推导的模型基础,EM 算法是模型计算的算法基础。 109 | 110 | -------------------------------------------------------------------------------- /Pattern-Recognition/PRML/Ch10.md: -------------------------------------------------------------------------------- 1 | # C10. 近似推断 2 | 3 | 因为隐变量的数量可能有指数多个,精确计算的代价过高,因此需要借助近似方法。 4 | 5 | * 常用的近似方法 6 | * 随机近似:Markov Monte Carlo 方法(C11)给定无限的计算资源,可以生成精确的结果,但是在实际应用中多处理小规模数据的问题。 7 | * 确定近似:基于对后验概率分布的解析近似,无法生成精确的结果,可以应用于大规模数据的问题。 8 | * 假设后验概率分布可以基于一种特定的方式分解 9 | * Laplace 近似:基于对概率分布的峰值的局部高斯近似 10 | * 变分推断(也叫变分贝叶斯),使用了更加全局的准则 11 | * 期望传播(变分的框架) 12 | * 假设后验概率分布可以有一个具体的参数形式 13 | * 高斯分布 14 | 15 | ## S10. 前言 16 | 17 | * 重点 18 | * **变分在一元高斯分布中的应用** 19 | * **变分在混合高斯模型中的应用** 20 | * 变分在线性回归模型中的应用 21 | * 局部变分在 Logistic 回归中的应用 22 | * 难点 23 | * 变分推断 24 | * 指数族分布 25 | * 期望传播 26 | * 学习基础 27 | * 泛函分析之变分法 28 | * 信息论中的 KL 散度 29 | * 概率分布的共轭分布 30 | * 混合高斯模型 31 | * 线性回归模型 32 | * Logistic 回归模型 33 | * 学习要点 34 | 35 | ## S10.1. 变分推断 36 | 37 | * 变分推断 38 | 变时,泛函的值的变化情况。(附录 D) 39 | * 限制需要最优化算法搜索的函数的范围 40 | * 限制近似概率分布的范围的方法 41 | * 使用参数概率分布来近似,利用非线性最优化方法确定参数的最优值。 42 | * 假设近似的概率分布可以进行分解(在物理学中的一个近似框架,叫做平均场理论) 43 | * 恰当地初始化所有的因子 44 | * 在各个因子上进行循环,每一轮用一个修正后的估计来替换当前的因子 45 | * 算法保证收敛,因为下界关于每个因子是一个凸函数 46 | * 在概率推断的应用中,限制条件的形式概率分布是可以分解的函数 47 | * 限制条件的唯一目的就是为了计算方便 48 | * 在满足计算方便的条件下,应该尽可能使用丰富的近似概率分布 49 | * 即使选择高度灵活的概率分布也不会有 “过拟合” 现象,只是会更好地近似真实的后验概率分布。 50 | * 近似概率分布可分解模型的性质 51 | * 各个因子的解是相互偶合的 52 | * 将变分解看成重估计议程,然后在变量之间循环更新这些解,直到满足某个收敛准则。 53 | * 最小化相反的 KL 散度 KL$(p \Vert q)$ 是期望传播近似推断框架中的目标。 54 | * 注意两种 KL 散度的区别 (P320 F10.3.) 55 | * **变分在一元高斯分布中的应用**(用于理解变分推断的例子,实际情况上基本不会使用) 56 | * 模型比较(了解即可) 57 | 58 | ## S10.2. **变分在混合高斯模型中的应用** 59 | 60 | * 基本过程 61 | * 混合高斯模型的似然函数 62 | * 引入参数上的先验概率分布 63 | * 为每个参数引入共轭先验分布 64 | * 变分后验概率分布的最优化涉及到两个阶段之间进行循环,这两个阶段类似于最大似然 EM 算法的 E 步骤和 M 步骤。 65 | * 隐变量与参数之间的区别 66 | * 在概率图的方框内部的变量被看作隐变量,因为这类变量的数量随着数据集规模的增大而增大 67 | * 在概率图的方框外部的变量被看作参数,因为这类变量的数量与数据集的规模无关 68 | * 从图模型的观点来看,它们之间没有本质的区别 69 | * 贝叶斯方法与最大似然方法的区别 70 | * 随着数据量趋向于无穷时,贝叶斯方法就收敛于最大似然方法的 EM 解。 71 | * 混合高斯模型的变分算法的主要的计算代价来自于 “责任” 的计算,以及加权数据协方差矩阵的计算与求逆。 72 | * 最大似然方法中遇到的高斯分量 “退化” 产生的奇异性,在贝叶斯方法中不存在 73 | * 混合高斯模型中数量 K 选得较大时,在贝叶斯方法中不会出现过拟合问题 74 | * 在确定 K 的最优数量时不需要借助于交叉验证技术 75 | * 贝叶斯方法自动在模型复杂度和数据拟合之间进行平衡 76 | * 通过自动相关性确定的方式将贡献比较小的分量的混合系数趋于零,即分量的稀疏性(S7.2.) 77 | * 变分的下界:方便确定模型的下界,有利于检测模型学习是否收敛 78 | * 变分的下界还提供了推导变分重估计方程的方法 79 | * 对于新的观测变量可以得到它的预测概率密度 80 | * 诱导分解 (induced factorizations):在变分后验分布中假定的分解方式与真实联合概率分布的条件独立性质之间的相互作用产生了诱导分解。 81 | 82 | ## S10.3. 变分在线性回归模型中的应用 83 | 84 | * 变分应用的过程 85 | * 构建变分分布 86 | * 构建预测分布 87 | * 确定变分下界 88 | 89 | ## S10.4. 指数族分布 90 | 91 | * 构建变分分布 92 | * 推导计算过程 93 | * 变分信息传递 94 | * 通过对贝叶斯方法应用于混合高斯模型的推导,得到一些更加普适性的结果 95 | * 变分推断的过程可以转化为局部信息传递算法 96 | 97 | ## S10.5. 局部变分方法 98 | 99 | * 全局变分方法(S10.1. 和 S10.2.):直接寻找所有随机变量上的完整的后验概率分布的近似 100 | * 局部变分方法:寻找模型中的单独的变量或者变量组上定义的函数的界限,从而简化最终得到的概率分布。这个局部近似可以应用于多个变量,直到最终得到一个可以处理的近似。 101 | * 局部变分在 Logistic 回归中的应用 102 | 103 | ## S10. 小结 104 | 105 | -------------------------------------------------------------------------------- /Pattern-Recognition/PRML/pandoc_PRML.bat: -------------------------------------------------------------------------------- 1 | REM pandoc PRML/preface.md PRML/C_01.md PRML/C_02.md PRML/C_03.md -o tmp/PRML_tmp.pdf --log=tmp/PRML_tmp.log --template=template/zYxTom.tex --pdf-engine=xelatex -V CJKmainfont="Microsoft YaHei" -V mainfont="Arial Unicode MS" -V monofont="Cambria Math" 2 | REM pandoc PRML/C_03.md -o tmp/PRML_tmp.tex --log=tmp/PRML_tmp.log --template=template/zYxTom.tex --pdf-engine=xelatex -V CJKmainfont="Microsoft YaHei" -V mainfont="Arial Unicode MS" -V monofont="Cambria Math" --reference-location="document" 3 | 4 | REM pandoc -d prml/prml-tex.yaml 5 | pandoc --defaults=prml/prml-pdf.yaml 6 | 7 | 8 | 9 | REM 增加了结束前的提醒声音 10 | ECHO ** 11 | REM Code tmp/PRML_tmp.tex 12 | sumatrapdf prml/prml-notes.pdf -------------------------------------------------------------------------------- /Pattern-Recognition/PRML/preface.md: -------------------------------------------------------------------------------- 1 | # 全书总评 2 | 3 | ## 书本印刷质量 : 4 星 4 | 5 | PDF 打印,非影印版,字迹清楚,图片清晰。 6 | 7 | - 英文版 8 | - 排版更利于阅读,请到这里 [2006 年版](https://www.microsoft.com/en-us/research/people/cmbishop/) 下载 9 | - 文中错误需要修正文件,否则会影响理解。 10 | 11 | - 中文版 12 | - 排版有点紧凑,错误较少,但是中文版的数学符号不如英文版的规范 13 | - 译者已经将英文版中的错误进行了修订。但是,译文本身也存在少量错误,建议与英文版结合起来阅读。 14 | 15 | ## 著作编写质量 : 4 星 16 | 17 | 模式识别与机器学习的进阶。 18 | 19 | - 全书内容自洽,数学方面不算太深,具备大学工科数学功底 ( 微积分、线性代数、概率统计 ) 就可以阅读,如果想深入理解还需要补充随机过程、泛函分析、最优化、信息论等,如果还想更深一层还可以补充决策论、测度论、流形几何等理论;再深俺就完全不知道了。 20 | - 作者以讲清楚 Bayesian 方法的来龙去脉为根本目的,所以全书紧紧围绕在 Bayesian 同志的周围,尽可能以 Bayesian 思想来分析各种模式识别与机器学习中的常用算法,对于已经零散地学习了许多种算法的同学大有裨益。 21 | - 全局的结构是点到面的风格,以一个二项式拟合的例子一点点铺开,节奏稍慢但是前后连贯,知识容易迁移理解; 22 | 23 | ## 著作翻译质量 : 4 星 24 | 25 | 马春鹏免费将自己的翻译稿贡献出来,翻译的质量值得肯定,用词符合专业认知,只是译文的流畅性稍感不足 ( 纯属个人感受 )。 26 | 27 | - 符号的使用不如原文规范。例如:原文都以加粗的罗马字母表示向量,而译文只是以加粗默认的数字字母表示向量,而在印刷中默认的数学字母加粗和未加粗的区别不明显,容易混淆。精读一段时间后,觉得译者提供的符号系统在自己手写公式的时候比较方便,对于印刷的符号系统依然推荐原作者的风格。 28 | 29 | ## 读书建议 30 | 31 | 前四章是重点,建议先从 1~2 读一遍,再从 1~4 读一遍,对前四章心中有数再看后面的章节会方便很多。 32 | 33 | 需要手写公式,推不动看不懂不害怕,因为理论推导的细节都被作者跳过了。如果想深入了解,只能去找相关文献。但是如果有了前 4 章的基础,又有很好的机器学习的背景知识,用贝叶斯视角读完全书的可能性还是有的。 34 | 35 | 需要把公式推导中用到前面的公式的部分抄过来,反复推导前面的公式才能流畅地看后面的内容。 36 | 37 | 笔记目的:记录重点,方便回忆。 38 | 39 | # 重要的数学符号与公式 40 | 41 | 建议将下面列出的重要的数学符号与公式找张纸列在上面,方便在后面看到时可以查询。 42 | 43 | ## 重要的数学符号 44 | 45 | - $\mathbf{x}= ( x_1,x_2,\dots,x_D )^T$:表示$D$维向量 46 | - $\mathbf{X}=[\mathbf{x}_1,\mathbf{x}_,\dots,\mathbf{x}_N]^T$:表示 N 个 D 维向量组成的矩阵 47 | - $\mathbf{M}$:表示矩阵;$( w_1,\cdots,w_M )$:表示一个行向量有 $M$ 个元素;**w**= ( $w_1,\cdots,w_M )^T$ 表示对应的列向量。 48 | - $\mathbf{I}_M$:表示 $M \times M$ 单位阵。 49 | - $x$:表示元素;$y ( x )$:表示函数;$f [y]$:表示泛函。 50 | - $g ( x ) =O ( f ( x ))$:表示复杂度。 51 | - $\mathbb{E}_x [f ( x,y )]$:随机变量$x$对于函数$f ( x,y )$的期望,符号可以简化为$\mathbb{E}[x]$ 52 | - $\mathbb{E}_x [f ( x ) |z]$:随机变量$x$基于变量$z$的条件期望。 53 | - $\text{var} [ f ( x )]$:随机变量$x$的方差 54 | - $\text{cov}[\mathbf{x},\mathbf{y}]$:协方差,$cov[\mathbb{x}]$是$cov[\mathbb{x},\mathbb{x}]$的缩写 55 | 56 | ## 重要的数学公式 57 | 58 | ( 括号内的是公式的编号 ) 59 | 60 | - 概率论 61 | - 期望: ( 1.33 ) ( 1.34 ) 62 | - 期望估计: ( 1.35 ) 63 | - 条件期望: ( 1.36 ) ( 1.37 ) 64 | - 方差: ( 1.38 ) ( 1.39 ) ( 1.40 ) 65 | - 协方差: ( 1.41 ) ( 1.42 ) 66 | - 高斯分布: ( 1.46 ) ( 1.52 ) ( 2.42 ) ( 2.43 ) 67 | - 信息论 68 | - 熵: ( 1.98 ) 69 | - 微分熵: ( 1.103 ) 70 | - 条件熵: ( 1.111 ) 71 | - 联合熵: ( 1.112 ) 72 | - 相对熵,KL 散度: ( 1.113 ) 73 | - 互信息: ( 1.120 ) ( 1.121 ) 74 | - 概率分布 75 | - Bernoulli 分布: ( 2.2 ) 76 | - 二项分布: ( 2.9 ) 77 | - Beta 分布: ( 2.13 ) 78 | - 多项式分布: ( 2.34 ) 79 | - Dirichlet 分布: ( 2.38 ) 80 | - Gamma 分布: ( 2.146 ) 81 | - Gamma 函数 ( 1.141 ) 82 | - 学生 t 分布: ( 2.158 ) 83 | - 混合高斯分布: ( 2.188 ) ( 2.193 ) 84 | - 指数族分布: ( 2.194 ) 85 | - softmax 函数: ( 2.213 ) 86 | - 共轭先验: ( 2.229 ),( 2.230 ) 87 | - 回归的线性模型 88 | - 线性基函数模型: ( 3.1 ) ( 3.2 ) ( 3.3 ) 89 | - 高斯基函数: ( 3.4 ) 90 | - sigmoid 基函数: ( 3.5 ) 91 | - logistic sigmoid 基函数: ( 3.6 ) 92 | - 平方损失函数: ( 1.90 ) ( 3.37 ) 93 | - 平方和误差函数: ( 3.12 ) ( 3.26 ) 94 | - 正则化最小平方: ( 3.24 ) ( 3.27 ) 95 | - 设计矩阵: ( 3.16 ) 96 | - 顺序学习: ( 3.22 ) ( 3.23 ) 97 | - 预测分布: ( 3.57 ) 98 | - 分类的线性模型 99 | - 推广的线性模型: ( 4.3 ) 100 | - 神经网络 101 | - 整体的网络函数: ( 5.9 ) 102 | 103 | ## 书中符号说明 104 | 105 | - ( P xx ) , 代表第 xx 页; 106 | - ( Ch xx ) , 代表第 xx 章; 107 | - ( Sec xx ) , 代表第 xx 节; 108 | - ( Eq xx ) , 代表第 xx 公式; 109 | - ( Fig xx ) , 代表第 xx 图 110 | -------------------------------------------------------------------------------- /Pattern-Recognition/PRML/prml-notes.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/Pattern-Recognition/PRML/prml-notes.pdf -------------------------------------------------------------------------------- /Pattern-Recognition/PRML/prml-pdf.yaml: -------------------------------------------------------------------------------- 1 | from: markdown+footnotes 2 | # reader: may be used instead of from: 3 | to: pdf 4 | # writer: may be used instead of to: 5 | 6 | # leave blank for output to stdout: 7 | output-file: prml/prml-notes.pdf 8 | # leave blank for input from stdin, use [] for no input: 9 | input-files: 10 | # - prml/preface.md 11 | # - prml/C_01.md 12 | # - prml/C_02.md 13 | # - prml/C_03.md 14 | # - prml/C_04.md 15 | - prml/C_05.md 16 | # - ML/reference.md 17 | # or you may use input-file: with a single value 18 | 19 | template: template/zYxTom.tex 20 | standalone: true 21 | 22 | # note that structured variables may be specified: 23 | variables: 24 | author: zYx.Tom 25 | toc-title: "目录" 26 | CJKmainfont: "Microsoft YaHei" 27 | mainfont: "Arial Unicode MS" 28 | mathfont: "Cambria Math" 29 | 30 | 31 | # metadata values specified here are parsed as literal 32 | # string text, not markdown: 33 | metadata-file: prml/prml.yaml 34 | # or you may use metadata-file: with a single value 35 | 36 | # ERROR, WARNING, or INFO 37 | verbosity: WARNING 38 | log-file: tmp/log.json 39 | 40 | pdf-engine: xelatex 41 | 42 | # auto, preserve, or none 43 | wrap: auto 44 | columns: 78 45 | dpi: 72 46 | 47 | extract-media: mediadir 48 | 49 | # toc: may also be used instead of table-of-contents: 50 | # table-of-contents: true 51 | toc: true 52 | toc-depth: 3 53 | 54 | shift-heading-level-by: 0 55 | section-divs: true 56 | identifier-prefix: foo 57 | title-prefix: "" 58 | strip-empty-paragraphs: true 59 | strip-comments: false 60 | indented-code-classes: [] 61 | ascii: true 62 | default-image-extension: ".jpg" 63 | 64 | # either a style name of a style definition file: 65 | highlight-style: pygments 66 | # or you may use syntax-definition: with a single value 67 | listings: false 68 | 69 | # reference-doc: myref.docx 70 | # 在输出 docx 或者 ODT 文件时,定义文件作为样式参考。 71 | 72 | # `--email-obfuscation=none`\|`javascript`\|`references` 73 | email-obfuscation: references 74 | 75 | tab-stop: 4 76 | preserve-tabs: false 77 | 78 | incremental: false 79 | slide-level: 2 80 | 81 | reference-links: true 82 | # block, section, or document(默认) 83 | reference-location: document 84 | atx-headers: true 85 | 86 | # accept, reject, or all 87 | track-changes: accept 88 | 89 | html-q-tags: false 90 | css: 91 | - site.css 92 | 93 | # none, all, or best 94 | ipynb-output: best 95 | 96 | # A list of two-element lists 97 | request-headers: 98 | - ["User-Agent", "Mozilla/5.0"] 99 | 100 | fail-if-warnings: false 101 | dump-args: false 102 | ignore-args: false 103 | trace: false -------------------------------------------------------------------------------- /Pattern-Recognition/PRML/prml.yaml: -------------------------------------------------------------------------------- 1 | title: 《模式识别与机器学习》读书笔记 2 | subject: PRML 3 | keywords: Pattern Recognition, Machine Learning, 模式识别,机器学习 4 | date: 2020-05-03 -------------------------------------------------------------------------------- /Pattern-Recognition/Pattern-Classification-Duda/Ch02.md: -------------------------------------------------------------------------------- 1 | # C02. Bayes 决策论 2 | 3 | ## 2.1 引言 4 | 5 | Bayes 决策论是对折衷的量化,这个折衷源于使用概率进行不同分类决策与这种决策伴随的相应的代价。 6 | 7 | - 决策问题可以用概率的形式来描述 8 | - 假设所有有关的概率结构均为已知 9 | 10 | Bayes 公式 11 | 12 | - 先验概率:$P (\omega_j)$ 13 | - 似然函数:$p(x|\omega_j)$,也叫条件密度函数 14 | - 假设特征值 $x$ 已知的条件下类别属于 $\omega_j$ 的概率,称之为 $\omega_j$ 关于 $x$ 的似然函数 15 | - 表明在其他条件相等的情况下,使得 $p(x|\omega_j)$ 较大的 $\omega_j$ 更有可能是真实的类别 16 | - 证据因子:$p(x)$ 17 | - 仅仅是一个标量因子,用于将后验概率归一化 18 | - 后验概率:$P (\omega_j|x)=\frac{p(x|\omega_j)P(\omega_j)}{p(x)}$ 19 | - Bayes 公式:$\text{后验}=\frac{\text{似然函数}\times\text{先验}}{证据}$ 20 | 21 | 判别条件 22 | 23 | - 最小化误差概率条件下的 Bayes 决策规则 24 | - 如果 $P(\omega_1|x)>P(\omega_2|x)$,则判别为 $\omega_1$;否则判别为 $\omega_2$ 25 | - 如果 $p(x|\omega_1)P(\omega_1)>p(x|omega_2)P(\omega_2)$,则判别为 $\omega_1$;否则判别为 $\omega_2$ 26 | - $P(\text{误差}|x)=min[P(\omega_1|x),P(\omega_2|x)]$ 27 | 28 | ## 2.2 Bayes 决策论——连续特征 29 | 30 | 前提条件 31 | 32 | - 多特征分类:特征向量 $\text{x}\in\mathbb{R}^d$ 33 | - 多类别分类:令 {$\omega_1,\cdots,\omega_c$} 表示有限的 $c$ 个类别的集合 34 | - 多行为分类:令{$\alpha_1,\cdots,\alpha_a$} 表示有限的 $a$ 种可以采取的行为的集合 35 | - 损失函数:也叫风险函数 $\lambda(\alpha_i|\omega_j)$ 描述类别状态为 $\omega_j$ 时采取行动 $\alpha_i$ 的风险 36 | - $p(\text{x}|\omega_j)$ 表示 $\text{x}$ 的状态条件概率密度函数——在真实类别为 $\omega_j$ 的条件下 $\text{x}$ 的概率密度函数 37 | - $P(\omega_j)$ 表示类别处理状态 $\omega_j$ 时的先验概率 38 | - $P(\omega_j|\text{x})=\frac{p(\text{x}|\omega_j)P(\omega_j)}{p(\text{x})}$ 表示后验概率 39 | - $p(\text{x})=\sum_{j=1}^c p(\text{x}|\omega_j)P(\omega_j)$ 表示证据因子 40 | - $\lambda(\alpha_i|\omega_j)$ 表示当观测某个特定模式 $\text{x}$ 并且将采取行为 $\alpha_i$ 时,如果真实的类别状态为 $\omega_j$ 发生的损失 41 | 42 | 推导过程 43 | 44 | - $R(\alpha_i|\text{x})=\sum_{j=1}^c \lambda(\alpha_i|\omega_j)P(\omega_j|\text{x})$ 表示实际类别状态为 $\omega_j$ 时的概率 与 行为 $\alpha_i$ 相关联的损失,即条件风险函数 45 | - 一个预期的损失被称为一次风险 46 | - $R=\int R(\alpha(\text{x})|\text{x})p(\text{x})\text{dx}$ 表示总风险 47 | - Bayes 决策过程提供了一个总风险的优化过程 48 | - 总风险是与某一给定的判决规则相关的预期损失 49 | - 对所有的 $i=1,\cdots,a$ 计算条件风险,并且选择行为 $\alpha_i$ 使风险函数最小化,则最小化总风险 50 | - 最小化后的总风险值称为 Bayes 风险,记为 $R^*$ 51 | 52 | 实际案例:二分类问题 53 | 54 | - $\lambda_{ij}=\lambda(\alpha_i|\omega_j)$ 定义为实际类别为 $\omega_j$ 时误判为 $\omega_i$ 所引起的损失 55 | - 条件风险 56 | 57 | $$ 58 | \begin{aligned} 59 | R(\omega_1|\text{x})&=\lambda_{11} P(\omega_1|\text{x})+\lambda_{12} P(\omega_2|\text{x})\\ 60 | R(\omega_2|\text{x})&=\lambda_{21} P(\omega_1|\text{x})+\lambda_{22} P(\omega_2|\text{x}) 61 | \end{aligned} 62 | $$ 63 | 64 | - 判别规则:为真判为 $\omega_1$;否则判为 $\omega_2$ 65 | - $\frac{p(\text{x}|\omega_1)}{p(\text{x}|\omega_2)}$ 表示「似然比」,如果似然比超过某个不依赖于观测值 $\text{x}$ 的阈值,判为 $\omega_1$;否则判为 $\omega_2$ 66 | 67 | $$ 68 | \begin{aligned} 69 | (\lambda_{21}-\lambda_{11})P(\omega_1|\text{x})&>(\lambda_{12}-\lambda_{22})P(\omega_2|\text{x})\\ 70 | (\lambda_{21}-\lambda_{11})p(\text{x}|\omega_1)P(\omega_1)&>(\lambda_{12}-\lambda_{22})p(\text{x}|\omega_2) P(\omega_2)\\ 71 | \frac{p(\text{x}|\omega_1)}{p(\text{x}|\omega_2)}&>\frac{\lambda_{12}-\lambda_{22}}{\lambda_{21}-\lambda_{11}} \frac{P(\omega_2)}{P(\omega_1)} 72 | \end{aligned} 73 | $$ 74 | 75 | ## 2.3 最小误差率分类 76 | 77 | -------------------------------------------------------------------------------- /Pattern-Recognition/Pattern-Classification-Duda/Ch03.md: -------------------------------------------------------------------------------- 1 | # C03. 最大似然估计 和 Bayes 参数估计 2 | 3 | ## 3.1 引言 4 | 5 | 在 [Ch03](Ch03.md) 中,假定概率密度函数的参数形式已知,使用训练样本来估计概率密度函数的参数值 6 | 7 | 在 [Ch05](ch05.md) 中,假定判别函数的参数形式已知,使用训练样本来估计判别函数的参数值 8 | 9 | -------------------------------------------------------------------------------- /Pattern-Recognition/Pattern-Classification-Duda/Ch09.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Pattern-Recognition/Pattern-Recognition-Sergios/Ch01.md: -------------------------------------------------------------------------------- 1 | # C01. 导论 2 | 3 | ## 1.1 模式识别的重要性 4 | 5 | 模式识别的目的是将对象进行分类。这些对象与应用领域相关,可以是图像、信号波形或者任何可以测量并且需要分类的对象。在多数据机器智能系统中,模式识别是用于决策的主要部分。 6 | 7 | - 机器视觉系统通过照相机捕捉图像,通过分析生成图像的描述信息,其应用领域 8 | - 字符(字母或者数字)识别 9 | - 计算机辅助诊断 10 | - 语音识别 11 | 12 | ## 1.2 特征、特征向量和分类器 13 | 14 | - 用来分类的测量方法——均值和标准偏差称为特征值 15 | - 每个特征向量表示一个样本(对象) 16 | - 因为来源于不同样本的测量值是随机的数据,因此特征和特征向量被看作是随机变量和随机向量 17 | - 用于决策分类器将特征空间划分为不同的类空间的直线称为决策线 18 | - 分类作为中的基本问题 19 | - 特征提取 20 | - 特征选择 21 | - 分类器的设计 22 | - 分类器的性能评估 23 | 24 | ## 1.3 有监督和无监督模式识别 25 | 26 | - 有监督模式识别:有一个可用的训练数据集,通过挖掘先验信息来设计分类器 27 | - 无监督模式识别:没有已知类别标签的训练数据可用,只能在给定的一组特征向量中提示潜在的相似性,并且将相似的特征向量分为一类,也叫聚类 28 | - 聚类算法可以用来完成对多维特征向量的分组 29 | - 聚类的关键是确定两个特征向量之间的「相似度」以及合适的测度 -------------------------------------------------------------------------------- /Pattern-Recognition/Pattern-Recognition-Sergios/Ch02.md: -------------------------------------------------------------------------------- 1 | # C02. 基于 Bayes 决策理论的分类器 2 | 3 | ## 2.1 引言 4 | 5 | 设计分类器将未知类型的样本分类到最可能的类别中。 6 | 7 | 前提条件 8 | 9 | - $M$ 个类别 {$\omega_1,\cdots,\omega_M$} 10 | - 用特征向量 $\text{x}$ 表示的未知样本 11 | 12 | 计算结果 13 | 14 | - 生成 $M$ 个条件概率 $P(\omega_i|\text{x}),i=1,\cdots,M$,也称为后验概率,也就是对于特征向量 $\text{x}$ 每一项都代表未知样本属于某一特定类 $\omega_i$ 的概率 15 | 16 | ## 2.2 Bayes 决策理论 17 | 18 | 二分类问题 19 | 20 | - 前提条件 21 | - 样本类别 $\omega_1,\omega_2$ 22 | - $N$ 是训练样本的总数 23 | - $N_1$ 是类别属于 $\omega_1$ 的训练样本的数目 24 | - $N_2$ 是类别属于 $\omega_2$ 的训练样本的数目 25 | - 先验概率 $P(\omega_1),P(\omega_2)$ 26 | - $P(\omega_1)\sim N_1/N$ 27 | - $P(\omega_2)\sim N_2/N$ 28 | - 概率密度函数 $p(\text{x}|\omega_i)$ 是相对于 $\text{x}$ 的 $\omega_i$ 的似然函数 29 | - 隐含的假设:特征向量可以是 $l$ 维空间中的任何值,即特征向量可以取任何离散值,密度函数 $p(\text{x}|\omega_i)$ 就变成了概率,可以表示为 $P(\text{x}|\omega_i)$ 30 | - Bayes 规则 31 | - $P(\omega_i|\text{x})=\frac{p(\text{x}|\omega_i)P(\omega_i)}{p(\text{x})}$ 32 | - $p(\text{x})=\sum_{i=1}^2 p(\text{x}|\omega_i)P(\omega_i)$ 33 | - Bayes 分类规则 34 | - 如果 $P(\omega_1|\text{x})>P(\omega_2|\text{x})$,则 $\text{x}$ 属于 $\omega_1$ 35 | - 如果 $P(\omega_1|\text{x}) 41 | - 基于「损失」最小化平均风险 42 | - 惩罚系数 $\lambda_{ki}$ 表示属于 $\omega_k$ 的特征向量被错误分到 $\omega_i$ 所产生的损失 43 | - 由惩罚系数组成的矩阵 $L$ 称为损失矩阵 44 | - 与 $\omega_k$ 相关的风险或者损失定义为 $r_k=\sum_{i=1}^M \lambda_{ki}\int_{R_i} p(\text{x}|\omega_k)\text{dx}$ 45 | - 平均风险 $r=\sum_{k=1}^M r_k P(\omega_k)=\sum_{i=1}^M \int_{R_i} \biggl(\sum_{k=1}^M \lambda_{ki} p(\text{x}|\omega_k)P(\omega_K)\biggl)\text{dx}$ 46 | - 选择合适的 $R_i$ 使得 $r$ 最小,必须使每个部分都最小 47 | - 分区选择 $\text{x}\R_i, l_i\equiv\sum_{k=1}^M \lambda_{ki}p(\text{x}|\omega_k)P(\omega_k) 49 | - 最小化平均风险就等价于最小化分类错误率 -------------------------------------------------------------------------------- /Pattern-Recognition/Pattern-Recognition-Sergios/Ch03.md: -------------------------------------------------------------------------------- 1 | # C03. 线性分类器 2 | 3 | ## 3.1 引言 4 | 5 | 线性分类器的设计,其优点是简单和可计算性 6 | 7 | ## 3.2 线性判别函数和决策超平面 8 | 9 | 二分类问题 10 | 11 | - 线性判别函数 $g(\text{x})=\text{w}^T\text{x}+w_0=0$ 12 | - $\text{w}=(w_1,\cdots,w_l)^T$ 是权向量 13 | - 权向量 $\text{w}$ 与决策超平面正交 14 | - $0=\text{w}^T\text{x}_1+w_0=\text{w}^T\text{x}_2+w_0\Rightarrow\text{w}^T(\text{x}_1-\text{x}_2)=0$ 15 | - $w_0$ 是阈值 16 | - 样本 $\text{x}$ 到超平面的距离 $z=\frac{|g(\text{x})|}{\sqrt{w_1^2+w_2^2}}$ 17 | - 原点 $(0,0)$ 到超平面的距离 $d=\frac{w_0}{\sqrt{w_1^2+w_2^2}}$ 18 | 19 | ## 3.3 感知器算法 20 | 21 | 感知器的代价函数 $J(\text{w})=\sum_{\text{x}\in Y}(\delta_\text{x}\text{w}^T\text{x})$ 22 | 23 | - $Y$ 被错误分类的训练向量集,是整个训练向量的子集,是权向量 $\text{w}$ 定义的超平面错误分类的部分 24 | - $\delta_\text{x}$ 是变量 25 | - 当 $\text{x}$ 属于 $\omega_1$ 时,$\delta_\text{x}=-1$ 26 | - 当 $\text{x}$ 属于 $\omega_2$ 时,$\delta_\text{x}=+1$ 27 | - 利用梯度下降方法计算出代价函数的最小迭代值 $\text{w}(t+1)=\text{w}(t)-\rho_t\frac{\partial J(\text{w} )}{\partial\text{w}}|_{\text{w}=\text{w}_t}$ 28 | - $\rho_t$ 是迭代的步长 29 | 30 | 注:本节的数学推导更容易理解,概念说明推荐[^Hagan,2006][Ch04](../Hagan.NND/Ch04.md) -------------------------------------------------------------------------------- /Pattern-Recognition/Statistical-Pattern-Recognition-Andrew/Ch02.md: -------------------------------------------------------------------------------- 1 | # C02. 密度估计——参数法 2 | 3 | ## 2.4 Bayes 估计{#Sec2.4} -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # StudyNotes-CN 2 | 3 | 使用 Markdown 文件记录的学习笔记 4 | 5 | ## 更新日志 6 | 7 | - FCG,第一章结束 8 | - SLM,第四章结束 9 | - SLM,附录 C 结束 10 | - SLM,第六章结束 11 | - SLM,初稿 12 | - MLW,第三章结束 13 | - MLW,第一章结束 14 | - PRML 第四章结束 15 | - PRML 第三章结束 16 | - PRML 第二章结束 17 | - PRML 第一章结束 18 | 19 | ## 目录列表 20 | 21 | - exercises:习题集 22 | - examples: 样例集 23 | - IMDB: 24 | - media : Markdown 文件 相关的 图片 25 | - ComputerGraphics:计算机图形学 26 | - FCG:Fundamentals_of_ComputerGraphics:《计算机图形学》第二版 27 | - Deep-Learning 28 | - Deep-Learning-Flower : Ian Goodfellow, 深度学习,人民邮电出版社 29 | - Dive into Deep Learning : Aston Zhang & Mu Li, etc. 动手学深度学习,人民邮电出版社 30 | - Neural-Network-Design-Hagan : Martin T. Hagan, 神经网络设计 , 机械工业出版社 31 | - Pattern-Recognition:模式识别 32 | - Pattern-Classification-Duda : Richard O. Duda, 模式分类 ( 第二版 ) , 机械工业出版社 33 | - Pattern-Recognition-Sergios : Sergios Theodoridis, 模式识别 ( 第二版 ) , 电子工业出版社 34 | - PRML : Christopher M. Bishop, 模式识别与机器学习 , Pattern Recognization & Machine Learning 35 | - Statistical-Pattern-Recognition-Andrew : Andrew R. Webb, 统计模式识别 ( 第二版 ) , 电子工业出版社 36 | - Machine-Learning : 机器学习 37 | - Machine-Learning-Watermelon : 周志华,机器学习 西瓜书 , Machine Learning Watermelon 38 | - Machine-Learning-Mitchell : Tom M. Mitchell, 机器学习 , 机械工业出版社 39 | - Statistical-Learning-Methods : 李航 , 统计学习方法 , Statistical Learning Methods 40 | - NLP : 自然语言处理 总结 41 | - Introduction-to-CNLP : Kam-Fai Wong, 中文自然语言处理导论, Introduction to Chinese Natural Language Processing 42 | - NNM-for-NLP : Yoav Goldberg, 基于深度学习的自然语言处理 43 | - SLP : Daniel Jurafsky , 自然语言处理综论 , Speech & Language Processing 44 | - SNLP : 宗成庆 , 统计自然语言处理 , Statistical Natural Language Processing 45 | - template : pandoc 转换使用的模板 46 | - tmp : 临时文件 47 | - Tools : 需要用到的工具软件 48 | - Translate : 翻译文档 49 | - Pandoc-User-Guide-中文版 : Pandoc 用户使用帮助文档的翻译 50 | 51 | 常用的工具软件 52 | 53 | - Typora:用于编辑 Markdown 文件,可以有 所见即所得 的效果,特别是对数学公式。 54 | - VSCode:用于编辑各种文件,友好的界面,强大的控制,丰富的插件,可以整合文档的编写过程。 55 | - pandoc:用于将 Markdown 文件转换成需要的文本格式,例如:PDF、PPTX、DOCX 等等。 56 | -------------------------------------------------------------------------------- /Tools/Git/CI&CD/GitLab&Jenkins概述.md: -------------------------------------------------------------------------------- 1 | ****# 持续集成与持续交付与持续发布 2 | 3 | ## 开发流程简介 4 | 5 | 开发工作流程:编码→构建→集成→测试→交付→部署 6 | 7 | ![workflow](image/GitLab&Jenkins概述/1679655212645.png) 8 | 9 | ### 持续集成 10 | 11 | 持续集成(Continuous Integration)开发者在编码过程中,频繁地将代码合并到服务器仓库中的Develop分支,然后系统自动构建、测试,并且根据测试结果,确定新代码能否与原代码正确的集成。 12 | 13 | 优点: 14 | 15 | * 快速发现错误。每完成一个功能或者修复一个Bug,就集成到Develop分支,从而快速发现错误、修改问题; 16 | * 防止功能开发分支与Develop分支产生巨大分歧,从而到后期集成难度过大 17 | 18 | 目的:让产品可以快速迭代,同时保持高质量。核心措施是代码集成到主分支前,必须通过自动化测试,只要存在错误的测试用例就不能集成 ,从而尽早发现问题。 19 | 20 | ### 持续交付 21 | 22 | 持续交付(Continuous Delivery)是在持续集成的基础上,将集成后的代码部署到更加贴近真实运行环境(类生产环境中),从而保证软件不受更新影响,随时可以交付。 23 | 24 | ![Continuous Delivery](image/GitLab&Jenkins概述/1679655247835.png) 25 | 26 | ### 持续部署 27 | 28 | 持续部署(Continuous Deployment):代码通过评审之后,部署到生产环境,从而保证代码在任何时刻都是可以部署的,满足生产阶段的需要。 29 | 30 | ![Continuous Deployment](image/GitLab&Jenkins概述/1679655294474.png) 31 | 32 | ## DevOps环境 33 | 34 | CI/CD提供了完整的DevOps环境,对整个开发团队能够提升开发效率,从而频繁部署、快速交付以及开发与测试的完全自动化。 35 | 36 | ### 工作流程 37 | 38 | * 提交:工作人员向代码仓库提交代码 39 | * 测试(第一轮):代码仓库中的 `Commit`操作配置钩子(Hook),当提交代码或者合并请求时,激活自动化测试 40 | * 单元测试:针对每个函数的功能进行测试 41 | * 集成测试:针对整个产品的功能进行测试 42 | * 端到端测试:从用户界面直达数据库的全链路测试 43 | * 构建:将通过第一轮测试的代码合并到Develop分支后,交付给相关的测试或者运维部门 44 | * 构建工具:Jenkins、Travis、Codeship、Strider 45 | * 测试(第二轮):全面测试,以自动化为主 46 | * 部署:将通过第二轮测试的代码打包成可以部署的版本,发布到生产环境中,并且重新启动应用服务器 47 | * 部署工作:Ansible、Chef、Puppet 48 | * 回滚:当发现问题时,回滚到上个版本 49 | 50 | ## 工具介绍 51 | 52 | ### Jenkins概述 53 | 54 | Jenkins:是基于Java开发的持续集成、交付、部署的基于Web界面的开源软件项目,用于自动化地执行各种任务,包括构建、测试和部署,其正准备是一个持续集成的工具平台或者工具框架,其具体工作依靠安装插件。 55 | 56 | ### GitLab概述 57 | 58 | GitLab:是基于Ruby on Rails 开发的开源软件项目,基于Web界面的用于自托管的Git项目仓库,可以浏览源代码、管理缺陷和注释,管理团队对仓库的访问,易于浏览提交过的版本,并且拥有文件的历史库,还提供了代码片段收集功能,从而实现代码利用,方便日后查找 59 | 60 | ## 项目部署方式 61 | 62 | ### 手动部署 63 | 64 | ![Manual](image/GitLab&Jenkins概述/1679655314780.png) 65 | 66 | ### 自动化部署 67 | 68 | ![auto](image/GitLab&Jenkins概述/1679655346100.png) 69 | 70 | 自动化部署减轻工作量 71 | 72 | ## 持续集成的工作流程 73 | 74 | ![Continuous Integration](image/GitLab&Jenkins概述/1679655364265.png) 75 | 76 | * 开发者提交新版本到GitLab Server 77 | * GitLab触发Jenkins结点执行一次Build 78 | * Jenkins控制若干Slave按时事先设置的脚本进行Build 79 | 80 | [^1]: 钩子程序属于监控机制,监控Git仓库发生事件,从而激活Jenkins自动执行测试脚本 81 | -------------------------------------------------------------------------------- /Tools/Git/CI&CD/image/GitLab&Jenkins概述/1679655212645.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/Tools/Git/CI&CD/image/GitLab&Jenkins概述/1679655212645.png -------------------------------------------------------------------------------- /Tools/Git/CI&CD/image/GitLab&Jenkins概述/1679655247835.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/Tools/Git/CI&CD/image/GitLab&Jenkins概述/1679655247835.png -------------------------------------------------------------------------------- /Tools/Git/CI&CD/image/GitLab&Jenkins概述/1679655294474.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/Tools/Git/CI&CD/image/GitLab&Jenkins概述/1679655294474.png -------------------------------------------------------------------------------- /Tools/Git/CI&CD/image/GitLab&Jenkins概述/1679655314780.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/Tools/Git/CI&CD/image/GitLab&Jenkins概述/1679655314780.png -------------------------------------------------------------------------------- /Tools/Git/CI&CD/image/GitLab&Jenkins概述/1679655346100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/Tools/Git/CI&CD/image/GitLab&Jenkins概述/1679655346100.png -------------------------------------------------------------------------------- /Tools/Git/CI&CD/image/GitLab&Jenkins概述/1679655364265.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/Tools/Git/CI&CD/image/GitLab&Jenkins概述/1679655364265.png -------------------------------------------------------------------------------- /Tools/Git/Github/Github入门/Ch01.md: -------------------------------------------------------------------------------- 1 | # Ch01 概述 2 | 3 | ## Git是什么? 4 | 5 | Git是分布式版本控制系统,用于跟踪文件随时间的变化状态,保证程序员既可以拥有文件的当前状态,还可以拥有项目的完整历史记录 6 | 7 | ## Github是什么? 8 | 9 | Git数据库副本,方便团队合作。 10 | 11 | ## 为什么使用Git? 12 | 13 | * 撤销更改:随时回退到以前提交的时间点 14 | * 包含所有更改的历史记录:了解过去的项目状态,检查项目的先前版本以详细查看当时文件的状态 15 | * 对改动原因进行文档记录:使用提交功能,记录更改原因 16 | * 有信心修改一切:因为存在历史记录,可以放心地尝试各种修改 17 | * 创建历史记录的多种分支:因为存在多种分支,可以放心地尝试各种修改 18 | * 解决冲突的能力:多人并行修改相同文件时,系统可以自动合并,也可以在无法自动合并时展示冲突 19 | * 历史记录的独立分支流:不同的人在不同的分支上开发不同的功能,最后再合并到一起 20 | 21 | ## 为什么使用Github? 22 | 23 | * 文档需求:通过提出问题,记录缺陷或者指定新功能 24 | * 独立分支流的协作:使用分支(Branch)和拉请求(Pull Request,PR),可以进行合作 25 | * 评估工作进展:查看PR列表,查看工作进展 26 | * 看到团队进展:查看提交历史,了解团队进展 27 | 28 | ## 关键概念 29 | 30 | * 提交(Commit):将文件提交到仓库中,将会创建提交 31 | * 提交信息(Commit Message):提交前需要提供信息,描述改动的原因,便于未来查看历史时理解自己更改的原因 32 | * 分支(Branch):就是存放在仓库中独立的系列提交,方便用来实验或者创建新功能 33 | * 主分支(Master Branch):创建新的Git项目,就会创建默认分支,称为主分支。这个分支一旦发布,工作则应完全停止。 34 | * 不要对主分支进行提交! 35 | * 功能分支(Feature Branch):创建新功能,就创建新分支,称为功能分支。 36 | * 我们已经拥有太多功能分支了,让我们集中解决其中一两个,并且完成部署。 37 | * 发布分支(Release Branch):发布新版本就创建新分支 38 | * 必须解决所有发布分支下面的问题 39 | * 合并(Merge):将一个分支完成的全部工作合并到另一个分支 40 | * 通常是将功能分支合并到主分支 41 | * 标签(Tag):特定提交,记录发布的版本 42 | * 标记版本,然后再发布 43 | * 查看(Check Out):找到不同版本的项目历史记录 44 | * 拉请求(Pull Request,PR):请求别人复查(Review)已经完成的工作,并将它合并到主分支 45 | * 还可以用在流程的早期阶段,用于讨论可能的功能 46 | * 提出问题(Issue):提出问题,讨论功能、跟踪缺陷 47 | * 维基(WiKi):轻量级的Web页面创建方式,创建的Web页面之间用简单的链接相联系 48 | * 克隆(Clone):下载项目副本,方便本地工作 49 | * 分叉(Fork):没有改变项目的权限,通过分叉可以为项目贡献 50 | -------------------------------------------------------------------------------- /Tools/Git/Github/Github入门/Ch02.md: -------------------------------------------------------------------------------- 1 | # Ch02 查看 2 | 3 | ## 项目页面介绍 4 | 5 | ## 查看README.md文件 6 | 7 | ## 查看历史提交 8 | 9 | ## 查看拉请求 10 | 11 | ## 查看问题 12 | 13 | ## 查看行为(Activity,Insights) 14 | 15 | ## 查看Github上的图表 16 | 17 | ### 贡献者图表 18 | 19 | ### 提交图 20 | 21 | ### 码频图 22 | 23 | ### 打卡图 24 | 25 | ### 网络图 26 | 27 | ### 成员列表 28 | 29 | ### 交通图 30 | -------------------------------------------------------------------------------- /Tools/Git/Github/Github入门/Ch03.md: -------------------------------------------------------------------------------- 1 | # Ch03 编辑 2 | 3 | ## 通过分叉贡献 4 | 5 | ## 文件处理 6 | 7 | ### 添加文件 8 | 9 | ### 编辑文件 10 | 11 | ### 文件改名或者移动 12 | 13 | ### 创建拉请求 14 | 15 | 将自己的改变提交给项目负责人 16 | 17 | ## 文件夹处理 18 | 19 | Git不关心文件夹,只关心文件。 20 | 21 | ### 创建文件夹 22 | 23 | 如果需要创建一个空文件夹,就在文件夹中创建 `.gitkeep`文件。 24 | 25 | ### 文件夹改名或者移动 26 | 27 | 移动文件位置,类似于修改了文件夹的名称。 28 | 29 | ## Github编辑 30 | 31 | Github上功能有限,如果想使用更加完整的Git功能,参考[第6章](Ch06.md) 32 | -------------------------------------------------------------------------------- /Tools/Git/Github/Github入门/Ch04.md: -------------------------------------------------------------------------------- 1 | # Ch04 协作 2 | 3 | ## 提交分支 4 | 5 | ## 基于分支创建PR 6 | 7 | ## 基于PR请求合并 8 | 9 | * fork仓库,创建PR。 10 | * 不fork仓库,开分支,创建PR。 11 | 12 | ### PR涉及的人 13 | 14 | 使用@提醒关注Bug或者Feature的人 15 | 16 | ### PR需要的审查 17 | 18 | 每个开发人员拥有的PR数目越少越好,目标明确,更好地完成任务 19 | 20 | ### PR产生的评论 21 | 22 | 关注他人的工作,了解项目的全局信息 23 | 24 | ### PR添加表情 25 | 26 | 增加工作乐趣 27 | 28 | ### PR加入贡献 29 | 30 | 增加分支,改变内容,提交PR。 31 | 32 | ### 测试PR的效果 33 | 34 | 克隆PR请求的仓库,检查PR相关的分支,运行自动化测试 35 | 36 | ### 合并PR请求 37 | 38 | 制定PR的合并策略 39 | 40 | ### PR权限管理 41 | 42 | 创建PR的人不应该合并PR。 43 | 44 | ### PR请求通知 45 | 46 | 创建PR者会收到与PR相关的变化通知。 47 | 48 | ## PR操作手册 49 | 50 | * 做每件事都创建PR请求:无论是Bug还是Feature,都在分支上修改,然后创建PR请求,最后将工作合并到主分支。 51 | * 标题具有描述性:标题能够描述你所做的工作 52 | * 花费时间去评论:关注项目,提升质量 53 | * 注意@主要人物:确保所有相关人员了解与他们相关的PR 54 | * 测试每个PR:尽量使用自动化测试 55 | * PR的通过应该遵守流程:制定流程,使过程规范化 56 | 57 | ## 问题(Issue) 58 | 59 | ### 创建问题 60 | 61 | 问题描述,贡献者,指定问题的冲刺时间或者其他期限,建立里程碑(Milestone),提供更全的描述。 62 | 63 | ### 管理问题时间 64 | 65 | 通过里程碑控制解决问题的时间进度。 66 | 67 | ### 管理问题标签 68 | 69 | 定义项目标签,用于定义问题 70 | 71 | ### 评论问题 72 | 73 | * 增加自己的评论 74 | * 回复@自己的问题 75 | * 增加一点乐趣 76 | 77 | ### 引用问题 78 | 79 | 提交问题时使用:`#+问题编号`,则该提交会自动显示在问题的历史记录中。例如:“增加新功能 #1”,`#1`前需要加空格。 80 | 81 | 提交时关闭问题:`close #1`、`fixes #1`、`resolve #1` 则会提交后自动关闭问题。 82 | 83 | ### 问题操作手册 84 | 85 | * 创建“Bug”和“Feature”标签:方便找出相关问题 86 | * 使用日程表管理流程 87 | * 根据能力分配工作:各人自己选择擅长的工作 88 | * 尽量使用标签:定义其他标签,方便管理项目 89 | 90 | ## WiKi 91 | 92 | 当 `README.md`过长以后,可以使用WiKi功能管理项目内容。WiKi是个独立的Git项目,也可以下载到本地进行修改 93 | 94 | ### 添加页面 95 | 96 | 增加新的WiKi页面。 97 | 98 | ### 添加链接 99 | 100 | ## Github页面 101 | 102 | 更加个性化的网站 103 | 104 | ### 创建网站 105 | -------------------------------------------------------------------------------- /Tools/Git/Github/Github入门/Ch05.md: -------------------------------------------------------------------------------- 1 | # Ch05 创建与配置 2 | 3 | ## 创建存储库(Repository) 4 | 5 | ## 添加合作者(Collaborators) 6 | 7 | ## 配置存储库 8 | 9 | * 修改名称 10 | * 设置主分支 11 | * 配置WiKi 12 | 13 | ## 与其他系统的集成 14 | 15 | 当发生特定事件时,允许Gitea向定制软件发送通知,可以跟钉钉集成 16 | 17 | ## 组织管理 18 | 19 | ### 创建组织 20 | 21 | 研发部 22 | 23 | ### 创建团队 24 | 25 | 桌扫项目组 26 | 27 | ### 团队人员管理 28 | 29 | 组织名称→团队名称→团队成员管理 30 | -------------------------------------------------------------------------------- /Tools/Git/Github/Github入门/Ch06.md: -------------------------------------------------------------------------------- 1 | # Ch06 下载 2 | 3 | ## 克隆存储库 4 | 5 | * 创建备份 6 | * 在IDE中编辑 7 | * 离线编辑 8 | * 多个文件编辑 9 | * 执行代码 10 | * 测试代码 11 | -------------------------------------------------------------------------------- /Tools/Git/Github/Github入门/image/Git_PPT/1679448880801.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/Tools/Git/Github/Github入门/image/Git_PPT/1679448880801.png -------------------------------------------------------------------------------- /Tools/Git/Github/Github入门/image/Git_PPT/1679454028824.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/Tools/Git/Github/Github入门/image/Git_PPT/1679454028824.png -------------------------------------------------------------------------------- /Tools/Git/Github/Github入门/image/Git_PPT/1679454221615.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/Tools/Git/Github/Github入门/image/Git_PPT/1679454221615.png -------------------------------------------------------------------------------- /Tools/Git/Github/Github入门/image/Git_PPT/1679454646625.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/Tools/Git/Github/Github入门/image/Git_PPT/1679454646625.png -------------------------------------------------------------------------------- /Tools/Git/Github/Github入门/image/Git_PPT/1679455544764.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/Tools/Git/Github/Github入门/image/Git_PPT/1679455544764.png -------------------------------------------------------------------------------- /Tools/Git/精通Git(Pro Git)/Ch01.md: -------------------------------------------------------------------------------- 1 | # Ch01 Git入门 2 | 3 | * Git是什么? 4 | * Git做什么? 5 | * Git怎么做? 6 | 7 | ## 1.1 版本控制 8 | 9 | 版本控制:是记录文件内容变化用于未来查阅特定版本修订情况的系统。 10 | 11 | ### 本地版本控制系统 12 | 13 | ![本地版本控制图解](https://git-scm.com/book/en/v2/images/local.png) 14 | 15 | ### 集中式版本控制系统 16 | 17 | 集中式版本控制系统(Centralized Version Control Systems,CVCS):CVS、SubVersion、Perforce,单一的集中管理的服务器,保存所有文件的修订版本,协同工作时都通过客户端连接到服务器,提取最新的提交。 18 | 19 | 优点:权限管理、资源同步、协同工作、降低维护成本 20 | 21 | 缺点:资源同步、协同工作 22 | 23 | ![集中化的版本控制图解](https://git-scm.com/book/en/v2/images/centralized.png) 24 | 25 | ### 分布式版本管理系统 26 | 27 | 分布式版本管理系统(Distributed Version Control System,DVCS):Git、Mercurial、Bazaar、Darcs,客户端将服务器的代码仓库完整镜像到本地,包括完整的历史记录。 28 | 29 | 保证任何一个协同工作的服务器发生故障后,都可以用任何一个镜像出来的本地仓库进行恢复。 30 | 31 | 不同的客户端可以与多个不同的服务器进行交互,从而同一个项目可以与不同的小组成员协作,还可以设定不同的协作流程 32 | 33 | ![分布式版本控制图解](https://git-scm.com/book/en/v2/images/distributed.png) 34 | 35 | ## 1.2 Git简史 36 | 37 | Linus Torvalds 设定的系统目标: 38 | 39 | * 速度够快 40 | * 设计简单 41 | * 完全分布式 42 | * 对非线性开发模式的支持 43 | * 管理超大规模项目 44 | 45 | ## 1.3 Git是什么? 46 | 47 | ### 直接记录快照 48 | 49 | 传统的版本控制系统:记录文件差异,称作基于差异的版本控制 50 | 51 | ![存储每个文件与初始版本的差异。](https://git-scm.com/book/en/v2/images/deltas.png) 52 | 53 | Git:对当时的全部文件创建快照,并且保存这个快照的索引 54 | 55 | ![Git 存储项目随时间改变的快照。](https://git-scm.com/book/en/v2/images/snapshots.png) 56 | 57 | ### 本地完成操作 58 | 59 | Git对本地仓库的操作都只在本地完成,保证了处理速度。 60 | 61 | ### 保证项目完整性 62 | 63 | Git中所有数据在存储前都计算校验和,然后引用检验和,从而避免出现绕过Git完成提交。校验和也同样应用在远端服务器上,保证数据传输过程中的正确性。 64 | 65 | ### 仓库只添加数据 66 | 67 | 理论上Git只向仓库中添加数据,而无法从仓库中删除数据。 68 | 69 | ### 项目的三种状态 70 | 71 | * 工作区:对项目的某个版本独立提取出来的内容。 72 | * 暂存区:保存了下次需要提交的文件列表信息 73 | * Git仓库目录:保存项目的元数据和对象数据库的地方 74 | 75 | 基本的Git工作流程: 76 | 77 | 1. 在工作区中修改文件 78 | 2. 将准备提交的先进行暂存,保证只有打算提交的内容才进入暂存区 79 | 3. 将暂存区的内容提交更新,将快照永久性存储到Git目录中。 80 | 81 | ![工作区、暂存区以及 Git 目录。](https://git-scm.com/book/en/v2/images/areas.png) 82 | 83 | Git目录中的文件状态: 84 | 85 | * Git目录中保存着特定版本的文件,属于“已提交”状态 86 | * 文件已经修改,并且保存在暂存区,属于“已暂存”状态 87 | * 文件已经修改,但是没有进入暂存区,属于“已修改”状态 88 | 89 | ## 1.4 命令行 90 | 91 | Git既有命令行模式,也有GUI模式。 92 | 93 | 注:建议学习时多使用命令行模式,因为命令行模式可以保证Git命令的全部覆盖 94 | 95 | ## 1.5 Git安装 96 | 97 | Linux 98 | 99 | ```bash 100 | sudo dnf install git-all # RHEL, CentOS 101 | sudo apt install git-all # Debian, Ubuntu 102 | ``` 103 | 104 | MacOS 与 Windows 直接下载安装包 105 | 106 | 源代码安装 107 | 108 | ```bash 109 | # 安装依赖包 110 | # RHEL, CentOS 111 | sudo dnf install dh-autoreconf curl-devel expat-devel gettext-devel openssl-devel perl-devel zlib-devel 112 | sudo dnf install asciidoc xmlto docbook2X 113 | sudo dnf install getopt 114 | sudo ln -s /usr/bin/db2x_docbook2texi /usr/bin/docbook2x-texi 115 | # Debian, Ubuntu 116 | sudo apt-get install dh-autoreconf libcurl4-gnutls-dev libexpatl-dev gettext libz-dev libssl-dev 117 | sudo apt-get install asciidoc xmlto docbook2x 118 | sudo apt-get install install-info 119 | 120 | # 编译,并且安装 121 | tar -zxf git-2.8.0.tar.gz 122 | cd git-2.8.0 123 | make config 124 | ./configure --prefix=/usr 125 | make all doc info 126 | sudo make install install-doc install-html install-info 127 | git clone https://git.kernel.org/pub/scm/git/git.git 128 | ``` 129 | 130 | ## 1.6 Git配置 131 | 132 | `git config` 配置与Git的外观和行为相关的配置变量。 133 | 134 | `git config --system` 配置与Git相关的系统变量。 135 | 136 | 变量存储的位置: 137 | 138 | * `/etc/gitconfig`:系统上每个用户及他们仓库的通用配置。使用 `git config --system` 访问 139 | * Windows 7:`C:\ProgramData\Git\config` 140 | * `~/.gitconfig`或 `~/.config/git/config`:该用户所属仓库的通用配置。使用 `git config --global` 访问 141 | * `.git/config`:该仓库的配置。使用 `git config --local` 访问 142 | 143 | 小级别覆盖大级别的配置 144 | 145 | `git config --list --show-origin`:查看所有配置 146 | 147 | ### 设置用户信息 148 | 149 | ```shell 150 | git config --global user.name 'zhuyuanxiang' 151 | git config --global user.email '526614962@qq.com' 152 | ``` 153 | 154 | ### 设置文本编辑器 155 | 156 | `git config --global core.editor vim` 157 | 158 | ### 查看配置信息 159 | 160 | ```shell 161 | $ git config --list 162 | user.name=zhuyuanxiang 163 | user.email=526614962@qq.com 164 | color.status=auto 165 | color.branch=auto 166 | color.interactive=auto 167 | color.diff=auto 168 | ``` 169 | 170 | 出现重复变量名,则是由Git从不同文件中读取配置,Git使用读出的最后一个配置。 171 | 172 | 查看单个配置变量:`git config user.name` 173 | 174 | 查看配置来源:`git config --show-origin user.name` 175 | 176 | ## 1.7 Git获取帮助 177 | 178 | Git命令的综合手册(manpage): 179 | 180 | ```shell 181 | git help 182 | git help 183 | man git- 184 | ``` 185 | 186 | 具体的例子: 187 | 188 | ```shell 189 | git help config 190 | ``` 191 | -------------------------------------------------------------------------------- /Tools/Git/精通Git(Pro Git)/Ch01_PPT.md: -------------------------------------------------------------------------------- 1 | --- 2 | marp: true 3 | theme: gitppt 4 | size: 4:3 5 | header: '**CEDU3D**' 6 | footer: 'zYx.Tom' 7 | paginate: true 8 | --- 9 | 13 | 14 | # Pro Git 15 | 16 | ## Git 入门 17 | 18 | --- 19 | 20 | ## 版本控制 21 | 22 | * 本地版本控制系统 23 | * 集中式版本控制系统 24 | * 分布式版本控制系统 25 | 26 | --- 27 | 28 | ## 本地版本控制系统 29 | 32 | ![本地版本控制图解 bg right:85% fit](https://git-scm.com/book/en/v2/images/local.png) 33 | 34 | --- 35 | 36 | ## 集中式版本控制系统 37 | 40 | ![集中化的版本控制图解 bg right:85% fit](https://git-scm.com/book/en/v2/images/centralized.png) 41 | 42 | --- 43 | 44 | ### 集中式版本控制系统(CVCS) 45 | 46 | * 集中式版本控制系统(Centralized Version Control Systems,CVCS) 47 | * CVS、SubVersion、Perforce 48 | * 单一的集中管理的服务器,保存所有文件的修订版本 49 | * 协同工作时都通过客户端连接到服务器,提取最新的提交 50 | * 优点:权限管理、资源同步、协同工作、降低维护成本 51 | * 缺点:资源同步、协同工作 52 | 53 | --- 54 | 55 | ## 分布式版本控制系统 56 | 59 | ![分布式版本控制图解 bg right:85% fit](https://git-scm.com/book/en/v2/images/distributed.png) 60 | 61 | --- 62 | 63 | ### 分布式版本管理系统(DVCS) 64 | 65 | * 分布式版本管理系统(Distributed Version Control System,DVCS) 66 | * Git、Mercurial、Bazaar、Darcs 67 | * 客户端将服务器的代码仓库完整镜像到本地 68 | * 包括完整的历史记录 69 | * 客户端与服务器实现数据同步 70 | * 任何服务器发生故障后,都可以使用本地仓库完成恢复 71 | * 不同客户端可以与不同服务器交互 72 | 73 | --- 74 | 75 | ## Git简史 76 | 77 | * 速度够快 78 | * 设计简单 79 | * 完全分布式 80 | * 对非线性开发模式的支持 81 | * 管理超大规模项目 82 | 83 | --- 84 | 87 | ### 传统|存储与初始版本的差异 88 | 89 | ![存储每个文件与初始版本的差异 bg right:85% fit](https://git-scm.com/book/en/v2/images/deltas.png) 90 | 91 | --- 92 | 95 | 96 | ### 创新|存储项目改变的快照 97 | 98 | ![Git 存储项目随时间改变的快照 bg right:85% fit](https://git-scm.com/book/en/v2/images/snapshots.png) 99 | 100 | --- 101 | 102 | ### 本地完成操作 103 | 104 | * Git只对本地操作执行命令,保证了处理速度 105 | * Git存储前计算校验和,引用校验和,保证了数据完整性 106 | * 本地存储无法绕过Git进行提交 107 | * 网络传输,保证传输文件不发生错误 108 | * Git只向仓库添加数据 109 | * 不执行删除数据 110 | 111 | --- 112 | 113 | ### Git项目状态与工作流程 114 | 115 | 项目的三种状态 116 | 117 | * 工作区:对项目的某个版本独立提取出来的内容。 118 | * 暂存区:保存了下次需要提交的文件列表信息 119 | * Git仓库目录:保存项目的元数据和对象数据库的地方 120 | 121 | Git工作流程 122 | 123 | * 状态为“已经修改”:在工作区中修改文件, 124 | * 状态为“已经暂存”:将工作区中修改文件提交到暂存区, 125 | * 状态为“已经更新”:将暂存区的内容提交仓库目录 126 | 127 | --- 128 | 131 | ### 项目工作流程 132 | 133 | ![工作区、暂存区以及 Git 目录 bg right:85% fit](https://git-scm.com/book/en/v2/images/areas.png) 134 | 135 | --- 136 | 137 | ## 命令行模式 138 | 139 | Git既有命令行模式,也有GUI模式。 140 | 141 | 注:建议学习时多使用命令行模式,因为命令行模式可以保证Git命令的全部覆盖 142 | 143 | --- 144 | 145 | ## Git配置 146 | 147 | * 配置Git变量:`git config` 148 | * `/etc/gitconfig`:系统级配置 149 | * 使用 `git config --system` 访问 150 | * `~/.gitconfig`或 `~/.config/git/config` 151 | * 用户级配置 152 | * 使用 `git config --global` 访问 153 | * `.git/config` 154 | * 仓库级配置 155 | * 使用 `git config --local` 访问 156 | 157 | 158 | 注: 159 | 1. 系统级配置: Windows 7 在 `C:\ProgramData\Git\config` 160 | 2. 小级别覆盖大级别 161 | 162 | --- 163 | 164 | ## 配置参数样例 165 | 166 | * 配置用户信息 167 | * `git config --global user.name 'zhuyuanxiang'` 168 | * `git config --global user.email '526614962@qq.com'` 169 | * 配置文本编辑器 170 | * `git config --global core.editor vim` 171 | * 查看全部配置信息 172 | * `git config --list` 173 | * 可以存在重复配置,使用最后一个配置结果 174 | * 查看单个配置信息 175 | * `git config user.name` 176 | * 查看配置来源 177 | * `git config --show-origin user.name` 178 | --- 179 | 180 | ## 获得帮助 181 | 182 | 命令: 183 | 184 | ```shell 185 | git help 186 | git help 187 | man git- 188 | ``` 189 | 190 | 样例: 191 | 192 | ```shell 193 | git help config 194 | ``` 195 | -------------------------------------------------------------------------------- /examples/README.MD: -------------------------------------------------------------------------------- 1 | # Example List 2 | 3 | ## IMDB 4 | 5 | TensorFlow+Keras深度学习人工智能实践应用, Ch13+Ch14 6 | 7 | 1. 下载数据集 8 | 2. 建立 Token 9 | 3. 建立 Padding 10 | 4. 建立 Embedding Layer 11 | 5. 建立 LSTM 12 | 6. 训练与测试 13 | 7. 预测《美女与野兽》的影评 14 | 15 | -------------------------------------------------------------------------------- /exercises/02-LDA主题模型.md: -------------------------------------------------------------------------------- 1 | ## 1 LDA介绍 2 | 3 | 在LDA模型中,每一篇文档是一些主题的构成的概率分布,而每一个主题又是很多单词构成的一个概率分布。同时,无论是主题构成的概率分布还是单词构成的概率分布也不是一定的,这些分布也服从Dirichlet 先验分布。 4 | 5 | ## 2 原理 6 | 7 | ![](https://ask.qcloudimg.com/http-save/yehe-1479167/d80lh86bew.png?imageView2/2/w/1620) 8 | 9 | -------------------------------------------------------------------------------- /exercises/README.MD: -------------------------------------------------------------------------------- 1 | # 习题集目录列表 2 | 3 | - DL ( Deep Learning ) :深度学习,以《深度学习-花书》为分类标准 4 | - ML ( Machine Learning ) :机器学习,以《机器学习-西瓜书》为分类标准 5 | - NLP ( Natural Language Process ) :自然语言处理,以《自然语言处理综论》为分类标准 6 | -------------------------------------------------------------------------------- /exercises/回归问题.md: -------------------------------------------------------------------------------- 1 | # 回归问题 2 | 3 | ## 线性回归问题 4 | 5 | - 欠定问题:1个数据,无数解 6 | - 正定问题:2个数据,惟一解 7 | - 超定问题:N个数据(N>2),没有解需要增加限定条件 8 | 9 | ### D维数据 10 | 11 | #### 数据 12 | 13 | $$ 14 | \mathbf{y}=f(\mathbf{x})+\epsilon, 15 | \mathbf{x}\in\mathcal{R}^D, 16 | y\in\mathcal{R}, 17 | \epsilon\in\mathcal{N}(0,1) 18 | $$ 19 | 20 | #### 参数估计 21 | 22 | ##### 最小二乘估计 23 | 24 | 模型: 25 | 26 | $\dot{\mathbf{w}}$是相对于$\mathbf{w}$增加了一个维度,增加维度的值是$w_0$。 27 | 28 | $\dot{\mathbf{x}}$是相对于$\mathbf{x}$增加了一个维度,增加维度的默认值为1。 29 | $$ 30 | \begin{align} 31 | f_\mathbf{w}(\mathbf{x}) 32 | = \mathbf{w}^T\mathbf{x}+w_0 33 | = \dot{\mathbf{w}}^T\dot{\mathbf{x}}, 34 | &&\dot{\mathbf{w}}\in\mathcal{R}^{D+1}, 35 | &&\dot{\mathbf{x}}\in\mathcal{R}^{D+1}, 36 | \end{align} 37 | $$ 38 | 代价函数: 39 | $$ 40 | \begin{align} 41 | J(\mathbf{w}) 42 | &=\sum_{n=1}^N[y_n-f_\mathbf{w}(\mathbf{x}_n)]^2\\ 43 | &=(\mathbf{y}-\dot{X}\dot{\mathbf{w}})^T(\mathbf{y}-\dot{X}\dot{\mathbf{w}}) 44 | \end{align} 45 | $$ 46 | 参数估计:对代价函数求导 47 | $$ 48 | \nabla_\dot{\mathbf{w}} J(\dot{\mathbf{w}})= 49 | 2\dot{\mathbf{X}}^T(\dot{\mathbf{X}}\mathbf{w}-\mathbf{y}) 50 | $$ 51 | 52 | 参数解: 53 | $$ 54 | \hat{\dot{\mathbf{w}}}=(\mathbf{X}^T\mathbf{X})^{-1}\mathbf{X}^T\mathbf{y} 55 | $$ 56 | 57 | ##### 正则最小二乘估计 58 | 59 | 代价函数: 60 | $$ 61 | \begin{align} 62 | J(\mathbf{w}) 63 | &=\sum_{n=1}^N[y_n-f_\mathbf{w}(\mathbf{x}_n)]^2 + \frac{\lambda}{2}||\mathbf{w}||^2\\ 64 | &=(\mathbf{y}-\dot{X}\dot{\mathbf{w}})^T(\mathbf{y}-\dot{X}\dot{\mathbf{w}}) 65 | + \frac{\lambda}{2}||\mathbf{w}||^2 66 | \end{align} 67 | $$ 68 | 参数解: 69 | $$ 70 | \hat{\dot{\mathbf{w}}}=(\mathbf{X}^T\mathbf{X} + \lambda\mathbf{I})^{-1} \mathbf{X}^T \mathbf{y} 71 | $$ 72 | 73 | ##### 最大似然估计[^2] 74 | 75 | 模型: 76 | $$ 77 | \begin{align} 78 | p(y|\mathbf{x},\mathbf{w},\beta) 79 | &=\mathcal{N}(y|f_\mathbf{w}(\mathbf{x}),\beta^{-1}) 80 | =(\frac{\beta}{2\pi})^{1/2}\exp[-\frac{\beta}{2}(y-f_\mathbf{w}(\mathbf{x}))]\\ 81 | p(\mathbf{y}|\mathbf{X},\mathbf{w},\beta) 82 | &=\prod_{n=1}^N\mathcal{N}(y_n|f_\mathbf{w}(\mathbf{x}_n),\beta^{-1})\\ 83 | \ln p(\mathbf{y}|\mathbf{X},\mathbf{w},\beta) 84 | &=-\frac{\beta}{2}\sum_{n=1}^N[y_n-f_\mathbf{w}(\mathbf{x}_n)]^2+\frac{N}{2}\ln\beta-\frac{N}{2}\ln(2\pi) 85 | \end{align} 86 | $$ 87 | 88 | 参数估计: 89 | $$ 90 | \begin{align} 91 | \arg\min_{\mathbf{w}} 92 | \nabla_\mathbf{w}\ln p(\mathbf{y}|\mathbf{X},\mathbf{w},\beta) 93 | &=\arg\min_{\mathbf{w}}\nabla_\mathbf{w}(-\frac{\beta}{2}\sum_{n=1}^N[y_n-f_\mathbf{w}(x_n)]^2)\\ 94 | &\propto\arg\min_{\mathbf{w}}\sum_{n=1}^N[y_n-f_\mathbf{w}(x_n)]\nabla_\mathbf{w}f_\mathbf{w}(x_n) 95 | \end{align} 96 | $$ 97 | 98 | ##### 最大后验估计 99 | 100 | 引入多项式系数$\mathbf{w}$的先验分布$p(\mathbf{w}|\alpha)$,其中$\alpha$称为超参数。 101 | $$ 102 | p(\mathbf{w}|\alpha) 103 | =\mathcal{N}(\mathbf{w}|\mathbf{0},\alpha^{-1}\mathbf{I}) 104 | =(\frac{\alpha}{2\pi})^{(\frac{D+1}{2})}\exp(-\frac{\alpha}{2}\mathbf{w}^T\mathbf{w}) 105 | $$ 106 | 107 | $$ 108 | p(\mathbf{w}|\mathbf{X},\mathbf{y},\alpha,\beta) 109 | \propto 110 | p(\mathbf{y}|\mathbf{X},\mathbf{w},\beta)p(\mathbf{w}|\alpha) 111 | $$ 112 | 模型: 113 | $$ 114 | \arg\min_\mathbf{w}\frac{\beta}{2}\sum_{n=1}^N[y_n-f_\mathbf{w}(\mathbf{x}_n)]^2+\frac{\alpha}{2}\mathbf{w}^T\mathbf{w} 115 | $$ 116 | 117 | 其本质与正则最小二乘法相同。 118 | 119 | #### 知识扩展: 120 | 121 | ## 非线性回归问题 122 | 123 | ### 二维数据 124 | 125 | 数据:$y=f(x)+\epsilon, x\in\mathcal{R},y\in\mathcal{R},\epsilon\in\mathcal{N}(0,1)$ 126 | 127 | #### 最小二乘估计 128 | 129 | 模型: 130 | 131 | 代价函数: 132 | 133 | 参数估计: 134 | 135 | #### 最大似然估计 136 | 137 | #### 正则最小二乘估计 138 | 139 | #### 最大后验估计 140 | 141 | 知识扩展: 142 | 143 | ### N维数据 144 | 145 | 数据:$y=f(x)+\epsilon, x\in\mathcal{R},y\in\mathcal{R},\epsilon\in\mathcal{N}(0,1)$ 146 | 147 | #### 最小二乘估计 148 | 149 | 模型: 150 | 151 | 代价函数: 152 | 153 | 参数估计: 154 | 155 | #### 最大似然估计 156 | 157 | #### 正则最小二乘估计 158 | 159 | #### 最大后验估计 160 | 161 | 知识扩展: 162 | 163 | 164 | 165 | # 参考文献 166 | [^1]: 《统计学》 167 | [^2]: 《PRML》 168 | [^3]: 《神经网络与机器学习》 -------------------------------------------------------------------------------- /exercises/线性分类问题.md: -------------------------------------------------------------------------------- 1 | # 线性分类问题 2 | 3 | ## 广义线性模型 4 | 5 | ### 对数几率回归 6 | 7 | #### 对数几率函数 8 | 9 | 对数几率函数是一种“Sigmoid函数”,将$z$值转化为$(0,1]$之间的值: 10 | $$ 11 | \begin{align} 12 | \text{logit}(z) 13 | &=\frac{1}{1+\exp(-z)}\\ 14 | \text{logit}(\mathbf{x}) 15 | &=\frac{1}{1+\exp(-\mathbf{w}^T \mathbf{x})}\\ 16 | \ln\frac{y}{1+y} 17 | &=\mathbf{w}^T \mathbf{x}\\ 18 | \ln\frac{p(y=1|\mathbf{x})}{p(y=0|\mathbf{x})} 19 | &=\mathbf{w}^T \mathbf{x}\\ 20 | p(y=1|\mathbf{x}) 21 | &=\frac{\exp(-\mathbf{w}^T \mathbf{x})}{1+\exp(-\mathbf{w}^T \mathbf{x})}\\ 22 | p(y=0|\mathbf{x}) 23 | &=\frac{1}{1+\exp(-\mathbf{w}^T \mathbf{x})} 24 | \end{align} 25 | $$ 26 | 27 | #### 模型参数估计 28 | 29 | $$ 30 | 31 | $$ 32 | 33 | -------------------------------------------------------------------------------- /exercises/自然语言处理面试问题集.md: -------------------------------------------------------------------------------- 1 | # 自然语言处理面试问题集 2 | 3 | ## 基本概念 4 | 5 | 1. 什么是语言模型? 6 | - 语言模型(Language Model):[^1] P228 7 | 2. 如何描述两个词之间的距离? 8 | 9 | ## 数据准备 10 | 11 | ## 特征抽取 12 | 13 | ### 文本表示模型有哪些? 14 | 15 | #### 词袋模型(Bag-of-words) 16 | 17 | 1. 词袋模型的基本原理? 18 | - 文章由数个代表性的词来表示。 19 | 2. 一元、二元、三元词袋模型的异同点? 20 | 21 | #### TF-IDF(词频-逆文档频率) 22 | 23 | 词频:$TF(i,d)$表示单词i在文档d中出现的频率 24 | 25 | 逆文档频率:$IDF_i=\log(N/n_i+1)$,N表示集合中文档总数,$n_i$表示出现单词i的文档数目。 26 | 27 | #### 主题模型(Topic Model) 28 | 29 | #### 词嵌入模型(Word Embedding) 30 | 31 | 1. Word2Vec:浅层的神经网络模型 32 | - Skip-Gram:根据当前词来预测上下文中各词的生成概率 33 | - CBOW:根据上下文出现的词语来预测当前词的生成概率 34 | 2. ? 35 | 36 | #### 序列到序列模型 37 | 38 | # 参考文献 39 | 40 | [^1]:Francois Chollet, Python深度学习 -------------------------------------------------------------------------------- /exercises/贝叶斯学习.md: -------------------------------------------------------------------------------- 1 | # 贝叶斯学习 2 | 3 | 贝叶斯学习算法的作用: 4 | 5 | 贝叶斯学习算法能够计算显式的假设概率。 6 | 7 | 贝叶斯学习算法可能帮助理解其他学习算法。 8 | 9 | 贝叶斯学习算法的优点: 10 | 11 | - 观察到的每个训练样例可以增量地降低或者升高某个假设的估计概率 12 | - 先验知识可以与观察数据一起决定假设的最终概率 13 | - 允许假设做出不确定性的预测 14 | - 可以由多个假设一起作出预测 15 | - 可以作为一个最优的决定的标准衡量其他机器学习方法 16 | 17 | 贝叶斯学习算法的缺点: 18 | 19 | - 需要概率的初始知识 20 | - 需要比较大的计算代价 21 | 22 | ## 贝叶斯法则 23 | 24 | 最佳假设:在给定数据D和某些初始知识下的最有可能的假设,这些初始知识是假设空间H中不同假设的先验概率。 25 | 26 | 先验概率:$p(h)$表示没有训练数据前假设h拥有的初始概率。 27 | 28 | 后验概率:$p(h|D)$表示拥有训练数据D后h成立的概率,也称为置信度。 29 | 30 | 贝叶斯公式:$p(h|D)=\frac{p(D|h)p(h)}{p(D)}$ 31 | 32 | 最大后验估计: 33 | $$ 34 | \begin{align} 35 | h_{MAP}&\equiv\arg\max_{h\in H}p(h|D)\\ 36 | &=\arg\max_{h\in H}\frac{p(D|h)p(h)}{p(D)}\\ 37 | &=\arg\max_{h\in H}p(D|h)p(h) 38 | \end{align} 39 | $$ 40 | 最大似然估计:假定H中每个假设拥有相同的先验概率$p(h_i)=p(h_j)$。任一学习算法输出的假设预测和训练数据之间的误差平方最小化,其输出等价于最大似然估计。 41 | $$ 42 | h_{ML}=\arg\max_{h\in H} p(D|h) 43 | $$ 44 | 45 | 46 | ## 贝叶斯最优分类器 47 | 48 | ## 朴素贝叶斯分类器 49 | 50 | 前提:在给定目标值时属性值之间相互条件独立。 51 | $$ 52 | y_{MAP}=\arg\max_{y_j\in Y} p(y_j|x_1,x_2,\dots,x_n) 53 | $$ 54 | $p(x_1,x_2,\dots,x_n|y_j)$ 55 | 56 | ## 二维数据 57 | 58 | ### 最大似然估计[^2] 59 | 60 | 模型: 61 | $$ 62 | \begin{align} 63 | p(y|x,\mathbf{w},\beta) 64 | &=\mathcal{N}(y|f_\mathbf{w}(x),\beta^{-1}) 65 | =(\frac{\beta}{2\pi})^{1/2}\exp[-\frac{\beta}{2}(y-f_\mathbf{w}(x))]\\ 66 | p(\mathbf{y}|\mathbf{x},\mathbf{w},\beta) 67 | &=\prod_{n=1}^N\mathcal{N}(y_n|f_\mathbf{w}(x_n),\beta^{-1})\\ 68 | J(\mathbf{w}) =\ln p(\mathbf{y}|\mathbf{x},\mathbf{w},\beta) 69 | &=-\frac{\beta}{2}\sum_{n=1}^N[y_n-f_\mathbf{w}(x_n)]^2+\frac{N}{2}\ln\beta-\frac{N}{2}\ln(2\pi) 70 | \end{align} 71 | $$ 72 | 73 | 参数估计:$\arg\max_\mathbf{w} J(\mathbf{w})$ 74 | $$ 75 | \begin{align} 76 | \nabla_\mathbf{w} \ln p(\mathbf{y}|\mathbf{x},\mathbf{w},\beta) 77 | &=\nabla_\mathbf{w}(-\frac{\beta}{2}\sum_{n=1}^N[y_n-f_\mathbf{w}(x_n)]^2)\\ 78 | &\propto\sum_{n=1}^N[y_n-f_\mathbf{w}(x_n)]\nabla_\mathbf{w}(f_\mathbf{w}(x_n)) 79 | \end{align} 80 | $$ 81 | 其本质与最小二乘法相同。 82 | 83 | ### 最大后验估计 84 | 85 | 引入多项式系数$\mathbf{w}$的先验分布$p(\mathbf{w}|\alpha)$,其中$\alpha$称为超参数。 86 | $$ 87 | p(\mathbf{w}|\alpha) 88 | =\mathcal{N}(\mathbf{w}|\mathbf{0},\alpha^{-1}\mathbf{I}) 89 | =(\frac{\alpha}{2\pi})^{(\frac{D+1}{2})}\exp(-\frac{\alpha}{2}\mathbf{w}^T\mathbf{w}) 90 | $$ 91 | 92 | $$ 93 | p(\mathbf{w}|\mathbf{x},\mathbf{y},\alpha,\beta) 94 | \propto 95 | p(\mathbf{y}|\mathbf{x},\mathbf{w},\beta)p(\mathbf{w}|\alpha) 96 | $$ 97 | 模型: 98 | $$ 99 | \arg\min_\mathbf{w}\frac{\beta}{2}\sum_{n=1}^N[y_n-f_\mathbf{w}(x_n)]^2+\frac{\alpha}{2}\mathbf{w}^T\mathbf{w} 100 | $$ 101 | 102 | 其本质与正则最小二乘法相同。 103 | ## D维数据 104 | 105 | # 参考文献 106 | 107 | [^1]:Tom M. Mitchell,《机器学习》Ch06 108 | 109 | [^2]:周志华,《机器学习》Ch07 110 | 111 | [^3 ]: 李航,《统计学习方法》Ch04 112 | 113 | [^4]:Richard O. Dua, 《模式分类》第二版 Ch03 114 | 115 | 116 | 117 | -------------------------------------------------------------------------------- /gitppt.css: -------------------------------------------------------------------------------- 1 | /* @theme gitppt */ 2 | @import 'gaia'; 3 | 4 | section { 5 | width: 1280px; 6 | height: 960px; 7 | font-size: 25px; 8 | padding: 80px; 9 | } 10 | 11 | h1 { 12 | font-size: 3rem; 13 | } 14 | 15 | h2 { 16 | font-size: 1.5rem; 17 | } -------------------------------------------------------------------------------- /media/v2-a2e753542fc6384ee351cabdbe6dd523_720w.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/media/v2-a2e753542fc6384ee351cabdbe6dd523_720w.jpg -------------------------------------------------------------------------------- /template/reference.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AI-Papers-Translation/StudyNotes-CN/8d659c2ae8096c3bcdaa936623d2fc290277a38a/template/reference.pptx --------------------------------------------------------------------------------