demonstrate 的 blog

daily blog

Archive for the ‘academics’ Category

Photography 笔记(二)

with one comment

光学:镜头与光圈

几何光学一般认为光的波长 \lambda \to 0,这样就不会发生衍射(diffraction)现象,这样光行进的路线总是直线。但是事实上光也是波,通过孔径与波长相当的空间时就会发生衍射。

另外一个有用的物理现象是折射(refraction),物理里面有个叫斯涅耳定律(Snell’s law)可以定量的描述光通过两个折射率不同的介质时发生偏转的程度。

要理解 Snell’s law 可以用 wavefront 来进行分析,在进入另外个介质后光的波长从 \lambda / n_1 变成 \lambda / n_2,这束光如果保持波前不变(假定和介质表面相交宽度为 L),那么两侧为了保证同步,左侧在介质 2 中多走了 L \sin \theta_2,而右侧在介质 1 中多走了 L \sin \theta_1 花费的时间应该是一致的,这也就是说 \frac{L \sin \theta_2}{c/n_2} = \frac{L \sin \theta_1}{c/n_1},也就得到了以上定律。

理解了 refractive indices 之后,我们可以用其解释某些现象。比如海市蜃楼:低空空气受热变得更加稀薄,使得折射率下降,相对来说高空的折射率会较大。人本来只能看到所处高度对地球做的切线以内的东西,但是更远处的物体发出的光(本来应该偏离地面)被这种密度不均匀的空气折射(甚至是全反射)沿着地球表面绕过了地平线进入观测者的眼睛,形成了一种奇妙的光学景观。

有了这个知识,我们可以推导什么样的曲面能够让平行光线汇聚,答案很简单双曲线,但是为什么?mm 的解释如下:假定平行光线从 x = 0 出发向正无穷方向行径(处于透镜介质里面),碰到我们的镜面曲线 (x, y) 后折向 (D, 0) 这点,这里一个 trick 也是使用 wavefront 理论,每束光到达焦点的光程一样,这意味着 n_2 x + n_1\sqrt{y^2 + (D - x)^2} 为常数,这样我们将 x 项移动后两边平方就得到了 y^2 = (n^2 - 1)x^2 + \beta x + \gamma 这种形式的双曲线,其中 latex n$ 是透镜介质对空气的折射率。

实际镜头的制造却发现双曲面非常难以研磨,通常会以球面镜进行替代。高端的镜头(特别是广角)一般都含有非球面镜,这主要是因为球面镜并不能完全聚焦光线,存在所谓的“球差”(spherical aberration),某些情况下合理利用球差能够带来柔焦的效果,但是一般情况下球差都会使得成像质量下降,且不是需要保留的。球面镜这种近轴近似(paraxial approximation)是一种一阶近似。

近似主要利用了 \theta \approx \sin \theta \approx \tan \theta\theta \approx 0 恶情况,这时 Snell’s law 写成 ni = n' i',利用三角形外角与内角的关系就得到了以上关系。

这里我们令 z \to \infty,使得光线变成平行光线,这样就得到了这个透镜的“焦距” f = (r n') / (n' - n),这里我们光线通过球面后一直在透镜内传播。我们往往制作透镜的时候在另一侧会研磨另外一个球面,这样我们可以类似的得到如下关系:

这里的 s_o 是物距,而 s_i 是像距。不知道是不是两边都用近似,然后加上 thin lens approximation 就能得到了?

这样我们就有 \frac{1}{f} = (n_l - 1)\left( \frac{1}{R_1} - \frac{1}{R_2}\right),看来前片越凸起来,焦距越短,这也就解释了那种畸形的镜头是怎么回事了,呵呵。至此我们获得了初高中物理所讲薄透镜成像的公式。对拍照来说,一般情况下都是像距远小于物距,特别的,当拍 1:1 微距的时候要求两者为焦距的两倍。

常见把凹透镜的焦距即为负数,这样获得的是虚像。我们常将焦距(单位是长度)的倒数称为屈光度(diopter,单位是 \mathrm{m}^{-1}),这样一来我们常用的近视(myopia)眼镜的屈光度都是负值,而远视(hyperopia)使用的老花眼镜是正的。镜头叠加获得的效果是 \frac{1}{f} = \frac{1}{f_1} + \frac{1}{f_2},或者使用屈光度来写就是 P = P_1 + P_2

我们可以这样理解常用的近摄滤镜(一般是一个凸透镜),增加了屈光度之后得到的镜头的等效焦距变短,这样最近对焦距离就会进一步变小。值得注意的是一般销售近摄滤镜一般只写 +n,其中常见的是 1、2、4,我们可以很容易计算对应的焦距。这个并不是放大倍数。

