├── sl ├── 1.png ├── 2.png └── 3.png ├── outline.pdf ├── cheatsheet.pdf ├── outline.tex ├── README.md ├── latexmkrc ├── .vscode └── settings.json ├── cheatsheet.tex ├── note.sty ├── .gitignore └── sl.tex /sl/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HowardZorn/StatisticalLearningCheatsheet/HEAD/sl/1.png -------------------------------------------------------------------------------- /sl/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HowardZorn/StatisticalLearningCheatsheet/HEAD/sl/2.png -------------------------------------------------------------------------------- /sl/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HowardZorn/StatisticalLearningCheatsheet/HEAD/sl/3.png -------------------------------------------------------------------------------- /outline.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HowardZorn/StatisticalLearningCheatsheet/HEAD/outline.pdf -------------------------------------------------------------------------------- /cheatsheet.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HowardZorn/StatisticalLearningCheatsheet/HEAD/cheatsheet.pdf -------------------------------------------------------------------------------- /outline.tex: -------------------------------------------------------------------------------- 1 | \documentclass{ctexart} 2 | \usepackage{note} 3 | 4 | \title{统计学习复习大纲} 5 | \author{Fw[a]rd} 6 | 7 | \begin{document} 8 | 9 | \maketitle 10 | 11 | \input{sl.tex} 12 | 13 | \end{document} -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # 中科大课程统计学习(刘东)之半开卷小抄 2 | 3 | 本repo提供了INFO6407P课程的半开卷cheatsheet。开发环境为vscode和XeLaTeX。`cheatsheet.tex`是小抄主体,`outline.tex`是小抄的正常版式文本,供正常查阅,`sl.tex`是两个文件所引用的真实内容,修改小抄的内容在这个文件进行。 4 | 5 | 欢迎在此基础上继续修改,做小抄耗时颇多,能节省复习时间多是一件美事啊(误 6 | 7 | ## 不用vscode开发 8 | 9 | 请用 10 | ``` 11 | latexmk -xelatex -8bit -shell-escape cheatsheet 12 | latexmk -xelatex -8bit -shell-escape outline 13 | ``` 14 | 生成文档 15 | -------------------------------------------------------------------------------- /latexmkrc: -------------------------------------------------------------------------------- 1 | $pdf_mode = 5; 2 | 3 | $xelatex = "xelatex -file-line-error -halt-on-error -interaction=nonstopmode -shell-escape -no-pdf -synctex=1 %O %S"; 4 | $xdvipdfmx = "xdvipdfmx -q -E -o %D %O %S"; 5 | 6 | $bibtex_use = 1.5; 7 | 8 | $clean_ext = "hd loa synctex.gz xdv"; 9 | 10 | $makeindex = "makeindex -s gind.ist %O -o %D %S"; 11 | add_cus_dep('glo', 'gls', 0, 'glo2gls'); 12 | sub glo2gls { 13 | system("makeindex -s gglo.ist -o \"$_[0].gls\" \"$_[0].glo\""); 14 | } 15 | push @generated_exts, "glo", "gls"; 16 | 17 | add_cus_dep('nlo', 'nls', 0, 'nlo2nls'); 18 | sub nlo2nls { 19 | system("makeindex -s nomencl.ist -o \"$_[0].nls\" \"$_[0].nlo\""); 20 | } 21 | push @generated_exts, "nlo", "nls"; 22 | -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "editor.wordWrap": "on", 3 | "latex-workshop.latex.autoBuild.run": "never", 4 | "latex-workshop.latex.magic.args": [ 5 | "-synctex=1", 6 | "-interaction=nonstopmode", 7 | "-file-line-error", 8 | "-shell-escape", 9 | "%DOC%" 10 | ], 11 | "latex-workshop.latex.build.forceRecipeUsage": true, 12 | "latex-workshop.latex.recipes": [ 13 | { 14 | "name": "latexmk -xelatex", 15 | "tools": [ 16 | "latexmk -xelatex" 17 | ] 18 | } 19 | ], 20 | "latex-workshop.latex.tools": [ 21 | { 22 | "name": "latexmk -xelatex", 23 | "command": "latexmk", 24 | "args": [ 25 | "-xelatex", 26 | "-file-line-error", 27 | "-halt-on-error", 28 | "-shell-escape", 29 | "-interaction=nonstopmode", 30 | "-synctex=1", 31 | "-pv-", 32 | "-pvc-", 33 | "-outdir=%OUTDIR%", 34 | "%DOC%" 35 | ], 36 | "env": {} 37 | } 38 | ] 39 | } -------------------------------------------------------------------------------- /cheatsheet.tex: -------------------------------------------------------------------------------- 1 | \documentclass{ctexart} 2 | \usepackage{note} 3 | \usepackage{ctexsize} 4 | \geometry{margin={0.3cm,0.3cm}, landscape} 5 | \usepackage[fontsize=5bp]{fontsize} 6 | \usepackage{multicol} 7 | \setlist{noitemsep,topsep=0pt,parsep=0pt,partopsep=0pt,leftmargin=1.75em,labelindent=0pt,labelsep=0pt} 8 | \ctexset{ 9 | paragraph/beforeskip=0pt, 10 | subparagraph/beforeskip=0pt, 11 | section/beforeskip=0pt, 12 | section/afterskip=0pt, 13 | } 14 | 15 | \renewcommand{\familydefault}{\sfdefault} 16 | 17 | \title{统计学习小抄} 18 | \author{Fw[a]rd} 19 | 20 | %\usepackage{arevtext,arevmath} 21 | 22 | \begin{document} 23 | 24 | \setlength{\columnsep}{0.2cm} 25 | \setlength\columnseprule{.4pt} 26 | 27 | \begin{multicols*}{5} 28 | \sffamily 29 | 30 | \linespread{1.0} 31 | \setlength{\normalbaselineskip}{6bp} 32 | \setlength{\baselineskip}{6bp} 33 | \setlength{\lineskiplimit}{0pt} 34 | \setlength{\lineskip}{0pt} 35 | \setlength{\parindent}{1em} 36 | \setlength{\parskip}{0pt} 37 | \setlength{\abovedisplayskip}{0pt} 38 | \setlength{\belowdisplayskip}{0pt} 39 | \setlength{\abovedisplayshortskip}{0pt} 40 | \setlength{\belowdisplayshortskip}{0pt} 41 | \ziju{-0.09} 42 | 43 | \input{sl.tex} 44 | 45 | \end{multicols*} 46 | \end{document} -------------------------------------------------------------------------------- /note.sty: -------------------------------------------------------------------------------- 1 | % math 2 | \defaultfontfeatures{Mapping=tex-text} % to support TeX conventions like ``---'' 3 | \usepackage{amsmath, amssymb, amsfonts} 4 | \usepackage{bm} % bold math 5 | \usepackage{xspace} 6 | \usepackage{extarrows} 7 | \usepackage{multirow} % tabular 8 | \usepackage{nicefrac} % 分数更好看 9 | \usepackage{xunicode} % Unicode support for LaTeX character names (accents, European chars, etc) 10 | \usepackage{booktabs} % professional-quality tables 11 | \usepackage{xltxtra} % Extra customizations for XeLaTeX\usepackage{geometry} % See geometry.pdf to learn the layout options. There are lots. 12 | \usepackage[margin={1in,1.25in}]{geometry} % See geometry.pdf to learn the layout options. There are lots. 13 | \geometry{a4paper} % or letterpaper (US) or a5paper or.... 14 | %\usepackage[parfill]{parskip} % Activate to begin paragraphs with an empty line rather than an indent 15 | \usepackage{graphicx} % to support the \includegraphics command and options 16 | \usepackage{hyperref} % to support the \href command 17 | \usepackage{minted} % to support the code showing 18 | \usepackage{enumitem} % enumerate 19 | \usepackage{capt-of} % to support the \captionof command 20 | % support caption commands 21 | \usepackage{caption} 22 | \usepackage{subcaption} 23 | % bibliography 24 | \usepackage[numbers,super,square]{natbib} 25 | \bibliographystyle{unsrtnat} 26 | 27 | % ploting 28 | \usepackage{tikz} 29 | 30 | % 中文句号改为句点 31 | \catcode`\。=\active 32 | \newcommand{。}{\ifmmode\text{.}\else .\fi} 33 | % 中文强调用着重号,总之不用楷体…… 34 | \usepackage{xeCJKfntef} 35 | \renewcommand{\emph}[1]{\CJKunderdot[textformat=\itshape]{#1}} 36 | % 节标题左对齐 37 | \ctexset{ 38 | section/format += \raggedright 39 | } 40 | % pdf title & author 41 | \makeatletter 42 | \AtBeginDocument{ 43 | \hypersetup{ 44 | pdftitle = {\@title}, 45 | pdfauthor = {\@author} 46 | } 47 | } 48 | \makeatother 49 | % algorithm 50 | \usepackage{algorithm} 51 | \usepackage{algorithmicx} 52 | \usepackage[spaceRequire=false]{algpseudocodex} 53 | \floatname{algorithm}{算法} 54 | % definition 55 | \newtheorem{definition}{定义} 56 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | ## Core latex/pdflatex auxiliary files: 2 | *.aux 3 | *.lof 4 | *.log 5 | *.lot 6 | *.fls 7 | *.out 8 | *.toc 9 | *.fmt 10 | *.fot 11 | *.cb 12 | *.cb2 13 | .*.lb 14 | 15 | ## Intermediate documents: 16 | *.dvi 17 | *.xdv 18 | *-converted-to.* 19 | # these rules might exclude image files for figures etc. 20 | # *.ps 21 | # *.eps 22 | # *.pdf 23 | 24 | ## Generated if empty string is given at "Please type another file name for output:" 25 | .pdf 26 | 27 | ## Bibliography auxiliary files (bibtex/biblatex/biber): 28 | *.bbl 29 | *.bcf 30 | *.blg 31 | *-blx.aux 32 | *-blx.bib 33 | *.run.xml 34 | 35 | ## Build tool auxiliary files: 36 | *.fdb_latexmk 37 | *.synctex 38 | *.synctex(busy) 39 | *.synctex.gz 40 | *.synctex.gz(busy) 41 | *.pdfsync 42 | 43 | ## Build tool directories for auxiliary files 44 | # latexrun 45 | latex.out/ 46 | 47 | ## Auxiliary and intermediate files from other packages: 48 | # algorithms 49 | *.alg 50 | *.loa 51 | 52 | # achemso 53 | acs-*.bib 54 | 55 | # amsthm 56 | *.thm 57 | 58 | # beamer 59 | *.nav 60 | *.pre 61 | *.snm 62 | *.vrb 63 | 64 | # changes 65 | *.soc 66 | 67 | # comment 68 | *.cut 69 | 70 | # cprotect 71 | *.cpt 72 | 73 | # elsarticle (documentclass of Elsevier journals) 74 | *.spl 75 | 76 | # endnotes 77 | *.ent 78 | 79 | # fixme 80 | *.lox 81 | 82 | # feynmf/feynmp 83 | *.mf 84 | *.mp 85 | *.t[1-9] 86 | *.t[1-9][0-9] 87 | *.tfm 88 | 89 | #(r)(e)ledmac/(r)(e)ledpar 90 | *.end 91 | *.?end 92 | *.[1-9] 93 | *.[1-9][0-9] 94 | *.[1-9][0-9][0-9] 95 | *.[1-9]R 96 | *.[1-9][0-9]R 97 | *.[1-9][0-9][0-9]R 98 | *.eledsec[1-9] 99 | *.eledsec[1-9]R 100 | *.eledsec[1-9][0-9] 101 | *.eledsec[1-9][0-9]R 102 | *.eledsec[1-9][0-9][0-9] 103 | *.eledsec[1-9][0-9][0-9]R 104 | 105 | # glossaries 106 | *.acn 107 | *.acr 108 | *.glg 109 | *.glo 110 | *.gls 111 | *.glsdefs 112 | *.lzo 113 | *.lzs 114 | 115 | # uncomment this for glossaries-extra (will ignore makeindex's style files!) 116 | # *.ist 117 | 118 | # gnuplottex 119 | *-gnuplottex-* 120 | 121 | # gregoriotex 122 | *.gaux 123 | *.gtex 124 | 125 | # htlatex 126 | *.4ct 127 | *.4tc 128 | *.idv 129 | *.lg 130 | *.trc 131 | *.xref 132 | 133 | # hyperref 134 | *.brf 135 | 136 | # knitr 137 | *-concordance.tex 138 | # TODO Comment the next line if you want to keep your tikz graphics files 139 | *.tikz 140 | *-tikzDictionary 141 | 142 | # listings 143 | *.lol 144 | 145 | # luatexja-ruby 146 | *.ltjruby 147 | 148 | # makeidx 149 | *.idx 150 | *.ilg 151 | *.ind 152 | 153 | # minitoc 154 | *.maf 155 | *.mlf 156 | *.mlt 157 | *.mtc[0-9]* 158 | *.slf[0-9]* 159 | *.slt[0-9]* 160 | *.stc[0-9]* 161 | 162 | # minted 163 | _minted* 164 | *.pyg 165 | 166 | # morewrites 167 | *.mw 168 | 169 | # nomencl 170 | *.nlg 171 | *.nlo 172 | *.nls 173 | 174 | # pax 175 | *.pax 176 | 177 | # pdfpcnotes 178 | *.pdfpc 179 | 180 | # sagetex 181 | *.sagetex.sage 182 | *.sagetex.py 183 | *.sagetex.scmd 184 | 185 | # scrwfile 186 | *.wrt 187 | 188 | # sympy 189 | *.sout 190 | *.sympy 191 | sympy-plots-for-*.tex/ 192 | 193 | # pdfcomment 194 | *.upa 195 | *.upb 196 | 197 | # pythontex 198 | *.pytxcode 199 | pythontex-files-*/ 200 | 201 | # tcolorbox 202 | *.listing 203 | 204 | # thmtools 205 | *.loe 206 | 207 | # TikZ & PGF 208 | *.dpth 209 | *.md5 210 | *.auxlock 211 | 212 | # todonotes 213 | *.tdo 214 | 215 | # vhistory 216 | *.hst 217 | *.ver 218 | 219 | # easy-todo 220 | *.lod 221 | 222 | # xcolor 223 | *.xcp 224 | 225 | # xmpincl 226 | *.xmpi 227 | 228 | # xindy 229 | *.xdy 230 | 231 | # xypic precompiled matrices and outlines 232 | *.xyc 233 | *.xyd 234 | 235 | # endfloat 236 | *.ttt 237 | *.fff 238 | 239 | # Latexian 240 | TSWLatexianTemp* 241 | 242 | ## Editors: 243 | # WinEdt 244 | *.bak 245 | *.sav 246 | 247 | # Texpad 248 | .texpadtmp 249 | 250 | # LyX 251 | *.lyx~ 252 | 253 | # Kile 254 | *.backup 255 | 256 | # gummi 257 | .*.swp 258 | 259 | # KBibTeX 260 | *~[0-9]* 261 | 262 | # TeXnicCenter 263 | *.tps 264 | 265 | # auto folder when using emacs and auctex 266 | ./auto/* 267 | *.el 268 | 269 | # expex forward references with \gathertags 270 | *-tags.tex 271 | 272 | # standalone packages 273 | *.sta 274 | 275 | # Makeindex log files 276 | *.lpz 277 | -------------------------------------------------------------------------------- /sl.tex: -------------------------------------------------------------------------------- 1 | \section{线性回归} 2 | 3 | \paragraph{最小二乘法} 4 | \begin{equation} 5 | \hat{y} = \arg \min_y \sum_i (y_i - y)^2 = \bar{y},\label{eq:ls} 6 | \end{equation} 7 | 8 | \paragraph{最大似然估计} 似然函数:$p(x|\vartheta)$是$\vartheta$的函数,因为iid,整体的似然函数为$\prod_i p(y_i|\mu, \sigma^2) = \prod_i \frac{1}{\sqrt{2\pi\sigma^2}}\exp\left(-\frac{(y_i-\mu)^2}{2\sigma^2}\right)$。找到最大的整体的似然: 9 | $$\hat{\mu} = \arg\max_\mu\prod_i p(y_i|\mu, \sigma^2) = \bar{y},$$这和最小二乘一样! 10 | 11 | \paragraph{有偏/无偏估计} 方差$\sigma^2$的有偏估计$\hat{\sigma^2}=\frac{1}{N}\sum_{i=1}^N(y_i-\hat{\mu})^2$,无偏估计$\tilde{\sigma^2}=\frac{1}{N-1}\sum_{i=1}^N(y_i-\hat{\mu})^2$ 12 | 13 | \paragraph{线性回归} 14 | 二维情况:$$\arg\min_{a,b}\sum_i(y_i-(ax_i + b))^2$$ 15 | 也就是式\ref{eq:ls}代入$y=ax_i + b$,其实在最大似然估计式中代入$\mu=ax_i + b$也可。 16 | 17 | \paragraph{Variable remapping} 可能很有效果 18 | 19 | \paragraph{求解有约束优化问题} 考虑一个优化问题: 20 | $$\min_x f(x),\text{ subject to }g(x) = 0, h(x) \le 0,$$ 21 | 用拉格朗日乘数法求解: 22 | $$L(x,\lambda,\eta)=f(x)+\lambda g(x)+\eta h(x),$$ 23 | 考虑对偶函数: 24 | $$d(\lambda,\eta)=\min_xL(x,\lambda,\eta),$$ 25 | 当$\eta \ge 0$,对偶函数是原问题的下界。 26 | 27 | $$\max_{\lambda,\eta} d(\lambda,\eta)=\max_{\lambda,\eta}\min_xL(x,\lambda,\eta),$$ 28 | $\text{ subject to }\eta>0$,必定有$d^*\le f^*$(弱对偶),但是只有是凸优化且满足KKT条件才有强对偶$d^* = f^*$: 29 | $$\text{KKT cond.} \left\{\begin{array}{l} 30 | \nabla f + \lambda\nabla g + \eta\nabla h = 0, \\ 31 | g(x) = 0, \\ 32 | h(x) \le 0, \\ 33 | \eta \ge 0, \\ 34 | \eta h(x) = 0, 35 | \end{array} \right.$$ 36 | 37 | \paragraph{凸优化} 凸集$C$满足$\forall x,y \in C, \forall \alpha \in [0,1]$: 38 | $$\alpha x + (1-\alpha)y \in C,$$ 39 | 凸函数$f$是定义在凸集$C$的函数,满足$\forall x,y \in C, \forall \alpha \in [0,1]$: 40 | $$f(\alpha x + (1-\alpha)y) \le \alpha f(x) + (1-\alpha)f(y),$$ 41 | 仿射函数既是凸也是凹函数。凸优化就是在凸集上最小化一个凸函数。 42 | 43 | 在凸优化中,所有的局部最优解都是全局最优解。如果一个函数是严格凸的(上式取$<$时),那么只有一个全局最优解。 44 | 45 | 对偶问题也是凸优化问题。 46 | 47 | \paragraph{正则化} 不信任数据时使用,可以让参数变小,一个例子:$$\arg\min_{a,b}\sum_i(y_i-(ax_i + b))^2+\lambda a^2,$$ 48 | 这个问题是有约束优化问题。相同问题的无约束形式如下: 49 | $$\arg\min_{a,b}\sum_i(y_i-(ax_i + b))^2,\text{ s.t. }a^2 \le c,$$根据KKT条件,要么$\hat{a}^2 = c$,要么$\lambda = 0$ 50 | 51 | 从贝叶斯学派观点,先验项就是正则化的手段。先验就是额外的信息(很多统计学家质疑这个)最大后验估计等于最大似然估计加上一些指定的先验项。 52 | $$p(a,b|\{x_i\}, \{y_i\}, \sigma^2) \propto p(a,b) \prod_i p(y_i, x_i, a, b, \sigma^2),$$ 53 | $$p(a,b) = p(a)p(b), p(a|\sigma_a^2) = \frac{1}{\sqrt{2\pi\sigma_a^2}}\exp(-\frac{a^2}{2\sigma_a^2}),$$ 54 | 最终结果会规约为正则化系数$\lambda = \sigma^2/\sigma_a^2$的最小二乘。 55 | 56 | \paragraph{基函数} 57 | 用基函数可以将变量使用非线性方法重新映射,常见的基函数有多项式,高斯,sigmoid。应用基函数之后,可以把回归模型写成: 58 | $$y = \bm{w}^T\bm\phi(\bm{x}),$$ 59 | 然后用最大似然估计或者最小二乘法可得: 60 | $$\bm w = (\Phi^T\Phi)^{-1}\Phi^T\bm y,$$其中,$\Phi = \begin{bmatrix} 61 | \bm\phi_1(x_1) & \cdots & \bm\phi_M(x_1) \\ 62 | \vdots & \ddots & \vdots \\ 63 | \bm\phi_1(x_N) & \cdots & \bm\phi_M(x_N) 64 | \end{bmatrix}$是设计矩阵,$(\Phi^T\Phi)^{-1}\Phi^T$是$\Phi$的伪逆阵,$\bm y = [y_1, \ldots, y_N]^T$。 65 | 66 | 用得比较多的基函数如下: 67 | \begin{enumerate} 68 | \item 多项式:$\phi_i(x) = x^{i-1}$ 69 | \item 高斯:$\phi_i(x) = \exp\{-\frac{(x-\mu_i)^2}{2\sigma^2}\}$ 70 | \item sigmoid:$\phi_i(x) = \mathrm{sigmoid}(\frac{x - \mu_i}{a})$ 71 | \end{enumerate} 72 | 73 | \paragraph{核函数初步:等价核} 74 | 求解岭回归得到: 75 | $$w_\mathrm{ridge} = (\Phi^T\Phi + \lambda I)^{-1}\Phi^T y,$$ 76 | 那么输出: 77 | $$ 78 | \begin{aligned} 79 | \hat{y} &= w_\mathrm{ridge}^T\phi(x) = \phi^T(x)(\Phi^T\Phi + \lambda I)^{-1}\Phi^T y \\ 80 | &= \sum_{i=1}^N \phi^T(x)(\Phi^T\Phi + \lambda I)^{-1}\phi(x_i) y_i\\ 81 | &= \sum_{i=1}^N k(x, x_i)y_i, 82 | \end{aligned} 83 | $$ 84 | 等价核就是$k(x, x_i)$,是按$x = x_i$对称的函数,允许负数值。 85 | 86 | \paragraph{偏差-方差分解} 87 | $\mathbb{E}(\bm y - \hat{\bm w}^T\cdot \phi(\bm x))^2 = \int ({\bm w}^T\cdot \phi(\bm x)) - \hat{\bm w}^T\cdot \phi(\bm x))^2p(x)\mathrm{d}x + \int e^2p(e)\mathrm{d}e,$ 88 | 第二项是噪声,我们只考虑对第一项进行分析。假设我们已经在数据集$\mathcal{D}$上进行了训练,那么有参数$\hat{\bm w}(\mathcal{D})$。那么$\mathbb{E}_\mathcal{D}[{\bm w}^T\cdot \phi(\bm x) - \hat{\bm w}^T\cdot \phi(\bm x)]^2 = (({\bm w} - {\bm w}^*)\cdot \bm\phi(\bm x))^2 + \mathbb{E}_\mathcal{D}[((\hat{\bm w}(\mathcal{D}) - {\bm w}^*)\cdot \bm\phi(\bm x))^2],$其中,前一项是$(\text{bias})^2$,后一项是variance,${\bm w}^*$是$\mathbb{E}_\mathcal{D}[\hat{\bm w}(\mathcal{D})]$。也就是说:expected ``loss'' = (bias)\textsuperscript{2} + variance + noise。过度正则化的模型有很大的偏差,欠缺正则化的模型则有很大的方差。用交叉验证可以找到合适权衡位置。 89 | 90 | \paragraph{不同的正则化形式} 最小二乘法:$$\frac{1}{2}\sum^N_{i=1}(y_i - \bm w^T\bm\phi(\bm x))^2,$$ 91 | 岭回归:$$ 92 | \frac{1}{2}\sum^N_{i=1}(y_i - \bm w^T\bm\phi(\bm x))^2 + \frac{\lambda}{2}\bm w^T\bm w,$$ 93 | $L_q$-范数正则化回归:$$ 94 | \frac{1}{2}\sum^N_{i=1}(y_i - \bm w^T\bm\phi(\bm x_i))^2 + \frac{\lambda}{2}\sum_{j=1}^M |\bm w_j|^q,$$也就是,$\bm w$的可行域在$\sum_{j=1}^M |\bm w_j|^q < c$中;$q=2$时,是岭回归,$q=1$时,是LASSO回归,有稀疏性,可以取代$q<1$;$q<1$时,可行域不再是凸集,不再是凸优化,有稀疏性;$q=0$时,是稀疏回归,是NPH问题。 95 | 96 | \begin{figure}[H] 97 | \centering 98 | \includegraphics[width=0.7\columnwidth]{sl/1.png} 99 | \end{figure} 100 | 101 | 102 | 解LASSO先考虑一个特殊的情况:$\Phi^T\Phi = I$,此时最小二乘的解是$w_\mathrm{LS} = \Phi^Ty$ 103 | $$ 104 | \begin{aligned} 105 | &\min_w \frac{1}{2}\sum^N_{i=1}(y_i - \bm w^T\bm\phi(\bm x_i))^2 + \lambda\|\bm w\|_1 \\ 106 | &=\! \min_w \frac{1}{2}\sum^N_{i=1}(y_i\! - (w_\mathrm{LS}\! - w_\mathrm{LS}\! +\! \bm w)^T\bm\phi(\bm x_i))^2\! +\! \lambda\|\bm w\|_1 \\ 107 | &\to \min_w \frac{1}{2}(\bm w - w_\mathrm{LS})^2 + \lambda\|\bm w\|_1 \\ 108 | \end{aligned} 109 | $$ 110 | 所以解为${w_\mathrm{lasso}}_i = \mathrm{sign}({w_\mathrm{LS}}_i) \max (|{w_\mathrm{LS}}_i| - \lambda, 0)$ 111 | 112 | Best subset: Hard thresholding, 113 | Ridge: Uniformly shrink, 114 | LASSO: Soft thresholding. 115 | 116 | % \paragraph{贝叶斯方法} 117 | % 先定义先验$p(w) = \mathrm{N}(w|m_0, S_0)$, 118 | 119 | 120 | \section{线性分类} 121 | 122 | \paragraph{分类算法的分类}二分类、多分类、多标签分类(多个二分类的聚合) 123 | 124 | \paragraph{分类和回归} 都想研究两个变量间的关系,离散情况就是分类了。分类需要量化,保证离散的输出。如果用普通的回归做分类,需要使用sign函数量化,但是这很难解。 125 | 126 | \paragraph{逻辑回归} 使用sigmoid函数$\frac{1}{1+e^{-x}}$替代sign(),易解了很多。需要重新映射$y_i = \frac{t_i + 1}{2}$,并且使用交叉熵函数而不是平方误差之和:$\min_{\bm w, b} \sum_i - y_i\log\hat{y_i} - (1-y_i)\log(1-y_i)。$ 127 | 128 | \paragraph{交叉熵} 逻辑回归不是回归到特定的类别号,而是回归出一个属于某类的概率。这个概率的似然函数$P(t_i|x_i,\bm w,b) = \hat{y_i},\text{ if }t_i = +1\text{ else if }t_i = -1, 1 - \hat{y_i}$。 129 | 可以改写成$\hat{y_i}^{y_i}\cdot(1-\hat{y_i})^{(1-y_i)}$,然后取对数似然即可获得交叉熵。 130 | 131 | 其他解释:有两个概率分布,一个是ground-truth $P(t)$,一个是predicted $Q(t)$,那么交叉熵$C(P,Q) = \sum_tP(t)(-\log Q(t))$,熵$H(P)=\sum_tP(t)(-\log P(t))$,K-L散度(相对熵,两个分布的差异度,但是不对称$D_{KL}(P||Q) \neq D_{KL}(Q||P)$,$\ge 0$)$D_{KL}(P||Q) = C(P,Q) - H(P) = \sum_tP(t)\log{\frac{P(t)}{Q(t)}}$ 132 | 133 | \paragraph{解释逻辑回归}逻辑回归的预测值满足: 134 | $$ 135 | \begin{array}{ll} 136 | \hat{y_i} &= p(t_i = +1 |\bm x_i) \\ 137 | &= \frac{p(x_i|t_i=+1)p(t_i=+1)}{p(x_i|t_i=+1)p(t_i=+1) + p(x_i,t_i=-1)} \\ 138 | & = \frac{1}{1+e^{-(\bm w^T\bm x_i + b)}} 139 | \end{array} 140 | $$ 141 | $$\bm w^T\bm x_i + b = \ln \frac{p(\bm x_i| t_i = +1)p(t_i = +1)}{p(\bm x_i| t_i = -1)p(t_i = -1)} = \text{log odds},$$ 142 | 几率,就是发生和不发生的比值,逻辑回归使用了对数几率(log odds)。 143 | 假设$p(x|t_i=k)$是高斯分布,则有: 144 | $$\text{log odds} = \Sigma^{-1}(\mu_{+1}-\mu_{-1})\bm x_i + b$$ 145 | 146 | \paragraph{指数族} 指概率分布可以写成这样的分布: 147 | $$p(\bm x|\bm \vartheta) = h(\bm x)g(\bm\vartheta)\exp(\bm\vartheta^T\bm\phi(\bm x)),$$ 148 | 其中,$h(\bm x)$是,$\bm\vartheta$是自然参数,$\bm\phi(\bm x)$是充分统计量(为了估计分布所需要的统计量)。 149 | 150 | \begin{table}[H] 151 | \centering 152 | \begin{tabular}{lll} 153 | \toprule 154 | 分布 & 自然参数 & 充分统计 \\ 155 | \midrule 156 | 伯努利 & $\ln(p/(1-p))$ & $x$ \\ 157 | 泊松 & $\ln\lambda$ & $x$ \\ 158 | 指数 & $-\lambda$ & $x$ \\ 159 | 拉普拉斯 & $-1/b$ & $|x-\mu|$ \\ 160 | \bottomrule 161 | \end{tabular} 162 | \end{table} 163 | 累积函数$\bm A(\bm\vartheta) = - \ln \bm g(\bm \vartheta)$,有以下性质: 164 | $$ 165 | \begin{array}{l} 166 | \frac{\partial\bm A}{\partial \vartheta_i} = \mathbb{E}[\bm\phi_i(\bm x)] \\ 167 | \frac{\partial^2\bm A}{\partial \vartheta_i\partial \vartheta_j} = \mathbb{E}[\bm\phi_i(\bm x)\bm\phi_j(\bm x)] - \mathbb{E}[\bm\phi_i(\bm x)]\mathbb{E}[\bm\phi_j(\bm x)] 168 | \end{array} 169 | $$ 170 | 也就是说偏导数是均值、二阶偏导数是协方差,这样的分布具有最大熵的特性。 171 | 172 | \paragraph{最大熵} 173 | 具有最大微分熵性质的分布是高斯分布,具有最大熵性质的离散分布是均匀分布。 174 | 175 | \paragraph{求解逻辑回归} 其最小二乘的梯度为: 176 | $$\nabla E(\bm w) = \sum_i (\hat{y_i} - y_i)\bm \phi(\bm x_i),$$ 177 | 所以,没有解析解(封闭解)。 178 | 179 | \paragraph{优化问题的数值解法} 180 | \begin{enumerate} 181 | \item 二阶:Newton-Raphson 182 | \item 一阶:Gradient Descent, Frank-Wolfe 183 | \end{enumerate} 184 | 185 | 牛顿法,由泰勒的二阶展开,并令一阶导数为零可得: 186 | $$x^{\prime} = x - H^{-1}\nabla f(x),$$ 187 | 其中,$H$是海森矩阵。 188 | 189 | 梯度下降,由泰勒一阶展开,令一阶导数为零可得: 190 | $$x^{\prime} = x -\eta\nabla{}f(x)$$ 191 | 192 | Frank-Wolfe,求解约束优化问题,也是一阶泰勒展开,考虑$s_t = \min xf^\prime(x_t)$,找到$s_t$之后,每步找到个系数$\gamma \in (0,1)$: 193 | $$x_{t+1} = \gamma s_t - (1-\gamma)x_t$$ 194 | 195 | \paragraph{费雪线性判别分析(LDA)} 最大化类之间的间距、最小化类内的方差,这在几何上也行得通。经分析其是高斯-逻辑回归的近似。 196 | 197 | \paragraph{感知机} 可以用梯度下降解 198 | $$\min_{w,b} \sum_{i=1}^N (t_i - \mathrm{sign}(\bm w^T\bm x_i + b)).$$ 199 | 200 | \paragraph{多分类--用二分类模拟}数据集划分时总是有未分类的例子 201 | \begin{enumerate} 202 | \item one-versus-the-rest 203 | \item one-versus-one 204 | \end{enumerate} 205 | 206 | \paragraph{多分类--softmax回归} 207 | 和前面解释差不多,只不过: 208 | $$\hat{y_i}_k = p(t_i = k|x_i) = \frac{p(x_i|t_i = k)p(t_i = k)}{\sum_m p(x_i|t_i = m)p(t_i = m)},$$ 209 | 定义$\ln p(x_i|t_i = k)(t_i = k) = {w_k}^Tx_i + b_k$,这就是softmax回归 210 | 211 | \paragraph{多标签分类} 就是多个二分类器连接在一块 212 | 213 | \section{SVM} 214 | \paragraph{硬边际SVM} 思想是最大化类之间的边际,这样对噪声不敏感且有最好的泛化能力。找到离分类边界最近的点到边界的距离: 215 | $$\gamma = \min_i \frac{y_i(\bm w^T\bm x_i + b)}{\|\bm w\|}$$,我们使最近的点的$y_i(\bm w^T\bm x_i + b) = 1$(通过缩放系数,这些点叫做支持向量),那么显然需要最大化$1/\|\bm w\|$,也就是: 216 | $$\min_{w,b} \frac{1}{2}\|\bm w\|^2, \text{s.t.} 1 - y_i(\bm w^T\bm x_i + b) \le 0,$$ 217 | 其拉格朗日函数为: 218 | $$L(\bm w, \bm x, \bm \alpha) = \frac{1}{2}\|\bm w\|^2 - \sum_i \bm \alpha_i(y_i(\bm w^T\bm x_i + b) - 1),$$套KKT,结果如下: 219 | $$\begin{array}{l} 220 | \bm w = \sum_i \alpha_iy_i\bm x_i, \\ 221 | \sum_i \alpha_iy_i = 0, \\ 222 | \alpha_i \ge 0, \\ 223 | y_i(\bm w^T\bm x_i + b) \ge 1, \\ 224 | \alpha_i(y_i(\bm w^T\bm x_i + b) - 1) = 0, 225 | \end{array}$$ 226 | 也就是,要么$\alpha_i = 0$,要么$\bm w^T\bm x_i + b = \pm 1$(此时$\bm x_i$是支持向量)。 227 | \paragraph{对偶问题} 228 | $$\max_\alpha\min_{\bm w, b} \frac{1}{2}\|\bm w\|^2 - \sum_i \bm \alpha_i(y_i(\bm w^T\bm x_i + b) - 1),$$ 229 | 套KKT,结果如下: 230 | $$ 231 | \begin{array}{l} 232 | \max_\alpha \sum_i \alpha_i - \frac{1}{2}\sum_i\sum_j \alpha_i\alpha_jy_iy_j\bm{x}_i^T\bm{x}_j, \\ 233 | \text{s.t.} \forall \alpha_i \ge 0, \sum_i \alpha_iy_i = 0 \\ 234 | \bm w = \sum_i \alpha_iy_i\bm x_i \\ 235 | b = y_i - \bm w^T \bm x_i 236 | \end{array} 237 | $$ 238 | 239 | \paragraph{软边际SVM} 如果非线性可分,我们应该使用软边际SVM。此时我们会对错误分类的点、还有过于靠近分类面的点进行容忍。 240 | $$\min_{w,b} \frac{1}{2}\|\bm w\|^2, \text{s.t. } \mathrm{Ind}(y_i(\bm w^T\bm x_i + b) - 1) \le c_0,$$ 241 | 其中,Ind函数是指示函数,仅在小于0时得1。也就是说$y_i(\bm w^T\bm x_i + b) \le 1$时有效。那么可以写成另外一种形式: 242 | $$ 243 | \min_{w,b} \frac{1}{2}\|\bm w\|^2 + C\sum_i \xi_i, \text{s.t.}\xi_i \ge 0, y_i(\bm w^T\bm x_i + b) \ge 1 - \xi_i, 244 | $$ 245 | 其中,$\xi = \max(0, 1-y_i(\bm w^T\bm x_i + b))$,叫做松弛变量。其拉格朗日函数如下: 246 | $$ 247 | L(\bm w, \bm x, \xi, \bm \alpha, \bm \beta) = \frac{1}{2}\|\bm w\|^2 - \sum_i \bm \alpha_i(y_i(\bm w^T\bm x_i + b) - 1), 248 | $$ 249 | 套KKT,结果如下: 250 | $$ 251 | \begin{array}{l} 252 | \bm w = \sum_i \alpha_iy_i\bm x_i, \\ 253 | \sum_i \alpha_iy_i = 0, \\ 254 | \alpha_i + \beta_i = C \Rightarrow 0 \le \alpha_i \le C, \\ 255 | \alpha_i \ge 0, \beta_i \ge 0, \xi_i \ge 0, \beta_i\xi_i = 0\\ 256 | y_i(\bm w^T\bm x_i + b) \ge 1 - \xi_i, \\ 257 | \alpha_i(y_i(\bm w^T\bm x_i + b) - 1 + \xi_i) = 0, 258 | \end{array} 259 | $$ 260 | 对偶问题如下: 261 | $$ 262 | \begin{array}{l} 263 | \max_\alpha \sum_i\alpha_i - \frac{1}{2} \sum_i\sum_j\alpha_i\alpha_jy_iy_j\bm{x}_i^T\bm{x}_j, \\ 264 | \text{s.t. }0 \le \alpha_i \le C, \sum_i \alpha_i y_i = 0, 265 | \end{array} 266 | $$ 267 | 也就是说,$C = +\infty$时,就是硬边际SVM,样本分为三类,后两类是支持向量: 268 | $$ 269 | \left\{ 270 | \begin{array}{ll} 271 | \alpha_i = 0, & \xi_i = 0, y_i(\bm w^T\bm x_i + b) > 1 \\ 272 | 0 < \alpha_i < C, & \xi_i = 0, y_i(\bm w^T\bm x_i + b) = 1 \\ 273 | \alpha_i = C, & \xi_i > 0, y_i(\bm w^T\bm x_i + b) < 1 274 | \end{array} 275 | \right. 276 | $$ 277 | \paragraph{核技巧} 278 | 把上文中所有$\bm x_i$换成$\bm\phi(\bm x_i)$,即可获得基函数版本的SVM。将上文中的$\bm{x}_i^T\bm{x}_j$换成$k(\bm x_i, \bm x_j)$,可以得到核函数版本的SVM。其实核函数满足: 279 | $$k(\bm x_i, \bm x_j) = \bm\phi(\bm x_i)^T\bm\phi(\bm x_j),$$ 280 | 常见的核函数有线性$\bm x_i^T\bm x_j$、RBF$\exp(-\|\bm x_i - \bm x_j\|^2/2\sigma^2)$、多项式$(1+\bm x_i^T\bm x_j)^p$、sigmoid核$\tanh(\alpha\bm x_i^T\bm x_j+\beta)$。 281 | 282 | 使用核函数与使用基函数并无什么不同,相反核函数还较基函数容易表示一些。满足Mercer's condition就是核函数,也就是说是必须是正定的: 283 | $$\int_{\bm x}\int_{\bm y}f(\bm x)K(\bm x, \bm y)f(\bm y)\mathrm{d}\bm x\mathrm{d}\bm y > 0, \forall f$$ 284 | 285 | \paragraph{SMO算法} 286 | 序列最小优化算法,每次选择两个拉格朗日乘子作为变量,其他的乘子不变。变量乘子都在“盒限制”中选取新值。是坐标下降,比梯度下降简单。 287 | 288 | \section{监督学习} 289 | 前面我们学习了回归、分类、密度估计,这些都是完全的监督学习。 290 | 监督学习的基本方法:收集数据(清洗)$\rightarrow$决定模型形式(超参)$\rightarrow$决定策略/优化目标$\rightarrow$模型学习(获取参数)$\rightarrow$评价模型 291 | 292 | \paragraph{判别模型和概率模型} 293 | 判别模型:$\hat{y} = f(x)$(分类、回归),概率模型$q(y|x)$(分类、回归、密度估计)。如果目标变量是离散的,就是分类问题;是连续的就是回归问题。 294 | 295 | \paragraph{判别模型和生成模型} 296 | 判别模型:$\hat{y} = f(x)$或者$q(y|x)$,生成模型$\hat{x} = f(y)$或者$q(x|y)$。在监督学习中,生成模型不是必要的。如果两个模型都学习了,我们实际上完成了对$p(x,y)$的估计。密度估计在监督学习中是万能的,但是很难解决。判别模型方法只需要处理判别模型,并且可以很容易运用基/核函数,在小数据集上表现更好。生成模型方法需要处理判别模型和生成模型,可以使用隐变量,在处理大量数据时更加容易拟合。 297 | 298 | \paragraph{损失函数} $\mathcal{L}(x_i,y_i,f)$,$f$是泛函,下面是一些例子: 299 | \begin{itemize} 300 | \item 平方损失:$(y_i - f(x_i))^2$ 301 | \item 绝对损失:$|y_i - f(x_i|^2$ 302 | \item 0-1损失:$\text{if $y_i = f(x_i)$ then 0 else 1}$ 303 | \item log损失,通常见于概率函数(逻辑回归):$-\log q(y_i|x_i)$ 304 | \item 铰链损失,感知机:$\left\{\begin{aligned} 305 | 0, \ \text{if}\ y_i(w^Tx_i +b) \ge 0, \\ 306 | -y_i(w^Tx_i +b), \text{otherwise} 307 | \end{aligned}\right.$ 308 | \item 铰链损失,SVM:$\left\{\begin{aligned} 309 | 0, \ \text{if}\ y_i(w^Tx_i +b) \ge 1, \\ 310 | 1-y_i(w^Tx_i +b), \text{otherwise} 311 | \end{aligned}\right.$ 312 | \end{itemize} 313 | 314 | \paragraph{风险函数} 315 | 设定输入空间$x\in \mathcal{X}$,输出空间$y\in \mathcal{Y}$,假设空间$f: \mathcal{X} \to \mathcal{Y}, f(x) \in \mathcal{H}$,参数化$f(x) \to f(x|\alpha)$,参数空间$\alpha \in \Lambda$。那么风险函数就是损失函数的函数$R: \Lambda \to \mathbb{R}$: 316 | $$R(\alpha) = \int_{x\in \mathcal{X}, y\in \mathcal{Y}} L(x, y, \alpha)p(x,y) \mathrm{d}x\mathrm{d}y$$ 317 | 风险最小化就是我们想要的,但是很难进行估计。 318 | 319 | \paragraph{经验风险} 基于训练数据,我们用经验风险估计风险: 320 | $$R_\text{emp}(\alpha) = \frac{1}{N} \sum^N_{i=1}L(x_i, y_i, \alpha),$$ 321 | 其实最小二乘法、最大似然估计就是经验风险最小化(ERM)。有很多关于ERM的问题: 322 | ERM可能会导致不适定问题,因此我们使用正则化。ERM 不能包含先验信息,因此我们使用贝叶斯。ERM不考虑数据集方差,因此我们使用偏差-方差权衡。ERM没有考虑模型存储的成本,所以我们使用 323 | 最小描述长度 (MDL)。ERM能保证风险最小化吗? 324 | 325 | \paragraph{过拟合} 原因如下: 326 | \begin{itemize} 327 | \item 训练数据不足 328 | \item 数据有噪声 329 | \item 模型复杂度太高 330 | \end{itemize} 331 | 332 | \begin{figure}[H] 333 | \centering 334 | \includegraphics[width=0.7\columnwidth]{sl/2.png} 335 | \end{figure} 336 | 337 | \paragraph{风险和经验风险} 338 | 风险最小化$\alpha^*=\arg\min_{\alpha \in \Lambda} R(\alpha)$,依靠损失函数、概率测量、参数空间。经验风险最小化$\alpha_N=\arg\min_{\alpha \in \Lambda} R_\text{emp}(\alpha)$,依靠损失函数、训练数据、参数空间。 339 | 340 | \paragraph{一致学习} 因为大数定理,所以风险和经验风险能够足够接近。前面$R_\text{emp}(\alpha_N) = 0$的最大样本数$N$点就是VC维的大小,代表100\%的拟合,也就是最大能打散的样本数, 341 | %VC维也叫做函数集的熵。 342 | \begin{figure}[H] 343 | \centering 344 | \includegraphics[width=0.7\columnwidth]{sl/3.png} 345 | \end{figure} 346 | 347 | 举个特殊例子,如果参数空间只有一个参数$\alpha_0$,那么根据Hoeffding不等式(且采用0-1 loss)有: 348 | $$P(R(\alpha_0) - R_\text{emp}(\alpha_0)) \le \exp(-2N\epsilon^2),$$ 349 | 或者说,至少以$1-\eta$的概率有: 350 | $$R(\alpha_0) \le R_\text{emp}(\alpha_0) + \sqrt{\frac{-\log \eta}{2N}},$$ 351 | 那么更加一般的情况下,假设有M个有限参数,我们至少以$1-\eta$的概率有: 352 | $$ 353 | \sup_{\alpha \in \Lambda}(R(\alpha) - R_\text{emp}(\alpha)) \le \sqrt{\frac{1}{2N}(\log M - \log \eta)}, 354 | $$ 355 | 但是有些实用的学习模型有无限数量的参数! 356 | 357 | \paragraph{函数集的熵} 358 | 考虑二分类$f(x|\alpha) \in \{-1,+1\}$,当我们给定一个数据集和一个参数空间时有多少种可能的结果?定义: 359 | $\mathcal{N}^{\Lambda}(x_1, x_2, \ldots, x_N) = \mathrm{Count}\{(f(x_1|\alpha), \ldots, f(x_N|\alpha)) | \alpha \in \Lambda\},$ 360 | 注意,我们同样可以根据损失函数(0-1 loss)来定义这个数字,并且这个数字是相等的。 361 | 362 | 我们定义熵为$H^\Lambda(N) = \mathbb{E}_{x\in \mathcal{X}} \log(\mathcal{N}^\Lambda)$,退火熵为$H_\mathrm{ann}^\Lambda(N) = \log(\mathbb{E}_{x\in \mathcal{X}} \mathcal{N}^\Lambda) > H^\Lambda(N)$,生长函数为$G^\Lambda(N) = \log(\sup_{x\in \mathcal{X}} \mathcal{N}^\Lambda)$。 363 | 364 | 理论1:一致学习\\ 365 | 当且仅当$\lim_{N\to \infty} \frac{N^\Lambda}{N} = 0,$而且$\lim_{N\to \infty} P(|\sup_{\alpha \in \Lambda}(R(\alpha) - R_\text{emp}(\alpha))| > \epsilon) = 0, \forall \epsilon > 0$。 366 | 367 | 理论2:快速收敛\\ 368 | 如果$\lim_{N\to \infty} \frac{H_\mathrm{ann}^\Lambda(N)}{N} = 0,$那么$P(R(\alpha_N) - R(\alpha^*) > \epsilon) < \exp(-c\epsilon^2N), \forall \epsilon > 0, \forall N > N_0$ 369 | 370 | 理论3: 371 | 当且仅当$\lim_{N\to \infty} \frac{G^\Lambda(N)}{N} = 0,$那么学习是一致的而且收敛是快速的,不管$p(x)$是什么。 372 | 373 | \paragraph{VC维度} 374 | 我们可以进一步证明任何生长函数都要么满足$G^\Lambda(N) = N\log 2$,或者$G^\Lambda(N) \le h(\log (N/h) + 1)$,其中$h$是个整数且有$G^\Lambda(h) = h \log 2, G^\Lambda(h+1) < (h+1)\log 2$,$h$就是VC维度。VC维度的就是函数集可以打散的最多样本的数量$h$。 375 | 376 | 在$D$维的线性分类器中,其VC维为$D+1$。此时VC维与其参数的数量一样。 377 | 378 | 拥有可以调节频率的$\sin()$的模型,其VC维是无穷的! 379 | 380 | SVM需要考虑一个受限的线性分类器:$$y=\left\{\begin{aligned} 381 | +1, \text{if}\ w^Tx+b\ge \Delta, \\ 382 | -1, \text{if}\ w^Tx+b\le \Delta, 383 | \end{aligned}\right.$$的VC维是$h \le \min(D, [\frac{R^2}{\Delta^2}]) + 1$,$R$是能覆盖所有数据点的超球体的半径,小于线性分类器,其拟合能力比较弱。 384 | 385 | 直观地说,VC维度表征了一个函数集的强大程度。无限VC维度意味着,对于特定数据集,函数集总是可以实现等于0的经验风险,即 ERM不提供信息。严格地,VC维定义了风险的边界。 386 | $$ 387 | \epsilon = 4\times \frac{h(\log(2N/h)+1) - \log(\eta/4)}{N}, 388 | $$ 389 | $$ 390 | \sup_{\alpha \in \Lambda}(R(\alpha) - R_\text{emp}(\alpha)) \le \sqrt{\frac{\epsilon}{4}}, 391 | $$ 392 | 对于有限的参数空间,我们有$\epsilon = 2 \times \frac{\log M - \log \eta}{N}$ 393 | 394 | VC维度描述了无限函数集的“有效体积”。 395 | 但是许多重要分类器(决策树、神经网络)的VC维度尚不清楚, 396 | VC维度分析不适用于非参数学习(例如 k-NN)。 397 | 398 | \paragraph{结构风险最小化} 399 | SRM试图最小化ERM和置信区间的总和。SRM是正则化的一个具体例子 400 | $$\min_\alpha R_\text{emp}(\alpha) + \lambda C(\alpha)$$ 401 | 其中,正则化项控制了模型的复杂度。正则化首先被提出来处理病态问题。有几种不同的方式来解释/执行正则化:贝叶斯、偏差-方差均衡、最小描述长度(MDL)。 402 | 403 | \paragraph{贝叶斯作为正则化手段} 404 | 考虑概率建模$q(y|x)$ 405 | ,损失函数是对数损失$-log q(y_i|x_i)$。 406 | 最小化经验风险就是极大似然,最大化后验$p(\alpha | \{x_i, y_i\}_{i = 1,\ldots, N})$, 407 | 需要先验$p(\alpha)$。 408 | 因此,正则化项等价于$-\log p(\alpha)$ 409 | 410 | 贝叶斯与SRM对比\\ 411 | • 贝叶斯需要先验信息\\ 412 | • SRM不要求真实模型位于假设空间内 413 | 414 | \paragraph{偏差-方差均衡作为正则化手段} ERM没有考虑数据集的方差,这是类似于正则项的地方。但是偏差-方差均衡难以实现。 415 | 416 | \paragraph{最小描述长度作为正则化手段} 最小描述长度(MDL)原则:最佳模型是在给定数据集上能够达到最小描述长度的模型。MDL考虑了模型存储的成本,相当于正则化项。MDL需要适当的编码规则;但是理想的编码与概率有关。 417 | 418 | \paragraph{精度、召回率、AUC} 419 | 对于二元分类,我们通常希望区分不同类型的错误。 420 | $$\text{Precision} = \frac{\text{TP}}{\text{TP} + \text{FP}}$$ 421 | $$\text{Recall} = \frac{\text{TP}}{\text{TP} + \text{FN}}$$ 422 | $$\text{F1-value} = \frac{2\times\text{Precision}\times\text{Recall}}{\text{Precision} + \text{Recall}}$$ 423 | 最理想情况下,FN=FP=0。 424 | 425 | 还有一个AUC,它是ROC (receiver operating characteristic) curve的曲线下面积。ROC曲线的X轴是$\frac{\text{FP}}{\text{FP} + \text{TN}}$,Y轴是$\frac{\text{TP}}{\text{TP} + \text{FN}}$(Recall)。随机的二分类器AUC为0.5,理想的为1。 426 | 427 | \section{非参数学习} 428 | 许多统计学习方法假设了个模型,其学习过程就是解出或者估计出模型的参数。非参数学习没有明面上的模型,有时被称为基于实例/记忆的学习。 429 | \paragraph{Parzen Window/核密度估计} 430 | 求解(概率)密度估计问题,给出一组样本$x_1,\ldots,x_N$,求$p(x)$。PW用核函数(需要满足非负、积分为1,比如说,高斯核)求和来估计: 431 | $$\hat{p}(x) = \frac{1}{N}\sum^N_{i=1}K(x|x_i),$$ 432 | 其实PW和直方图很像,一个是经验概率密度函数,一个是用核函数的相加估计真正的PDF。那么我们也需要一个超参数$h$用于控制窗口大小: 433 | $$ 434 | \begin{array}{l} 435 | K_h(x) = \frac{1}{h}K(\frac{x}{h}) \\ 436 | \hat{p}_h(x) = \frac{1}{N}\sum^N_{i=1}K_h(x|x_i), 437 | \end{array} 438 | $$ 439 | 窗越小,越容易过拟合。 440 | 441 | \paragraph{$k$-NN}看空间关系最近的$k$个样本,(简单/加权)投票决定样本归属哪一类。设$\mathcal{N}(x_i)$是$x_i$的邻居。 442 | $$ 443 | \begin{array}{ll} 444 | \text{分类} & \hat{y} = \mathrm{sign}(\sum_{x_i \in \mathcal{N}(x_i)} y_i) \\ 445 | \text{回归} & \hat{y} = \frac{1}{|\mathcal{N}(x_i)|} \sum_{x_i \in \mathcal{N}(x_i)} y_i \\ 446 | \end{array} 447 | $$ 448 | 1-NN对噪声太过敏感。用偏差-方差分解考察k-NN回归$\mathbb{E}[(\hat{y} - y)^2]$,发现同样有偏差-方差-噪声三项。$k\uparrow,\text{var} \downarrow,\text{bias} \uparrow$ 449 | 450 | \paragraph{稀疏编码} 目的是要求解: 451 | $$x = \sum^N_{i=1} \alpha_ix_i,\text{ s.t. } \|\alpha\|_0 \le k,$$ 452 | 可以放宽以处理数据中的噪声或损坏。 453 | 454 | \section{无/半监督学习} 455 | 有监督学习意图找出数据之中的关系以解决预测问题。无监督学习意图发现数据中的模式,以对数据进行描述:比如关联分析(啤酒尿布,什么属性是互相关联的)、聚类(分类的弱化版)、异常检测(数据是否是正常的)、降维(避免维度诅咒)等等 456 | 457 | \paragraph{维度诅咒} 458 | \begin{enumerate} 459 | \item 在高维空间,距离无法区分 460 | \item 最近的邻居都在很远的地方 461 | \end{enumerate} 462 | 为什么?因为高维空间非常大,样本很稀疏。 463 | 464 | \paragraph{K-means} 是Prototype-based clustering的代表。每个聚类都有个原型,样本距离原型的距离决定了样本的类别。 465 | \begin{algorithm}[H] 466 | \caption{K-means算法} 467 | \label{alg:K-means} 468 | \begin{algorithmic}[1] 469 | \Require dataset $\{x_1, \ldots, x_N\}$, number of clusters $k$ 470 | \Ensure clusters $q(x_i)\in\{1, \ldots, k\}$ 471 | \State Initialize centroids $\{c_1, \ldots, c_2\}$ 472 | \Repeat 473 | \For{$i = 1, \ldots, N$} 474 | \State $q(x_i) \leftarrow \arg \min_j |x_i - c_i|$ 475 | \EndFor 476 | \For{$i = 1, \ldots, k$} 477 | \State $c_j \leftarrow \mathrm{mean}(x_i|q(x_i) = j)$ 478 | \EndFor 479 | \Until{centroids do not change} 480 | \end{algorithmic} 481 | \end{algorithm} 482 | 通常来说这个算法会收敛。 483 | 484 | 中心点(也就是前面的prototype)也被称为码字,组成码本。k-means其实是解决 485 | $$\min_{q,\{c_j\}} |x_i - c_{q(x_i)}|^2$$ 486 | k-means算法启发式地交替更新$q$和$\{c_j\}$。这是贪心的,不能保证得到全局最优解。经常受到离群点、不同大小的簇、不同密度的簇、不规则形状的影响。一个办法是过分割(增大$k$),然后再后处理。 487 | 488 | \paragraph{高斯混合模型} 489 | 高斯混合模型是一种基于分布的聚类方法。每一个簇代表一个单模态的分布。计算后验概率以决定样本属于哪一个簇。在高斯混合模型中,每个分布是高斯分布。\begin{enumerate} 490 | \item 一维情况:$p(x) = \sum_{j=1}^k w_j\mathcal{N}(x|\mu_j, \sigma_j^2),\text{ where} \sum_j w_j = 1,$ 491 | \item 多维情况:$p(x) = \sum_{j=1}^k w_j\mathcal{N}(x|\mu_j, \Sigma_j),\text{ where} \sum_j w_j = 1,$ 492 | \end{enumerate} 493 | 如果我们知道了GMM的参数,那么我们可以这样计算后验概率(也叫响应度): 494 | $$p(q(x_i) = j) = \gamma_{ij} = \frac{w_j\mathcal{N}(x|\mu_j, \sigma_j^2)}{\sum_{j=1}^kw_j\mathcal{N}(x|\mu_j, \sigma_j^2)},$$ 495 | 然后有$q(x_i) = \arg\max_j \gamma_{ij},$ 496 | 所以说,我们怎么样估计GMM的参数$\theta = \{w_j, \mu_j, \Sigma_j | j = 1, \ldots k\}$呢? 497 | 498 | 问题就是要最大化$\prod_{i=1}^N \sum_{j=1}^k w_j \mathcal{N}(x_i|\mu_j, \Sigma_j)$,我们可以借鉴K-means的算法。首先初始化参数,然后计算相应的相应度,第三步更新参数。上面两个步骤交替进行,直到模型收敛。 499 | 500 | 记$\gamma_{ij} = p(q(x_i) = j)$:$$ 501 | \begin{aligned} 502 | w_j = \frac{\sum_i \gamma_{ij}}{N} \\ 503 | \mu_j = \frac{\sum_i \gamma_{ij}x_i}{\sum_i \gamma_{ij}} \\ 504 | \Sigma_j = \frac{\sum_i \gamma_{ij}(x_i - \mu_j)^T(x_i - \mu_j)}{\sum_i \gamma_{ij}} \\ 505 | \end{aligned} 506 | $$ 507 | 508 | \paragraph{EM算法} 509 | 引入隐变量$z_i \in \{1, \ldots, k\}$,代表$x_i$对应的正确的簇,那么要最大化$\prod_i p(x_i, z_i|\theta) = \prod_i \prod_j (w_j\mathcal{N}(x_i|\mu_j, \Sigma_j))^{\mathcal{I}(z_i =j)}$,或者$\sum_i \sum_j \mathcal{I}(z_i =j)\log(w_j\mathcal{N}(x_i|\mu_j, \Sigma_j))$ 510 | 511 | EM算法分为交替的两步:E-step: Given $\theta^t$, calculate the expectation of object function with 512 | eliminating latent variables. Note that $\gamma_{ij}$ is the expectation of $\mathcal{I}(z_i = j)$, so we have $\sum_i\sum_j \gamma_{ij} \log(w_j\mathcal{N}(x_i|\mu_j, \Sigma_j))$ 513 | 514 | M-step: Maximize the expectation of objective function to find a new estimate of parameters $\theta^t$. Then we can derive the equations of GMM 515 | 516 | \begin{algorithm}[H] 517 | \caption{EM算法} 518 | \label{alg:EM} 519 | \begin{algorithmic}[1] 520 | \Require $\hat{\theta} = \max_\theta p(X,Z|\theta)$, where $Z$ is unobserved 521 | \State $t \leftarrow 0$, initialize $\theta^0$ 522 | \Repeat 523 | \State Given $\theta^t$, calculate the expectation of $\log p(X, Z|\theta)$ with eliminating $Z$, i.e. $Q(\theta, \theta^t) = \mathbb{E}_{Z\sim p(Z|X, \theta^t)}\log p(X, Z|\theta)$ 524 | \State $\theta^{t+1} \leftarrow \arg \max_{\theta} Q(\theta, \theta^t)$ 525 | \Until{convergence} 526 | \State $\hat{\theta} = \theta^{t+1}$ 527 | \end{algorithmic} 528 | \end{algorithm} 529 | EM is a greedy algorithm, it will definitely converge but cannot ensure global optimum. 530 | 531 | Set different initial values to escape from a local optimum. We may not maximize the expectation (i.e. the Q function); instead, increasing the Q function (e.g. by gradient ascent) is okay; this can be helpful if the Q function is not easy to maximize. 532 | 533 | \paragraph{不同的聚类方法} 534 | 基于密度的聚类:Mean-shift: 局部密度的均值来替代;DBSCAN:对于每个点,如果邻点的数目小于一个阈值,那么这个点就是噪声。否则,属于一个簇/基于连通性的聚类/Agglomerative clustering/Divisive clustering 535 | 536 | \paragraph{PCA} 537 | 给出一个$x\in \mathbb{R}^D$,我们想要找到一个矩阵$P \in \mathbb{R}^{K \times D}$,其中$K < D$,然后我们可以用这个矩阵$P$降维$x$:$y = Px, y \in \mathbb{R}^K$。 538 | 539 | 第一步是$\bar{x} = \frac{\sum_i x_i}{N}$,令$X = \begin{pmatrix} 540 | (x_1 - \bar{x})^T \\ 541 | \cdots \\ 542 | (x_N - \bar{x})^T 543 | \end{pmatrix}$, 544 | 第二步是$C = X^TX = U\Lambda U^H$,这是个协方差阵,可以找出其特征值和特征向量,第三步是选择最大的K项特征值,并且选择对应的特征向量组成$P$,$y_i = P(x_i - \bar{x})$ 545 | 546 | \paragraph{核PCA} 547 | 对于非线性,使用核函数实现。$\Phi = \begin{pmatrix} 548 | \phi_i^T \\ 549 | \cdots \\ 550 | \phi_N^T 551 | \end{pmatrix}$,其中$\phi_i = \phi(x_i)$。我们关心的是$K = \Phi\Phi^T$。 552 | 553 | \paragraph{流形学习} 554 | 流形是一种拓扑空间,它在每一点附近都与欧几里得空间相似。 555 | 一维流形包括线和圆,但不包括"8"。 556 | 二维流形也被称为曲面,如球体。 557 | 流形的内在维度可以低于它的驻留空间。 558 | 流形学习是为了从高维数据中识别这种低维结构。 559 | 对于流形学习,用测地线距离代替高维欧几里得距离。 560 | 561 | % TODO 562 | 563 | \paragraph{PageRank} 基于Random Walk,用来定义网页的相对重要度的。 564 | \begin{algorithm}[H] 565 | \caption{PageRank算法} 566 | \label{alg:PageRank} 567 | \begin{algorithmic}[1] 568 | \Require A graph of webpages and hyperlinks 569 | \Ensure Relative importance values of all webpages 570 | \State $t \leftarrow 0$, initialize $r_i^0$ uniformly 571 | \Repeat 572 | \State $\forall j, r_j{t+1} \leftarrow 0$ 573 | \State $\forall i,j, \mathrm{if}\ w_{ij} \neq 0, r_j^{t+1} = r_j^{t+1} + \frac{w_{ij}}{\sum_k w_{ik}}r_i^t$ 574 | \State $\forall j, r_j^{t+1} \leftarrow \beta r_j^{t+1} + \frac{1-\beta}{N}$ 575 | \Until{convergence} 576 | \end{algorithmic} 577 | \end{algorithm} 578 | 579 | \section{组合学习} 580 | 建立多个个体/基础学习器,然后将它们组合起来。当这些基础学习器好而不同的时候,组合学习很有效果。但是实际中,基础模型们很难做到独立。我们希望每个基础模型尽可能不同,但是多元化和性能是冲突的。有两种形式的组合学习: 581 | \begin{enumerate} 582 | \item Boosting: 每个基础模型都顺序地训练,整体模型更加关注模型之前处理得不太好的样本。 583 | \item Bagging: 每个模型都是独自、并行地训练,整体模型尝试使每个基础模型的训练数据多样化。 584 | \end{enumerate} 585 | 586 | \paragraph{Boosting} 587 | $$f_m(x) = f_{m-1}(x) + \alpha_mG_m(x),$$ 588 | 其中$G_m(x)$是基础模型,那么整体模型是 589 | $$f(x) = \sum_m \alpha_m G_m(x)$$ 590 | 591 | \paragraph{Boosting回归树} 592 | $$f(x) = \sum_m \alpha_m T(x, \theta_m),$$ 593 | 其中,$T(x,\theta_m)=\left\{\begin{array}{ll} 594 | c_{m1}, & \text{if }x \le t_m, \\ 595 | c_{m2}, & \text{if }x > t_m, 596 | \end{array} \right.$是决策树桩。我们利用残差训练该模型,算法如下: 597 | \begin{algorithm}[H] 598 | \caption{Step-wise learning algorithm} 599 | \label{alg:step-wise} 600 | \begin{algorithmic}[1] 601 | \Require $\{x_n, y_n\}$ 602 | \Ensure $\{\alpha_m, \theta_m\}$ 603 | \For{$m=1, \ldots, M$} 604 | \State Calculate residue ${r_n}^{(m)} = y_n - f_{m-1}(x_n)$ 605 | \State Fit the residue with decision stump $T(x,\theta_m)$ 606 | \State Set $\alpha_m = 1$ 607 | \State Update the model $f_m(x) = f_{m-1}(x) + \alpha_mT(x, \theta_m)$ 608 | \EndFor 609 | \end{algorithmic} 610 | \end{algorithm} 611 | 612 | \paragraph{\textit{Ada}ptive \textit{Boost}ing} 613 | 分类模型,目标是优化: 614 | $$\sum_{n=1}^N \mathcal{L}(y_n, f(x_n)) = \sum_{n=1}^N \exp(-y_n \times f(x_n)),$$ 615 | 最小化$\sum^N_{n=1} \mathcal{L}(y_n, f(x_n)) = \sum_{n=1}^N \exp(-y_n \times f(x_n)),$也就是: 616 | $$ 617 | \sum_{n=1}^N \exp(-y_n \times [f_{m_1}(x_n) + \alpha_mG_m(x_n)]), 618 | $$ 619 | 620 | \begin{algorithm}[H] 621 | \caption{AdaBoost Algorithm} 622 | \label{alg:AdaBoost} 623 | \begin{algorithmic}[1] 624 | \Require $\{x_n, y_n\}$ 625 | \Ensure $f(x) = \sum_m \alpha_mG_m(x)$ 626 | \For{$m=1, \ldots, M$} 627 | \State Calculate weights of samples: $w_{mn} = \exp(-y_n \times f_{m-1}(x_n))$ and then 628 | normalize $w_{mn} \leftarrow \frac{w_{mn}}{\sum_n w_{mn}}$\begin{itemize} 629 | \item $m=1$, then $w_{1n} = 1/N$ 630 | \item $w_{(m+1)n} \propto w_{mn}\exp(-y_n\alpha_mG_m(x_n))$ 631 | \end{itemize} 632 | \State $G_m(x)$ is to minimize $e_m = \sum_{n=1}^N w_{mn}\mathbb{I}(y_n \neq G_m(x_n))$ 633 | \State $\alpha_m = \frac{1}{2} \log \frac{1-e_m}{e_m}$ 634 | \EndFor 635 | \end{algorithmic} 636 | \end{algorithm} 637 | 638 | 如果一个样本被正确分类,其权重就会减少$exp(-alpha_m)$。 639 | 如果一个样本被错误地分类,它的权重会增加$exp(-alpha_m)$。 640 | 因此,下一个基础分类器将专注于错误分类的样本。 641 | 642 | \paragraph{Bagging = bootstrap aggregating} 通过自举采样生成多个数据集。生成$M$个数据集,用每个数据集来训练一个模型。然后对它们进行平均:$f(x) = \frac{1}{M} \sum_m G_m(x)$,可以并行学习。 643 | 644 | \section{决策树} 645 | 树模型由一组条件和一组基本模型组成,以树的形式组织起来。每个内部节点都是一个针对输入属性的条件——对输入空间的划分。每个叶子节点就是一个基本模型,回归时最简单为一个常数,分类时最简单为一个类别。 646 | 647 | \paragraph{构建决策树} 是个NPH问题。所以穷尽搜索不可行,我们应该用启发式方法,如下: 648 | \begin{algorithm}[H] 649 | \caption{Hunt's algorithm} 650 | \label{alg:hunt} 651 | \begin{algorithmic}[1] 652 | \Require A set of training data $\mathcal{D} = \{x_n, y_n\}$ 653 | \Ensure A classification tree or regression tree T 654 | \Function{HuntAlgorithm}{$\mathcal{D}$} 655 | \If{$\mathcal{D}$ need not or cannot be divided} 656 | \State \Return a leaf node 657 | \Else 658 | \State Find an attribute of $x$, say $x_d$, and decide a condition $g(x_d)$ 659 | \State Divide $\mathcal{D}$ into $\mathcal{D}_1, \mathcal{D}_2, \ldots$, according to the output of $g(x_d)$ 660 | \State $T_1 = \textproc{HuntAlgorithm}(\mathcal{D}_1), T_2 = \textproc{HuntAlgorithm}(\mathcal{D}_2), \ldots$ 661 | \State Let $T_1, T_2, \ldots$ be the children of $T$ 662 | \EndIf 663 | \State \Return T 664 | \EndFunction 665 | \end{algorithmic} 666 | \end{algorithm} 667 | 668 | \paragraph{纯洁度/不纯度} 描述一个集合容易/不容易分为一类的程度。下面是几种不纯度(越小越好)测量方法,用$p_i$表示类$i$的占比: 669 | \begin{enumerate} 670 | \item Entropy: $-p_0\log p_0 - p_1\log p_1$ 671 | \item Gini index: $1-p_0^2-p_1^2$ 672 | \item Misclassification error: $\min(p_0, p_1)$ 673 | \end{enumerate} 674 | 我们还要找到怎么样决定对一个属性进行划分。当然是纯洁度增益越大越好。这里给出了三个计算增益的方法,其中$H$是上面的熵,$G$是Gini: 675 | \begin{enumerate} 676 | \item Information gain: $g = H(\mathcal{D}) - \sum_i \frac{|\mathcal{D}_i|}{|\mathcal{D}|}H(\mathcal{D}_i)$ 677 | \item Information gain ratio to suppress too many subsets: $gr = \frac{g}{-\sum_i \frac{|\mathcal{D}_i|}{|\mathcal{D}|}\log \frac{|\mathcal{D}_i|}{|\mathcal{D}|}}$ 678 | \item Gini index gain: $gig = G(\mathcal{D}) - \sum_i \frac{|\mathcal{D}_i|}{|\mathcal{D}|}G(\mathcal{D}_i)$ 679 | \end{enumerate} 680 | 681 | \paragraph{树的剪枝} 682 | 采用算法\ref{alg:hunt},我们可以构建一个预测尽可能准确的树,但是可能发生过拟合。有两个方案控制树的复杂度: 683 | \begin{enumerate} 684 | \item 早停止:停止划分,如果增益小于阈值,或者树太深、集合太小 685 | \item 树剪枝:从树中移除一些分支,以降低总体的误差$C_\alpha(T) = C(T) + \alpha|T|$,其中$C(T)$是经验风险(比如说预测错误率),$|T|$是树的复杂度(比如说树的高度)。 686 | \end{enumerate} 687 | 688 | \paragraph{回归决策树} 689 | 最简单的情况树每个叶子节点代表一个常数。每次寻找一个属性并且选择一个划分条件,最小化误差: 690 | $$\min_{d, t, c_1, c_2}\left[\sum_{x_{id} \le t}(y_i - c_1)^2 + \sum_{x_{id} > t}(y_i - c_2)^2\right]$$ 691 | 最终这个回归树是个分段常函数。 692 | 693 | \paragraph{回归决策树和boosting方法的等价} 694 | Hunt算法:“分而治之”,条件+基础模型。Boosting:基础模型的线性组合。本质上是一样的,得到的东西也一样。 695 | 696 | \paragraph{树模型的实现} 697 | \begin{itemize} 698 | \item ID3:用information gain 699 | \item C4.5:用information gain ratio 700 | \item CART:用Gini index (分类) 或者quadratic cost(回归,上面有说),只用2路划分。 701 | \end{itemize} 702 | 根据$C_\alpha(T) = C(T) + \alpha|T|$,逐渐增大$\alpha$以获得不同的树,然后用交叉验证寻找最佳的$\alpha$。 703 | 704 | \paragraph{随机森林} 705 | - 决策树和集合学习的结合 \\ 706 | - 根据袋法,首先生成多个数据集(bootstrap samples),每个数据集都会产生一个树模型\\ 707 | - 在构建树的过程中,在分割时考虑一个随机的特征子集 708 | 709 | \section{概率图模型} 710 | \paragraph{生成模型和判别模型} 711 | 生成模型是学习估计$p(x,y)$,也就是$x$和$y$的联合分布。判别模型是学习、估计$p(y|x)$,或者更加简单的$y=f(x)$。我们只需要建模$x$与$y$之间的关系。在分类问题中,生成模型通常比判别模型更加难,就像写作比阅读难一样。概率图模型通过分解简化联合分布 712 | 713 | \paragraph{朴素贝叶斯} 分类模型。 714 | 朴素贝叶斯用数据直接估计$p(y)$和$p(x|y)$,以求得$p(y|x)$。 715 | $$p(y|x) \propto p(y)p(x|y) = p(y)\prod_{i=1}^D p(x_i|y)$$ 716 | 717 | \paragraph{拉普拉斯平滑} 718 | 为了让$p(y)$和$p(x_i|y)$不等于0,有必要进行平滑操作,假设$N()$是数据集中满足某种条件的数据的个数,$C()$是某一维数据的类别数目: 719 | $$p^\prime(x_i = a|y = b) = \frac{N(x_i = a, y = b) + \alpha}{N(y = b) + \alpha \times C(x_i)}$$ 720 | 721 | \paragraph{贝叶斯网络} 是有向无环图。若一节点$d$有来自点$(a,b,c)$的进入该节点的边,那么: 722 | $p(a,b,c,d) = p(d|a,b,c)p(a,b,c)$ 723 | 724 | \paragraph{D-划分和条件独立} 725 | 假设我们要考虑$p(A,B|C)$ 其中$A$,$B$,$C$是不相交的随机变量集,将$C$的节点标记为“已知”,对于每一对$a \in A$、$a \in B$,找出从$a$到$b$的所有可能路径,并判断这条路径是否被阻塞。无论箭头方向如何,路径都由连续的边组成。 726 | \begin{enumerate} 727 | \item 如果一个节点是公共父节点或链中节点,并且该节点是\textbf{已知}的,则路径被阻塞。 728 | \item 如果一个节点是公共子节点,并且该节点及其所有后代都是\textbf{未知}的,则路径被阻塞。 729 | \end{enumerate} 730 | 如果所有的路径都被阻塞了,那么$A \perp \!\!\! \perp B | C$,否则$A \not \! \perp \!\!\! \perp B | C$ 731 | 732 | \paragraph{马尔可夫盘} 733 | 使用条件独立,我们可以证明:$$p(A|\bar{A}) = p(A|\partial A),$$其中,$\bar{A}$是$A$的补集;$\partial A$是$A$的邻域,包括:父节点,子节点,子的其他父节点。这样的邻域叫做马尔可夫盘。 734 | 735 | \paragraph{马尔可夫随机场} 无向图模型,没有直接的条件分布。条件独立的要点是若去掉$C$中节点,$A$和$B$之间没有路径相通,那么$A \perp \!\!\! \perp B | C$。其马尔可夫盘就是直接的邻居。 736 | 737 | 马尔可夫随机场定义了相关,但不是分布。 738 | - 如果$x_i$和$x_j$不相连,那么我们就不需要定义$p(x_i, x_j |\{x_i , x_j\})$ ,因为它们是条件独立的。我们只需要考虑连接的节点。团:一个节点集合,其中任何两个节点都是相连的。最大团:在图中具有最大可能大小的团。联合分布只能在团上定义,最终在最大团上有个分布。实践中,我们常常用指数族作为联合分布。 739 | 740 | \paragraph{转换贝叶斯网络到马尔可夫随机场} 741 | 有向边改为无向边,有共同子节点的父节点间加上无向边。转换后,每个节点的马尔可夫盘保持不变,有一些信息丢失。一个马尔可夫随机场可对应多个贝叶斯网络,也可能无对应。 742 | 743 | \paragraph{因子图} 744 | 因子用黑方块表示,每个因子是个函数或者概率表达式,其参数是黑方块所连接的节点。每个节点也必定连接相关的因子。 745 | 746 | \paragraph{信念传播:和-积算法} 747 | 有两种信息:从变量到因子,从因子到变量。 748 | 749 | 从变量到因子:$\mu_{x_m \to f_s}(x_m) = \prod_{l \in \mathrm{ne}(x_m) \backslash f_s} \mu_{f_l \to x_m}(x_m)$,也就是$f_l$是除$f_s$以外的所有因子。 750 | 751 | 从因子到变量:$$ 752 | \begin{aligned} 753 | &\mu_{f_s \to x}(x) = \\ 754 | &\sum_{x_1}\! \cdots\! \sum_{x_M}\! f_s(x,x_1,\! \ldots,\! x_M)\! \prod_{m \in \mathrm{ne}(f_s)\! \backslash\! x}\! \mu_{x_m\! \to\! f_s}(x_m) 755 | \end{aligned} 756 | $$,也就是$x_m$是除$x$以外的所有因子。 757 | 758 | 对于连续变量,和-积算法仍然有效,用PDF代替了概率分布。 759 | 如果因子图是一棵树(即没有循环),和-积算法是精确的。 760 | 如果因子图包含循环,可以使用循环信念传播法。 761 | 需要决定一个消息传递时间表。 762 | 不一定能收敛。 763 | 在很多情况下,我们退而求其次,进行近似推理。 764 | 765 | \section{深度学习} 766 | \paragraph{M-P神经元模型} 767 | 最基本的神经网络单元,连接具有权值,有激活函数。 768 | $$y = f(\bm w^T\bm x - \theta),$$ 769 | 其中,激活函数可以是sign或者sigmoid。感知机不能处理线性不可分的分类问题。 770 | 771 | \paragraph{MLP} 772 | 多层感知机,中间层被称为隐藏层。有非线性的激活函数。 773 | 774 | \paragraph{Feedforward Network} 775 | 每层都是全连接层,没有同层连接(RNN)、跳层连接(ResNet)。输入层没有激活函数,隐藏层和输出层一般有激活函数。 776 | 777 | \paragraph{同层连接} 778 | RNN带来了同层的连接,使得每个timeslot可以使用之前的timeslot的输出/隐藏状态。 779 | 780 | \paragraph{跳层连接} 781 | ResNet引入了残差连接,DenseNet引入了稠密连接。 782 | 783 | \paragraph{BP和梯度下降} 784 | 和前面没有什么不同。值得一提的是批处理——这是在随机梯度下降和传统梯度下降间的tradeoff。 785 | 786 | \paragraph{动量} 787 | 动量就是上一次梯度下降的梯度信息,有一阶和二阶(就是一阶梯度信息的平方)之分。如果在梯度下降中加入动量,通常能加快训练速度,提升训练精度。几乎所有的优化器都用了动量 788 | 789 | \paragraph{避免过拟合} 只要有一个隐藏层,一个FFN就可以在任意精度上拟合任意的连续函数。所以神经网络非常容易过拟合。避免过拟合有以下方法: 790 | \begin{enumerate} 791 | \item 使用验证集,以早停止 792 | \item 使用正则化 793 | \item Dropout和DropConnect 794 | \end{enumerate} 795 | 796 | \paragraph{CNN} 797 | 我不想断手了…… 798 | 799 | \paragraph{非监督学习} 800 | \subparagraph{SOM} 801 | 竞争学习:在输出层,只有一个神经元被激活,其他神经元被抑制。(输出类似One-Hot) 802 | 输出层是 2D。可用于降维。 803 | \subparagraph{Hopfield network} 804 | 神经元完全相互连接。通常,约束是与自身无连接且连接是对称的。每个神经元的状态是二进制的(-1 或 1)。它考虑了联想记忆。 805 | \subparagraph{Boltzmann machine} 806 | 类似于 Hopfield 网络,但区分可见和隐藏单元。 807 | \subparagraph{Restricted Boltzmann machine} 808 | 基于能量的模型。只允许可见和隐藏神经元之间的连接,是一个二分图。 809 | \subparagraph{DBN} 810 | 可以用于降维。DBN 也代表了“自动编码器”的策略,它试图从无监督学习中受益。 811 | \subparagraph{PixelCNN} 812 | 用概率来刻画图像 813 | \subparagraph{Variational auto-encoder} 814 | 将自动编码器转换为概率框架。 815 | \subparagraph{GAN} 816 | 拥有生成器和判别器。 --------------------------------------------------------------------------------