Java 基础知识点

  本文用于盘点曾经疏忽或者不曾接触的不熟悉的 java 基础知识点. 1.Java权限问题 \begin{align*}\begin{matrix} \ & public & protected & default & private\\\ 同一类中 & OK & OK & OK & OK &\\\ 同一包中 & OK & OK & \textbf{OK} & NO\\\ 子类 & OK & \textbf{OK} & NO & NO\\\ 其他类中 & OK & NO & NO & NO \end{matrix}\end{align*} 加黑内容:子类可以调用父类protected内容.同一个包内可以调用default权限的内容. 2.多态 … Continue reading “Java 基础知识点”

1 Comment so far

从变分到EM算法(二)——EM算法

  在上一篇文章讨论了泛函与变分法的一些基础数学, 仅作为数学思想引出这篇文章的主要内容: EM算法. 极大似然原理 极大似然解决的问题是希望通过现有的采样数据, 解决模型已知但参数未知的问题, 也即希望通过采样的数据推测出模型的参数. 下面两个浅显的例子助于理解最大似然原理: 例1. 北京 11 月份降雨概率为 \(0.05\) , 7 月份降雨概率为 \(0.4\). 今天降雨了. 那么现在更有可能是 11 月还是 7 月? 答案是 7 月, 我们有 \(8/9\) 的概率认定现在是 7 月, 逻辑是自然的, 因为 7 月下雨的概率更大. 在上述题设中, 第一句是已知模型, 第二句是采样结果, 需要求出的即模型的具体的(离散)参数. 例2. 已知某地 16 岁男性身高符合正态分布, 现有随机普查某中学的 16 岁男性身高若干例: \({x_1, x_2, … , x_n}\) , 那么正态分布的均值与方差分别是多少? 这一例子没有例一那样容易解决, … Continue reading “从变分到EM算法(二)——EM算法”

从变分法到EM算法(一)——最速曲线

  本文与机器学习算法实际关联较小,仅以数学爱好作一个引子 最速曲线 一个小球沿着一个斜面下滑到某个定点, 斜面的截面是什么样的曲线时所花的时间最短? 这就是经典的最速曲线(或者称为最降曲线)的问题. 这个问题由伽利略提出, 他错误地认为答案是圆弧, 后经过牛顿和莱布尼兹等人的证明, 发现这个曲线是摆线. 谁对谁错的历史并不重要, 关键在于最速曲线的提出了一类问题, 即当未知量是一个曲线(函数), 如何求某个式子的极值? 这一类问题后来演变成了泛函分析的内容, 作为现代数学的一块基石支撑着整个现代数学金碧辉煌的大厦. 变分法作为泛函分析的最基本方法, 也被机器学习的算法所看中, 通过最优控制理论的神奇, 发挥了其很大的作用. 回到这个问题上来, 怎么去证明这个最速曲线的解是摆线的问题呢? 古典方式证明 前人通过猜测的方法, 猜测出了曲线是摆线. 有一些证明在今天看来也十分巧妙. 我们知道, 摆线是在坐标轴上滚动的一个圆, 其圆弧上以定点所形成的轨迹, 满足参数方程: \begin{align*} \left\{\begin{matrix} x=r(\theta-sin\theta)\\\ y=r(1-cos\theta) \end{matrix}\right. \end{align*} 而著名的费马原理认为, 光的传播遵循时间最短的规则. 例如光的在折射中遵循菲涅耳定律 \[ \dfrac{v_1}{sin\theta_1} = \dfrac{v_2}{sin\theta_2} \] 其中, \(v_1, v_2\) 分别是不同介质中的光速, \(\theta_1, \theta_2\) 分别是不同介质中的入射角与折射角. 如果我们可以把光线传播的介质想象成很多层光速不同介质的叠加, 且光的速度满足小球下落的规律, 即离出发点垂直距离为 \(s\) … Continue reading “从变分法到EM算法(一)——最速曲线”