讨论景深(DoF,depth of field)之前我们有比较重新看一下 F number,这是焦距与通光孔径的比值,尽管看起来只要我们能将孔径不断的做大就能获得更小的 F number,但事实上由于 paraxial approximation 的影响,一般最多做到 0.5,这是折射率决定的。而现在我们能够买到的最大是 0.95。电影拍摄中为了得到较好的自然光效果(如 Kubrick 在 1975 年所拍摄的 Barry Lyndon),会花大量金钱购买大光圈镜头(如 Zeiss 50mm/0.7)。

这个推导跟原先我的推导似乎有一定的差别。似乎我原来理解的有点问题,这里就是把弥散圆(confusion circle)放在焦平面上,通过边缘光线获得的前后两个交点的距离在物体侧的深度。为什么这样做?因为可以取这个区域中任意一点,如果在焦平面上成像就是一点,而如果不在焦平面上,我们通过边缘光线就能获得成像光斑的大小,这个区域内的光斑尺寸不会大于 confusion circle,因此人还是认为成像清晰。

我们可以看出来前景深和后景深是不对称的(即一般说来 D_1 \neq D_2),Nikon 有两个镜头 105mm/2 DC 和 135mm/2 DC (二手还卖这么贵 ~><~)可以通过 DC 环调节前后景深的比例,不知道是怎么做到的,求真相!

一般说来 confusion circle 对 135 相机是 0.02mm,据此我们可以计算全景深 D = D_1 + D_2 = \frac{2NCU^2 f^2}{f^4 - N^2C^2U^2},当弥散圆的共轭相对光圈较小的时候(非微距拍摄情况),我们也有近似 D \approx \frac{2NCU^2}{f^2},这说明景深(DoF)基本上正比于 F number,摄距的平方,反比于焦距的平方。

有点需要注意的是微距镜头比其他镜头更需要矫正近摄距情况下的 aberration,使用 extension tube(近摄接环)尽管能够为一般的镜头提供微距拍摄效果,但是这些镜头由于在更近的拍摄下 aberration 较高,仍然是比不过专业的微距镜头的成像的。一般说来近摄接环和焦距较短的镜头配合较好,而近摄滤镜往往与焦距较长的镜头配合。

根据后景深的公式,我们知道如果 U \geq \frac{f^2}{NC} 时就会趋于无穷,这就是所谓的超焦距,特别是广角镜头,由于焦距小,这会导致这个下界并不大(几米?),这样拍很多照片时,我们只要保证拍摄物体足够远,开到某个 F number 后,可以不需要对焦就能拍了。比如 Sigma 24mm/1.8 在最大光圈下这个距离是 16m,但是如果将其收缩到 8,那只要 3.6m 开外的都可以直接按快门了。又比如说 Sigma 10-20mm/4-5.6,如果我们用最广的 10mm,就算全开光圈,只要 1.25m 开外的都会清晰。啊… 我是不是应该为我手头镜头都算算… hmm 可能这个 confusion circle 对 APS-C 画幅还不大一样,Mark 同志给的是全幅的值吧?

事实上,DoF 与感光元件尺寸是反比关系的,这是因为缩小感光元件后,为了维持相同的视角,焦距就会随着线性的减少,而另一方面 confusion circle 也是线性减少,消掉之后剩下焦距带来的反比关系。

最后我们讨论一下 Dolly zoom 的手法:首先我们为了维持物体大小不变,其实是在摄距变化时保证视角,这个我们需要在摄距变化时,通过焦距的增大来弥补,经过分析可以发现两者是线性关系。不过根据景深公式比较奇特的一点是,景深在做 dolly zome 时是不变的。嗯,大光圈还能让我们绕开遮挡物!

从逻辑上来说就是障碍物仅仅遮住了部分的光线。

—————-
Haste you, escape thither; for I cannot do anything till you be come thither. Therefore the name of the city was called Zoar.

讨论几个 model

leave a comment »

嗯,最近一些 paper 上面的关于 CTR 的 model,稍微介绍下。

类似 LDS 的一个 model

假定观测到的 click 和 view 对应的 CTR 是 \lambda_t,我们对其进行变换,y_t = \log \frac{\lambda_t}{1 - \lambda_t},我们有如下的 Bayesian belief nets,

dynamic Linear Growth model

这个 model 与 HMM 有一些类似,观测 y_t = o_t + \mu_t + \epsilon_t,其中 o_t 是 time-of-day 的 bias,是预先给定的常数,然后 \epsilon_t 是 0 均值方差为 Vw_t 的噪声,其中 w_t = (c_t + 1/2)^{-1} + (v_t + 1/2)^{-1},而 \mu_t = \mu_{t - 1} + \beta_t + \delta_t^\mu,其中 \delta_t^\mu 是 0 均值方差为 \sigma_{\mu_t}^2 的噪声。

这个模型为什么能反应 growth,我们不妨考虑令 \beta_0 = -1,如果没有噪声 \delta_t^\beta 的存在,则 \mu_t 是分布在 \mu_0 + t \beta_0 附近的一个正态分布,这可一看成是一个有下降趋势的 CTR 估计。我们增加了噪声后,增长率就不再是一成不变了。似乎对应 \mu_t\beta_t 的方差参数应该是 shared(去掉下标 t)。这时给定一组数据时,我们应该有办法使用 EM 算法进行对参数的估计,比较感兴趣的应该是给定参数后对 \mu_t 的预测,按照现在这种形式就是利用 \beta_{t-1} 的 mean 和 \mu_{t - 1} 的 mean 的和进行估计了。

dynamic Poisson-Gamma model

这个可以认为就是 Poisson-Gamma model 的简单推广(与此类似可以用所谓的 Bernoulli-Beta model)

dynamic Poisson-Gamma model

这个 model 一般假定观测到的 click 数目 c_t 来自一个 Poisson 分布,其参数是 \lambda_t v_t。而这个 \lambda_t 是一个 Gamma 分布,对应 \lambda_0 \sim \text{Gamma}(\cdot \mid \alpha, \beta),而之后给定了 \lambda_{t-1} 的后验分布(设参数为 \alpha_{t-1}, \beta_{t-1})之后,\lambda_t 仍然是一个 Gamma 分布,且对应的先验是参数为 w\alpha_{t-1}, w\beta_{t-1} 的分布。

这个时候我们给出的每个时刻的 CTR 估计可以认为是每个 \lambda_t 的后验 mode/mean 之类的,这比起某些情况来说增加了遗忘因子 w \in [0, 1]。这个模型感觉也是 EM 来 training 的。

这两天把这些东西梳理一下,虽然是一些基本的模型,也大致清楚推导的方式,但是没自己推过,终究不知道一些细节。

——————-
Peradventure there be fifty righteous within the city: will you also destroy and not spare the place for the fifty righteous that are therein?

Written by zt

2012/04/28 at 3:11 PM

推荐系统(十一)

leave a comment »

这部分讨论关于多准则推荐系统(MCRS,multi-criteria RS)。

MCRS 的讨论是延续 Bernhard Roy 提出的四步:

  • define the object of decision:确定候选集以及推荐的理由
  • defining a consistent family of criteria,即一致的评价标准,一致指涵盖以上各种理由并且互不矛盾的最小评价标准集合
  • developing a global preference model,将以上准则能够合成为一个模型
  • selection of the decision support process

其中推荐的理由一般称为 decision problematics,分为 choice(选择候选集中一个或者几个)、sorting(类别)、ranking(顺序)和 description(对每个标准所选候选者的达标程度)。对于所选的评价标准一般要求 monotonic(单调,谁好谁的评价值高)、exhaustive(相同的评价值对应等价物)、non-redudent(评价准则缺一不可)。评价函数有四类,measurable、ordinal、probabilistic 或者是 fuzzy。

所谓的 global preference model 可以有四种策略:

  • value focused model,将各个 criteria 组合起来,不同的用户组合的方式不同
  • multi-objective optimization models,这一般是寻找 Pareto optimal
  • outranking relations model,两两比较 item,根据对应 criteria 的 preference 进行排序,然后在这个类似 DAG 的图里面找一些候选者
  • preference disaggregation model,根据历史数据推导出偏好

常见的 MCDM 有 multi-attribute content preference modelling、multi-attribute content search and filtering 以及 multi-criteria rating-based preference elicitation,最后一个比如举个例子是我们要求用户对镜头评分,但是分做工,光学性能,价格等分别评星级。这样我们原先的推荐是从 user x item 到一个 rating,现在是到一个 rating vector。我们剩下的部分就讨论这种情况下如何做推荐。一般这种情况下还存在一个所谓 overall rating,这个反应用户对这个 item 整体的偏好程度,因此,通过其他的 aspect 我们可以看出两个不同的 user 很可能给出的 overall rating 相当,但是每个 aspect 上却各不一样。一般有两种使用这种 multi-criteria 的时候,一个在训练阶段,一个在 inference 阶段。

训练阶段,比如最近邻方法的修正我们可以很容易从一维扩展到高维,这样就把原先的算法弄到现在的情况了。同时对高维,我们可以使用一些别的距离,如 Manhattan distance,L^p 距离等。另一种就是认为我们的 overall rating 是其他的 rating 的函数,我们的任务就是为这个建立模型,简单的可以直接用 linear regression/GBDT,复杂的也可以用一些 probabilistic model。另外矩阵分解的策略也可以推广到这个情况(不知道是不是和 NMF 推广到 NTF 类似,但是现在是 sparse 矩阵了)。

推断阶段要看 model 是否推断了 overall rating,如果有直接就可以使用这个值,否则我们可以能需要类似前面的一些做法,将 multi-critera 的 rating 转换成为一个序关系,如 Pareto optimal、线性组合等。

——————
And the LORD said, Because the cry of Sodom and Gomorrah is great, and because their sin is very grievous;

Written by zt

2012/04/25 at 11:08 PM

Follow

Get every new post delivered to your Inbox.